Kognitiivinen mallintaminen 1 Uutta infoa: Kurssin kotisivut wikissä: http://wiki.helsinki.fi/display/kognitiotiede/cog241 Suorittaminen tentillä ja laskareilla (ei välikoetta 1. periodissa)
Ongelmanratkaisu Sisältöä: Hyvinmääritellyt ongelmat Ongelma-avaruus (tila-avaruus) Hakustrategiat ongelma-avaruudessa hakupuu sokea haku tietoinen haku heuristiikat
Hyvinmääritellyt ongelmat Hyvinmääritelty ongelma: määrittelee yksiselitteisesti ja kokonaan ongelmanratkaisijalle annetun informaation ongelmanratkaisijan vaihtoehdot halutun lopputilan Tietoon perustuva ongelma: ratkaisuun tarvitaan vain rajattu määrä tietoa Esimerkkejä (hyvinmääriteltyjä & tietoon perustuvia) Shakki Lähetyssaarnaaja ja ihmissyöjä ongelma(laskareissa) Hanoin torni Aritmetiikan ongelmat
Ongelman tila-avaruus Ongelmat kuvataan tilasiirtyminä ongelman tila-avaruudessa (lyhyesti: ongelma-avaruudessa) Ongelma-avaruuden tila on ote ongelmanratkaisutilanteesta tietyllä ajanhetkellä. kuvaus objekteista ja relaatioista objektien välillä Esimerkiksi shakkipelin alkutila kuvaa nappuloiden värin ja sijainnin laudalla sekä sen että on valkoisen vuoro siirtää. Tila-avaruus voidaan esittää suunnattuna verkkona tai puuna, jonka solmut vastaavat tiloja ja nuolet siirtymiä tilojen välillä Esim: osa ristinollan tila-avaruutta
Ongelman tila-avaruus Ongelmanratkaisu on alkutilan muuttaminen halutuksi lopputilaksi käymällä läpi sarja tilasiirtymiä. Usein mahdolliset tilasiirtymät voidaan jakaa luokkiin. sotilaan siirtäminen yhden eteenpäin lähetin siirtäminen diagonaalisesti Siirtymiä kutsutaan seuraajafunktioiksi.
Etsi reitti Aradista Bukarestiin
reitti Aradista Bukarestiin Alkutila: Arad, Romania Lopputila: Bukarest, Romania Seuraajafunktio: autoilu kaupungista toiseen. Hyvinmääritelty & tietoon perustuva: Yksikäsitteinen ja täydellinen informaatio, sekä ongelmanratkaisijan vaihtoehdot kussakin tilanteessa. Lopputila Ratkaisuun tarvitaan vain rajattu määrä tietoa
Pölynimuriagentti refleksiagentti (ympäristöä mallintava agentti) Havainnot: sijainti ja sisältö e.g., [A,Dirty] Toiminnot: Left, Right, Suck, NoOp
Ongelma-avaruus Tilat, (alkutila), ehdot lopputilalle, toiminnot (seuraajafunktio), polun kustannus?
Tila: 0,1 likaisuudelle ja L, R robotin sijainnille Alkutila esim. (1,1;L). Toiminnot: L, R, S Loppuehto: (0,0;L) & (0,0;R) Kustannus: 1 / toiminto
Etsintä ongelma-avaruudessa Usein ongelma-avaruuden tilassa on useita mahdollisia siirtymiä. Miten löydetään siirtymät, jotka ovat mahdollisia kulloisessakin tilassa? Millä perusteella oikea siirtymä valitaan? Ongelmanratkaisu voidaan nähdä etsintänä(search) ongelma-avaruudessa. Ratkaistakseen ongelman, systeemin on etsittävä oikea polku alkutilasta haluttuun tilaan.
Reitti Aradista Bukarestiin
Hakupuu
Etsintä ongelma-avaruudessa Hakustrategian arviointi: täydellinen: jokin maalitila voidaan saavuttaa alkutilasta aikavaativuus: puuhun luotujen solmujen lkm tilavaativuus: yhtäaikaa muistissa pidettävien solmujen lkm optimaalinen: löytää aina parhaan ratkaisun Muita ominaisuuksia: b: haarautumisaste d: matalimmalla olevan maalisolmun syvyys m: tila-avaruuden pisin pituus (voi olla )
Hakustrategia On olemassa useita algoritmeja lyhimmän polun löytämiseen. Sokeat hakustrategiat (uninformed search, blind search) Tietoinen haku (informed search, heuristic search) Sokeita hakustrategioita syvyyshaku (depth-first) halvin ensin haku (uniform cost) leveyshaku (breadth-first search) rajoitettu syvyyshaku (depth-limited) asteittain syvenevä haku (iterative deepening) kaksisuuntainen haku (bidirectional)
leveyshaku puun alkusolmu (juuri) laajennetaan ensin kaikki laajennetut solmut käydään läpi ja laajennetaan ennenkuin edetään syvemmälle puussa. algoritmin suoritus vaatii kaikkien solmujen pitämisen muistissa
leveyshaku
Arviointi b: haarautumisaste d: matalimmalla olevan maalisolmun syvyys m: tila-avaruuden pisin pituus Täydellinen? Kyllä Aika?1+b+b 2 +b 3 + +b d + b(b d -1) = O(b d+1 ) Tila?O(b d+1 )(jokainensolmuon muistissa) Optimaalinen? Kyllä(polun kustannus=1) Tilankäyttö on ongelma.
syvyyshaku laajentaa aina puussa syvimmällä olevan solmun ensin käyttää vain vähän muistia (vain yhden polun kerrallaan
syvyyshaku
syvyyshaku
Arviointi Täydellinen?Ei, epäonnistuujostila-avaruuseiole äärellinen tai jos polussa on silmukka. Korjataan poissulkemalla toistuvat tilat toimii kun tila-avaruus on äärellinen Aika?O(b m ): pahajosmis on paljonsuurempid (m= maksimipituus, d=ratkaisun pituus) Tila? O(bm), eli lineaarinen tilavaatimus! Optimaalinen? Ei
hakustrategioita rajoitettu syvyyshaku asetetaan raja, johon syvyyshaku pysäytetään kullakin polulla ongelma on optimaalisen syvyyden valinta halvin ensin -haku valitaan seuraavaksi laajennettava solmu sen perusteella, mikä on polun kustannus kustannus kasvaa kun polulla edetään, ja jokin toinen polku voi tulla kannattavammaksi
asteittain syvenevä haku yhdistää leveys- ja syvyyshaut algoritmi tekee syvyyshakua, mutta etsinnän syvyys on rajoitettu kun koko puu on etsitty rajoitettuun syvyyteen asti, aloitetaan etsintä alusta lisäten etsinnän syvyyttä puu generoidaan uudestaan jokaista syvyyttä varten algoritmi on kuitenkin tehokas
Asteittain syvenevä haku
Asteittain syvenevä haku
Asteittain syvenevä haku
Asteittain syvenevä haku
asteittain syvenevä haku Täydellinen? Kyllä Aika?(d+1)b 0 + d b 1 + (d-1)b 2 + + b d = O(b d ) Tila? O(bd) Optimaalinen? Kyllä.
kaksisuuntainen haku kaksi hakua; toinen eteenpäin alkutilasta ja toinen taaksepäin halutusta lopputilasta haut kohtaavat toisensa lyhimmällä polulla vaatii sen, että mahdolliset lopputilat on eksplisiittisesti listattu siirtyminen ongelma-avaruudessa taaksepäin ei aina ole helppoa
Tietoinen haku Tietoisessa haussa käytettävissä on lisätietoa ongelmasta. paras ensin -haku (best first -search) laajennettava solmu valitaan heuristisen funktion avulla. h(n) = halvimman polun arvioitu hinta solmusta n haluttuun lopputilaan. Esimerkkitapauksessa heuristinen funktio h(n) voisi olla esimerkiksi matka linnuntietä kaupungista n Bukarestiin.
reitti Aradista Bukarestiin
Ahne paras-ensin haku
Täydellinen?Ei, voi jäädä silmukkaan, esim. Iasi Neamt Iasi Neamt Aika?O(b m ), mutta parempi heuristiikka parantaa tuloksia dramaattisesti Tila?O(b m ) --kaikki solmut muistissa Optimaalinen? Ei
paras ensin -haku valittu heuristinen funktio voi yhä antaa huonon alun haulle haku voi eksyä harhapolulle, eikä enää palaa takaisin A*-haku minimoi polun kokonaiskustannuksen: siinä otetaan huomioon g(n) = jo kuljetun polun hinta solmussa n h(n) = arvioitu hinta solmusta n lopputilaan f(n) =g(n)+h(n) arvioitu polun kokonaishinta n:n kautta lopputilaan
A*-haku
Etsintä ongelma-avaruudessa Ihmiset eivät yleensä käytä sokeaa hakua vaan käyttävät jotain heuristiikkaa. Esim. Taaksepäinketjutus (backward chaining): edetään lopputilasta kohti alkuehtoja. Välitavoite-analyysi (Means-Ends analysis): valitaan välitavoite johon pyritään lopputilan sijaan.
ongelmanratkaisija Ongelmanratkaisu voidaan siis nähdä matkana ongelma-avaruudessa seuraavien tilojen löytäminen, evaluointi ja oikean tilan valinta tavoitteiden ja välitavoitteiden asettaminen ja hallinta heuristiikkojen käyttö ongelman representaatio