4 INFORMOITU ETSINTÄ AHNE PARAS ENSIN -STRATEGIA
|
|
- Karoliina Auvinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 INFORMOITU ETINTÄ okeilla etsintämenetelmillä ei ole käytössään muuta informaatiota kuin etsintäongelman määrittely. Informoidut etsintämenetelmät (informed search strategies) ovat sellaisia, jotka voivat hyödyntää tehtäväkohtaista lisäinformaatiota. Niillä ratkaisu voidaan löytää sokeita menetelmiä tehokkaammin. Aina lisätietoa ei kuitenkaan ole käytettävissä. Yleistä informoitua etsintästrategiaa kutsutaan paras ensin -strategiaksi (best first). iinä laajennettavaksi valitaan solmu evaluointifunktioon (evaluation function) f perustuen. Usein evaluointifunktio arvioi kustannusta päämäärään ja laajennettavaksi valitaan solmu, jonka f-arvo on pienin. Implementointi tehdään käyttäen kekoa, joka on järjestetty funktion f mukaan nousevaan järjestykseen. Paras ensin -nimitys on harhaanjohtava sillä se tarkoittaa tietysti parhaalta vaikuttavaa. Jos paras solmu tiedettäisiin etukäteen, niin mitään etsintää ei tarvittaisi. Etsinnässä käytettävä funktio f voidaan valita eri tavoin. Yleensä se perustuu johonkin heuristiseen funktioon h: h(n) = arvioitu halvin kustannus solmusta n maalisolmuun. Esimerkiksi Romanian kartan tapauksessa heuristisena funktiona voi käyttää linnuntie-etäisyyksiä Bukarestiin: Bucharest Craiova Dobreta Eforie Fagaras iurgiu Hirsova Iasi Lugoj Mehadia Neamt Oradea Pitesti Urziceni Vaslui luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 AHNE PARA ENIN -TRATEIA Ahne paras ensin -strategia pyrkii laajentamaan solmun, jonka arvioidaan olevan lähinnä maalia. Tässä tapauksessa siis f perustuu suoraan heuristiseen arvioon h, joten f(n) = h(n). Paras ensin muistuttaa aiemmin esiteltyä halvin ensin -menetelmää, mutta se pyrkii aina mahdollisimman lähelle maalia, kun taas halvin ensin pysytteli mahdollisimman lähellä lähtösolmua. Toisin kuin syvyyssuuntaisella etsinnällä ahne paras ensin -menetelmällä on "suuntavaistoa": hakua ei jatketa ensimmäisestä lapsesta vaan siitä, jonka arvioitu etäisyys tavoitteesta on pienin. Menetelmä kärsii samoista ongelmista kuin syvyyssuuntainen etsintä: se ei ole optimaalinen eikä täydellinen (voi jäädä äärettömään haaraan). Pahimman tapauksen aika- ja tilavaatimukset ovat luokkaa O(b m ), missä m on etsintäavaruuden maksimisyvyys. Tilavaatimus on näin suuri, sillä toisin kuin syvyyssuuntainen etsintä ahne etsintä joutuu pitämään muistissa kaikki etsintäpuun solmut mahdollista paluuta varten, eikä vain saman haaran solmuja. Jos heuristiikka on hyvin valittu, etsintää tehostuu huomattavasti, mutta tämä riippuu ongelmasta ja valitusta heuristiikasta. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 A* The initial state After expanding 66 Tunnetuin paras ensin -strategia on A*, joka evaluoi solmut niiden tämänhetkisen kustannuksen ja arvioidun kustannuksen summan perusteella: (c) After expanding 7 9 Fagaras Oradea (d) After expanding Fagaras 7 9 f(n) = g(n) + h(n), missä g on kustannus alusta solmuun n ja h arvio halvimman reitin kustannuksesta solmusta n maalisolmuun. iis f(n) on arvioitu halvimman n:n kautta kulkevan ratkaisun kustannus. Tässä siis eräällä tavalla yritetään yhdistää halvin ensin - ja paras ensin -menetelmien hyvät puolet. Jos heuristinen funktio h täyttää tietyt ehdot, A* onkin sekä täydellinen että optimaalinen. Fagaras Oradea Bucharest 5 0 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.5/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.6/8 Puuetsinnässä optimaalisuuteen riittää että funktio h on luvallinen (admissible), mikä tarkoittaa sitä, että se ei koskaan yliarvioi jäljellä olevaa kustannusta. ellainen funktio on siis optimistinen, koska sen mukaan jäljellä oleva työmäärä näyttää pienemmältä (tai korkeintaan yhtä suurelta) kuin mitä se todellisuudessa on. Esimerkiksi etäisyyden arviointi linnuntietä on tällainen luvallinen heuristinen funktio. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.7/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.8/8
2 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.9/8 Todistetaan, että A*, joka on toteutettu puuetsintänä algoritmin TREE-EARCH mukaisesti on optimaalinen, jos h(n) on luvallinen: Olkoon C optimaalisen ratkaisun kustannus. Oletetaan että laajennettavien solmujen tietovarastossa on alioptimaalinen maalisolmu. illoin h( ) = 0 koska on maalisolmu. illoin f( ) = g( ) + h( ) = g( ) > C. Varastossa on myös oltava jokin optimaalisella polulla oleva solmu (jos kerran optimaalinen ratkaisu on olemassa). Nimetään sitä solmua n:llä. Jos h ei yliarvioi kustannusta, niin f(n) = g(n) + h(n) C. Koska f(n) < f( ), niin haku ei etene alioptimaaliseen maalisolmuun, vaan laajentaa optimaalisella polulla olevaa solmua. ama päättely pätee jokaisella askeleella, joten A* palauttaa optimaalisen ratkaisun, jos h on luvallinen. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.0/8 Verkkoetsinnässä tämä ei enää päde, koska RAPH-EARCH-algoritmi voi hylätä optimaalisen polun toistuvaan tilaan, jos optimaalinen ratkaisu ei ole ensimmäiseksi löydetty solmu. Tämä ongelma voidaan korjata kahdella tavalla:. Joko modifioidaan algoritmia siten että se hylkää aina kalliimman toistuvista tiloista lisäkirjanpitoa.. Tai varmistetaan että lyhin reitti löytyy aina ensimmäisenä kuten halvin ensin -menetelmässä. Asetetaan heuristiselle funktiolle lisärajoitus: konsistenssi eli monotonisuus, joka pätee täsmälleen silloin kun kolmioepäyhtälö on voimassa (jokaiselle solmulle n, sen seuraajalle n ja teolle a): Jos h(n) on monotoninen, niin f(n):n arvot ovat kasvavia jokaisella polulla. Todistus: Olkoon n n:n seuraaja. illoin g(n ) = g(n) + c(n, a, n ) jollakin teolla a ja saadaan f(n) = g(n)+h(n) g(n)+c(n, a, n )+h(n ) = g(n )+h(n ) = f(n ). Tästä seuraa, että RAPH-EARCHiä käyttävä A* laajentaa solmut kasvavassa järjestyksessä, joten ensimmäisen laajennettavaksi valitun maalisolmun on oltava optimaalinen. h(n) c(n, a, n ) + h(n ). Jokainen monotoninen heuristiikka on myös luvallinen. A* joka käyttää RAPH-EARCHiä on optimaalinen jos h(n) on monotoninen! luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 Koska f:n arvot ovat kasvavia, hakua voidaan havainnollistaa korkeuskäyrillä (contours): A T Z 80 O D L M 00 R C Haku etenee varovasti ylöspäin laajentaen solmuja f:n mukaan kasvavassa järjestyksessä ohjautuen kohti optimaalista polkua, jolloin ensimmäinen löytyvä ratkaisu on optimaalinen. A* on täydellinen, vaikka karsiikin ne solmut, joille f(n) > C (kuten kuvassa esimerkiksi n alla olevan alipuun). F P 0 N B I U V H E luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 Tällaisten algoritmien joukossa A* on myös optimaalisen tehokas (optimally efficient) millä tahansa heuristisella funktiolla. Mikään optimaalinen algoritmi ei siis selviä vähemmällä solmujen laajentamisella kuin A* (lukuunottamatta sitä että joskus voidaan joutua laajentamaan turhaan joitakin solmuja joiden kustannus on sama kuin optimaalisen ratkaisun). Kuitenkaan A* ei aina kelpaa käytännössä, sillä sen etsintäavaruus kasvaa usein eksponentiaaliseksi suhteessa ratkaisun syvyyteen. Näin tapahtuu aina paitsi jos heuristisen funktion virheen suuruus kasvaa korkeintaan logaritmisesti verrattuna todelliseen polun pituuteen. Kasvu pysyy siis hallittuna silloin kun h(n) h (n) O(log h (n)), missä h (n) on todellinen kustannus n:stä maaliin johtavalla polulla. Tämä on kuitenkin harvinaista. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 MUITIRAJOITETTU HEURITINEN ETINTÄ Virhe on lähes aina vähintääkin verrannollisessa suhteessa polkukustannukseen, joten eksponentiaalista kasvua ei yleensä voi välttää. iksi usein on luovuttava vaatimuksesta löytää optimaalinen ratkaisu. Tällöin voidaan käyttää A*:n variantteja, jotka löytävät nopeasti alioptimaalisen ratkaisun, tai heuristisia funktioita jotka eivät ole luvallisia eivätkä siis takaa optimaalisuutta. Toisaalta menetelmän epäkäytännöllisyyteen johtaa myös se seikka, että A*:n tilavaatimus on korkea, koska kaikki käsitellyt solmut säilytetään muistissa kuten aina verkkoetsinnässä (RAPH-EARCH). Tarkastellaan seuraavaksi algoritmeja, jotka tulevat toimeen vähemmällä muistilla mutta tuottavat silti optimaalisen ratkaisun. Useita menetelmiä: Iteroivasti syventävä A* eli IDA* Rekursiivinen paras ensin -etsintä (RBF) MA* (memory-bounded A*) MA* (simplified memory-bounded A*) luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.5/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.6/8
3 IDA* REKURIIVINEN PARA ENIN (RBF) Yksinkertaisin tapa rajoittaa A*-algoritmin muistin käyttöä on soveltaa ideaa iteroivasta syventämisestä. Tällöin saadaan iteroivasti syventävä A* eli IDA*-algoritmi. en suurin ero tavalliseen iteroivaan syventämiseen on, että syvyysetsintää ei rajoiteta tietylle syvyydelle, vaan tietyn f-arvon tasolle. Käytetään siis syvyysrajoitettua etsintää asettamalla alussa rajaksi juuren f-arvo ja jokaisella iteraatioaskeleella uudeksi f-rajaksi asetetaan f-arvoltaan pienimmän aiemmalla kerralla rajan ylittäneen solmun f-arvo. IDA* sopii hyvin tilanteisiin, joissa askeleilla on yksikkökustannukset, mutta se joutuu ongelmiin silloin kun tekojen kustannukset voivat olla reaalilukuja. Rekursiivinen paras ensin -etsintä (recursive best-first search) pyrkii jäljittelemään tavallisen paras ensin -etsinnän toimintaa, mutta käyttää vain lineaarista muistitilaa. Algoritmi toimii kuten tavallinen rekursiivinen syvyyssuuntainen etsintä, mutta merkitsee tarkasteltavaan solmuun muistiin parhaan vaihtoehtoisen löytyneen solmun f-arvoa ja jos tarkasteltavan solmun f-arvo ylittää tämän arvon, rekursiossa palataan takaisin parhaan vaihtoehtoisen reitin polulle. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.7/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.8/8 After expanding,, Fagaras Oradea Fagaras Oradea After unwinding back to and expanding Fagaras 7 Bucharest (c) After switching back to and expanding Pitesti 9 Fagaras Oradea Craiova Pitesti Craiova Pitesti Bucharest Craiova RBF on jonkin verran tehokkaampi kuin IDA*, mutta laajentaa silti ylimääräisiä solmuja. Esim. kuvassa ensin, sitten Fagaras ja jälleen. Kuten A* myös RBF on optimaalinen, jos heuristiikka h(n) on luvallinen. Tilavaativuus on luokkaa O(bd), mutta aikavaativuus riippuu heuristiikasta ja siitä kuinka usein etsintäsuunta vaihtuu. Verkkoetsinnässä sekä IDA* että RBF tulevat helposti eksponentiaalisiksi koska ne eivät voi tarkistaa tilojen toistumista muuten kuin kultakin tarkasteltavalta polulta kerrallaan, joten samoja tiloja voidaan joutua tutkimaan useita kertoja. IDA* ja RBF käyttävät tavallaan liiankin vähän muistia koska ne pyrkivät rajoittamaan muistitilan käyttöä vaikkei siihen olisi tarvettakaan. Jos muistia on, sitä kannattaisi hyödyntää ja rajoittaa sen käyttöä vasta kun on pakko. Näin tekevät MA* (memory-bounded A*) ja MA* (simplified memory-bounded A*). luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.9/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.0/8 MA* MA* toimii muuten kuten A*, laajentaen parasta lehteä, niin kauan kuin muistitilaa riittää. Muistitilan loppuessa se ei voi lisätä uutta solmua hakupuuhun pudottamatta ensin jotakin vanhaa solmua. illoin MA* unohtaa huonoimman lehtisolmun, siis sen, jonka f-arvo on korkein. Unohdetun lehtisolmun f-arvo talletetaan kuitenkin sen vanhempaan siltä varalta että sinne tarvitsisikin joskus palata. Tämä tapahtuu silloin, kun kaikki muualta saadut f-arvot ovat huonompia. Jos kaikilla lehtisolmuilla on sama f-arvo, MA* laajentaa viimeiseksi löydetyn ja unohtaa ensimmäiseksi löydetyn. (Tällä vältetään tilanne jossa laajennettavaksi ja unohdettavaksi valittaisiin sama solmu, esim. satunnaisvalintaa käytettäessä.) Jos käy niin huonosti että muisti loppuu kun vain yksi lehtisolmu on jäljellä, niin silloin on pakko lopettaa etsintä siihen, vaikka ratkaisuun asti ei ole vielä päästy. Jos ratkaisun etäisyys on muistitilan rajoissa, MA* on täydellinen. Jos parhaan ratkaisun etäisyys on muistitilan rajoissa, MA* on optimaalinen. Jos jokin ratkaisu löytyi muistitilan rajoissa niin silloin palautetaan paras löytyneistä. Jos muistia on kohtuullisesti, MA* pystyy ratkomaan paljon mutkikkaampia ongelmia kuin A*. Käytännön tilanteissa MA* onkin ehkä paras yleiskäyttöinen etsintäalgoritmi optimaalisten ratkaisujen löytämiseen. Erityisesti silloin, jos etsintäavaruus on verkko, tekojen kustannukset vaihtelevat ja solmujen laajentaminen on kallista verrattuna avoimen ja suljetun listan ylläpitoon. Toisaalta hyvin vaikeissa ongelmissa MA* voi joutua hyppimään edestakaisin polulta toiselle, jolloin se tuhlaa aikaa tuomalla samoja solmuja toistuvasti muistiin. Vaikka aika/tila-kysymykset ovatkin vaikeita, näyttää siltä että jos halutaan optimiratkaisu, niin ainakin toista kuluu. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 ETINNÄN TEHOTAMINEN OPPIMALLA Nyt on esitelty erilaisia etsintästrategioita, mutta olisiko mahdollista että agentti voisi dynaamisesti muunnella etsintästrategiaa ja näin oppisi etsimään tehokkaammin? Tämä on mahdollista. Kun agentti suorittaa etsintää objektitason tila-avaruudessa, etsinnän mahdollisia tiloja voidaan pitää metatason tila-avaruutena. Varsinaisen etsinnän vaiheet (puut) ovat siis metatason tiloja. Kun haku silloin tällöin joutuu tiloihin jotka eivät ole hyödyllisiä vaan joista esim. joudutaan vaihtamaan etsintäsuuntaa, metatason oppimisalgoritmi voi tehdä yleistyksiä tällaisista tilanteista ja oppia välttämään niitä. Tavoitteena on tällöin yhteiskustannuksen (total cost) minimointi, jossa tavoitellaan parasta tasapainoa ratkaisun polkukustannuksen ja etsintään käytettävien resurssien välillä. HEURITIET FUNKTIOT Heuristinen funktio voidaan valita monella tavalla. Esimerkiksi 8-liukupelissä voidaan käyttää vaikkapa väärässä paikassa olevien palojen lukumäärää tai ns. Manhattan-etäisyyttä. Molemmat ovat luvallisia, sillä ne eivät yliarvioi todellista kustannusta. (Katso kirjan kuva.8.) Heuristiikan valinta vaikuttaa suorituskykyyn efektiivisen haarautumiskertoimen kautta. Dominanssi: Olkoot h ja h luvallisia heuristisia funktioita. Jos h (n) h (n) kaikilla n, niin h dominoi h :ta. Dominoiva heuristiikka laajentaa vähemmän solmuja ja on siksi parempi etsinnän kannalta. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8
4 LUVALLITEN HEURITIIKKOJEN KEKIMINEN Heuristiikkojen keksiminen: ongelmien väljentäminen (relaxation) 7 osaongelmat (subproblems) hahmotietokannat (pattern databases) Heuristiikkojen oppiminen: induktiivinen oppiminen tart tate oal tate piirteet (features) tart tate oal tate luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.5/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.6/8 PAIKALLINEN ETINTÄ JA OPTIMOINTI Jos ratkaisun löytymisreitistä (polusta) ei tarvitse välittää, vaan ainoastaan ratkaisun lopputulos on merkitsevä, voidaan käyttää paikallisia (local) etsintästrategioita. Käsitellään yhtä ainoata tilaa (tai ratkaisua) ja muunnellaan sitä paikallisesti toisenlaiseksi naapuruston (neighbourhood) idea. Haussa kuljettuja polkuja ei tarvitse varastoida, joten muistitilan tarve on vähäinen, vain vakio. Yleensä käsitellään täydellisiä tiloja (complete state) kuten kahdeksan kuningattaren asetelmia tai kokonaisia kaupunkireittejä, joihin sitten tehdään pieniä paikallisia muutoksia. Löytävät hyviä ratkaisuja suurissakin etsintäavaruuksissa, joissa systemaattiset hakumenetelmät eivät ole käyttökelpoisia. Tärkeitä käsitteitä: optimointiongelmat kohdefunktio (objective function) tilamaisema (state space landscape) paikallinen/lokaali optimi (maksimi/minimi) globaali optimi (maksimi/minimi) objective function shoulder global maximum current state local maximum "flat" local maximum state space luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.7/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.8/8 VUORIKIIPEILYALORITMIT Tila, jonka arvo (uhkausten lukumäärä) on 7. Ruutuihin on merkitty mahdollisten seuraajatilojen (saman sarakkeen kuningattaren siirtäminen kyseiseen ruutuun) arvot. Paikallinen minimi, jonka arvo on. Vuorikiipeilyalgoritmit (hill-climbing algorithms) ovat ahneita paikallisia etsintämenetelmiä: valitaan aina nykyisen tilan naapureista se, jolla kohdefunktion arvo on korkein. Jos tilaa ei voi enää parantaa, haku päättyy. Tavanomainen vuorikiipeily juuttuu helposti paikalliseen optimiin (joka ei ole globaali) tai tasangolle. Tämän korjaamiseksi on kehitetty useita variantteja: sivuttaissiirtymien salliminen varottava juuttumista stokastinen vuorikiipeily: valitaan satunnaisesti nykytilannetta parantavista naapureista ensimmäisen valinnan vuorikiipeily (first-choice hill climbing): tutkitaan naapureita satunnaisesti ja valitaan ensimmäinen joka on nykyistä parempi vuorikiipeily satunnaisella uudelleenaloituksella (random restart): aloitetaan uudestaan satunnaisesta alkutilasta kunnes ratkaisu löytyy täydellisyys luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.9/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.0/8 IMULOITU JÄÄHDYTY function HILL-CLIMBIN( problem) returns a state that is a local maximum inputs: problem, a problem local variables: current, a node neighbor, a node current MAKE-NODE(INITIAL-TATE[problem]) loop do end neighbor a highest-valued successor of current if VALUE[neighbor] VALUE[current] then return TATE[current] current neighbor Jos sallitaan vain nykytilan parantaminen, juututaan paikalliseen optimiin eikä haku ole täydellinen Toisaalta satunnaiskulku (random walk) on täydellinen mutta tehoton etsintämenetelmä. Yksi ratkaisu on sallia tilanteen huononeminen joskus: imuloitu jäähdytys (simulated annealing) sallii siirtymisen huonompaan vaihtoehtoon mutta sallimisen todennäköisyys pienenee eron kasvaessa. Lisäksi pidetään yllä "lämpötilaa", joka kuvaa tilannetta huonontavien siirtymien todennäköisyyttä. Lämpötila pienenee ajan myötä joten alussa sallitaan suuriakin huononnuksia, mutta lopulta vain hyvin pieniä. Jos lämpötilan jäähtyminen on riittävän hidasta, niin menetelmä päätyy globaaliin optimiin ykköstä lähestyvällä todennäköisyydellä. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8
5 PAIKALLINEN KEILAHAKU function IMULATED-ANNEALIN( problem, schedule) returns a solution state inputs: problem, a problem schedule, a mapping from time to temperature local variables: current, a node next, a node T, a temperature controlling prob. of downward steps current MAKE-NODE(INITIAL-TATE[problem]) for t to do T schedule[t] if T = 0 then return current next a randomly selected successor of current E VALUE[next] VALUE[current] if E > 0 then current next else current next only with probability e E/T Paikallinen keilahaku (local beam search) pitää yllä k kappaletta tarkasteltavia tiloja, joiden kaikki seuraajatilat generoidaan. Jos mikään niistä ei ole maalitila, valitaan seuraajista k parasta laajennettaviksi seuraavalla kierroksella. Ei ole sama asia kuin vuorikiipeily satunnaisella uudelleenaloituksella, koska rinnakkaiset haut riippuvat toisistaan haku ohjautuu nopeasti lupaaville alueille jolloin huonot polut hylätään. Tämä voi olla ongelmakin. tokastinen keilahaku toimii muuten samoin, mutta ei valitakaan parhaita vaan käytetään satunnaisuutta siten että paremmilla on huonompia suurempi todennäköisyys tulla valituksi. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 ENEETTIET ALORITMIT eneettisissä algoritmeissa (genetic algorithms) on samantapainen idea kuin edellisessä, mutta jatkoon ei valita tilojen seuraajia vaan tilaparien yhdistelmiä. Terminologia biologiasta: puhutaan populaatiosta ja sen yksilöistä, jotka ovat yleensä merkkijonoja. Yksilöiden hyvyyttä mitataan kelpoisuusfunktiolla (fitness function) ja niiden todennäköisyys päästä valinnassa jatkamaan seuraavaa sukupolvea riippuu niiden kelpoisuudesta. Yhdistämistä kutsutaan risteytykseksi (crossover) ja se tapahtuu valitsemalla kummastakin merkkijonosta jokin katkaisukohta josta niiden loppuosat vaihdetaan keskenään. Lopuksi jälkeläiset saattavat pienellä todennäköisyydellä joutua mutaation kohteeksi, jossa jokin merkki vaihdetaan toiseksi. Tämän jälkeen sama toistuu uudella sukupolvella. Toimivuus edellyttää sopivaa merkkijonokoodauksen valintaa ja risteytys- ja mutaatio-operaatioiden rajoittamista sellaiseksi että jälkeläiset ovat mielekkäitä % % % % 5 5 (c) (d) Initial Population Fitness Function election Cross Over + = (e) Mutation luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.5/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.6/8 PAIKALLINEN ETINTÄ JATKUVIA AVARUUKIA Jos kohdefunktio on jatkuva-arvoinen, naapuruston idea ei enää suoraan toimi. Jos tila-avaruus voidaan diskretisoida, aiemmat menetelmät toimivat. Toinen mahdollisuus on soveltaa vuorikiipeilymenetelmiä käyttäen hyväksi kohdefunktion f gradienttia f, joka on vektori joka kertoo jyrkimmän nousun suunnan ja suuruuden. Esimerkiksi kuuden jatkuva-arvoisen muuttujan funktiolle f(x, y, x, y, x, y ) gradientti f = ( f x y x y x y ) (Lokaalissa) maksimissa gradientti on nolla. Yleensä yhtälöä ei voi ratkaista globaalisti, mutta sitä voidaan hyödyntää lokaalisti. Jyrkimmän nousun vuorikiipeilyä voi tehdä päivittämällä nykyistä tilaa x x + α f( x), missä α on pieni vakio. Menetelmä on herkkä α:n arvolle, sillä jos se on liian pieni, etsintä kestää kauan, ja jos se on liian suuri, maksimikohta ohitetaan helposti. Jos kohdefunktio ei ole derivoituva, voidaan yrittää muodostaa empiirinen gradientti kokeilemalla kohdefunktion arvoa nykyisen tilan lähistöllä tekemällä hyvin pieniä muutoksia eri koordinaattien arvoihin. Tämä vastaa aiemmin mainittua diskretisointia. Joskus kohdefunktiolle ja ratkaisuille voidaan asettaa rajoitteita. Esimerkiksi lineaarisessa ohjelmoinnissa kohdefunktio on lineaarinen funktio ja ratkaisujen täytyy toteuttaa tietyt lineaariset epäyhtälöt jotka muodostavat konveksin alueen. Tällöin ratkaisu voidaan tehdä polynomisessa ajassa muuttujien määrän suhteen. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.7/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.8/8 ONLINE-ETINTÄ JA TUNTEMATTOMAT YMPÄRITÖT Aiemmin käsiteltiin offline-tyyppisiä etsintämenetelmiä, jotka laskevat ratkaisun kokonaan valmiiksi ennen kuin suorittavat mitään tekoja todellisessa maailmassa. Nyt käsitellään online-menetelmiä, jotka vuorottelevat toimintojen etsimistä ja suorittamista. aatuaan havaintoja seurauksista online-toimijat jatkavat etsintää. Online-etsintä sopii hyvin dynaamisiin tai semidynaamisiin ympäristöihin, joissa tilanne (tai suoritusfunktion arvo) voi muuttua etsinnän aikana. amoin stokastiset ympäristöt, joissa tekojen vaikutukset vaihtelevat, sopivat online-etsinnälle. Online-etsintä on välttämätöntä tutkimisongelmissa (exploration problem) joissa agentti ei tunne ympäristön tiloja ja tekojen seurauksia vaan sen täytyy tunnustella ympäristöään ja kokeilla toimintojaan. (Esim. robottinavigointi tuntemattomassa ympäristössä.) ONLINE-ETINTÄONELMAT Online-etsintäongelmiksi kutsutaan sellaisia ongelmia, joita ei voi ratkaista ainoastaan laskemalla etukäteen vaan ainoastaan vuorottelemalla etsintää ja kokeiluja. Oletetaan, että toimija tietää ainoastaan mahdolliset teot, ACTION(s) tekojen kustannukset, c(s, a, s ) (ei voi käyttää ennen kuin s tunnetaan) maalitestin, OAL-TET(s) Toimija ei siis tiedä toimintojensa seuraajatilaa ennen kuin se suorittaa toiminnan. Voi olle esim. ettei agentti seuraavan sokkelossa tiedä että toiminto Up ruudussa (,) johtaa ruutuun (,) ja vaikka se kokeilisi sitä, niin se ei tiedä, että toiminto Down vie sen takaisin ruutuun (,). Joskus tosin tällaiset suhteet toimintojen välillä voivat olla tunnettuja, jolloin ainoastaan ympäristö on tuntematon. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.9/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.0/8
6 Oletetaan nyt, että toimija tunnistaa tilan, jossa se on ollut aikaisemmin ja että teot ovat deterministisiä. Toimijalla voi lisäksi olla käytössään heuristinen funktio h, joka kertoo sen etäisyyden maalitilasta. (Yllä esim. Manhattan-etäisyys.) Tehtävänä voi olla joko koko ympäristön kartoittaminen tai päämäärän löytäminen kustannuksia minimoiden. Kustannuksena voi olla esim. koko kuljetun reitin pituus. Tätä verrataan tavallisesti optimaalisen reitin pituuteen (joka siis voitaisiin saavuttaa jos alue tunnettaisiin). Agentin löytämän ratkaisun ja optimaalisen ratkaisun suhdetta kutsutaan kilpailusuhteeksi (competitive ratio). uhde on joskus ääretön: esimerkiksi jos teot eivät ole peruutettavia, online-etsintä voi päätyä umpikujaan. Mikään etsintäalgoritmi ei voi välttää umpikujia kaikissa tila-avaruuksissa: Kuvitellaan vastustaja joka voi sijoittaa maalit ja umpikujat haluamallaan tavalla (adversary argument). A A luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 ONLINE-ETINTÄAENTIT Turvallisesti tutkittavia (safely explorable) alueita ovat sellaiset, joissa umpikujiin ei voi joutua, vaan jokaisesta saavutettavasta tilasta päästään johonkin päämäärätilaan. Erityisesti sellaiset tila-avaruudet, joissa teot ovat peruutettavia, ovat turvallisesti tutkittavia, esimerkiksi 8-liukupeli ja sokkelot. Tällaisissakaan ympäristöissä ei voi antaa yleistä rajaa kilpailusuhteelle vaan etsintä voi olla mielivaltaisen vaikeaa. Katso edellisen kuvan kohta. Etsinnän ja toiminnan vuorottelun seurauksena online-algoritmit ovat hyvin erilaisia kuin offline-algorimit. Esimerkiksi A* voi laajentaa solmuja eri puolilta etsintäavaruutta, mutta ympäristöön sijoittuneen online-agentin on tehtävä tekoja siinä paikassa (siinä kohdassa etsintäavaruutta), jossa se kulloinkin on. iksi esimerkiksi syvyysuuntainen etsintä sopii paremmin online-agentin etsintäalgoritmiksi, koska solmuja laajennetaan paikallisesti (kunnes peruutetaan). Esim. aiemmassa sokkelossa voidaan joutua kulkemaan lähes kaikkia kaaria pitkin edestakaisin. Tutkittaessa tämä on hyväksyttävää, mutta reitin löytämisessä kilpailusuhde voi kasvaa mielivaltaisen huonoksi. Peruutus täytyy tehdä fyysisesti ja tekojen olisi hyvä olla kumottavissa. Jotkut algoritmit toimivat ilmankin mutta kilpailusuhteilla ei ole ylärajaa. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p./8 PAIKALLINEN ONLINE-ETINTÄ Vuorikiipeilyalgoritmikin etenee hakuavaruudessa paikallisesti ja koska se pitää vain yhden tilan muistissa, se on jo sellaisenaan online-algoritmi. Yksinkertaisessa muodossaan se ei kuitenkaan ole kovin hyödyllinen, koska se jättää agentin paikalliseen maksimiin eikä satunnaisia uudelleenaloituksia voida tehdä. Niiden sijasta voidaan käyttää satunnaiskävelyä (random walk). iinä kuljetaan satunnaiseen suuntaan (mahdollisesti) preferoiden niitä tekoja, joita ei vielä ole kokeiltu. Näin voidaan taata että maali joskus löytyy, jos etsintäavaruus on äärellinen (tai korkeintaan kaksiulotteinen ristikko tai hila (grid)). Tämä voi kuitenkin viedä eksponentiaalisen ajan, kuten esim. kuvassa: LRTA* Parempi idea on ottaa käyttöön muisti, jossa pidetään arviota kunkin käydyn tilan etäisyydestä maaliin H(n). Tämä vastaa heuristista funktiota h mutta sitä päivitetään etsintäavaruutta tutkittaessa, kuten seuraavassa kuvassa: (c) (d) (e) Prosessi "tasoittaa" (flatten) paikallisen minimin, minkä jälkeen etsintää voidaan taas jatkaa normaalisti. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.5/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.6/8 OPPIMINEN ONLINE-ETINNÄÄ Tällaista menetelmää kutsutaan nimellä "oppiva tosiaikainen A*" (LRTA*) (learning real-time A*). LRTA* löytää varmasti maalin missä tahansa äärellisessä turvallisesti tutkittavassa ympäristössä. Toisin kuin A* se ei kuitenkaan ole täydellinen äärettömissä etsintäavaruuksissa vaan voi jäädä äärettömään haaraan. Pahimmassa tapauksessa alueen tutkiminen voi vaatia O(n ) askelta kun n on tilojen määrä, mutta yleensä algoritmi suoriutuu nopeammin. Toimija oppii "kartan" ympäristöstä tallettamalla tekojensa seuraukset. LRTA*:ssä toimija oppii lisäksi eri tilojen arvot, jotka konvergoituvat kohti todellisia arvoja, minkä jälkeen optimaalisia toimintoja voidaan tehdä yksinkertaisella vuorikiipeilyllä. Jotta agentti voisi oppia toimintojensa yleisiä vaikutuksia ja niiden välisiä suhteita, kuten sen että Up kasvattaa y-koordinaattia ja Down vähentää sitä, tarvitaan. tapaa, jolla tällaisia asioita voidaan esittää: tietämyksenesityskieltä, ja. algoritmeja, joilla tällaisia yleisiä sääntöjä voidaan oppia havainnoista. luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.7/8 luku0.tex Tekoäly ( ov / 8 op) Raul Hakli 8/9/005 :0 p.8/8
Haku osittaisen informaation vallitessa
136 Haun merkittävä ongelma on mahdollisuus laajentaa uudelleen jo kertaalleen tutkittu tila Näin äärellinen tila-avaruus voi johtaa äärettömään hakupuuhun Ratkeava ongelma voi muuttua käytännössä ratkeamattomaksi
4 Heuristinen haku. Eero Hyvönen Helsingin yliopisto
4 Heuristinen haku Eero Hyvönen Helsingin yliopisto Strategioita: - Breath-first - Uniform-cost - Depth-first - Depth-limited - Iterative deepening - Bidirectional Tekoäly, Eero Hyvönen, 2004 2 Heuristisen
Kognitiivinen mallintaminen 1
Kognitiivinen mallintaminen 1 Uutta infoa: Kurssin kotisivut wikissä: http://wiki.helsinki.fi/display/kognitiotiede/cog241 Suorittaminen tentillä ja laskareilla (ei välikoetta 1. periodissa) Ongelmanratkaisu
Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät
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
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019
Algoritmit 2. Luento 12 To Timo Männikkö
Algoritmit 2 Luento 12 To 3.5.2018 Timo Männikkö Luento 12 Geneettiset algoritmit Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Algoritmit 2 Kevät 2018 Luento 12 To 3.5.2018 2/35 Algoritmien
Algoritmit 2. Luento 12 Ke Timo Männikkö
Algoritmit 2 Luento 12 Ke 26.4.2017 Timo Männikkö Luento 12 Rajoitehaku Kauppamatkustajan ongelma Lyhin virittävä puu Paikallinen etsintä Vaihtoalgoritmit Geneettiset algoritmit Simuloitu jäähdytys Algoritmit
13 Lyhimmät painotetut polut
TIE-20100 Tietorakenteet ja algoritmit 297 13 Lyhimmät painotetut polut BFS löytää lyhimmän polun lähtösolmusta graafin saavutettaviin solmuihin. Se ei kuitenkaan enää suoriudu tehtävästä, jos kaarien
A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.
Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =
Kombinatorinen optimointi
Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein
TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010
TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Evoluutiopohjainen monitavoiteoptimointi MCDM ja EMO Monitavoiteoptimointi kuuluu
Algoritmit 2. Luento 11 Ti Timo Männikkö
Algoritmit 2 Luento 11 Ti 24.4.2018 Timo Männikkö Luento 11 Rajoitehaku Kapsäkkiongelma Kauppamatkustajan ongelma Paikallinen etsintä Lyhin virittävä puu Vaihtoalgoritmit Algoritmit 2 Kevät 2018 Luento
Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari
Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä
58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)
811 Tietorakenteet (kevät 9) Harjoitus 11, ratkaisuja (Topi Musto) 1. Bellmanin-Fordin algoritmin alustusvaiheen jälkeen aloitussolmussa on arvo ja muissa solmuissa on arvo ääretön. Kunkin solmun arvo
.. X JOHDATUS TEKOÄLYYN TEEMU ROOS
1 3 1 3 4 3 2 3 4 3 2 3 1 2 3 4 122 31 4 3 1 4 3 1 122 31........ X.... X X 2 3 1 4 1 4 3 2 3 2 4 1 4 JOHDATUS TEKOÄLYYN TEEMU ROOS 2. ETSINTÄ JA PELIT LEVEYSSUUNTAINEN HAKU 1 9 3 2 5 4 6 7 11 16 8 12
(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.
Loppu seuraa suoralla laskulla: n n Tave TR = p j (1 + b (i, j)) j=1 = 1 + 1 i
1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:
Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return
Ohjelmistotekniikan laitos OHJ-2550 Tekoäly, kevät
96 Prolog voi päätyä samaan ratkaisuun monen päättelypolun kautta Tällöin sama ratkaisu palautetaan useita kertoja minimum(x,y,x):- X=Y. Molempien sääntöjen kautta löytyyy sama
Kimppu-suodatus-menetelmä
Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.
Luetteloivat ja heuristiset menetelmät. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki
Luetteloivat ja heuristiset menetelmät Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Branch and Bound sekä sen variaatiot (Branch and Cut, Lemken menetelmä) Optimointiin
Algoritmit 2. Luento 10 To Timo Männikkö
Algoritmit 2 Luento 10 To 19.4.2018 Timo Männikkö Luento 10 Peruutusmenetelmä Osajoukon summa Verkon 3-väritys Pelipuut Pelipuun läpikäynti Algoritmit 2 Kevät 2018 Luento 10 To 19.4.2018 2/34 Algoritmien
Tietorakenteet, laskuharjoitus 7, ratkaisuja
Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9
Mat Lineaarinen ohjelmointi
Mat-.34 Lineaarinen ohjelmointi 9..7 Luento Kokonaislukuoptimoinnin algoritmeja (kirja.-.) Lineaarinen ohjelmointi - Syksy 7 / Luentorunko Gomoryn leikkaava taso Branch & Bound Branch & Cut Muita menetelmiä
3.4 Peruutus (backtracking)
3.4 Peruutus (backtracking) Tarkastellaan kahta esimerkkiongelmaa: Kahdeksan kuningattaren ongelma: sijoitettava 8 8 ruudun pelilaudalle 8 nappulaa siten, että millekään vaaka-, pysty- tai viistoriville
Algoritmit 1. Luento 9 Ti Timo Männikkö
Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward
Algoritmit 2. Luento 11 Ti Timo Männikkö
Algoritmit 2 Luento 11 Ti 25.4.2017 Timo Männikkö Luento 11 Peruutusmenetelmä Osajoukon summa Pelipuut Pelipuun läpikäynti Rajoitehaku Kapsäkkiongelma Algoritmit 2 Kevät 2017 Luento 11 Ti 25.4.2017 2/29
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 4 OP PERIODI 1: 6.9.2012-12.10.2012 (6 VIIKKOA) LUENNOT (B123, LINUS TORVALDS -AUDITORIO): TO 10-12, PE 12-14 LASKUHARJOITUKSET
Esimerkkejä polynomisista ja ei-polynomisista ongelmista
Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia
Algoritmit 2. Luento 2 To Timo Männikkö
Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento
Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)
Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely) Jari Hast xx.12.2013 Ohjaaja: Harri Ehtamo Valvoja: Hari Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 5 OP PERIODI 3: 16.1.2017-3.3.2016 (7 VIIKKOA+KOE) LUENNOT (CK112): MA 14-16, TI 14-16 LASKUHARJOITUKSET: RYHMÄ
Algoritmit 1. Luento 8 Ke Timo Männikkö
Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin
Harjoitus 6 ( )
Harjoitus 6 (21.4.2015) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s. t. g(x) 0 h(x) = 0 x X olevan optimointitehtävän Lagrangen duaali on missä max θ(u, v) s. t.
Algoritmit 2. Luento 2 Ke Timo Männikkö
Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 5 OP PERIODI 3: 18.1.2016-6.3.2016 (7 VIIKKOA+KOE) LUENNOT (CK112): MA 14-16, TI 14-16 LASKUHARJOITUKSET: RYHMÄ
Johdatus verkkoteoriaan 4. luento
Johdatus verkkoteoriaan 4. luento 28.11.17 Viikolla 46 läpikäydyt käsitteet Viikolla 47 läpikäydyt käsitteet Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot,
Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö
Algoritmit 1 Luento 13 Ti 23.2.2016 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen
V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan
Algoritmi on periaatteellisella tasolla seuraava:
Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S
Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti
Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan
Luento 8: Epälineaarinen optimointi
Luento 8: Epälineaarinen optimointi Vektoriavaruus R n R n on kaikkien n-jonojen x := (x,..., x n ) joukko. Siis R n := Määritellään nollavektori 0 = (0,..., 0). Reaalisten m n-matriisien joukkoa merkitään
Algoritmit 2. Luento 6 To Timo Männikkö
Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli
58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, 652013, vastauksia 1 [6 pistettä] Vastaa jokaisesta alla olevasta väittämästä onko se tosi vai epätosi ja anna lyhyt perustelu Jokaisesta kohdasta
Kognitiivinen mallintaminen I
Kognitiivinen mallintaminen I Symbolinen mallintaminen: 2. luento Ongelmanratkaisu Ongelmanratkaisu Rationaalinen agentti Ongelma-avaruus Hakustrategiat ongelma-avaruudessa sokea haku tietoinen haku heuristiikat
JOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS KURSSIN PERUSTIEDOT VALINNAINEN AINEOPINTOTASOINEN KURSSI, 5 OP PERIODI 1: 4.9.2014-17.10.2012 (7 VIIKKOA+KOE) LUENNOT (B123, LINUS TORVALDS -AUDITORIO): TO 10-12, PE 12-14
Turingin koneen laajennuksia
Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k
811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu
811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,
Algoritmit 2. Luento 14 Ke Timo Männikkö
Algoritmit 2 Luento 14 Ke 3.5.2017 Timo Männikkö Luento 14 Ositus ja rekursio Rekursion toteutus Kertaus ja tenttivinkit Algoritmit 2 Kevät 2017 Luento 14 Ke 3.5.2017 2/30 Ositus Tehtävän esiintymä ositetaan
Luku 8. Aluekyselyt. 8.1 Summataulukko
Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys
Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:
Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] = = T [i + 1] 4 return True 5
58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen)
58131 Tietorakenteet (kevät 2009) Harjoitus 9, ratkaisuja (Antti Laaksonen) 1. Lisäysjärjestämisessä järjestetään ensin taulukon kaksi ensimmäistä lukua, sitten kolme ensimmäistä lukua, sitten neljä ensimmäistä
Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen
Hävittäjälentokoneen reitin suunnittelussa käytettävän dynaamisen ja monitavoitteisen verkko-optimointitehtävän ratkaiseminen A*-algoritmilla (valmiin työn esittely) Joonas Haapala 8.6.2015 Ohjaaja: DI
58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut
58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille
Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä
Luku 7 Verkkoalgoritmit Verkot soveltuvat monenlaisten ohjelmointiongelmien mallintamiseen. Tyypillinen esimerkki verkosta on tieverkosto, jonka rakenne muistuttaa luonnostaan verkkoa. Joskus taas verkko
Geneettiset algoritmit
Geneettiset algoritmit Evoluution piirteitä laskennassa Optimoinnin perusteet - Kevät 2002 / 1 Sisältö Geneettisten algoritmien sovelluskenttä Peruskäsitteitä Esimerkkejä funktion ääriarvon etsintä vangin
58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut
Tietorakenteet ja algoritmit (syksy 0) Toinen välikoe, malliratkaisut. (a) Alussa puu näyttää tältä: Lisätään 4: 4 Tasapaino rikkoutuu solmussa. Tehdään kaksoiskierto ensin oikealle solmusta ja sitten
Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)
Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely) Antti Salmela 03.03.2014 Ohjaaja: Harri Ehtamo Valvoja: Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla.
GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit
GA & robot path planning Janne Haapsaari AUTO3070 - Geneettiset algoritmit GA robotiikassa Sovelluksia liikkeen optimoinnissa: * eri vapausasteisten robottien liikeratojen optimointi * autonomisten robottien
Algoritmit 1. Luento 12 Ti Timo Männikkö
Algoritmit 1 Luento 12 Ti 19.2.2019 Timo Männikkö Luento 12 Osittamisen tasapainoisuus Pikalajittelun vaativuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu Algoritmit
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,
Algoritmit 1. Luento 13 Ma Timo Männikkö
Algoritmit 1 Luento 13 Ma 26.2.2018 Timo Männikkö Luento 13 Suunnittelumenetelmät Taulukointi Kapsäkkiongelma Ahne menetelmä Verkon lyhimmät polut Dijkstran menetelmä Verkon lyhin virittävä puu Kruskalin
Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.
Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.
Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?
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
Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?
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
7.4 Sormenjälkitekniikka
7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan
811312A Tietorakenteet ja algoritmit, 2015-2016. VI Algoritmien suunnitteluparadigmoja
811312A Tietorakenteet ja algoritmit, 2015-2016 VI Algoritmien suunnitteluparadigmoja Sisältö 1. Hajota ja hallitse-menetelmä 2. Dynaaminen taulukointi 3. Ahneet algoritmit 4. Peruuttavat algoritmit 811312A
Datatähti 2019 loppu
Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio
Algoritmit 2. Luento 6 Ke Timo Männikkö
Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu
ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012
ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,
Malliratkaisut Demo 1
Malliratkaisut Demo 1 1. Merkitään x = kuinka monta viikkoa odotetaan ennen kuin perunat nostetaan. Nyt maksimoitavaksi kohdefunktioksi tulee f(x) = (60 5x)(300 + 50x). Funktio f on alaspäin aukeava paraaeli,
Skedulointi, kuormituksen tasaus, robotin navigaatio
Skedulointi, kuormituksen tasaus, robotin navigaatio Esitelmä algoritmiikan tutkimusseminaarissa 17.2.2003 Kimmo Palin Tietojenkäsittelytieteen laitos Helsingin Yliopisto Skedulointi, kuormituksen tasaus,
811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu
832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa
2 Osittaisderivaattojen sovelluksia
2 Osittaisderivaattojen sovelluksia 2.1 Ääriarvot Yhden muuttujan funktiolla f(x) on lokaali maksimiarvo (lokaali minimiarvo) pisteessä a, jos f(x) f(a) (f(x) f(a)) kaikilla x:n arvoilla riittävän lähellä
Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina
Hakupuut tässä luvussa tarkastelemme puita tiedon tallennusrakenteina hakupuun avulla voidaan toteuttaa kaikki joukko-tietotyypin operaatiot (myös succ ja pred) pahimman tapauksen aikavaativuus on tavallisella
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 10 1 Funktion monotonisuus Derivoituva funktio f on aidosti kasvava, jos sen derivaatta on positiivinen eli jos f (x) > 0. Funktio on aidosti vähenevä jos sen derivaatta
Algoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava
Malliratkaisut Demot
Malliratkaisut Demot 1 23.1.2017 1. Päätösmuuttujiksi voidaan valita x 1 : tehtyjen peruspöytin lukumäärä x 2 : tehtyjen luxuspöytien lukumäärä. Optimointitehtäväksi tulee max 200x 1 + 350x 2 s. t. 5x
Algoritmit 1. Luento 12 Ke Timo Männikkö
Algoritmit 1 Luento 12 Ke 15.2.2017 Timo Männikkö Luento 12 Pikalajittelu Pikalajittelun vaativuus Osittamisen tasapainoisuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu
Numeeriset menetelmät
Numeeriset menetelmät Luento 3 Ti 13.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 1/37 p. 1/37 Epälineaariset yhtälöt Newtonin menetelmä: x n+1 = x n f(x n) f (x n ) Sekanttimenetelmä:
Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö
Algoritmit 1 Luento 14 Ke 25.2.2015 Timo Männikkö Luento 14 Heuristiset menetelmät Heuristiikkoja kapsäkkiongelmalle Kauppamatkustajan ongelma Lähimmän naapurin menetelmä Kertaus ja tenttivinkit Algoritmit
Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly
Bayesin pelit Kalle Siukola MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly 12.10.2016 Toistetun pelin esittäminen automaatin avulla Ekstensiivisen muodon puu on tehoton esitystapa, jos peliä
Harjoitus 6 ( )
Harjoitus 6 (30.4.2014) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on max θ(u,v) s.t. u 0,
2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.
Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen
Tarkennamme geneeristä painamiskorotusalgoritmia
Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi
Luentorunko keskiviikolle Hierarkkinen ryvästäminen
Luentorunko keskiviikolle 3.12.2008 Hierarkkinen ryvästäminen Ryvästyshierarkia & dendrogrammi Hierarkkinen ryvästäminen tuottaa yhden ryvästyksen sijasta sarjan ryvästyksiä Tulos voidaan visualisoida
5. Rajoitelaskenta (Constraint Satisfaction)
5. Rajoitelaskenta (Constraint Satisfaction) Eero Hyvönen Helsingin yliopisto Solution = An assignment of values for the variables satifying the contraints Some CSPs: optimal solution is the best solution
Rationaalinen agentti. Kognitiivinen mallintaminen I. Rationaalinen agentti. Rationaalinen agentti. Kognitiivinen mallintaminen I, kevät /1/08
Rationaalinen agentti Kognitiivinen mallintaminen I Yksinkertainen refleksiagentti Toiminta perustuu ainoastaan agentin havaintoihin kullakin ajanhetkellä. Luento III Symbolinen mallintaminen Ongelmanratkaisu
Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto
OHJ-3200 Ohjelmistoarkkitehtuurit 1 Arkkitehtuurien tutkimus Outi Räihä 2 Darwin-projekti Darwin-projekti: Akatemian rahoitus 2009-2011 Arkkitehtuurisuunnittelu etsintäongelmana Geneettiset algoritmit
Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )
Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,
10. Painotetut graafit
10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä
3. Hakupuut. B-puu on hakupuun laji, joka sopii mm. tietokantasovelluksiin, joissa rakenne on talletettu kiintolevylle eikä keskusmuistiin.
3. Hakupuut Hakupuu on listaa tehokkaampi dynaamisen joukon toteutus. Erityisesti suurilla tietomäärillä hakupuu kannattaa tasapainottaa, jolloin päivitysoperaatioista tulee hankalampia toteuttaa mutta
Johdatus tekoälyn taustalla olevaan matematiikkaan
Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 3. luento 17.11.2017 Neuroverkon opettaminen (ohjattu oppiminen) Neuroverkkoa opetetaan syöte-tavoite-pareilla
Pisteen x lähistö koostuu kaikista ratkaisuista, jotka on saatu x:stä tekemällä siihen yksi siirto:
24 10. Lokaali haku Optimoinnissa heuristisilla menetelmillä tarkoitetaan algoritmeja, jotka osassa tapauksista antavat tehtävälle hyvän tai lähes optimaalisen ratkaisun, mutta joiden toimivuutta ei voida
Osakesalkun optimointi
Osakesalkun optimointi Anni Halkola Epäsileä optimointi Turun yliopisto Huhtikuu 2016 Sisältö 1 Johdanto 1 2 Taustatietoja 2 3 Laskumetodit 3 3.1 Optimointiongelmat........................ 4 4 Epäsileän
Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden
b 1. b m ) + ( 2b Ax) + (b b)
TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-9 Optimointioppi Kimmo Berg 5 harjoitus - ratkaisut min Ax b (vertaa PNS-tehtävät) a x + + a n x n a) Ax b = a m x + + a mn x n = x a a m }{{}
Algoritmit 2. Luento 7 Ti Timo Männikkö
Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26
Algoritmit 2. Luento 4 Ke Timo Männikkö
Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4