Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Hankalat ongelmat deterministiset ongelmat

Samankaltaiset esitykset


Esitys aiheesta: "Hankalat ongelmat deterministiset ongelmat"— Esityksen transkriptio:

1 Hankalat ongelmat deterministiset ongelmat
suorituksen jokaisessa vaiheessa on tarkkaan tiedetty, millä tavalla suoritusta jatketaan sama syöte aiheutti aina samojen valintojen tekemisen monet tehtävät luonteeltaan epädeterministisiä hakuongelmissa toimenpiteiden joukko etukäteen tiedossa on epäselvä, mistä vastaus löytyy (mihin suuntaan haussa edetään)

2 Epädeterministiset ongelmat
esim. shakki: sallitut siirrot hyvin tiedossa, mutta niiden kokeilujärjestys tavoitteeseen pääsemiseksi (voiton saavuttamiseksi) on epäselvä esim. labyrintti: käytettävissä olevat toimenpiteet: eteneminen etelään, länteen, pohjoiseen tai itään ei tiedetä, missä järjestyksessä ilmansuuntia pitää kokeilla sokkelosta ulos pääsemiseksi (mahdollisimman suoraa reittiä)

3 Hakuongelmat epädeterministiset ongelmat voidaan muodollisesti kuvata hakuongelmina. hakuongelma kuvataan tilaesityksen avulla: tilojen joukko S alkutila s0S lopputilojen joukko FS siirrot t: SS, sisj Ongelman ratkaisu alkaa alkutilasta s0. Kussakin tilassa on joukko sallittuja siirtoja, jotka vievät uuteen tilaan sk-1sk.

4 Hakuongelmat hakuavaruus = graafi, jossa on kaikki mahdolliset tilat ja niitä yhdistävät siirrot hakupuu = siihen talletetaan ne siirrot, joita kokeillaan hakuavaruudessa lopputilaa haettaessa ratkaisupolku = hakupuun polku puun juuresta (alkutilasta) puun lehteen, jossa on lopputila. paras ratkaisupolku = lyhyin ratkaisupolku paras lopputila = se tila, joka vie parhaaseen mahdolliseen tilanteeseen haun tekijän (tai tehtävän, esim. pelin) kannalta.

5 Äärelliset hakuongelmat
hakuavaruus äärellinen graafi voidaan muodostaa kokonaisuudessaan haun aikana ratkaisu löytyy varmasti, ennemmin tai myöhemmin ongelmana löytää nopein/paras ratkaisu

6 Äärettömät hakuongelmat
hakuavaruus ääretön graafia ei koskaan pystytä muodostamaan kokonaan ratkaisua ei välttämättä löydetä koskaan, kun väärä hakustrategia on valittu tai ratkaisu lopulta löydetään, mutta hakuaika on kelvoton

7 Leveyshaku (breadth first search)
varovainen ja pessimistinen menetelmä haku etenee leveänä rintamana joka suuntaan yhtä pitkälle käyttää jonoa tilojen säilyttämiseksi (FIFO) täydellinen varma optimaalinen äärellisessä haussa löydetään paras ratkaisu käymällä koko hakugraafi tarvittaessa pitää olla kyky tunnistaa ratkaisun paremmuus muihin ratkaisuihin nähden

8 Syvyyshaku (depth first search)
rohkea ja optimistinen menetelmä haku lähtee parhaana pidettyyn suuntaan suuntaa muutetaan ainoastaan, jos joudutaan perääntymään käyttää pinoa tilojen säilyttämiseksi (LIFO) epätäydellinen epävarma epätäydellisyyden vuoksi äärettömässä haussa ratkaisu voi jäädä kokonaan löytymättä, vaikka sellainen olisi lähelläkin suboptimaalinen: äärellisessäkään haussa ei välttämättä löydetä parasta ratkaisua suoritus lopetetaan heti ensimmäisen ratkaisun löydyttyä

9 Heuristiikka missä järjestyksessä tutkimattomat tilat s1..sk viedään listaan järjestys, jossa siirrot kokeillaan heuristiikan merkitys leveyshaussa mitätön jokaisessa haun vaiheessa tutkitaan kaikki tilat, joihin tästä tilasta päästään syvyyshaussa ratkaiseva seuraavaksi tutkitaan vain tärkeimmäksi määriteltyä tilaa, johon tästä tilasta pääse, niin kauan kuin mahdollista vasta kun pääsuunta ei ole käytettävissä, kokeillaan muita etenemisen suuntia

10 Esim. vähiten välilaskuja reitillä LA - Miami

11 Pelien pelaaminen epädeterministinen hakuongelma:
mahdolliset siirrot tiedetään, mutta järjestys on epäselvä (ja riippuu vastustajan siirroista) hakuavaruus äärellinen mutta valtava: shakissa 10120 kahden osapuolen nollasummapelit pelaajat siirtävät vuorotellen toisen voitto on toisen häviö siirron valintaan vaikuttaa vastustajan tekemä siirto leveys- tai syvyyshakualgoritmit eivät ota huomioon vastustajaa suoritetaan heuristinen haku

12 Heuristinen arviofunktio
heuristiikkaa muokataan jokaisessa uudessa tilassa arviofunktion avulla lasketaan pelitilanteen hyvyyttä jokaiselle mahdolliselle siirrolle tästä nykyisestä tilasta valitaan se siirto, joka johtaa parhaaseen tilaan heuristinen haku pyrkii löytämään lyhyimmän ratkaisupolun hakuavaruudesta nykyiselle pelitilanteelle

13 Heuristinen pelialgoritmi
Olkoon f: SR arviofunktio. MODULE pelaa Olkoon alkutila s REPEAT Olkoot ssi(i=1..k) mahdolliset siirrot Valitse siirto siihen tilaan si, jolle f(si) on suurin Odota, kunnes vastustaja on siirtänyt Merkitse uutta tilaa s:llä UNTIL voitto OR tappio OR tasapeli ENDMODULE

14 Jätkänshakki Pelaajat sijoittavat vuorotellen 3x3-ruudukkoon oman merkkinsä (X tai O). Se voittaa, kumpi ensinnä saa kolme omaa merkkiä samaan linjaan pystysuoraan, vaakasuoraan tai vinoittain. Tarkastellaan peliä pelaajan X kannalta. Numeroidaan ruudukko 1 2 3 4 5 6 7 8 9 X:n arviofunktio: fx(s) = X:n kolmen suorien lukumäärä, kun tilassa s tyhjät ruudut täytetään X:llä – O:n kolmen suorien lukumäärä, kun tilassa s tyhjät ruudut täytetään O:lla.

15 Jätkänshakki x X siirtää ruutuun, jossa funktio saa maksiminsa.
Merkitään uutta tilaa sen ruudun numerolla, johon X siirtää. Tarkoituksena on siis löytää sellainen uusi tila s, että fx(s) on mahdollisimman suuri. Jos X aloittaa, hänen kannattaa siirtää keskimmäiseen ruutuun (5), koska fx(5) = 8-4 = 4; muut siirrot johtavat huonompaan tilanteeseen fx(1) = 8-5 = 3 fx(2) = 8-6 = 2 enempää ei tarvitse laskea, koska arvot ovat samat muille ruuduille symmetrian vuoksi Uusi tila on: x

16 Oletetaan, että pelaaja O käyttää samaa arviofunktiota.
Jätkänshakki Oletetaan, että pelaaja O käyttää samaa arviofunktiota. Koska fx arvioi hyvyyttä X:n kannalta, O pyrkii minimoimaan sen arvon. fx(1) = fx(3) = fx(7) = fx(9) = 5-4 = 1 fx(2) = fx(4) = fx(6) = fx(8) = 6-4 = 2 O:n kannattaa siirtää johonkin nurkkaan. Siirtäköön hän vasempaan ylänurkkaan: o x

17 Seuraavaksi myös X laskee parhaan siirron itsellensä:
Jätkänshakki Seuraavaksi myös X laskee parhaan siirron itsellensä: fx(3) = fx(7) = fx(9) = 5-2 = 3 fx(2) = fx(4) = fx(6) = fx(8) = 2. Valitkoon X oikean ylänurkkaan (se maksimi laskettiin ensimmäisenä): o x

18 täytyy keksiä parempi pelitekniikka! parempi algoritmi!
Jätkänshakki x3r 4 o3r 2 f2 2 o x x3r 4 o3r 2 f4 2 o x Nyt O:n tulisi ehdottomasti valita vasen alanurkka (s7), muutoin hän häviää. Käytetty arviofunktio ei kuitenkaan pysty tätä yksikäsitteisesti osoittamaan, sillä arviofunktio tuottaa kahdessa tapauksessa s2 ja s4 arvon 2, ja 4 tapauksessa (s6,s7,s8 ja s9) arvon 1 kun pyritään valitsemaan minimi, tapaukset s6,s7,s8 ja s9 ovat tämän menetelmän mukaan yhtäpätevät: x3r 3 o3r 2 f8 1 o x x3r 3 o3r 2 f9 1 o x x3r 3 o3r 2 f6 1 o x x3r 3 o3r 2 f7 1 o x täytyy keksiä parempi pelitekniikka! parempi algoritmi!

19 Heuristisen pelialgoritmin parantaminen
Pelin parantamiseksi on kaksi vaihtoehtoa: keksitään parempi arviofunktio tarkastellaan tilannetta pidemmälle kuin vain yhden siirron päähän 2. vaihtoehto vaatii vähemmän luovuutta, joten se sopii koneelle hyvin. Menetelmää kutsutaan minmax-tekniikaksi

20 Minmax-tekniikka oletetaan vastustajan pelaavan hyvin
lasketaan pelitilanteet ei yhden, vaan kahden siirron päähän minä olen siirtänyt + vastustaja on siirtänyt = paras tilanne sen jälkeen? valitsen siis siirron, joka on kannaltani paras vastustajan seuraavan siirron jälkeen

21 s11..s34 – vastustajan siirrot s23 s1
edellinen algoritmi: MODULE pelaa s s1 s2 s3 s4 uusi algoritmi: minmax-tekniikka MODULE pelaaparemmin s34 s33 s3 s32 s s31 s2 s24 s1..s3 – minun siirrot s11..s34 – vastustajan siirrot s23 s1 tilanne on paras vastustajan siirron s22 jälkeen, joten valitsen sen! s22 s21 s11 s14 s13 s12

22 Minmax-pelaaparemmin esim.
x:n on siirrettävä s7:ään jotta se ei häviäisi x:llä on vaihtoehtoina siirrot ruutuihin 2,4,6,7,8,9 x o kun x on siirtänyt vaikka ruutuun 2, o laskee itselleensä parhaan siirron käyttäen samaa arviofunktiota merkitään j:llä ne ruudut, johon o voi siirtää sen jälkeen: 4,6,7,8,9 o valitsee sellaisen siirron sj, jolle fx(s2j) on pienin = luku g(si) koska halutaan tutkia kaikki mahdolliset x:lle olemassaolevat vaihtoehdot, lasketaan myös tilanteet, kun x siirtyy ruutuihin 4,6,7,8,9 ja O tekee vastaavat siirrot sij

23 g(s2)=-4 g(s4)=-4 g(s6)=-3 g(s7)=-2 g(s8)=-3 g(s9)=-3 x3r 1 o3r 4
f24 -3 x o x3r 2 o3r 4 f26 -2 x o x3r 0 o3r 4 f27 -4 x o x3r 1 o3r 4 f28 -3 x o x3r 1 o3r 4 f29 -3 x o g(s2)=-4 x3r 2 o3r 4 f42 -2 x o x3r 2 o3r 4 f46 -2 x o x3r 0 o3r 4 f47 -4 x o x3r 1 o3r 4 f48 -3 x o x3r 1 o3r 4 f49 -3 x o g(s4)=-4 x3r 2 o3r 3 f62 -1 x o x3r 1 o3r 3 f64 -2 x o x3r 0 o3r 3 f67 -3 x o x3r 1 o3r 3 f68 -2 x o x3r 1 o3r 3 f69 -2 x o g(s6)=-3 x3r 1 o3r 3 f72 -2 x o x3r 1 o3r 3 f74 -2 x o x3r 2 o3r 3 f76 -1 x o x3r 1 o3r 3 f78 -2 x o x3r 1 o3r 3 f79 -2 x o g(s7)=-2 x3r 2 o3r 3 f82 -1 x o x3r 1 o3r 3 f84 -2 x o x3r 2 o3r 3 f86 -1 x o x3r 0 o3r 3 f87 -3 x o x3r 1 o3r 3 f89 -2 x o g(s8)=-3 x3r 2 o3r 3 f92 -1 x o x3r 1 o3r 3 f94 -2 x o x3r 2 o3r 3 f96 -1 x o x3r 0 o3r 3 f97 -3 x o x3r 1 o3r 3 f98 -2 x o g(s9)=-3

24 Minmax -tekniikka Minmax-tekniikka toimii mutta ei aina ratkaisuksi:
1. lasketaan useamman askelen päähän minmaxn .-tekniikka käytetään shakissa 2. parannetaan arviofunktio f’x(s)=100, jos X:llä on tilassa s todellinen 3-suora f’x(s)=-100, jos O:lla on tilassa s todellinen 3-suora f’x(s)=fx(s) muulloin


Lataa ppt "Hankalat ongelmat deterministiset ongelmat"

Samankaltaiset esitykset


Iklan oleh Google