Hakumenetelmät ja ongelmanratkaisu

Samankaltaiset tiedostot
Hakumenetelmät ja ongelmanratkaisu

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

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

Kognitiivinen mallintaminen 1

Johdatus verkkoteoriaan 4. luento

Algoritmit 2. Luento 11 Ti Timo Männikkö

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 1. Luento 7 Ti Timo Männikkö

Kognitiivinen mallintaminen I

13 Lyhimmät painotetut polut

Harjoitus 6 ( )

Harjoitus 6 ( )

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Algoritmit 1. Luento 8 Ke Timo Männikkö

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

j n j a b a c a d b c c d m j b a c a d a c b d c c j

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Turingin koneen laajennuksia

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

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

Äärellisten mallien teoria

v 8 v 9 v 5 C v 3 v 4

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

Algoritmit 2. Luento 12 Ke Timo Männikkö

Aki Taanila LINEAARINEN OPTIMOINTI

Datatähti 2019 loppu

Algoritmit 2. Luento 10 To Timo Männikkö

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

Luku 8. Aluekyselyt. 8.1 Summataulukko

Malliratkaisut Demot

4 Heuristinen haku. Eero Hyvönen Helsingin yliopisto

JOHDATUS TEKOÄLYYN TEEMU ROOS

Geneettiset algoritmit

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kombinatorinen optimointi

Syötteen ensimmäisellä rivillä on kokonaisluku n, testien määrä (1 n 10). Tämän jälkeen jokaisella seuraavalla rivillä on kokonaisluku x (0 x 1000).

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

isomeerejä yhteensä yhdeksän kappaletta.

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

f(x, y) = x 2 y 2 f(0, t) = t 2 < 0 < t 2 = f(t, 0) kaikilla t 0.

Matematiikan tukikurssi

Algoritmit 1. Luento 13 Ti Timo Männikkö

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

Algoritmit 2. Luento 2 To Timo Männikkö

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

Nollasummapelit ja bayesilaiset pelit

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 2. Luento 6 Ke Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2

JOHDATUS TEKOÄLYYN TEEMU ROOS

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Algoritmit 2. Luento 13 Ti Timo Männikkö

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

S BAB ABA A aas bba B bbs c

Algoritmit 1. Luento 14 Ke Timo Männikkö

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tutkimustiedonhallinnan peruskurssi

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Sisällysluettelo. 1. Johdanto

Kimppu-suodatus-menetelmä

MS-C2105 Optimoinnin perusteet Malliratkaisut 5

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016


Algoritmit 2. Luento 2 Ke Timo Männikkö

811120P Diskreetit rakenteet

Firmaliiga Högbacka

5. Rajoitelaskenta (Constraint Satisfaction)

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

0, niin vektorit eivät ole kohtisuorassa toisiaan vastaan.

Algoritmit 2. Luento 11 Ti Timo Männikkö

Mat Lineaarinen ohjelmointi

Ongelma 1: Mistä joihinkin tehtäviin liittyvä epädeterminismi syntyy?

Search space traversal using metaheuristics

Algoritmit 2. Luento 5 Ti Timo Männikkö

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

.. X JOHDATUS TEKOÄLYYN TEEMU ROOS

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Lisää pysähtymisaiheisia ongelmia

Matematiikan tukikurssi

Algoritmit 1. Luento 1 Ti Timo Männikkö

Kaikkiin tehtäviin laskuja, kuvia tai muita perusteluja näkyviin.

1 Ratkaisuja 2. laskuharjoituksiin

Tietorakenteet ja algoritmit - syksy

Kieli merkitys ja logiikka. 2: Helpot ja monimutkaiset. Luento 2. Monimutkaiset ongelmat. Monimutkaiset ongelmat

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Ohjeet ovat työn alla ja kirjaan niitä päivittäen ja edes takaisin lukien pari viikkoa.

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

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

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

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Transkriptio:

20..2018 Hakumenetelmät ja ongelmanratkaisu Älykkään järjestelmän odotetaan ratkaisevan ongelmia, jotka olisivat muutoin ihmiselle kuuluvia päätöksenteko, kun pohjatiedot esim. antureilta ovat olemassa toimenpiteiden seuraukset on kyettävä määrittämään ennen aktuaattoreiden käyttöä, esim. ennen kuin robotti liikkuu Hakumenetelmät ovat usein ratkaisu molempiin tavoitteisiin sovelluksen idea asteellakin on hyvä nähdä, onko ongelma muokattavissa hakumenetelmällä ratkaistavaksi tunnistettava sekä mahdollisuudet että rajoitteet Hakumenetelmillä ratkeavat ongelmat (1) Yleinen olettama: ihmiset ratkaisevat haastavia ongelmia intuitiolla Todellisuus: ns. intuition takana piilee jotenkin hankittu tieto käsitys mahdollisista ratkaisuista, jonka ansiosta koko ratkaisuavaruutta ei tarvitse tutkia Intuitio ei auta kaikessa: esim. julkisen avaimen salakirjoitus salatun avaimen selvittäminen ei suuren tila avaruuden vuoksi onnistu ihmiseltä, vaikka salatun tekstin sisältö tunnetaan Hyvin merkittävä osa tekoälyksi katsotuista ratkaisuista perustuu hakumenetelmiin tavoitetilaa ei välttämättä tunneta, usein ainoastaan sen kriteerit usein kiinnostaa polku alkutilasta tavoitetilaan, jotta haun kautta saatu suunnitelma voidaan toteuttaa Monesti ongelmanratkaisuprosessi voidaan mallintaan polun hakemiseksi tunnetusta alkutilasta tavoitetilaan mm. paimen, lammas, susi ja kaali esimerkki on tällainen ongelma 1

20..2018 Hakumenetelmillä ratkeavat ongelmat (2) Hakumenetelmät soveltuvat tilanteisiin, joissa 1. älykäs agentti tuntee tilansa ja 2. sillä on käytössään operaatiot, joiden vaikutukset ovat deterministiset ja. operaation käyttäminen siirtää älykkään agentin uuteen tilaan ja. tavoitetilan saavuttaminen kyetään jotenkin tunnistamaan; on huomattava, että lukuunottamatta alkutilaa, muitakaan tiloja ei tarvitse etukäteen tuntea Jopa tämä kurssi tulkittavissa tila avaruudessa toimimiseksi: kukin luentokerta on on operaatio, joka siirtää opiskelijan (ja myös luennoijan) uuteen ymmärryksen tilaan Hakuongelmien ratkaisemista havainnollistetaan tavallisesti graafisesti suunnattu graafi: tiloja kuvaavat solmut ja suunnatut linkit operaatioita (huom: ei välttämättä ainut tapa kuvata ongelma graafina) Esimerkkejä hakuongelmista Pakettien kokoaminen kuormalavalle samanlaisia tai erikokoisia paketteja maksimimäärä lavalle Robottien yhteistoiminta esim. törmäysten välttäminen Paketinkuljetusrobotin tai jakeluauton reitinsuunnittelu lyhin, nopein, vähimpien käännösten, vain oikealle kääntymisten reitti... Ostosten poiminta kaupassa, parkkipaikan hakeminen haluamasi tavara saattaakin loppua joistakin liikkeistä, tai joku vie paikan kun olet sinne matkalla Sääntöpohjaisen asiantuntijajärjestelmän päättely looginen inferenssi eli askeleet ennakkoehdoista johtopäätöksiin Sudoku tutkitaan valitun vaihtoehdon seuraukset Investointianalyysit tutkitaan eri skenaaroiden seuraukset Mitä muuta tulee nopeasti mieleen? opintopolun optimointi? Palapelit? 2

20..2018 Hakumenetelmien rajoista Pokeri: hakupuu on niin suuri, että puhtaat hakualgoritmit tukehtuvat kombinatoriikkaan solmuja helposti yli 10 100 Monte Carlo tyyppisillä hakutekniikoilla saavutetaan nopeutta, mutta parhaat tulokset on (toistaiseksi) saatu syväoppivilla neuroverkoilla, jotka ovat nähneet miljoonia pelejä (tyypillisesti käytetty >100 vuotta prosessoriaikaa oppimiseen) Go pelin selättämiseen käytetty samantyyppisiä menetelmiä Biomolekyylien D/tertiäärirakenteen rekonstruointi kun sen aminohapot tunnetaan syväoppivilla neuroverkoilla saatu lupaavia tuloksia Entä kryptografisten koodien murtaminen? hakupuu voi olla ylivoimaisen iso; mitä taas syväoppimisen käyttöön tulee, niin salaustekniikat on suunniteltu tuottamaan sekvenssejä, joita ei tilastollisin keinoin erota satunnaisesta datasta syväoppiminen puolestaan tähtää rakenteiden löytämiseen datasta; ilman sellaisia suorat murtoyritykset eivät onnistune Hakustrategiat (1) Hakustrategia määrittää, millaisia valintoja haussa tehdään ongelman luonne ratkaisee, mikä strategia on tehokkain Jos ongelmassa ei ole mahdollista tietoa tavoitteen sijainnista nykytilan suhteen, haku päättyy kun tavoite ehto täyttyy Tarjolla kaksi perustekniikkaa: leveyshaku ja syvyyshaku Leveyshaku: kussakin tavoitteesta poikkeavassa tilassa generoidaan jokainen siinä sallittujen operaatioiden mahdollistama uusi tila osaratkaisuksi josta tarkistetaan tavoite ehtojen täyttyminen; jos se täyttyy, tavoite on saavutettu osaratkaisu olla kielletty, jolloin siitä ei enää jatketa jos osaratkaisu on jo aiemmin saatu, siitä ei enää jatketa [kombinatorisen räjähdyksen hallitsemiseksi] Esimerkki: paimen (P), lammas (L), susi (S), kaali ()

20..2018 Leveyshaku (1) ullakin askeleella 1. generoidaan kaikki mahdolliset paimenen venekuljetusten tulokset 2. sitten vasta tarkistetaan ja eliminoidaan kielletyt tilat sekä. tilat, jotka on jo kerran generoitu, koska niistä jatkaminen johtaa toistoihin. Jos tila on tavoitetilaksi tiedetty PLS PLS niin haku päättyy Alku LS P S PL L PS LS P Askel 1 PLS PS L Askel 2 S PL PLS S PL Askel P LS PL S PS L PS L PS L Jatkuu seuraavalla sivulla PLS Askel Leveyshaku (2) P LS PL S PS L PS L PS L PLS Askel L PS PLS L PS LS P L PS S PL Askel PL S PLS PL S L PS PLS täyttää tavoitetilaehdon haku päättyi Nyt voidaan koostaa tähän tulokseen liittyneet operaatiot ja paimen pääsee matkaan

20..2018 Hakustrategiat (2) Toteamme leveyshaussa generoidun ja tutkitun kaikkiaan 2 tilaa (pl alkutila) 10 kahdesti tai useammin generoituja sallittuja tiloja kiellettyjä tiloja, joista osa niistäkin osa kahdesti tai useammin tuotettuja leveyshaku soveltuu tilanteisiin, joissa muistitila ei ole rajoite tarvitaan pienimmän askelmäärän ratkaisu tai hakupuu laajenee nopeasti, mutta jotkin ratkaisut löytyvät pienellä askelmäärällä Toinen yleinen strategia on syvyyshaku jos tila poikkeaa tavoitteesta, niin generoidaan siinä sallittuja operaatioita käyttäen uudet tilat osaratkaisuksi valitaan uusista tiloista yksi jos tila on kielletty, siitä ei laajenneta uusia tiloja, vaan palataan edelliselle sellaiselle tasolle, jossa on auki oleva tila myös jos osaratkaisu on jo aiemmin saatu, siitä palataan edelliselle sellaiselle tasolle, jossa on auki oleva tila [kombinatorisen räjähdyksen hillitsemiseksi] Syvyyshaku (1) ullakin askeleella 1. generoidaan viimeiseksi aukaistusta solmusta kaikki mahdolliset paimenen venekuljetusten tulostilat 2. valitaan tiloista yksi seuraavaksi tilaksi. Jos tila on tavoitetilaksi tiedetty PLS niin haku päättyy. tarkistetaan onko tila kielletty, sellaisesta palataan taaksepäin lähimpään auki olevaan tutkimattomaan tilaan. tarkistetaan, onko tila tutkittu jo aiemmin, jos on, palataan taaksepäin lähimpään auki olevaan tutkimattomaan tilaan sillä jatkaminen johtaisi toistoon (sykliin) Alku LS P PLS L PS S PL LS P PS L PLS Jatkuu seuraavalla sivulla S PL Taso 1 PLS S PL Taso 2 Taso

20..2018 Syvyyshaku (2) S PL P LS PLS PS L S PL PL S Taso L PS PL S L PS PL S PLS PLS Jatkuu seuraavalla sivulla Taso Taso Taso Syvyyshaku () PL S L PS PL PLS S PLS täyttää tavoitetilaehdon haku päättyi Taso Taso Tässä esimerkissä generoitiin 20 solmua, joista jouduttiin tutkimaan 1, joista kolme osoittautui aiemin nähdyksi ja viisi kielletyksi Vastaavalla tavalla ratkeava ongelma on mm. Hanoin tornit leluongelmako? Ei suinkaan... kappaleenkäsittelyssä on runsaasti vastaavia tosimaailman sovelluksia, joissa edellytyksenä on ongelman sopiva mallintaminen

20..2018 Esimerkki reaalisovelluksesta (1) Leipomo toimii vanhoissa ahtaissa tiloissa ja joutuu välivarastoimaan tuotteensa rullakoissa kahdessa kapeassa välikössä. Tuotteet valmistetaan tilausjärjestyksessä, joka on usein myös toimitusjärjestys, mutta ei aina. uvassa on tyypillinen tilanne: tuotteet ovat valmistuneet järjestyksessä A,B,C,D ja ne ovat vastaavassa järjestyksessä välivaraston siiloissa leipomo hankkii robotin R, joka R pystyy tarttumaan yhteen rullakkoon kerrallaan ja siirtämään sen joko luovutusalueelle tai siltä välikköön tehtäväsi on valita esitystapa, jonka pohjalta ratkaisun voisi kehittää miten etenet? A B C D F E luovutusalue lastaussilta Esimerkki reaalisovelluksesta (2) Ratkaisun ydin on ajatella robotti älykkääksi agentiksi, joka 1. tuntee alkutilansa eli välivaraston rullakoiden paikat 2. ja sillä on käytössään operaatiot, joilla paikkoja muutetaan vaikkapa rullakko kerrallaan. Seurauksena. agentin tila päivitetään ja. tavoitetilan saavuttaminen tunnistetaan Tilan esitystapa esim. lista, jossa on kolme alilistaa, joista kaksi ensimmäistä kuvaa siiloja ja kolmas luovutusaluetta. Alilistojen sisällöt ovat rullakkojen koodeja [ [A C F] [B D E] [ ]] Operaatiot siirtävät toisen alilistan viimeisen rullakon luovutusalueen alilistaan tai päinvastoin; samalla tila päivitetään [ [ACF] [BDE] [] ] [ [AC ] [BDE] [F] ] rajoitteena on, että siiloon ei mahdu kuin kolme rullakkoa Tavoitetila esim. [ [FCA] [EDB] [ ] ] tai [ [CBA] [FED] [ ] ] Millaiseen algoritmiin järjestelmätoimittajana päätyisit?

20..2018 Hakustrategiat () Syvyyshaku soveltuu käyttöön, kun muistitilaa on rajoitetusti ratkaisujen tiedetään löytyvän pitkien hakupolkujen päästä ja melkein jokaisen polun päästä löytyvän ratkaisu ja jos pystytään käyttämään tutkintajärjestystä, jossa jokin ensimmäisistä valinnoista on aina parhaasta päästä Toisaalta huonommin käy, jos Poluilla voi olla äärettömiä pituuksia tai varsinaiset ratkaisut löytyvät lyhyiltä hakupoluilta, mutta ensin saatetaan joutua kaivelemaan pidempiä Leveys ja syvyyshauissa ei hyödynnetty monesti tarjolla olevaa tietoa tavoitteen sijainnista tarkastelussa olevaan tilaan verrattuna Monissa sovelluksissa uusien tilojen generointien hinta voi vaihdella, esim. antureilla hankittavan tiedon vaatiman laskennan vuoksi monesti suositaan halvimmalla saatavan uuden solmun tutkimista ensin Heuristiset hakustrategiat (1) Heuristiikat ovat ns. peukalosääntöjä, jotka usein nopeuttavat ongelmien ratkaisemista hidastamalla kombinatorista räjähdystä ohjaavat valitsemaan seuraavan tilan jäljellä olevaa hakuavaruutta todennäköisesti parhaiten rajoittavaksi heuristiikat eivät välttämättä ole aina tehokkaita Tyypillisiä heuristiikkoja ovat ennakkoarviot tilasiirtymien kustannuksista, vaikkapa jäljellä olevasta matkasta määränpäähän tai aiemmin opittujen ns. oikopolkujen tai osaratkaisujen hyödyntäminen (pokeri, shakki, yms.) toisinaan heuristiikkojen vaihtoehtona käytetään Monte Carlo hakua (mm. monet videopelit) ja yhä useammin heuristiikan oppimisen roolissa nähdään neuraalilaskentaa 8

20..2018 Heuristiset hakustrategiat (2) Esimerkki yksinkertaisen heuristiikan käytöstä 8 puzzle, heuristinen funktio tilassa x, h(x) = oikeilla paikoilla olevien laattojen lukumäärä, pyritään valitsemaan uusi tila h(x) maksimoiden tavoitetila 1 2 h(x) = 9 8 lähtötila 1 2 8 h(x) = generoidaan uudet tilat mahdollisten siirtojen tuloksena, valitaan uudeksi tila, jolla h(x)= (> ) Huom: heuristisen funktion arvo ei aina joka vaiheessa pienene, mutta hakuavaruus rajautuu silti voimakkaasti 1 2 8 1 2 8 h(x) = 1 2 8 h(x) = 1 h(x) = h(x) = 2 8 näiden heuristisen funktion arvot ovat samoja, valitaan toinen esim. satunnaisesti 1 2 8 laajennettu aiemmin, ei tehdä uudelleen Heuristiset hakustrategiat () Esimerkki oikopolun/osaratkaisun käytöstä 8 puzzle, tunnetaan tiettyjen tilanteiden väliset siirrot etukäteen esim. opittuna simulaatioiden kautta aiemmin oppimattomiin tiloihin sovelletaan heuristista funktiota (ed. sivun tapaan) todetaan ympyröidystä tilasta siirrot tavoitteeseen tunnetuiksi oikopolku = haku päättyy valmiin tiedon käyttöön 1 2 8 1 2 8 1 2 8 1 2 8 1 2 8 1 2 8 1 2 8 tavoitetila 1 2 8 Rubikin kuution ratkaiseminen on tunnettu esimerkki vastaavien heuristiikkojen käytöstä vapaaehtoista luettavaa: orf, R.E. (199) Finding Optimal Solutions to Rubik's Cube Using Pattern Databases, vapaasti saatavilla linkistä http://www.cs.princeton.edu/courses/archive/fall0/cos02/papers/korfrubik.pdf 9

20..2018 Heuristiset hakustrategiat () A* ("A star, A tähti) on ehkä tunnetuin ja suosituin heuristiikkaa hyödyntävä hakualgoritmi varsin tehokas, optimaalinenkin tietyin ehdoin laajasti sovellettu reitinhakuongelmissa A* algoritmin olemassaolo usein ollut motiivi tavoitella ongelmille graafiesitystapaa alunperin kehitetty mobiilirobotin reitinhakuun esteitä sisältävissä tiloissa graafisanastoa: tila solmu (state node) A* hakualgoritmin idea tarkastellaan aukaistuja solmuja x i heuristiiikan f(x i )=g(x i )+h(x i ) avulla g(x i ) on tunnettu hinta/työ jolla saavutettu solmu x i h(x i ) on arvio hinnalle/työlle solmusta x i tavoitesolmuun f(x i ) estimoi hintaa nykyisestä solmusta x i :n kautta tavoitteeseen A* haun optimaalisuusehto: jos h(x i ):n on oltava optimistinen (ts. h(x i ) ei saa koskaan yliarvioida hintaa/työtä tavoitesolmuun) Heuristiset hakustrategiat () Tarkastellaan lyhimän reitin hakuongelmaa eräässä Linnanmaan tulevassa modernissa tilaratkaisussa nimeltä opintopolku käytämme A* algoritmia, tavoitteen koordinaatit tunnetaan kunkin ruudun numero on etäisyys lähdöstä, lyhin reitti jäljitettävissä seuraamalla tavoitteesta taaksepäin aina pienimpään numeroon siirtyen alla on lopputulos, mutta entä miten haku on edennyt?? 0 1 2 8 9 8 11 10 1 1 12 1 1 1 1 1 12 1 1 1 1 8 11 12 1 1 9 10 11 1 10

20..2018 Heuristiset hakustrategiat () 0 Tarkastellaan A* hakualgoritmin kriittistä komponenttia h(x i ) olkoot ns. city block etäisyysmitta sokkelon keskustaan, korttelin pituus = 1 f(x i )=g(x i )+h(x i ) valintahetkillä 1 2 8 haarautumismahdollisuus, laajennetaan kaksi seuraavaa solmua, niihin molempiin etäisyys 1 (siis lähdöstä ) 8 9 11 10 Etäisyysesimerkkilaskelma: tässä molempien laajennettujen solmujen cityblock etäisyys keskustaan h(x i ) =, saadaan f(x i )=g(x i )+h(x i ) =+= 12 1 1 8 11 12 1 1 1 12 1 1 Olemme edenneet 12 askelta lähdöstä ja saavumme kolmen polun haaraumaan, josta laajennamme uudet solmut vasen h(x i ) = 2, oikea h(x i ) =, alas h(x i ) = 2 Saadaan lyhimmän reitin estimaatiksi f(x i )=1+2 = 1, valinta siis vasemmalle tai alas, oikealle estimaatti on f(x i )=1+ = 1 9 10 11 1 Heuristiset hakustrategiat () un jonkin aiemmin hylätyn reitin arvioitu pituus on lyhyempi kuin nyt saadun arvion, niin vaihdetaan ao. lyhyemmän reitin solmuun alla heuristisen funtion arvot jokaiselle sokkelon ruudulle g(x i ) etäisyys reittiä myöten lähtöpisteestä h(x i ) city block etäisyys tavoitesolmuun f(x i )=g(x i )+h(x i ) reitin odotettu pituus kussakin reitin pisteessä 1 2 8 1 1 12 1 1 8 11 12 1 9 10 11 1 1 1 1 1 1 8 9 11 10 12 1 1 1 1 1 1 1 1 1 2 2 1 1 2 0 2 1 2 2 1 2 2 1 9 11 9 9 1 1 11 1 1 1 1 1 1 1 1 1 1 1 11 9 1 1 1 1 19 1 1 1 1 1 1 1 1 1 19 21 19 21 2 11

20..2018 Heuristiset hakustrategiat (8) A* haulle ongelma kuvataan tavallisesti graafina tavoite esim. hakea lyhin tai nopein ajomatka (navigaattori) tai vaikkapa projektille nopein tai halvin toteutuspolku uvataan edellinen sokkelo yksinkertaisena graafina, jonka solmut osuvat tärkeimpiin risteyskohtiin huom: edellinenkin ratkaisu on oikeastaan graafiin A perustuva, mutta jokinen ruutu oli graafin solmu A B D C B D C H G E F H 2 G F E Heuristiset hakustrategiat (9) Tehtävänä on hakea lyhin reitti lähtösolmusta A tavoitesolmuun f(x i )=g(x i )+h(x i ) valintahetkillä Tämän esitystavan jokaiselle solmulle voi alkuperäisen sokkelon pohjalta määrittää esim city block etäisyyden pohjalta optimistiset (aliarvioivat, max oikeat) estimaatit tavoitesolmuun oletetaan yksinkertaisuuden vuoksi neljällä ensimmäisella tasolla pienevä h(x i )=,,2,1 (käytännössä ei pidä olla vakio, vaan muuttuu tilan mukaisesti! Vakioarvo esim. 0 ns. Dijkstran algoritmi) Solmussa A: laajennetaan solmuihin C ja B, h(x i )= solmun C tapauksessa f(x i )=+=8 solmun B tapauksessa f(x i )=+= valitaan B, joka ennustaa lyhyempää matkaa Solmussa B: laajennetaan solmuihin C ja D, h(x i )= solmun C tapauksessa f(x i )=(+)+=11 solmun D tapauksessa f(x i )=(+)+=11 valitaan sattumalta D Solmussa D: laajennetaan solmuun E, h(x i )=2 solmun E tapauksessa f(x i )=(++)+2=1 todetaan solmun C kautta kulkevan reitin ennuste lyhyemmäksi, joten valitaan seuraavaksi C H C 2 G A F E B D 12

20..2018 Heuristiset hakustrategiat (10) Solmussa C: laajennetaan solmuun H, h(x i )= (lähtötason vuoksi) solmun H tapauksessa f(x i )=(+)+=1 todetaan solmun E kautta kulkevan reitin ennustetta pidemmäksi; joten valitaan seuraavaksi E A B Solmussa E: laajennetaan solmuihin G ja F, h(x i )=1 C solmun G tapauksessa f(x i )=(+++)+1=18 solmun F tapauksessa f(x i )=(+++)+1=1 valitaan seuraavaksi H, koska sen kautta reittiennuste 1 Solmussa H: laajennetaan solmuihin ja G solmun G tapauksessa f(x i )=(++2)+2=1 H solmun tapauksessa f(x i )=(++)+2=18 mutta nyt todetaan saavutetun tavoitesolmu! 2 etäisyys lähtösolmusta 1 eli sama kuin sokkeloa suoraan mallina käyttäen solmujen G ja F kautta optimistinen ennuste on 18, joten jos heuristinen funktio on optimistinen, niiden kautta ei voi kulkea yhyempää reittiä G E F D Heuristiset hakustrategiat (11) A* haun rinnalla toinen usein vastaan tuleva heuristinen hakustrategia on Branch and Bound jokaisella askeleella laajennetaan tähänastista lyhintä/halvinta reittiä vrt. A* laajentaa reittiä, jolle ennustettu pituus/hinta lähtösolmusta tavoitesolmuun on pienin Branch and bound löytää aina lyhimmän/halvimman reitin A* löytää lyhimmän/halvimman reitin, jos h(x) on aina optimistinen A* on yleensä tehokkaampi C A B D Miten Branch and Bound toimii oheiselle graafille? onko tässä tapauksessa eroa A* hakuun? H 2 G F E 1

20..2018 Heuristiset hakustrategiat (12) A* hakualgoritmi takaa, että ensimmäinen löydetty ratkaisu on optimaalinen, joten sen jälkeen ei tarvitse enää jatkaa hakua! Toisaalta jo mm. 1 puzzle kokoisilla ongelmilla A* haun rajat tulevat vastaan paljon solmuja/tiloja suunnaton muistin tarve muistia säästävämpiä algoritmeja ovat mm. branch and bound syvyyshaku ja pelitoteutuksissa käytetty IDA* (Iterative Deepening A) Olennaista on ongelman saattaminen ensin graafiesitykseksi ja optimistisen heuristisen funktion valinta uriositeetti: oikealla ns. mikrohiiri vuodelta 1981, jonka tehtävänä oli mahdollisimman nopeasti löytää 1x1 sokkelon keskustaan Mahdollisia esitystapoja ja hakualgoritmivalintoja Pakettien kokoaminen kuormalavalle volyymimalli tai vastaava graafi, A* haku (etäisyys tavoitteeseen voidaan arvioida, minimoidaan tyhjää tilaa, kun paketit tunnetaan, solmuja voidaan generoida esim. Monte Carlo tyyliin) Sääntöpohjaisen asiantuntijajärjestelmän päättelykoneen toteutus taulukkoesitys tietokannassa, hakuun tarjolla esim. rete algoritmit Paketinkuljetusrobotin tai jakeluauton reitinsuunnittelu graafiesitys, (kyseessä erityinen optimointiongelma, johon on olemassa omia algoritmeja) Ostosten poiminta kaupassa, parkkipaikan hakeminen graafiesitys, syvyyshaku Robottien yhteistoiminta volyymimalli tai vastaava graafi, A* haku Sudoku matriisiesitys, syvyyshaku Mitä muuta tulee nopeasti mieleen? opintopolun optimointi? Palapelit? 1

20..2018 Nollassummapelien hakualgoritmit: alkuesimerkki (1) Tarkastellaan yksinkertaisin säännöin pelattavaa kahden pelaajan peliä, jossa on kaikkiaan kuusi tikkua riveittäin pelaaja valitsee rivin ja poimii siltä haluamansa määrän tikkuja, mutta aina vähintään yhden. viimeisen tikun poimija häviää pelin ( saat aloittaa, joka voitosta saat euron )) Esimerkki: alkutila pelaaja 1 pelaaja 2 pelaaja 1 pelaajan 2 poimi 2 tikkua poimi tikun poimi tikun poiminta jättää i 1:lle viimeisen tikun! Mutta eikö pelaajalla 1 ollut alunperin yliote, koska sai aloittaa? Olisiko hän voinut pelata kuvionsa toisin? Lähdemme analysoimaan tätä peliä määrittämälla sen tiloille sopivan esitystavan todetaan alkutilaksi ja vastaavasti tilaksi = 12 = 011 Nollassummapelien hakualgoritmit: alkuesimerkki (2) Tämän pelin hakupuu on molemmille pelaajille (osa alla) kummankin pejaajan kannattaa tehdä valintoja, joilla lopputuloksena ei ole häviö Pelaajan 1 vaihtoehdot (eli valitseejonkin näistä pelaajalle 2) 12 (joskin juuri tässä pelissä aloittaja 1 ei voi voittaa, ellei vastustaja töppää!) 02 11 10 122 121 120 Pelaajan 2 vaihtoehdot Pelaajan 1 vaihtoehdot Pelaajan 2 vaihtoehdot Pelaajan 1 vaihtoehdot Pelaajan 2 vaihtoehdot 01 00 022 021 020 2 ei varmasti valitse tätä 00 jos 2 valitsee tämän, niin 1 012 011 010 valitsee 001 2 ei varmasti 002 001 000 valitse tätä 011 010 002 010 001 000 1 ei varmasti halua tätä 001 000 000 010 001 000 001 000 000 000 000 000 000 000 1

20..2018 Nollassummapelien hakualgoritmit (1) Tikkupelin hakupuu on pieni, joten se pystytään tuntemaan täydellisesti tulos on kaksiarvoinen: voitto tai häviö (nollasummapeli = toisen voitto on toisen tappio) molemmat pelaajat pyrkivät maksimoimaan oman ja minimoimaan vastustajan edun minimax strategia: max solmussapelaaja1 yrittäämaksimoidaetunsaja min solmussa pelaaja 2 pyrkii minimoimaan pelaajan 1 edun Menettely: 1. rakennetaan pelin hakupuu 2. jäljitetään lehtisolmuista taaksepäin: maksimoidaan max solmuissa ja minimoidaan min solmuissa Ongelma: lehtisolmuista lähtevänä tämä analyysi vaatii koko hakupuun generoinnin, mikä ei aina ole mahdollista ratkaisu: pyritään karsimaan hakupuuta menettämättä optimaalisuutta Nollassummapelien hakualgoritmit (2) Minimax strategian päättelyt: tasan (T), häviö (H), voitto (V), arvot vaikkapa 1,0,+1 kuhunkin solmuun merkitty siitä saavutettava minimi tai maksimi Pelin eteneminen tästä solmusta on mahdollista päästä vähintään tasapeliin vastustaja valitsee siten, että minimissään häviö, ettei aloittaja pääse valitsemaan voittoa Max: T vastustaja pystyy pakottamaan häviöön, jos valitaan tämä haara tästä haarasta seuraa korkeintaan häviö Min: T Min: H Min: H min solmun arvo on alempien minimi maksimitulos on tasapeli Max: V Max: T Max: H Max: V Max: H Max: V max solmun arvo on alempien maksimi voitto häviö tasan häviö häviö voitto häviö häviö voitto Tärkeä huomautus: minimax strategia ei ole rajoitettu kaksi (tai kolmi ) arvoisiin tilanteisiin, vaan lehtisolmujen arvot voivat vaihdella mielivaltaisella välillä [min, max]. Esimerkki tällaisesta seuraavalla sivulla. 1

20..2018 Nollassummapelien hakualgoritmit () Esimerkki: lehtisolmuilla numeroarvot tis for tat peli (vaikkapa DJT vs. muu maailma) lehtisolmujen arvot DJT:n arvioituja fiilislukuja, joiden hillitseminen korreloi talousvakauden kanssa DJT on tässä maksimoiva pelaaja tullimuurit Max: 8 entisellään TTIP sopimus EU:n kanssa WTO käsittely Min: 8 Min: Min: 2 CETA2 EU:n tullit TTIP2 harrikoille TPP2 Max: 8 Max: 10 Max: Max: Max: 2 Max: 9 globaali sopimus kahdenkeskiset sopimukset 8 9 10 0 0 2 1 9 8 ei lisätullit lisätullit ei reaktiota EU:n Saksan reaktiota lisätullit autoille autoille lisätullit TPP maille anadalle Nollassummapelien hakualgoritmit () Oletetaan edellisessä esimerkissä hakupuun tarkastelun tapahtuvan syvyyshaulla joka etenee vasemmanpuolimmaisista haaroista oikealle Max: 8 * Min: 8 Min: Min: 2 Max: 8 Max: 9 Max: Max: Max: 2 Max: 9 A B C 8 9 0 2 1 9 Toteamme, että haaroja A, B ja C ei tarvitse tutkia, mikä hillitsee hakupuun kasvua minimointisolmu * valitsee allaan olevista arvoista pienimmän (8), eikä mikään haarasta A löytyvä arvo muuta minimoinnin antamaa tulosta samantyylinen analyysi on tehtävissä myös haarojen B ja C kohdalla tällaista puun osan haun välttämismenettelyä kutsutaan alpha beta karsinnaksi huomaa, että lehtisolmut voivat edustaa haussa alipuita alpha beta karsinta mahdollistaa usein hakusyvyyden kaksinkertaistamisen tila avaruuden kasvun rajoittuessa, mutta pahimmassa tapauksessa ei säästä mitään 1

20..2018 Stokastinen haku (1) Generoi ja testaa strategia: 1. tuotetaan vaihtoehdot tarkasteltavaksi satunnaisprosessilla 2. karsitaan kielletyt vaihtoehdot. valitaan jäljellä olevista sallituista ratkaisuista jollain kriteerillä paras Tarkastellaan ns. kauppamatkustajan ongelmaa löydettävä lyhin järjestys käydä vain kerran kussakin kaupungissa rajoitteena tiestön reititys A B Tarkastellaan viereistä karttaa, jossa on yhdeksän kaupunkia, joista osan välillä on tie lähtökaupunki on, johon reitin myös on päätyttävä: reitti on siis 1 2 8, missä numerot ilmoittavat kunkin kaupunkikäynnin järjestysnumeron teiden vuoksi mikä tahansa kaupunki ei voi seurata toista kukin kaupunki voi olla listassa vain kerran C H 2 G E F D Stokastinen haku (2) aupunkien sallitut järjestykset (data/tietämys) H, H, G, G, GH, HG, HC, CH, CA, AC, CB, BC, AB, BA, BD, DB, DE, ED, EF, FE, EG, GE, FG, GF etäisyydet: AB, DE, EF, GF, EG, G, HG 2, H, HC, CA CB C A B D generoidaan satunnaiset ratkaisut (tila avaruus) esim. GFACEDHB, GAFCEDHB, GFADECHB, HGFEDBAC, HCBADEFG, karsitaan kiellettyjä siirtymiä sisältävät, jäljelle jäävät HCABDEFG ja GFEDBACH, joiden molempien pituudeksi saadaan 0 tässä nimenomaisessa esimerkki tapauksessa sallittuja ratkaisuja on vain kaksi H 2 G F E olisiko tämä ongelma mahdollista ratkaista sääntöpohjaisella järjestelmällä? Miten silloin menettelisit? 18

20..2018 Lopuksi: syntaksit, semantiikat ja ontologiat (1) Määritettäessä ja kehitettäessä tietoteknisiä ratkaisuja tosimaailman ongelmiin tärkeitä ovat 1. syntaksi: tarvitaan ihmiselle että koneelle ymmärrettävien rakenteellisten kuvausten laatimiseen. Esim. miten vaikkapa tilat ja säännöt kuvataan [kielioppi, grammar] 2. semantiikka: syntaktisia sääntöjä noudattaen määritellään kielen konstruktioiden merkitys. Esim. sääntöpohjaisessa järjestelmässä säännössä oleva operaatio voidaan suorittaa, jos siinä määritellyt ennakkoehdot ovat tosia. ontologia: tietämysrakenne, joka kuvaa käsitteet ja niiden väliset suhteet. äsitteitä ovat mm. esineet, asiat, ideat ja niiden yhteydet ns. semanttinen web: merkityskontekstiltaan yhteinen kieli, jonka kautta koneet voivat automaattisesti yhdistellä tietoa vapaaehtoista luettavaa https://seco.cs.aalto.fi/projects/finnonto/ Symboliikalla on iso merkitys tietämyksen esittämisessä ja tietämysjärjestelmien toteuttamisessa, jos koneiden on osattava/kyettävä perustelemaan ratkaisunsa Lopuksi: syntaksit, semantiikat ja ontologiat (2) miksi tämä on koneille niin kovin vaikeaa? (Nykyinen) tekoäly ei kykene yleistämään aiemmin opittuja esitystapoja hyödynnettäväksi uusissa tilanteissa kuin hyvin rajoitetusti Sen sijaan ihmiset kykenevät vaivatta luomaan ja käyttämään invariantteja esitystapoja sama esine kyetään tunnistamaan monesta näkökulmasta ja osin peittyneenäkin, vaikka se olisi nähty vain kerran, samoin puhe ja puhuja pystytään tunnistamaan melussa ja samoin musiikki Mikään nykyinen tekoälytoteutus ei kykene lukemaan vaikkapa lieden käyttöohjetta ja sitten toimimaan sen mukaisesti keittiössä. Eli miten sanat ja koneaistien havainnot yhdistyvät? useiden tietolähteiden ja operaatioiden yhdistäminen tavoitehakuiseksi toiminnaksi on ylivoimaista ilman niiden suhteiden ja yhteyksien ymmärrystä ; pelkkä yksisuuntainen hahmontunnistus ei riitä 19

20..2018 Mikä onkaan tärkeintä: data & esitystavat vai algoritmit? (Muna vai kana?) Aivan alkuun palaten: Solving a problem simply means representing it so as to make the solution transparent, Herbert A. Simon, The Sciences of the Artificial, 198 If I were given one hour to save the planet, I would spend minutes defining the problem, and minutes for the solution, Albert Einstein(?) joten mitä ehkä varsinaisesti on tekoälyalgoritmien menestyksen takana? tiedon tallentamisen ja haun teknologioiden merkittävä muutos! rakenteellisesti heikon (ja sekalaisen) datan tehokas tallennus, haku ja käsittely on mahdollistunut = kuvat, puhe, musiikki, teksti, biosignaalit mikä tahansa tavallinen data (NoSQL ) aivan keskeinen IoT (Internet of Things) mahdollistaja: little data big data toisaalta tekoälyteknologioita on vaikea täysin erottaa tiedon tallentamisen ja haun ratkaisuista 20