4 Heuristinen haku Eero Hyvönen Helsingin yliopisto
Strategioita: - Breath-first - Uniform-cost - Depth-first - Depth-limited - Iterative deepening - Bidirectional Tekoäly, Eero Hyvönen, 2004 2
Heuristisen haun idea Uninformed search Hakustrategia perustuu tietoon tilaavaruuteen Ongelma: seuraavaksi laajennettavaa solmua ei aina pystytä valitsemaan järkevästi vain tila-avaruuden perusteella Ilman hyvää valintastrategiaa haku harhailee Informed / heuristic search Tila-avaruuden ulkopuolisen tiedon hyödyntäminen hakustrategiassa Tekoäly, Eero Hyvönen, 2004 3
Solmun valinnan kriteerejä Arvofunktio (evalution function) f(n) Solmun kautta kulkevan ratkaisupolun kustannusarvio f(n) on sellainen, että se helppo laskea lokaalisti f(n) ei siksi välttämättä johda oikeaan valintaan! Jos f(n) laskettaisiin globaalisti, ei hakua edes tarvittaisi! Paras polku löytyisi ilman erehdyksiä Hakua voidaan eliminoida hyvällä f;llä ja huonoa f:a kompensoida haulla Kokonaiskustannus ratkaisee haun tehokkuuden Heuristinen funktio (heuristic function) h(n) Kustannusarvio solmusta n tavoite solmuun f(n) = g(n) + h(n) Tekoäly, Eero Hyvönen, 2004 4
Paras ensin -haku (best-first) Idea: puu tai verkkohaku, jossa lavennetaan aina paras solmu ensin Best-first search Valintaan aina solmu, jolla pienin f(n) Greedy best-first search f(n)=h(n) Eli välitetä aiemmista kustannuksista g(n) A* search Huomioidaan myös aiemmat kustannukset f(n) = g(n) + h(n) Tekoäly, Eero Hyvönen, 2004 5
Esimerkki: f(n) 234 Tekoäly, Eero Hyvönen, 2004 6
Matka linnuntietä Bukarestiin on tilaavaruuden ulkopuolinen tieto Sitä ei voida laskea ongelmasta Linnuntiemitta korreloi todellisen matkan kanssa Eli se on heuristiikka Tekoäly, Eero Hyvönen, 2004 7
Tekoäly, Eero Hyvönen, 2004 8
Tekoäly, Eero Hyvönen, 2004 9
Tekoäly, Eero Hyvönen, 2004 10
Tekoäly, Eero Hyvönen, 2004 11
Tekoäly, Eero Hyvönen, 2004 12
b = haarautumiskerroin m = tila-avaruuden maksimisyvyys d = matalimman ratkaisun syvyys Tekoäly, Eero Hyvönen, 2004 13
Tekoäly, Eero Hyvönen, 2004 14
Tekoäly, Eero Hyvönen, 2004 15
(vrt. greedy best-first haku) Tekoäly, Eero Hyvönen, 2004 16
Tekoäly, Eero Hyvönen, 2004 17
Tekoäly, Eero Hyvönen, 2004 18
Tekoäly, Eero Hyvönen, 2004 19
Huom: tämä ei ole ratkaisu! Solmu ei jää avoimen listan (fringe) kärkeen. Tekoäly, Eero Hyvönen, 2004 20
Tämä on eri ratkaisu kuin greedy best-first haussa ja optimaalinen Tekoäly, Eero Hyvönen, 2004 21
Tekoäly, Eero Hyvönen, 2004 22
Tekoäly, Eero Hyvönen, 2004 23
Tekoäly, Eero Hyvönen, 2004 24
Tekoäly, Eero Hyvönen, 2004 25
Suhteellinen virhe siis pienentää eksponentiaalisuutta: jos virhe on 0 eksponentiaalisuus häviää (= osataan aina tehdä aina oikea valinta) Tekoäly, Eero Hyvönen, 2004 26
Tekoäly, Eero Hyvönen, 2004 27
Tekoäly, Eero Hyvönen, 2004 28
Verkkohaun optimaalisuus A* on optimaalinen puuhaulle, kun h(n) on admissible (salliva, optimistinen) Verkkohaussa aiemmin lavennetun solmun hylkääminen voi karsia optimiratkaisun Tämä ongelma voidaan korjata Yksi ratkaisu: järjestetään haku niin, että optimipolku jokaiseen toisteiseen tilaan löydetään aina ensin Onnistuu valitsemalla sopiva h(n) Verkkohaku on optimaalinen, jos h(n) on konsistentti (consistent) eli monotoninen (monotonic) Tekoäly, Eero Hyvönen, 2004 29
- Esimerkiksi linnuntieheuristiikka on konsistentti (monotoninen) - Optimistinen (admissible) ei ole kuitenkaan välttämättä monotoninen - Consistent => Admissible Tekoäly, Eero Hyvönen, 2004 30
A* karsii hakupuuta, kun f(n)> optimi ratkaisu A* on optimally efficient Ei ole olemassa vähempää solmuja laventavaa algoritmia (Poislukien strategiat, kun f(n) sama monelle solmulle) Ongelmia kuitenkin jää Exponentiaalinen määrä solmuja listalla Exponentiaalinen aika ja tilakompleksisuus Erityisesti tilakompleksisuus on ongelma käytännössä Tekoäly, Eero Hyvönen, 2004 31
Muistinrajoitus heuristisessa haussa A*:n tilaongelman ratkaisumalleja IDA* = Iterative Deepening + A* Iteraatioiden rajoitus f-arvolla (eikä syvyydellä) Recursive Best-First Search (RNFS) Muistaa muiden solmujen f-arvojen minimin ja voi keskeyttää kalliimman polun tutkimisen Memory-Bounded A* (MA*), Simplified MA* Pyrkivät käyttämään muistia maksimaalisesti, muttei liikaa Tekoäly, Eero Hyvönen, 2004 32
Recursive Best-First Search (RBFS) Solmun kohdalla ylläpidetään tietoa toiseksi parhaan haaran minimikustannuksesta (laatikko) ja päivitetään solmun miniarvoa Tekoäly, Eero Hyvönen, 2004 33
Rimnicu Vilcean kustannus (alisolmussa) ylitti laatikon arvo, joten jatketaan hakua tätä vastaavasta solmusta (toiseksi paras solmu) Tekoäly, Eero Hyvönen, 2004 34
Samoin käy Fagarasille, joten jatketaan uudelleen Rimnicu Vilceasta, jolla taas minimikustannus. Nyt Timisoaran kustannus on toiseksi paras. Bucharestilla pienempi arvo kuin toiseksi parhaalla, joten se on ratkaisu. Tekoäly, Eero Hyvönen, 2004 35
Tekoäly, Eero Hyvönen, 2004 36
Tekoäly, Eero Hyvönen, 2004 37
Tekoäly, Eero Hyvönen, 2004 38
Tekoäly, Eero Hyvönen, 2004 39
Tekoäly, Eero Hyvönen, 2004 40
Tekoäly, Eero Hyvönen, 2004 41
Tekoäly, Eero Hyvönen, 2004 42
Local Search (Tilahaku)
Sisältö Tilahaun idea Hill climbing Simulated annealing (simuloitu jäähdytys) Geneettiset algoritmit Haku jatkuvilla arvoilla Tekoäly, Eero Hyvönen, 2004 44
Tilahaun idea Lopputila = ratkaisu Hakupolku ei kiinnosta! Esim. n kuningattaren sijoittaminen shakkiruudukkoon ilman uhkausta (n-queens) Tila-avaruuden tilat: Täydellisiä ratkaisukandidaatteja Esim. kuningattaret ruudukolla, aikataulut Iteratiivisen parantamisen idea Otetaan ratkaisukandidaatti ja parannetaan sitä Edellyttää, että kandidaatteja on helppo luoda Optimointiongelmat Parhaan ratkaisun löytäminen arvofunktion (objective function) suhteen Tekoäly, Eero Hyvönen, 2004 45
Tekoäly, Eero Hyvönen, 2004 46
Tekoäly, Eero Hyvönen, 2004 47
Tekoäly, Eero Hyvönen, 2004 48
Tekoäly, Eero Hyvönen, 2004 49
Esimerkki: lokaali optimi h=1, jokainen kuningattaren siirto sarakkeella => h>1 Tekoäly, Eero Hyvönen, 2004 50
Jos T pienenee riittävän hitaasti, SA löytää lopulta optimin Tekoäly, Eero Hyvönen, 2004 51
Suvuton lisääntyminen Tekoäly, Eero Hyvönen, 2004 52
Geneettiset algoritmit Idea: luonnossa tapahtuva darwinilainen suvullinen lisääntyminen ja luonnonvalinta tuottaa yhä parempia ratkaisuja Soveltuu mm. hankalasti muotoiltavien optimointiongelmien ratkaisuun Esim. tarkkaa tavoitetta voi voida tietää Tekoäly, Eero Hyvönen, 2004 53
Geneettinen algoritmi Yksilön koodaus geeninä Tekoäly, Eero Hyvönen, 2004 54
Eräs sovellus Rikollisen tunnistekuvan interaktiivinen konstruointi Kasvokuvan parametrointi Nenän pituus, silmien väri, jne Kone tuottaa kasvopopulaatioita Silminäkijä toimii luonnonvalintana Valitsee aina eniten rikollisen näköiset Lopputuloksena rikollisen tunnistekuva Hakua ei voi soveltaa, kun lopputila on tuntematon! Tekoäly, Eero Hyvönen, 2004 55
Tekoäly, Eero Hyvönen, 2004 56
Tekoäly, Eero Hyvönen, 2004 57
Tekoäly, Eero Hyvönen, 2004 58
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 59