Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2013-2014 Lasse Lensu 2
Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2013-2014 Lasse Lensu 3
Ongelma 3: Miten hankalia ongelmia voidaan ratkaista algoritmisesti? 2013-2014 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. Kaikki ongelmat eivät kuitenkaan ole luonteeltaan deterministisiä. 2013-2014 Lasse Lensu 5
Tietojenkäsittelyn perusteet 1 Hankalat ongelmat 2013-2014 Lasse Lensu 6
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 2013-2014 Lasse Lensu 7
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 kannattaa edetä. 2013-2014 Lasse Lensu 8
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ä. 2013-2014 Lasse Lensu 9
Hakuongelmat J. Boberg, Johdatus tietojenkäsittelytieteeseen, Turun yliopisto, 2010. 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. 2013-2014 Lasse Lensu 10
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. 2013-2014 Lasse Lensu 11
Ää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 tai paras ratkaisu. 2013-2014 Lasse Lensu 12
Äärettömät hakuongelmat Hakuavaruus on ääretön. Graafia ei pystytä muodostamaan kokonaan. Ratkaisua ei välttämättä löydetä koskaan, jos on valittu väärä hakustrategia. Vaihtoehtoisesti ratkaisu lopulta löydetään, mutta hakuaika on tyypillisesti kelvoton. 2013-2014 Lasse Lensu 13
Leveyshaku Haku etenee leveänä rintamana joka suuntaan yhtä pitkälle Käyttää jonoa tilojen tallettamiseksi Ominaisuudet: Varovainen ja pessimistinen menetelmä Täydellinen (käy kaikki vaihtoehdot läpi niin haluttaessa) 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. 2013-2014 Lasse Lensu 14
Syvyyshaku Haku lähtee parhaana pidettyyn suuntaan, jota muutetaan ainoastaan, jos joudutaan perääntymään Käyttää pinoa tilojen tallettamiseksi Ominaisuudet: Rohkea ja optimistinen menetelmä Epätäydellinen Epävarma (joissakin tilanteissa) 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 hyväksyttävän ratkaisun löydyttyä. 2013-2014 Lasse Lensu 15
Heuristiikka J. Boberg, Johdatus tietojenkäsittelytieteeseen, Turun yliopisto, 2010. Joukko sääntöjä, missä järjestyksessä vielä 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). 2013-2014 Lasse Lensu 16
Esim. vähiten välilaskuja reitillä Los Angeles - Miami Seattle Detroit New York San Francisco Denver Philadelphia Houston Los Angeles St. Louis Miami 2013-2014 Lasse Lensu 17
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. 2013-2014 Lasse Lensu 18