5. Rajoitelaskenta (Constraint Satisfaction) Eero Hyvönen Helsingin yliopisto Solution = An assignment of values for the variables satifying the contraints Some CSPs: optimal solution is the best solution according to an objective function Tekoäly, Eero Hyvönen, 2004 2 1
Tekoäly, Eero Hyvönen, 2004 3 Tekoäly, Eero Hyvönen, 2004 4 2
Tekoäly, Eero Hyvönen, 2004 5 CSP vs. tila-avaruushaku CSP tila-avaruushakuna: Tiloina muuttujajoukon arvosidokset {Vi=dn}, n=0...n Alkutila = {} Lopputila = {V1=d1,, Vn=dn} Seuraajafunktio = Uuden muuttujan sidoksen lisääminen tilaan rajoitteita rikkomatta Lopputesti = kaikilla muuttujilla on konsistentti arvo Kustannus = vakiokustannus uudelle sidokselle Tekoäly, Eero Hyvönen, 2004 6 3
CSP tilahakuna CSP:ssä ratkaisu on tila -- hakupolku on irrelevantti CSP-ongelmiin voidaan soveltaa tilahaun menetelmiä Tekoäly, Eero Hyvönen, 2004 7 CSP:n etuja Yksinkertainen vakiomuoto -> voidaan kehittää tehokkaita yleiskäyttöisiä algoritmeja Sijoitetaan n muuttujalle arvot rajoitteiden puitteissa Hakupuun syvyys max n Rajoiteverkon ominaisuuksien hyödyntäminen algoritmeissa Rajoiteverkko ei ole tila-avaruus Haun suuntaaminen rajoitteilla Riippumattomat aliongelmat Puumaiset rakenteet helppoja Tekoäly, Eero Hyvönen, 2004 8 4
Klassiset optimointiongelmat: - joukko yhtälö tai epäyhtälörajoitteita muuttujille - kustannusfunktio, jolle pitää löytää minimi rajoitteiden vallitessa Intervallirajoitelaskenta (interval constraint satisfaction) - epälineaaristen yhtälöiden ja optimointiongelmien ratkontaan - löydetään varmuudella(!) kaikki(!) ratkaisut (interval box) annetun tarkkuuden (ja liukulukutarkkuuden) puitteissa - ottaa huomioon myös pyöristysvirheet Tekoäly, Eero Hyvönen, 2004 9 Esim. A+B=C Tekoäly, Eero Hyvönen, 2004 10 5
Tekoäly, Eero Hyvönen, 2004 11 Tekoäly, Eero Hyvönen, 2004 12 6
Tekoäly, Eero Hyvönen, 2004 13 Tekoäly, Eero Hyvönen, 2004 14 7
MITEN TÄTÄ VOISI TEHOSTAA? Tekoäly, Eero Hyvönen, 2004 15 Tekoäly, Eero Hyvönen, 2004 16 8
Tekoäly, Eero Hyvönen, 2004 17 Tekoäly, Eero Hyvönen, 2004 18 9
Tekoäly, Eero Hyvönen, 2004 19 Tekoäly, Eero Hyvönen, 2004 20 10
Tie-break Miksi tämä on hyvä heuristiikka? Tekoäly, Eero Hyvönen, 2004 21 Miksi tämä on hyvä heuristiikka? Tekoäly, Eero Hyvönen, 2004 22 11
Miksi ja milloin tämä on hyvä heuristiikka? Tekoäly, Eero Hyvönen, 2004 23 Tekoäly, Eero Hyvönen, 2004 24 12
Tekoäly, Eero Hyvönen, 2004 25 Tekoäly, Eero Hyvönen, 2004 26 13
Tekoäly, Eero Hyvönen, 2004 27 Tekoäly, Eero Hyvönen, 2004 28 14
Tekoäly, Eero Hyvönen, 2004 29 Tekoäly, Eero Hyvönen, 2004 30 15
Tekoäly, Eero Hyvönen, 2004 31 Tekoäly, Eero Hyvönen, 2004 32 16
Tekoäly, Eero Hyvönen, 2004 33 Konsistenssin asteita 1..k Node consistency (1-consistency) Muuttujan arvo annetussa arvoaluessa Arc consistency (2-consistency) Muuttujaparien arvot rajoitusten mukaiset Path consistency (3-consistency) Jokainen toisiinsa liittyvän muuttujan arvopari on rajoitusten mukainen mihin tahansa kolmanteen liittyvään muuttujaan k-consistency Jokaiselle konsistentille k-1 muuttujan arvojoukolle löytyy konsistentti arvo myös muuttujalle k Strong k-consistency 1 k konsistentti Tekoäly, Eero Hyvönen, 2004 34 17
Jos CSP on vahvasti k-konsistentti (strongly k-konsistent), niin se voidaan ratkaista ilman peräytystä (bracktrack) O(nd) aikakompleksisuus k-konsistenssin laskeminen on kuitenkin kompleksisuudeltaan exponentiaalinen ongelma (suhteessa k:hon) Trade-off: bracktracking vs. constraint propagation Tekoäly, Eero Hyvönen, 2004 35 Muita menetelmiä Korkeamman asteisten rajoitteiden heuristinen hyödyntäminen Esim. Alldiff(X1,,Xm) Jos muuttujilla on n<m erilaista arvoa, ei rajoitetta voida tyydyttää Tekoäly, Eero Hyvönen, 2004 36 18
Älykäs peräytys (Intelligent Backtracking) Back-jumping Idea: peräytyksessä ei palata kronologisesti edelliseen valintatilanteeseen vaan valintaan, joka aiheutti umpikujan Konfliktijoukko (conflict set): Muuttujajoukko, joka on liitetty muuttujaan rajoitteilla Voidaan siis peräytyä esim. suoraan viimeisimpään konfliktijoukon muuttujaan Jokainen tämän menetelmän hakupuusta karsima haara karsiutuu myös forward checking tekniikalla Redundantti myös arc consistency -tekniikalle Constraint learning Idea: yritetään muistaa aiemmat umpikujat, ettei niihin jouduta uudestaan Tekoäly, Eero Hyvönen, 2004 37 Tekoäly, Eero Hyvönen, 2004 38 19
Tekoäly, Eero Hyvönen, 2004 39 Tekoäly, Eero Hyvönen, 2004 40 20
Tekoäly, Eero Hyvönen, 2004 41 Puuperustaisia ratkaisumenetelmiä Idea: CSP:n redusointi puuksi Cycle cutset menetelmä Määritetään (mahd. suppea) solmujoukko C, jonka arvojen instantiointi tekee CSP:stä puun (ts. verkon jokaisen syklin jokin on solmu on C:ssä) Instantioidaan C-arvot: loppu CSP ratkeaa puuna Tree decomposition -menetelmä Muodostetaan CSP:stä (mahd. pienten syklisten) aliverkkojen muodostama puu T T on uusi puumainen CSP, joka voidaan ratkaista Tekoäly, Eero Hyvönen, 2004 42 21
Tekoäly, Eero Hyvönen, 2004 43 Tekoäly, Eero Hyvönen, 2004 44 22
Tekoäly, Eero Hyvönen, 2004 45 Tekoäly, Eero Hyvönen, 2004 46 23
Tekoäly, Eero Hyvönen, 2004 47 Lähteet S. Russell, P. Norvig: Artificial Intelligence, a Modern Approach. Prentice-Hall, 2003. S. Russell, Tekoälykurssin kalvot Berkleyn yliopistossa, 2004. Tekoäly, Eero Hyvönen, 2004 48 24