Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2012-2013 Lasse Lensu 2
Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2012-2013 Lasse Lensu 3
Ongelma 3: Miten hankalia ongelmia voidaan ratkaista algoritmisesti? 2012-2013 Lasse Lensu 4
Algoritmin määritelmän mukaan sen tulee olla deterministinen eli tehtävän ratkaisun pitää olla yksikäsitteisesti määritelty ja algoritmin jokaisessa vaiheessa tiedetään täsmällisesti, mitä tehdään ja mitä seuraavaksi tehdään. 2012-2013 Lasse Lensu 5
Tietojenkäsittelyn perusteet 1 Hankalat ongelmat 2012-2013 Lasse Lensu 6
Algoritminen ongelmanratkaisu 2012-2013 Lasse Lensu 7
Hankalat ongelmat Alaoutinen, S., 2008 When solving problems, dig at the roots instead of just hacking at the leaves. (Anthony J. D'Angelo) Hankalat ongelmat: Hakuongelmat Heuristiikat 2012-2013 Lasse Lensu 8
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 eli mihin suuntaan haussa edetään. 2012-2013 Lasse Lensu 9
Epädeterministiset ongelmat Esim. shakki: Sallitut siirrot hyvin tiedossa, mutta niiden kokeilujärjestys 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, jotta päästään sokkelosta ulos mahdollisimman suoraa reittiä. 2012-2013 Lasse Lensu 10
Hakuongelmat Epädeterministiset ongelmat voidaan muodollisesti kuvata hakuongelmina, joissa ratkaisu löytyy eri vaihtoehtojen (tilojen) joukosta. Hakuongelma kuvataan tilaesityksen avulla: Tilojen joukko S Alkutila s 0 S Lopputilojen joukko F S Siirrot t: S S, s i s j Ongelman ratkaisu alkaa alkutilasta s 0. Kussakin tilassa on joukko sallittuja siirtoja, jotka vievät uuteen tilaan s k-1 s k. 2012-2013 Lasse Lensu 11
Hakuongelmat Hakuavaruus = graafi, jossa on kaikki mahdolliset tilat ja niitä yhdistävät siirrot. Hakupuu = talletuspaikka siirroille, 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. 2012-2013 Lasse Lensu 12
Äärelliset hakuongelmat Hakuavaruus on äärellinen. Graafi voidaan muodostaa kokonaisuudessaan haun aikana. Ratkaisun löytyminen ennemmin tai myöhemmin on varmaa. Ongelmana on löytää nopein/paras ratkaisu. 2012-2013 Lasse Lensu 13
Äärettömät hakuongelmat Hakuavaruus on ääretön. Graafia ei pystytä muodostamaan kokonaan. Ratkaisua ei välttämättä löydetä koskaan, jos/kun on valittu väärä hakustrategia. Vaihtoehtoisesti ratkaisu lopulta löydetään, mutta hakuaika on tyypillisesti kelvoton. 2012-2013 Lasse Lensu 14
Leveyshaku Varovainen ja pessimistinen menetelmä Haku etenee leveänä rintamana joka suuntaan yhtä pitkälle Käyttää jonoa (FIFO = First in, first out) tilojen tallettamiseksi Täydellinen Varma Optimaalinen = äärellisessä haussa löydetään paras ratkaisu: Koko hakugraafi käydään tarvittaessa läpi. Pitää olla kyky tunnistaa ratkaisun paremmuus muihin ratkaisuihin nähden. 2012-2013 Lasse Lensu 15
Syvyyshaku Rohkea ja optimistinen menetelmä Haku lähtee parhaana pidettyyn suuntaan: Suuntaa muutetaan ainoastaan, jos joudutaan perääntymään. Käyttää pinoa (LIFO = Last in, first out) tilojen tallettamiseksi Epätäydellinen Epävarma: Epätäydellisyyden vuoksi äärellisessä ja äärettömässä haussa ratkaisu voi jäädä kokonaan löytymättä, vaikka sellainen olisi lähelläkin. Ei-optimaalinen eli haku ei takaa optimaalista ratkaisua: Äärellisessäkään haussa ei välttämättä löydetä parasta ratkaisua, koska tyypillisesti haku lopetetaan heti ensimmäisen ratkaisun löydyttyä. 2012-2013 Lasse Lensu 16
Heuristiikka Missä järjestyksessä tutkimattomat tilat s 1...s k talletetaan muistiin/käydään läpi: Järjestys, jossa eri 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 (vrt. perääntyminen algoritmistrategioissa). 2012-2013 Lasse Lensu 17
Esim. vähiten välilaskuja reitillä Los Angeles - Miami Seattle Detroit New York San Francisco Denver Philadelphia Houston Los Angeles St. Louis Miami 2012-2013 Lasse Lensu 18
Yhteenveto Hankalat ongelmat voidaan jakaa deterministisiin ja epädeterministisiin. Hankalien ongelmien ratkaisuun voidaan käyttää tyypillisiä algoritmien toteutustapoja, mutta useimpiin tarkoituksiin sopivat hakutekniikat ja heuristiikat. 2012-2013 Lasse Lensu 19