Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät

Samankaltaiset tiedostot
Haku osittaisen informaation vallitessa

Tuntemattomassa ympäristössä etsiminen

Kognitiivinen mallintaminen 1

4 Heuristinen haku. Eero Hyvönen Helsingin yliopisto

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Kombinatorinen optimointi

Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät

Harjoitus 6 ( )

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Geneettiset algoritmit

Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Mat Lineaarinen ohjelmointi

Harjoitus 6 ( )

Malliratkaisut Demot

Luku 8. Aluekyselyt. 8.1 Summataulukko

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Pisteen x lähistö koostuu kaikista ratkaisuista, jotka on saatu x:stä tekemällä siihen yksi siirto:

4 INFORMOITU ETSINTÄ AHNE PARAS ENSIN -STRATEGIA

Luento 8: Epälineaarinen optimointi

Algoritmit 2. Luento 14 Ke Timo Männikkö

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

1 Rajoittamaton optimointi

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

Kognitiivinen mallintaminen I

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Algoritmit 2. Luento 11 Ti Timo Männikkö

Kimppu-suodatus-menetelmä

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Algoritmit 1. Luento 1 Ti Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Algoritmit 2. Luento 6 Ke Timo Männikkö

Luento 10: Optimointitehtävien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja

Algoritmit 1. Luento 8 Ke Timo Männikkö

b 1. b m ) + ( 2b Ax) + (b b)

JOHDATUS TEKOÄLYYN TEEMU ROOS

Osakesalkun optimointi

3.4 Peruutus (backtracking)

Matematiikan tukikurssi

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tietorakenteet, laskuharjoitus 7, ratkaisuja

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Algoritmit 1. Luento 9 Ti Timo Männikkö

Keskeiset tulokset heikko duaalisuus (duaaliaukko, 6.2.1) vahva duaalisuus (6.2.4) satulapisteominaisuus (6.2.5) yhteys KKT ehtoihin (6.2.

Luento 8: Epälineaarinen optimointi

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

13 Lyhimmät painotetut polut

Algoritmit 1. Luento 10 Ke Timo Männikkö

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 1. Luento 13 Ti Timo Männikkö

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Search space traversal using metaheuristics

Matematiikan tukikurssi

12. Hessen matriisi. Ääriarvoteoriaa

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Luento 12: Duaalitehtävä. Tarkennuksia Lagrangen kertoimen tulkintaan. Hajautettu optimointi.

Datatähti 2019 loppu

Malliratkaisut Demot

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

Mat Lineaarinen ohjelmointi

Matematiikan tukikurssi

Informaation arvo. Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät

Algoritmit 1. Luento 13 Ma Timo Männikkö

Harjoitus 3 ( )

JOHDATUS TEKOÄLYYN TEEMU ROOS

Malliratkaisut Demot

Yhden muuttujan funktion minimointi

Talousmatematiikan perusteet: Luento 15. Rajoitettu optimointi Lagrangen menetelmä Lagrangen kerroin ja varjohinta

.. X JOHDATUS TEKOÄLYYN TEEMU ROOS

Kokonaislukuoptiomointi Leikkaustasomenetelmät

4 Tehokkuus ja algoritmien suunnittelu

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

Piiri K 1 K 2 K 3 K 4 R R

Luento 9: Newtonin iteraation sovellus: optimointiongelma

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

811312A Tietorakenteet ja algoritmit, VI Algoritmien suunnitteluparadigmoja

Matemaattisen analyysin tukikurssi

Nollasummapelit ja bayesilaiset pelit

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Lineaarinen optimointi. Harjoitus 6-7, Olkoon A R m n, x, c R ja b R m. Osoita, että LP-tehtävän. c T x = min!

Algoritmit 2. Luento 14 To Timo Männikkö

Lineaarinen optimointitehtävä

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Malliratkaisut Demot

Matematiikan tukikurssi

Vastepintamenetelmä. Kuusinen/Heliövaara 1

Malliratkaisut Demo 1

Kuvioton metsäsuunnittelu Paikkatietomarkkinat, Helsinki Tero Heinonen

Transkriptio:

128 Näille pätee kolmioepäyhtälö (triangle inequality) muodossa h(n) c([n,a], n') + h(n'), missä n' S(n) (valittu toiminto on a) ja c([n,a], n') on askelkustannus Linnuntie on myös monotoninen heuristiikka Monotonisella heuristiikalla A* on optimaalinen myös verkkoetsinnässä Jos h(n) on monotoninen, niin arvot f(n) millä tahansa polulla ovat ei-väheneviä, joten ensinnä tutkittu maali on optimaalinen ratkaisu f(n') = g(n') + h(n') = c([n,a], n') + g(n) + h(n') g(n) + h(n) = f(n) 129 Ratkaisua etsiessään A* laajentaa kaikki solmut n, joilla f(n) < C*, ja osan niistä, joilla f(n) = C* Sen sijaan kaikki solmut solmut n, joilla f(n) > C*, karsitaan On selvää, että A* on täydellinen hakualgoritmi Se on myös optimaalisen tehokas menetelmä, sillä minkä tahansa hakualgoritmin on tutkittava kaikki solmut, joilla pätee f(n) < C* Täydellisyydestä, optimaalisesta tehokkuudesta ja optimaalisen ratkaisun palauttamisesta huolimatta A*:llä on myös heikkoutensa Solmujen lukumäärä, joille pätee f(n) < C*, voi olla eksponentiaalinen ratkaisun pituuden suhteen 1

130 Jälleen kerran hakualgoritmin tilavaativuus on kuitenkin pahempi ongelma Sen tähden monia vain rajoitetun muistin käyttäviä versioita A*- algoritmista on jouduttu kehittämään IDA* (Iterative Deepening A*) soveltaa iteratiivisen syventämisen ideaa Solmujen syvyyden sijaan katkaisuehtona on tällä kertaa f- kustannus Kullakin kierroksella uudeksi katkaisuehdoksi valitaan edelliseltä kierrokselta karsittujen solmujen pienin f-arvo Uudemmat algoritmit tekevät monimutkaisempaa karsintaa 131 Heuristisista funktioista 8-puzzlessa voimme määritellä seuraavat heuristiset funktiot, jotka eivät koskaan yliarvioi h 1 : väärässä positiossa olevien laattojen lukumäärä: kutakin on siirrettävä ainakin kerran ennen kuin laatat ovat halutussa järjestyksessä h 2 : väärässä positiossa olevien laattojen Manhattan etäisyys oikeasta paikastaan: laatat on kuljetettava oikeille paikoilleen ennen kuin ne ovat halutussa järjestyksessä Alkutilanteessa kaikki laatat ovat väärässä positiossa: h 1 (s 1 ) = 8 Toisen heuristiikan arvo esimerkkikuvalle on: 3 + 1 + 2 + 2 + 2 + 3 + 3 + 2 = 18 2

132 Heuristiikka h 2 antaa aina tiukemman arvion kuin h 1 Sen sanotaan dominoivan jälkimmäistä Koska A* laajentaa kaikki solmut joilla f(n) < C* h(n) < C*-g(n), niin tiukempi heuristinen arvio johtaa suoraan tehokkaampaa etsintään 8-puzzlen haarautumisaste on noin 3 Efektiivisellä haarautumiskertoimella mitataan ongelman ratkaisussa generoitavien solmujen keskimääräistä määrää Esim. kun A* käyttää heuristiikkaa h 1, niin 8-puzzlen efektiivinen aste on keskimäärin n. 1.4, ja heuristiikalla h 2 n. 1.25 133 Heurististen funktioiden kehittämiseksi voidaan tarkastella relaksoituja ongelmia, joista on poistettu joitain alkuperäisen ongelman rajoitteita Relaksoidun ongelman optimiratkaisun kustannus on aina aliarvio alkuperäisen ongelman ratkaisun kustannuksesta Alkuperäisen ongelman optimiratkaisu on myös helpotetun ongelman ratkaisu Esim. 8-puzzlen heuristiikka h 1 on antaa optimaalisen kustannuksen helpotettuun peliin, jossa laatat voivat pompata mihin paikkaan tahansa Samoin h 2 antaa optimaalisen ratkaisun relaksoituun 8-puzzle peliin, jossa laatat voivat liikkua myös miehitettyihin ruutuihin 3

134 Jos tarjolla on joukko heuristisia funktioita, joista yksikään ei dominoi toisia, niin voimme käyttää koostettua heuristiikkaa h(n) = max{ h 1 (n),, h m (n) } Koostefunktio dominoi kaikkia komponenttifunktioitaan ja on monotoninen, jos komponentit eivät yliarvioi Yksi relaksoimisen muoto on aliongelmien tarkastelu Esim. 8-puzzlessa voisimme tarkastella vain neljää laattaa kerrallaan ja antaa loppujen ajautua mihin tahansa positioon Koostamalla eri laattoja koskevat heuristiikat yhteen funktioon saadaan koko ongelman heuristinen funktio, joka on paljon Manhattan etäisyyttä tehokkaampi 135 Kaikissa ongelmissa maaliin johtavalla polulla ei ole merkitystä Vain ongelman ratkaisu on tarpeen tietää Lokaalit hakualgoritmit pitävät yllä vain tietoa nykyisestä tilasta ja etsintä keskittyy yleensä vain sen naapureihin Etsinnän kulkemia polkuja ei yleensä talleteta Muistitilan tarve on vähäinen, vain vakiotila Toimivat suurissa, jopa äärettömissä (jatkuvissa), maailmoissa löytäen hyviä ratkaisuja kun systemaattiset hakumenetelmät eivät ole laisinkaan sovellettavissa 4

136 Lokaali haku on myös optimointiongelmien ratkaisumenetelmä Optimoinnissa tavoitteena on kohdefunktion (objective f.) suhteen parhaan tilan löytäminen Optimointiongelmat eivät aina ole hakuongelmia samassa mielessä kuin edellä olemme tarkastelleet Esimerkiksi Darwinilainen evoluutio pyrkii optimoimaan lisääntymiskykyisyyttä Mitään lopullista maalitilaa ei ole olemassa Myöskään polun kustannuksella ei ole merkitystä tässä tehtävässä 137 Kohdefunktion arvon optimointia voidaan kuvata tilamaisemana, jossa funktion arvoa vastaa huippujen korkeus ja laaksojen mataluus Maksimointiongelmaan optimaalisen ratkaisun tuottava hakualgoritmi löytää globaalin maksimin Lokaalit maksimit ovat korkeampia huippuja kuin yksikään niiden naapureista, mutta globaalia maksimia matalampia 5

138 Mäenkapuaminen Hill-climbing Mäenkapuamisessa toistuvasti valitaan nykytilan s seuraajista se, jolla on korkein kohdefunktion f arvo max s' S(s) f(s') Haku pysähtyy kun tilan naapurit ovat matalammalla Yleensä haku siis päätyy lokaaliin maksimiin, sattumalta joskus globaaliin maksimiin Myös tasangot aiheuttavat ongelmia tälle ahneelle lokaalille hakumenetelmälle, toisaalta alkutilanteen paraneminen on usein nopeaa 139 Sivuttaissiirtymät voidaan sallia kun etsintä saa edetä myös nykytilan kanssa yhtä hyviin tiloihin Stokastinen mäenkapuaminen valitsee tilannetta parantavista naapureista satunnaisesti yhden Naapureita voidaan tutkia satunnaisessa järjestyksessä ja valita ensimmäinen, joka on nykytilaa parempi Myös nämä versiot mäenkapuamisesta ovat epätäydellisiä, sillä ne voivat edelleen juuttua lokaaliin maksimiin Satunnaisilla uudelleenkäynnistyksillä voidaan varmistaa menetelmän täydellisyys Mäenkapuaminen käynnistetään satunnaisesta alkutilasta, kunnes ratkaisu löytyy 6

140 Simuloitu jäähdytys Simulated annealing Satunnaiskulku (random walk) siirtyminen satunnaisesti valittuun naapuriin on se parempi kuin nykytila tai ei on täydellinen etsintämenetelmä, mutta ohjaamattomana tehoton Sallitaan "huonoja" siirtymiä jollain todennäköisyydellä p Tilannetta huonontavien siirtymien todennäköisyys pienenee eksponentiaalisesti ajan myötä ("lämpötila") Siirtymäkandidaatti valitaan satunnaisesti ja se hyväksytään, jos 1. kohdefunktion arvo paranee ja 2. muuten tn.:llä p Jos lämpötilan pieneneminen on riittävän hidasta, niin menetelmä konvergoi globaaliin optimiin tn.:llä 1 141 Lokaali keilahaku Local beam search Lähdetään liikkeelle k kappaleesta satunnaisesti valittuja tiloja Jokaisessa askelessa kaikkien muistissa olevien tilojen seuraajat generoidaan Jos jokin seuraajista on maalitila, algoritmi päättyy Muutoin k parasta seuraajaa pidetään muistissa ja etsintä jatkuu Keilahaun rinnakkainen etsintä johtaa nopeasti huonojen polkujen hylkäämiseen Stokastisessa keilahaussa jatkoon pääsevät seuraajasolmut valitaan niiden hyvyyden mukaisella todennäköisyydellä 7

142 Geneettiset algoritmit Geneettiset algoritmit (GA) soveltavat perinnöllisyydestä tuttuja operaatioita hakuun GAn toiminta lähtee liikkeelle k satunnaisesti valitun tilan populaatiosta kuten keilahaku Nyt merkkijonoin esitettyjä tiloja kutsutaan yksilöiksi Seuraavan sukupolven populaation muodostamiseksi kaikki yksilöt evaluoidaan kelpoisuusfunktiolla (fitness function) Yksilöiden tn. päästä lisääntymään riippuu niiden kelpoisuudesta (valinta) Valittujen yksilöiden satunnaisia pareja risteytetään (crossover) keskenään s.e. molemmista merkkijonoista valitaan sopiva katkaisukohta ja niiden loppuosat vaihdetaan keskenään 143 247 327 48552 52411 Muodostettujen jälkeläisten kaikki merkkipositiot ovat lopulta mutaation mahdollisena kohteena Mutaatiossa merkkejä vaihdetaan satunnaisesti toisiksi (hyvin) pienellä todennäköisyydellä GA:n operaatioiden toimivuus edellyttää huolellista yksilöiden koodauksen valintaa ja usein operaatioiden rajoittamista s.e. jälkeläiset ovat mielekkäitä Hyvin suosittu heuristinen optimointimenetelmä nykyisin, tehoton 8

144 Jatkuvat avaruudet Olkoon kohdeftio f(x 1, y 1, x 2, y 2, x 3, y 3 ) kuuden jatkuva-arvoisen muuttujan funktio Funktion gradientti f on vektori, joka kertoo jyrkimmän nousun suunnan ja suuruuden f f f f =,, x1 y1 x 2 f, y f, x f, y Usein gradienttia ei voi soveltaa globaalisti, mutta lokaalisti kyllä Jyrkimmän nousun mäenkapuamista voidaan tehdä päivittämällä nykytilaa ū ū + α f(ū), missä α on "pieni vakio" 2 3 3 145 Jos kohdeftio ei ole derivoituva, niin gradientin suuntaa voidaan hakea empiirisesti tekemällä pieniä muutoksia kuhunkin koordinaattiarvoon Vakion α arvon määrääminen on keskeistä: liian pieni arvo johtaa liian moneen askeleen ja liian suuri arvo puolestaan voi johtaa maksimin hukkaamiseen Usein käytetty menetelmä on vakion α tuplaaminen aina siihen asti kunnes f:n arvo pienenee Muotoa g(x) = 0 olevien yhtälöiden ratkaisemiseen voidaan käyttää Newton-Raphson -menetelmää Ratkaisulle x lasketaan arvio Newtonin kaavalla x x - g(x)/g'(x) 9

146 Funktion f maksimoimiseksi tai minimoimiseksi tulee löytää ū s.e. f(ū) = 0 Soveltamalla Newtonin kaavaa ū ū - H f -1 (ū) f(ū), missä H f (ū) on toisten derivaattojen Hess-matriisi, H ij = ²f/ x i x j Hess-matriisi on neliöllinen ja suuriulotteisissa avaruuksissa sen käyttäminen on kallista Myös jatkuva-arvoista optimointia koskevat mm. lokaalien optimien ja tasankojen ongelmat Optimointi rajoitteiden vallitessa edellyttää ratkaisulta joidenkin ehtojen täyttymistä Esimerkiksi lineaarisessa ohjelmoinnissa rajoitusehdot ovat lineaarisia epäyhtälöitä, jotka muodostavat konveksin alueen ja kohdefunktio on myös lineaarinen 147 Tuntemattomassa ympäristössä etsiminen Online haussa agentin on reagoitava havaintoihinsa välittömästi tekemättä pitkälle tulevaisuuteen ulottuvia suunnitelmia Tuntemattomassa ympäristössä tutkiskelu on välttämätöntä: agentin on kokeiltava toimintojensa vaikutuksia saadakseen tietoja maailman tiloista Nyt agentti ei voi laskea nykytilan seuraajia, vaan sen on kokeiltava mikä tila seuraa toiminnon suorittamisesta Online-algoritmia verrataan usein parhaan offline-algoritmin toimintaan Näiden antamien ratkaisujen suhdetta kutsutaan online-algoritmin kilpasuhteeksi (competitive ratio) 10

148 Online-hakualgoritmin kilpasuhteen määräämiseksi verrataan agentin kulkeman polun kustannusta sen polun kustannukseen, joka olisi kuljettu, jos ympäristö olisi ollut ennalta tuttu Mitä pienempi kilpasuhde on, sen parempi Online-algoritmeja voidaan analysoida ajattelemalla niiden toiminta pelinä pahantahtoisen vastustajan kanssa Vastustaja saa valita maailman lennosta pakottaakseen onlinealgoritmin huonoon käyttäytymiseen 149 Kaikki käsittelemämme hakualgoritmit eivät sovellu onlinehakuun Esimerkiksi A* perustuu oleellisesti siihen, että hakupuussa voidaan laajentaa mikä tahansa generoitu solmu Online-maailmassa laajennuksen tulee kohdistua siihen solmuun, jossa agentti on Syvyyssuuntaisen haun lokaalisuus (paitsi peruutusvaiheessa) tekee algoritmista käyttökelpoisen (jos toiminnot voidaan konkreettisesti peruuttaa) Syvyyssuuntainen haku ei ole kilpailukykyinen (kilpasuhteelle ei voida asettaa rajaa) 11

150 Mäenkapuaminen on itse asiassa online-algoritmi, mutta juuttuu lokaaleihin maksimeihin Satunnaisia uudelleenkäynnistyksiä ei voi käyttää Satunnaiskulut ovat liian tehottomia Lisämuistin avulla mäenkapuaminen voi olla käyttökelpoinen menetelmä Kullekin vieraillulle tilalle ylläpidetään tämänhetkistä parasta arviota matkasta maaliin Lokaalissa minimissä pysymisen sijaan agentti pyrkii arvionsa mukaan lyhintä reittiä maaliin Samalla lokaalin minimin arvot päivittyvät pois 151 KAHDEN PELAAJAN PELIT Nyt ei enää tarkastella pelkkää polunetsintää alkutilasta maalitilaan Myös vastustaja saa tehdä tilasiirtymiä ja pyrkii suistamaan meidät hyvältä polulta Tavoitteena on etsiä siirtostrategia, joka johtaa maalitilaan riippumatta vastustajan vastasiirroista Kahden pelaajan deterministiset, vuoroittaiset, täydellisen informaation, nollasumma (zero sum) (lauta)pelit Pelin lopussa toinen pelaajista on hävinnyt ja toinen voittanut 12

152 Olkoon pelaajien nimet min ja max Lähtötilanteessa peliasetelma on pelin sääntöjen mukainen ja ensimmäinen siirtovuoro on pelaajalla max Seuraajafunktio määrää pelin sallitut siirrot Pelin loppuminen tunnistetaan Hyötyfunktio (utility f.) antaa lopputiloille numeerisen arvon, numeerinen arvo voi olla esim. shakissa vain -1, 0, +1 tai laudalla olevien nappuloiden laskennallinen arvo maxpyrkii maksimoimaan ja min minimoimaan hyötyfunktion arvon Alkutila ja seuraajafunktio määräävät pelipuun, jossa pelaajat vuorotellen valitsevat kuljettavan kaaren 153 Parhaan mahdollisen pelistrategian etsimisessä oletamme vastustajankin olevan erehtymätön Pelaaja min valitsee kannaltaan parhaat siirrot Optimaalisen strategian määräämiseksi kullekin solmulle n lasketaan minimax-arvo: hyöty( n), MM ( n) = maxs S ( n) MM ( s), min s S ( n) MM ( s), n on loppusolmu n on max -solmu n on min -solmu 13

154 3 max 3 2 2 min 3 12 8 2 4 6 14 5 2 max 155 Kahden optimaalisen pelaajan välinen pelinkulku määräytyy täysin minimax-arvojen mukaan Pelaajan max kannalta minimax-arvot määräävät pahimman tapauksen tuloksen vastustaja min on optimaalinen Jos vastustaja ei teekään parhaita mahdollisia siirtoja, niin max pärjää vähintään yhtä hyvin Ei-optimaalista vastustajaa vastaan jokin muu strategia kuin minimax voi johtaa parempaan lopputulokseen Minimax-algoritmi käy läpi koko pelipuun, joten sen aikavaativuus on O(b d ), missä b siirtojen lkm kussakin vaiheessa ja d on puun maksimisyvyys Eksponentiaalinen aika on liikaa oikeissa pelipuissa 14

156 Alpha-beta-karsinta Minimax-strategian eksponentiaalista vaativuutta voidaan helpottaa karsimalla pelipuun evaluoitavia solmuja Oikea minimax-päätös voidaan laskea tutkimatta kaikkia puun solmuja Esim. edellä olleen puun minimax-arvon määräämiseksi kaksi lehteä voidaan jättää tutkimatta, koska MM(juuri) = max( min(3, 12, 8), min(2, x, y), min(14, 5, 2) ) = max( 3, min(2, x, y), 2 ) = max( 3, z, 2 ), missä z 2 = 3 157 Juuren minimax-arvo ei riipu lehtien x ja y arvosta Yleisemmin karsinnan periaate on: pohdittaessa solmuun n siirtymistä, jos pelaajalla on parempi valinta m tehtävänään joko n:n isäsolmussa tai missä tahansa pelipuun ylemmällä tasolla, niin solmua n ei koskaan valita pelissä Alpha-beta-karsinnan nimi tulee ylläpidetyistä muuttujista α = parhaan (korkeimman) tavatun valintamahdollisuuden arvo pelaajan max polulla β = parhaan (pienimmän) tavatun valintamahdollisuuden arvo pelaajan min polulla 15

158 Muuttujien α ja β arvoja päivitetään puuta läpikäytäessä Heti kun solmun minimax-arvon tiedetään jäävän heikommaksi kuin α (max) tai β (min) jäljellä olevat haarat voidaan karsia Alpha-beta-karsinnan tehokkuus riippuu oleellisesti seuraajasolmujen tutkimisjärjestyksestä Esimerkkipuumme viimeisestä haarasta ei voitu karsia yhtään seuraajaa, koska minimoinnin kannalta huonoimmat seuraajat generoitiin ensin Jos viimeinen lehti olisi generoitu ennen sisariaan, ne olisi molemmat voitu karsia 159 Jos parhaat seuraajat pystyttäisiin tutkimaan ensin, putoaisi minimax-haun O(b d ) aikavaativuus luokkaan O(b d/2 ) Efektiivisesti siis haarautumisaste b putoaisi b:hen Esimerkiksi shakissa tämä tarkoittaa käytännössä astetta 6 alkuperäisen 35:n sijaan Peleissä ei voida evaluoida kokonaisia hakupuita, vaan niissä pyritään evaluoimaan osittaisia hakupuita mahdollisimman monta siirtoa eteenpäin Alpha-beta-haku siis pystyisi tutkimaan hakupuuta suunnilleen kaksi kertaa niin pitkälle kuin minimax-haku samassa ajassa 16