Muurahaiskolonnaoptimointi ja kauppamatkustajan ongelma

Koko: px
Aloita esitys sivulta:

Download "Muurahaiskolonnaoptimointi ja kauppamatkustajan ongelma"

Transkriptio

1 Muurahaiskolonnaoptimointi ja kauppamatkustajan ongelma Jaakko Ahola LuK-tutkielma Turun yliopisto Helmikuu 2015

2 Sisältö 1 Johdanto 3 2 Muunnos oikeista muurahaisista keinotekoisiin Tuplapolkukoe Stokastinen malli Kohti keinomuurahaisia Keinomuurahaiset ja minimikustannuspolut Todennäköisyyksiin perustuvat menomuurahaiset ja ratkaisun luominen Determinisiset paluumuurahaiset ja feromonipäivitys Feromonien päivitys perustuen ratkaisun laatuun Feromonin haihtuminen S-ACO-algoritmi Polun hakutoiminta Polun seuraaminen ja feromonipäivitys Feromonijäljen haihtuminen S-ACO-algoritmilla tehdyt kokeet Muurahaiskolonnaoptimoinnin metaheurestiikka Kombinatorinen optimointi Laskennallinen kompleksisuus ACO-metaheurestiikka Ongelman esitysmuoto Keinomuurahaisten toiminta Pseudokoodi Kauppamatkustajan ongelman ratkaiseminen muurahaiskolonnaoptimoinnilla Kauppamatkustajan ongelman matemaattinen esitys Algoritmien vertailu ja tulokset Taulukot Päätelmät

3 Viitteet 38 2

4 1 Johdanto Muurahaisten monimutkainen sosiaalinen toiminta on pitkään kiinnostanut ihmistä. Yksi kiinnostavimmista näkyvistä toiminnoista on kenties muurahaisvaltateiden muodostuminen. Kun olimme lapsia saatoimme astua sellaiselle tai asettaa muita esteitä näille valtateille, ja seurata miten muurahaiset reagoivat näihin häiriötekijöihin. Olemme myös saattaneet pohtia miten nämä tiet ovat muodostuneet ja mihin ne johtavat. On yllättävää huomata, että tietyillä muurahaislajeilla on kyky löytää lyhin reitti paikasta a paikkaan b, vaikka yksittäisen muurahaisen kognitiiviset kyvyt ovat erittäin rajalliset. Tämä perustuu muurahaisten kykyyn hyödyntää feromoneihin pohjautuvaa kommunikointia. Feromoni on kemiallinen tuoksuaine, jota muurahaiset voivat haistaa ja asettaa. Feromoneja on useita erilaisia, mutta tässä yhteydessä tarkoitetaan merkitsemisferomoneja. Tämä käytös on ollut inspiraation lähteenä useisiin optimointialgoritmeihin. Muurahaiskolonnaoptimointalgoritmit (eng. Ant colony optimization algorithms, käytetään vastaisuudessa kirjallisuudessa käytettyä lyhennettä ACOalgoritmit) on eräs menestyneimmistä ja laajimmin käytetyistä algoritmeista, jotka perustuvat muurahaisten käytökseen. Niiden menestys pohjautuu muun muassa siihen, että niitä voidaan soveltaa useisiin kohteisiin ja useille ongelmille ACO-algoritmit on tehokkaimpia. Tämä työ perustuu pääosin Marco Dorigon ja Thomas Stützlen kirjoittamaan kirjaan [1]. Viimeisimmässä osiossa ACO-algoritmien erityistyyppiä Dorigon ja Gambardellan kehittämää ACS-algoritmia vertaillaan muihin luonnon inspiroimiin optimointialgoritmeihin. Kyseinen osio perustuu Dorigon ja Gambardellan artikkeliin [13]. 3

5 2 Muunnos oikeista muurahaisista keinotekoisiin Muurahaiskolonnat tai laajemmin ilmaistuna sosiaaliset hyönteisyhdyskunnat pystyvät suorittamaan monimutkaisia tehtäviä yksilöiden yksinkertaisuudesta huolimatta, mikä johtuu niiden erittäin rakenteellisesta yhdyskuntajärjestelmästä. Muurahaisalgoritmien tutkimusala hyödyntää uusien algoritmien luomisessa todellisten muurahaisten toimintatapoja, kuten ruoanhakua, työvoiman jakoa, jälkikasvun lajittelua ja yhteistyökykyistä kuljetusta. Kaikissa näissä esimerkeissä muurahaiset koordinoivat toimintaansa stigmergian avulla, joka on eräs epäsuora tapa kommunikoida, missä viestit välittyvät ympäristöön tehtyjen muutosten kautta. Esimerkiksi ruokaa hakevat muurahaiset jättävät maahan kemikaalia, joka kasvattaa seuraavien muurahaisten todennäköisyyttä käyttää samaa reittiä. Biologit ovat osoittaneet, että sosiaalisilla hyönteisillä havaitut monet kolonnatason toimintatavat voidaan selittää melko yksinkertaisilla malleilla, joissa on vain stigmergistä kommunikointia. Muurahaisalgoritmien idean taustalla on tietynlaisen keinotekoisen stigmergian käyttö, joka koordinoi keinotekoisten yksilöiden yhteisöjä. Yksi menestyneimmistä muurahaisalgoritmeista on muurahaiskolonnaoptimointi eli ACO, jonka idea perustuu ruokaa etsiviin muurahaisiin, ja jota hyödynnetään diskreeteissä optimointiongelmissa. Tässä ensimmäisessä osiossa käsitellään sitä, miten oikeat muurahaiset ovat olleet inspiraationa keinomuurahaisille, jotka kykenevät ratkaisemaan diskreettejä optimointiongelmia. Useilla muurahaislajeilla on primitiivisesti kehittynyt näköaisti ja jotkin lajit ovat täysin sokeita. Muurahaisyksilöiden välinen kommunikointi perustuu suurelta osin muurahaisten tuottamiin kemikaaleihin, feromoneihin. Näistä kenties merkittävin on niin kutsuttu jälkiferomoni, jota jotkin lajit käyttävät merkitsemään polkuja maahan, esimerkiksi ruoan luota pesään. Tämä kollektiivinen jälkien jättämis- ja jälkien seuraamiskäytös on ollut ACO-algoritmien inspiraation lähteenä. Muurahaiset valitsevat todennäköisimmin aina reitin, jossa on suurin feromonikonsentraatio. 4

6 2.1 Tuplapolkukoe Deneubourg ja kollegat tekivät mielenkiintoisia kokeita Argentinemuurahaisilla, joissa yhdistettiin pesä ja ruoan lähden kahdella polulla. Kokeissa vaihdeltiin polkujen pituuksien suhdetta r = l l /l s, missä l l on pidemmän polun pituus ja vastaavasti l s lyhyemmän polun pituus. Ensimmäisessä kokeessa polut olivat yhtä pitkät (r = 1). Aluksi muurahaiset olivat vapaita kulkemaan pesän ja ruoan lähteen välillä ja prosentuaaliset osuudet muurahaisista, jotka valitsivat tietyn polun, havainnoitiin ajan kuluessa. Lopputuloksena havaittiin, että vaikka alussa oli sattuman varaisia valintoja, lopulta kaikki muurahaiset käyttivät samaa polkua. Tämä tulos voidaan selittää seuraavasti. Kokeen alussa poluilla ei ole lainkaan feromonia. Tällöin muurahaisilla ei ole mitään preferenssiä ja ne valitsevat samalla todennäköisyydellä kumman tahansa polun. Satunnaisvaihtelusta johtuen muutama useampi muurahainen valitsee ennemmin toisen reitin, jolloin kulkiessaan ne jättävät myös feromonia kulkemalleen reitille. Kun reitillä on enemmän feromonia, yhä useampi muurahainen valitsee tämän reitin. Lopulta muurahaiset konvergoivat käyttämään vain yhtä reittiä. Tätä kutsutaan autokatalyyttiseksi, itseään vahvistavaksi tai positiivisen palautteen prosessiksi, joka toimii esimerkkinä muurahaisten itseorganisoidusta käytöksestä. Tämä makroskooppinen kaava (tässä viitataan konvergoitumiseen toiselle polulle) tulee näkyviin prosesseissa ja vuorovaikutuksissa, jotka tapahtuvat mikroskooppisella tasolla. Tämä on myös esimerkki stigmergisestä käytöksestä. Toisessa kokeessa toinen polku oli kaksi kertaa pidempi kuin toinen eli r = 2. Suurimmalla osalla testeistä muurahaiset päätyivät käyttämään vain lyhyempää reittiä jonkin ajan kuluttua. Kuten ensimmäisessä kokeessa, alussa molemmat polut vaikuttavat identtisiltä, joten muurahaiset valitsevat reitin satunnaisesti. Siis odotusarvoisesti puolet valitsevat pidemmän reitin ja puolet lyhyemmän reitin, vaikka stokastisia heilahteluja voi ilmaantuja, jolloin toinen reitti on toista suositumpi valinta. Tämä koeasetelma eroaa huomattavasti edellisestä kokeesta. Koska toinen polku on toista lyhyempi, muurahaiset, jotka valitsevat lyhyemmän reitin ehtivät aiemmin ruoan lähteel- 5

7 le. Kun ne ovat palaamassa pesälle, niiden täytyy jälleen valita lyhyemmän ja pidemmän polun väliltä. Korkeampi feromonitaso suosii lyhyempää reittiä. Tällöin feromoni alkaa kasaantua nopeammin lyhyemmälle reitille, jota lopulta kaikki muurahaiset käyttävät. Verrattuna ensimmäiseen kokeeseen, alun satunnaisvaihteluiden vaikutus vähenee ja stigmergian, autokatalyysin ja polkujen pituuksien suhde ovat päätoimintamekanismit. Huomionarvoista on kuitenkin se, että vaikka pidempi polku on toista polkua kaksi kertaa pidempi, kaikki muurahaiset eivät käytä lyhyempää polkua vaan edelleen pieni prosentti käyttää pidempää haaraa. Tämä voidaan tulkita eräänlaiseksi polkujen tutkimiseksi. Erityisen mielenkiintoista on havaita, mitä tapahtuu konvergoinnin jälkeen, kun muurahaiskolonnalle tarjotaan vieläkin lyhyempää reittiä pesän ja ruoan lähteen välillä. Tällaisessa lisäkokeessa muurahaisilla oli käytettävissään vain pidempi polku ja pitkän ajan kuluttua lyhyempi polku lisättiin. Tässä tapauksessa muurahaiset valitsivat vain hajanaisesti lyhyemmän reitin ja kolonna juuttui käyttämään pidempää reittiä. Tämä voidaan selittää pidemmän polun korkealla feromonikonsentraatiolla ja hitaalla feromonin haihtumisella. Suurin osa muurahaisista valitsee pidemmän reitin johtuen sen korkeammasta feromonitasosta ja autokatalyyttisestä toiminnasta vahvistaen edelleen pidemmän polun feromonitasoa, vaikka lyhempi reitti ilmaantuisikin. Feromonin haihtuminen on liian hidasta suosiakseen lyhyempien reittien tutkimista. Feromonin elinikä on verrannollinen kokeen pituuteen, mikä tarkoittaa sitä, että feromoni haihtuu liian hitaasti, jotta muurahaiskolonna voisi unohtaa alioptimaalisen polun, johon se on konvergoitunut, ja löytää ja oppia uuden lyhyemmän reitin. 2.2 Stokastinen malli Deneubourg ja kollegat esittivät yksinkertaisen stokastisen mallin, joka riittävän hyvin kuvaa tuplapolkukokeessa havaittua muurahaiskolonnan toiminnan dynamiikkaa. Tässä mallissa ψ muurahaista per sekunti kulkee pesältä ruuan luo ja takaisin vakionopeudella v [cm/s] jättäen yhden feromoniyksikön kulkemalleen polulle. Olkoon edelleen l s ja l l [cm] lyhyen ja pitkän polun 6

8 (a) (b) Kuva 2.1 pituudet. Muurahainen, joka valitsee lyhyen reitin, kulkee sen t s = l s /v sekunnissa, kun taas muurahainen, joka valitsee pidemmän reitin, kulkee sen r t s sekunnissa, missä r = l l /l s. Olkoon todennäköisyys p ia (t), jossa muurahainen saapuu päätöksentekokohtaan i {1, 2} (katso kuva (2.1b)) ja valitsee haaran a {s, l}, missä s tarkoittaa lyhyttä polkua ja l pitkää. Olkoon polun feromonin kokonaismäärä ajan t funktio ϕ ia (t), joka verrannollinen muurahaisten lukumäärään, jotka ovat käyttäneet polkua ajanhetkeen t mennessä. Esimerkiksi todennäköisyys p is (t), että valitaan lyhyempi reitti, on p is (t) = (t s + ϕ is (t)) α (t s + ϕ is (t)) α + (t s + ϕ il (t)) α, (2.1) missä lausekkeen muoto ja parametrin α = 2 arvo perustuvat muurahaisilla tehtyihin polun seuraamiskokeisiin. ϕ il (t) lasketaan vastaavasti siten, että ϕ is (t) + ϕ il (t) = 1. Tämä malli olettaa, että polun feromonin määrä on suoraan verrannollinen polkua käyttäneiden muurahaisten lukumärään ajanhetkeen t mennessä eli toisin sanoen feromonin haihtumista ei tapahdu tämän mallin puitteissa. Tämä on yhtenevää tehtyjen kokeiden kanssa, joissa havaittiin, että muurahaisten konvergoituminen lyhyemmälle polulle on ajallisesti samaa kertaluokkaa kuin feromonin keskimääräinen elinikä. Dierentiaaliyhtälöt, jotka 7

9 kuvaavat stokastisen mallin kehittymistä, ovat seuraavat dϕ is /dt = ψp js (t t s ) + ψp is (t), (i = 1, j = 2; i = 2, j = 1), dϕ il /dt = ψp jl (t r t s ) + ψp il (t), (i = 1, j = 2; i = 2, j = 1). (2.2) (2.3) Dierentiaaliyhtälöistä ensimmäinen voidaan lukea seuraavasti: feromonin määrän hetkellinen muutos ajanhetkellä t polulla s, päätöksentekokohdassa i on muurahaisten virtausmäärävakio ψ kerrottuna todennäköisyydellä valita lyhyempi polku päätöksentekokohdassa j ajanhetkellä t t s summattuna muurahaisten virtausmäärävakio kerrottuna todennäköisyydellä valita lyhyempi polku päätöksentekokohdassa i ajanhetkellä t. Vakio t s kuvastaa aikaviivettä, joka kuluu, kun muurahaiset kulkevat lyhyemmän polun. Jälkimmäinen yhtälö kuvastaa vastaavasti feromonin määrän hetkellistä muutosta pidemmällä polulla. Tässä tapauksessa aikaviive on r t s. Tässä mallissa muurahaiset jättävät feromonia meno- ja paluupoluillaan. Itse asiassa tämä on välttämätön käytös, jotta muurahaiskolonna konvergoituisi lyhyemmälle polulle. Jos muurahaiset jättäisivät feromonia vain menotai paluupolullaan, ne eivät löytäisi lyhyintä polkua. Tämä on todettu myös oikeilla muurahaisilla tehdyillä kokeilla. 2.3 Kohti keinomuurahaisia Tuplapolkukokeet osoittavat, että muurahaiskolonnilla on sisäänrakennettu optimointikyky. Paikalliseen tietoon perustuvan todennäköisyyssääntöjen käytön pohjalta muurahaiset pystyvät löytämään lyhimmän reitin kahden pisteen välillä. Tuplapolkukokeiden inspiroimana on mahdollista suunnitella keinomuurahaisia, jotka liikkuessaan graalla mallintavat tuplapolkua ja löytävät lyhimmän polun kahden solmun välillä, jotka vastaavat pesää ja ruuan lähdettä. Ensimmäisenä askeleena kohti keinomuurahaisten määritelmää, tarkastellaan seuraavaa graaa. 8

10 (a) (b) Kuva 2.2 Graa (2.2a) koostuu kahdesta solmusta, jotka kuvastavat pesää ja ruuan lähdettä, ja jotka ovat yhdistyneet pitkällä ja lyhyellä kaarella. Tässä esimerkissä pidempi kaari on r kertaa pidempi kuin lyhyempi kaari, missä r on kokonaisluku. Lisäksi oletamme, että aika on diskreetti (t = 1, 2, 3,... ) ja jokaisella aika-askeleella jokainen muurahainen liikkuu kohti toista solmua vakionopeudella yksi pituusyksikkö per yksi aikayksikkö. Täten muurahaiset lisäävät yhden feromonin käyttämälleen kaarelle. Muurahaiset liikkuvat graalla valiten reittinsä todennäköisyyksien perusteella. p is (t) on todennäköisyys sille, että muurahainen solmussa i ajanhetkellä t valitsee lyhyemmän polun ja vastaavasti todennäköisyys valita pidempi polku on p il (t). Nämä todennäköisyydet ovat feromonijälkien ϕ ia funktio, jossa muurahaiset solmussa i(i {1, 2} päätyvät polulle a, (a {s, l}): p is (t) = [ϕ is (t)] α [ϕ is (t)] α + [ϕ il (t)] α, p il(t) = Polun feromonimäärän päivitys tehdään seuraavasti: [ϕ il (t)] α [ϕ is (t)] α + [ϕ il (t)] α (2.4) ϕ is (t) = ϕ is (t 1) + p is (t 1)m i (t 1) + p js (t 1)m j (t 1), (i = 1, j = 2; i = 2, j = 1) ϕ il (t) = ϕ il (t 1) + p il (t 1)m i (t 1) + p js (t 1)m j (t r), (i = 1, j = 2; i = 2, j = 1), missä muurahaisten lukumäärä m i (t) solmussa i ajanhetkellä t on m i (t) = p js (t 1)m j (t 1) + p jl (t r)m j (t r), (i = 1, j = 2; i = 2, j = 1) (2.5) (2.6) (2.7) 9

11 Tämä malli eroaa edellisessä kappaleessa määritellystä stokastisesta mallista kahdessa merkittävässä kohdassa. Malli käsittää koko järjestelmän keskimääräistä käyttäytymistä eikä yksittäisten muurahaisten stokastista toimintaa. Malli toimii diskreetissä ajassa toisin kuin edellinen toimii jatkuvassa ajalla. Siten tässä mallissa lasketaan dierenssiyhtälöitä ja edellisessä mallissa dierentiaaliyhtälöitä. Kuvan (2.1b) mekanismia voidaan kuvata myös graalla (2.2b). Tässä mallissa graan jokainen kaari on yhtä pitkä ja pidempi polku esitetään kaarien ketjuna. Esimerkiksi tässä kuvassa pidempi polku on kaksi kertaa pidempi kuin lyhyempi. Feromonimäärien päivitykset tehdään yhden aikayksikön viipeellä jokaiselle kaarelle. Kuvan (2.2) graat ovat laskennallisesti katsoen ekvivalentteja, vaikkakin jälkimmäinen malli sallii helpomman algoritmisen implementoinnin tarkastellessa graaa, jossa on useita solmuja. Simuloinnit tällä diskreettiaikaisella mallilla antaa hyvin samankaltasia tuloksia kuin jatkuva-aikainen mallikin, joka esitettiin yhtälöillä (2.1), (2.2), (2.3). Esimerkiksi jos asetetaan muurahaisten lukumääräksi 20, polkujen pituuden suhteeksi r = 2 ja parametriksi α = 2, malli konvergoi melko nopeasti kohti lyhyemmän polun käyttöä. 2.4 Keinomuurahaiset ja minimikustannuspolut Edellisessä osiossa osoitimme, että dierenssiyhtälöryhmä pystyy hyvin jäljentämään jatkuva-aikaisen mallin keskimääräistä toimintaa. Tavoitteenamme on kuitenkin määritellä algoritmi, jota voidaan käyttää ratkaisemaan minimikustannusongelmia monimutkaisimmilla graafeilla kuin aiemmin esitellyissä tuplapolkukokeissa. Tämä tavoite mielessä, tarkastellaan yhtenäistä graaa G = (N, A), jossa N on joukko solmuja (n = N ) ja A on suuntaamattomien kaarien joukko, joka yhdistää solmut. Kaksi pistettä, joiden välillä haluamme määrittää minimikustannuspolun, kutsuttakoon lähtö- ja maalisolmuiksi (eng. source and destination nodes). 10

12 Kuva 2.3: Esimerkki graasta G Jos yritämme ratkaista minimikustannusongelmaa graalla G käyttäen keinomuurahaisia, joiden toiminta on suoraviivainen laajennus edellisessä osiossa määritellystä toiminnasta, muurahaiset saattavat valitettavasti generoida silmukoita. Menoreiteillä tapahtuvan feromonijäljen päivitysmekanismin vuoksi, silmukat tulevat muurahaisille yhä houkuttelevimmiksi ja ne saattavat jäädä niihiin jumiin. Vaikka muurahainen voi poistua tällaisista silmukoista, kokonaisferomonijakaumasta tulee sellainen, ettei lyhyitä polkuja enää suosita, eikä mekanismi, jolla lyhyempi polku löydettiin tuplapolkukokeessa, enää toimi. Koska tämä ongelma johtuu menopolulla tapahtuvasta feromonijäljen päivityksestä, vaikuttaisi siltä, että yksinkertaisin ratkaisu ongelmaan olisi poistaa menopolun feromonipäivitys, jolloin muurahaiset olisivat riippuvaisia vain paluupolun feromonipäivityksestä. Kuten on jo aiemmin todettu kappaleen 2.2 lopussa, jos menopolun feromonipäivitys poistetaan, malli ei enää toimi, ei edes yksinkertaisimmassa tuplapolkukokeessa. Näin ollen keinomuurahaisten kykyjä tulee laajentaa siten, että todellisten muurahaisten tärkeimmät ominaisuudet säilytetään ja että ne pystyvät ratkaisemaan minimikustannuspolkuongelman yleisillä graafeilla. Erityisesti keinomuurahaisille annetaan rajallinen muisti, johon ne voivat tallentaa osapolut, joita ne ovat seuranneet lähtöhetkestä nykyhetkeen ja lisäksi ne voivat tallentaa polkujen vaatiman kustannuksen. Muistin käytön avulla muurahaiset kykenevät implementoimaan useita hyödyllisiä toimintatapoja, joiden avulla ne pystyvät tehokkaasti luomaan ratkaisuja minimikustannuspolkuongelmaan. Nämä toimintatavat ovat: 1. todennäköisyyksiin perustuva ratkaisun luominen, joka suosii feromonijälkiä 11

13 2. deterministinen paluupolku silmukan muodostumisenestolla ja feromonipäivityksellä 3. luotujen ratkaisujen laadun määritys, jonka avulla määritetään asetettavan feromonin määrä. Huomioitakoon, että yksinkertaisimmassa minimikustannuspolun haussa, ratkaisun laadun arvio voidaan tehdä muurahaisen avulla jo luotaessa ratkaisua, mutta tämä ei ole välttämättä totta muissa ongelmissa, joissa ei voitane helposti määrittää osaratkaisuja. Lisäksi, voidaan osoittaa, että jos huomioidaan feromonin haihtuminen, algoritmin suorituskykyä voidaan huomattavasti parantaa, mikä ei ole välttämätöntä selittämään todellisten muurahaisten toimintaa. Seuraavaksi selostetaan lyhyesti edellä mainitut toimintatavat ja feromonin haihtuminen implementoituna algoritmiin, jota kutsuttakoon Simple- ACOksi (tai lyhyemmin S-ACO). Huomiotakoon, että vaikka se esittää suurta parannusta kohti tehokasta algoritmia minimikustannusongelmien ratkaisuun graafeilla, S-ACO tulisi pitää vain opetuskeinona avaamaan ACOalgoritmeissa piileviä mekanismeja Todennäköisyyksiin perustuvat menomuurahaiset ja ratkaisun luominen S-ACO-muurahaisilla voidaan ajatella olevan kaksi eri tilaa - meno ja paluu. Ne ovat menotilassa, kun ne liikkuvat pesästä kohti ruuan lähdettä ja paluutilassa, kun ne palaavat ruuan luota pesälle. Kun menotilassa oleva muurahainen saavuttaa määränpäänsä, se vaihtaa paluutilaan ja aloittaa matkansa kohti lähtöpistettä. S-ACOssa menotilassa olevat muurahaiset eli menomuurahaiset luovat ratkaisun valitsemalla todennäköisyyksien perusteella seuraavan solmun, johon ne kulkevat. Seuraava solmu valitaan siis naapurisolmujen joukosta, mikä tarkoittaa sitä, että graan G = (N, A), kaksi solmua i, j N ovat naapureita, jos on olemassa kaari (i, j) A. Todennäköisyyksiiin perustuva valinta suosii feromonijälkiä, joita graalla aiemmin kulkeneet muurahaiset ovat asettaneet. Menomuurahaiset eivät aseta lainkaan feromonia 12

14 liikkuessaan. Tämän ja deterministisesti määritellyn paluun avulla voidaan välttää silmukoiden muodostumista Determinisiset paluumuurahaiset ja feromonipäivitys Tarkan muistin käytön avulla muurahainen kykenee määrittämään kulkemansa polun etsiessään määränpääsolmua. Lisäksi S-ACO-muurahaiset parantavat suorituskykyä implementoimalla silmukoiden eston. Käytännössä ennen kuin muurahaiset rupeavat liikkumaan taaksepäin muistamallaan polulla, ne poistavat kaikki silmukat siitä. Kun ne siirtyvät paluutilaan, ne jättävät feromonia juuri kulkemalleen polulle Feromonien päivitys perustuen ratkaisun laatuun S-ACO-algoritmissa muurahaiset muistavat solmut, joissa ovat käyneet menopolullaan, ja lisäksi myös kulkemiensa kaarien kustannuksen, mikäli graa on painotettu. Näin ollen ne kykenevät määrittämään luomiensa ratkaisujen kustannuksen. Tämän määrityksen avulla ne mukauttavat paluupolulle asetettavan feromonin määrän. Kun feromonipäivityksestä tehdään ratkaisun laadun funktio, seuraavat muurahaiset pystyvät tehokkaammin luomaan parempia ratkaisuja. Suuremmat feromonimäärät lyhyemmille poluille parantavat huomattavasti algoritmin suorituskykyä. Tämä on haivattu todeksi myös luonnossa. Esimerkiksi Lasius niger -muurahaiset jättävät enemmän feromonia palatessaan runsaammalta ruuan lähteeltä Feromonin haihtuminen Oikeissa muurahaisyhdyskunnissa feromonin määrä vähenee ajan myötä johtuen haihtumisesta. S-ACO-algoritmissa haihtumista simuloidaan määrittelemällä haihtumissääntö, mikä voi olla vakio. Feromonin haihtuminen vähentää alkuvaiheessa jätetyn feromonin vaikutusta, jolloin keinomuurahaiset ovat voineet luoda huonolaatuisia ratkaisuja. Haihtuminen voi olla hyvinkin hyödyllistä keinomuurahaisilla, vaikka oikeilla muurahaisilla feromonin haihtuminen ei ole mitenkään merkittävää. 13

15 2.5 S-ACO-algoritmi Seuraavaksi määrittelemme tarkasti S-ACO-algoritmin, jonka avulla saadaan minimikustannuspolkuongelmaan ratkaisu. Jokaiselle graan G = (N, A) kaarelle (i, j) määritellään muuttuja τ ij, jota kutsutaan keinoferomonijäljeksi (vastaisuudessa lyhyesti feromonijälki). Muurahaiset kykenevät lukemaan ja kirjoittamaan feromonijälkiä. Feromonin määrä on verrannollinen kaaren käyttömäärään Polun hakutoiminta Jokainen muurahainen rakentaa ratkaisun lähtien alkusolmusta noudattaen kohta kohdalta tiettyä päätöksentekotapaa. Jokaisessa solmussa muurahainen lukee solmuun itseensä tai siitä lähteviin kaariin tallennetut paikalliset tiedot, joita hyödynnetään stokastisesti määrittämään solmu, johon seuraavaksi kuljetaan. Jokaisen hakuprosessin alussa jokaiselle kaarelle määritetään vakioferomonimäärä (esimerkiksi τ ij = 1, (i, j) A). Kun muurahainen k on solmussa i, se käyttää feromonijälkiä τ ij laskemaan todennäköisyyttä valita solmu j seuraavaksi: τ ij α, jos j N p k l N ij = i k τil α i k, (2.8) 0, jos j / N k missä Ni k on muurahaisen k naapurusto solmussa i. S-ACO:ssa solmun i naapurusto käsittää kaikki solmut, jotka ovat suoraan kaaren kautta yhteydessä solmuun i graassa G = (N, A), lukuunottamatta solmun i edeltäjää eli solmua, josta muurahainen siirtyi solmuun i. Näin ollen muurahainen välttyy palaamasta jo vierailtuun solmuun. Siinä ainoassa tapauksessa, kun Ni k on tyhjä, mikä tarkoittaa umpikujaa graalla, solmun i edeltäjä liitetään joukkoon N k i. Huomio, että tämä päätöksentekotapa, saattaa johtaa silmukoihin. Muurahainen toistuvasti hyödyntää tätä päätöksentekotapaa liikkuessaan lähtösolmusta maalisolmuun. Ajanhetki jolloin maalisolmuun saavutaan voi olla eriävä eri muurahaisten välillä johtuen muurahaisten polkujen eroista. i 14

16 2.5.2 Polun seuraaminen ja feromonipäivitys Saapuessaan maalisolmuun, muurahainen vaihtaa menotilasta paluutilaan ja seuraa juuri kulkemaansa polkua askel askeleelta. Lisäksi ennen paluumatkaansa muurahainen voi poistaa luomansa silmukat, joita on saattanut muodostua maalisolmun etsinnässä. Silmukoiden ongelmana on se, että kun muurahainen kulkee polkua takaisin, se saattaa jättää silmukoihin useita kertoja enemmän feromonia kuin pitäisi, mikä johtaa itsevahvistuvien silmukoiden ongelmaan. Silmukoiden poisto voidaan suorittaa iteratiivisesti skannaamalla solmuindeksejä järjestyksessä lähtösolmusta alkaen. Kun käsitellään solmua s paikalla i, polku skannataan maalisolmusta alkaen, kunnes solmu s ilmaantuu ensimmäisen kerran paikassa j. On aina totta, että i j, sillä skannausprosessi päättyy viimeistään paikassa i. Jos j > i, alipolku paikasta i + 1 paikkaan j vastaa silmukkaa, joka voidaan poistaa. Skannausprosessi on kuvattu seuraavassa esimerkissä. Tämä esimerkki osoittaa, että silmukan Kuva 2.4: Kuvaus silmukan poistoprosessista poistoproseduuri ei välttämättä poista suurinta silmukkaa. Tässä esimerkissä kolmen yksikön pituinen silmukka poistetaan, mutta pisintä silmukkaa ei poisteta, sillä se ei enää ole olemassa ensimmäisen silmukan poiston jälkeen. Yleisemmin sanottuna, jos polku sisältää sisäkkäisiä silmukoita, lopullinen silmukkavapaa polku on riippuvainen silmukoiden 15

17 poistojärjestyksestä. S-ACO-algoritmissa silmukan poisto on implementoitu siten, että silmukat poistetaan samassa järjestyksessä kuin ne luodaankin. Palatessaan lähtösolmuun k:s muurahainen jättää τ k verran feromonia jokaiselle kulkemalleen kaarelle. Tarkalleen ottaen, jos muurahainen k on paluutilassa ja se kulkee kaarta (i, j) pitkin, se muuttaa feromoniarvoa seuraavasti: τ ij τ ij + τ k. (2.9) Tämän säännön perusteella muurahainen, joka kulkee solmujen i ja j väliä yhdistävää kaarta pitkin, lisää seuraavien muurahaisten todennäköisyyttä käyttää samaa kaarta. Tärkeä huomioitava asia on τ k :n valinta. Yksinkertaisimmillaan tämä on vakio kaikilla muurahaisilla. Tässä tapauksessa ainoastaan polkujen eriävä pituus suosii lyhyempien polkujen löytämistä eli muurahaiset, jotka ovat löytäneet lyhyemmän polun, voivat jättää feromonia aiemmin kuin ne muurahaiset, jotka ovat valinneet pidemmän reitin. Lisäyksenä deterministiseen paluupolun feromonipäivitykseen, muurahaiset voivat jättää feromonia polun pituuden funktiona - mitä lyhyempi polku, sitä enemmän feromonia. Yleisesti vaaditaan, että muurahaisen jättämän feromonin määrä on polun pituuden ei-kasvava funktio Feromonijäljen haihtuminen Feromonijäljen haihtuminen voidaan nähdä tutkimusmekanismina, jonka avulla vältetaan kaikkien muurahaisten nopea konvergoituminen alioptimaaliselle polulle. Todellisilla muurahaisilla feromonin haihtumisella ei ole suurta merkitystä lyhyimmän polun löytämisessä. Sitä vastoin keinomuurahaisilla tämä mekanismi on hyvinkin ratkaiseva johtuen mahdollisesti siitä, että keinomuurahaisilla ratkaistaan hyvinkin monimutkaisia optimointiongelmia. Tällainen mekanismi, kuten haihtuminen, suosii virheiden ja huonojen valintojen unohtamista, minkä avulla kyetään jatkuvasti parantamaan ratkaisua. Lisäksi keinotekoinen feromonin haihtuminen on tärkeässä roolissa rajaamassa feromonijälkien maksimiarvoa. Haihtuminen vähentää feromonijälkiä eksponentiaalisesti. S-ACO- 16

18 algoritmissa feromonin haihtuminen on lomitettu yhteen feromonin asettamisen kanssa. Kun jokainen muurahainen k on kulkenut seuraavaan solmuun aiemmin kuvatun hakutoimintansa mukaan, feromonijäljet haihtuvat jokaisella kaarella seuraavan kaavan mukaan τ ij (1 ρ)τ ij, (i, j) A, (2.10) missä ρ (0, 1] on parametri. Kun feromonin haihtuminen on toteutettu jokaiselle kaarelle, feromonin määrä τ k lisätään kaarille. Yksi S-ACOalgoritmin iteraatiosykli käsittää muurahaisten liikkumisen, feromonin haihtumisen ja feromonin asettamisen S-ACO-algoritmilla tehdyt kokeet Referoidaan lyhyesti Deneuborg et al. tekemiä kokeita luvussa [1]. Näissä kokeissa saatiin seuraavia tuloksia. S-ACO-algoritmin suorituskyky on huomattavasti heikompi ilman ratkaisun laatuun perustuvaa feromonin haihtumista ja monimutkaisissa ongelmissa välttämätöntä. Erityisesti algoritmi konvergoi usein alioptimaaliseen ratkaisuun. Tällainen konvergoituminen on sitä nopeampaa, mitä suuremmat arvot parametreilla α ja ρ on. Feromonin haihtumiskerroin ρ voi olla hyvin kriittinen. Kun testeissä ρ:n arvoksi asetettiin 0, 1; S-ACO konvergoi aina lyhimmälle polulle. Arvon ollessa 0, 2 algoritmi konvergoi merkittävän usein alioptimaaliselle polulle. Suuret parametrin α arvot aiheuttavat algoritmin toimimaan huonosti, sillä se liiallisesti korostaa alustavaa satunnaisvaihtelua. Kolonnan suuruus tulee olla suurempi kuin yksi, jotta pystytäään ratkaisemaan edes yksinkertaisinkin tuplapolkukoe. Lisäksi mitä suurempi kolonna on, sitä paremmin algoritmi konvergoi. Tosin tämän haittapuolena on pidemmän simulointiajat. 17

19 Nämä havainnot ovat tärkeitä seuraavissa kappaleissa, kun määritellään ACO:n metaheurestiikkaa tai ratkaistaan erilaisia diskreettejä optimointiongelmia. 18

20 3 Muurahaiskolonnaoptimoinnin metaheurestiikka Metaheurestiikka viittaa mestaristrategiaan, joka ohjaa ja modioi muita heurestiikoita tuottamaan parempia ratkaisuja kuin mitä tavallisesti luodaan lokaalien optimien haussa. Tabuhaku, Fred Glover ja Manuel Laguna, 1998 Kombinatoriset ongelmat ovat kiehtovia, sillä ne on usein helppo esittää, mutta vaikea ratkaista. Useat sovelluksista löytyvät ongelmat ovat N P- täydellisiä, mikä tarkoittaa sitä, että ongelmaa ei voida ratkaista polynomiaalisessa laskenta-ajassa. Tätä ei kuitenkaan ole todistettu, mutta näin vahvasti uskotaan [6]. Näin ollen, jotta voitaisiin ratkaista käytännöllisesti laajoja ongelmia, joudutaan käyttämään approksimointimenetelmiä, jotka antavat lähellä optimia olevan ratkaisun suhteellisen nopeasti. Tällaisia algoritmeja kutsutaan löyhästi heurestiikoiksi, jotka usein käyttävät johonkin tiettyyn ongelmaan liittyvää tietoa luodakseen tai parantaakseen ratkaisuja. Yksittäisten ratkaisualgoritmien haittana on, että ne usein luovat vain rajatun määrän ratkaisuja tai niiden suoritus pysähtyy lokaaliin optimiin. Esimerkkeinä mainittakoon ahne konstruktiivinen heurestiikka ja iteratiivinen parannusmenetelmä. Ilmeinen laajennus lokaaliin hakuun olisi käyttää eri aloituspistettä, mutta tämä harvoin tuottaa merkittävää parannusta. Useita lähestymistapoja on esitetty, jotta näitä ongelmia voitaisiin välttää. Viime aikoina useat tutkijat ovatkin keskittyneet uuteen algoritmien luokkaan, jota kutsutaan metaheurestiikaksi. Metaheurestiikka on lajitelma algoritmisia käsitteitä, joita voidaan käyttää määrittämään heurestiikkamenetelmiä, joilla voidaan ratkaista useita erilaisia ongelmia. Metaheurestiikoiden käyttö on merkittävästi lisännyt kykyä löytää erittäin laadukkaita ratkaisuja vaikeisiin, tärkeisiin, huonosti ymmärrettyihin ja laajoihin ongelmiin järkevässä ajassa. Erityisen menestyksekäs metaheurestiikka on muurahaisten inspiroima. Tässä kappaleessa esittelemme muurahaiskolonnaoptimoinnin metaheurestisen viitekehyksen, joka käsittää algoritmisen lähestymistavan. Algoritmeja, jotka sopivat ACO-metaheurestiseen viitekehykseen, kutsutaan seuraavaksi ACO-algoritmeiksi. 19

21 3.1 Kombinatorinen optimointi Kombinatoriset optimointiongelmat käsittävät arvojen löytämistä diskreetteihin muuttujiin siten, että optimaalinen ratkaisu löydetään tavoitefunktion mukaisesti. Useat merkittävät käytännölliset tai teoreettiset ongelmat ovat kombinatorista laatua. Esimerkkeinä mainittakoon edellisessä luvussa käsitelty lyhimmän polun löytäminen, lisäksi useat oikean maailman ongelmat kuten minimikustannussuunnitelma, jonka perusteella kuljetaan tavarat asiakkaille, optimaalinen työtehtävien jako työntekijöiden kesken, Internetin datapakettien reitityssuunnitelma, tuotantolinjan töiden optimaalinen järjestys ja lentohenkilöstön allokointi lentokoneisiin. Kombinatorisessa optimointiongelmassa joko maksimoidaan tai minimoidaan. Ongelma on käsite, joka viittaa yleisesti kysymykseen, johon kaivataan vastausta, ja jossa on useita parametreja ja muuttujia, joilla ei ole määrättyä arvoa. Instanssi viittaa ongelmaan, jossa jokaiselle parametrille on määrätty tietyt arvot. Esimerkiksi kauppamatkustajan ongelma (TSP = Traveling Salesman Problem) on yleisesti määriteltynä ongelma, jossa pyritään löytämään minimikustannus Hamiltonin kierrokselle painotetulla graalla. Sen sijaan TSP-instanssissa on tietty määrä solmuja ja kaarien painoja. Muodollisemmin ilmaistuna kombinatorisen ongelman Π instanssi on kolmikko (S, f, Ω), missä S on käypä ratkaisujoukko, f on kohdefunktio, joka määrittää kohdefunktioarvon jokaiselle käypälle ratkaisulle s S, ja Ω on rajoitteiden joukko [10]. Ratkaisut, jotka kuuluvat käypään ratkaisujoukkoon S S ja jotka täyttävät rajoitteet Ω, kutsutaan sallituiksi ratkaisuiksi. Tavoitteena on löytää globaalisesti optimaalinen sallittu ratkaisu s. Minimointiongelmille tämä tarkoittaa minimikustanteisen ratkaisun s S löytämisen siten, että f(s ) f(s) kaikilla s S. Maksimointiongelmissa ratkaisun ehtona on f(s ) f(s) kaikilla s S. Seuraavaksi käsitellään vain minimointiongelmia, sillä funktion g maksimointi on sama tehtävä kuin funktion f = g minimointi. 20

22 3.2 Laskennallinen kompleksisuus Suoraviivainen kombinatorisen ongelman ratkaisutapa olisi tyhjentävä haku, mikä tarkoittaa kaikkien mahdollisten ratkaisujen luettelointia ja joista valitaan paras. Useimmissa tapauksissa tällainen naiivi lähestymistapa osoittautuu nopeasti mahdottomaksi, sillä ratkaisujen lukumäärä kasvaa eksponentiaalisesti suhteessa instassikokoon n, mikä voi olla esimerkiksi tarvittavien bittien lukumäärä, joka tarvitaan instanssin koodaukseen. Joidenkin kombinatoristen optimointiongelmien struktuurin tarkastelu ja luonteenpiirteiden hyväksikäyttö auttaa määrittämään algoritmeja, joiden avulla voidaan löytää ratkaisuja huomattavasti nopeammin kuin tyhjentävän haulla. Toisaalta joissakin tapauksissa edes parhaimmat algoritmit eivät suoriudu sen paremmin kuin tyhjentävä haku. Kombinatorista ongelmaa ratkaistaessa on tärkeää tietää, kuinka vaikeaa optimin löytäminen on. Eräs tapa kuvata tätä vaikeusastetta on pahimman tapauksen kompleksisuus, joka määritellään siten, että ongelmalla Π on pahimman tapauksen kompleksisuus O(g(n)), mikäli paras tunnettu algoritmi sen ratkaisemiseen löytää optimin mille tahansa instanssille kokoa n laskentaajassa, joka on ylhäältä rajoitettu funktiolla vakio g(n). Esimerkiksi Π on ratkaistavissa polynomiaalisessa ajassa, jos g(n) on polynomi. Vaikka jotkin kombinatoriset ongelmat on polynomiaalisessa ajassa ratkaistavia, suurimmalle osalle ongelmista ratkaisuaika kasvaa eksponentiaalisesti instanssikoon kasvaessa. N P-täydellisyyden teoria käsittelee kombinatoristen ongelmien vaikeusasteita. Teoria luokittelee ongelmat kahteen pääluokkaan: niihin, jotka on ratkaistavissa polynomiaalisessa ja niihin, jotka ei [11]. Kauppamatkustajan ongelma on esimerkki N P-täydellisestä ongelmasta. Mikäli optimaaliratkaisua ei voida löytää käytännössä tehokkaasti. Ainoana keinona on vaihtaa optimaalisuus tehokkuuteen. Toisin sanoen optimaalisuus uhrataan, jotta voidaan saada riittävän hyviä ratkaisuja polynomiaalisessa ajassa. Tällaisia approksimointialgoritmeja kutsutaan löyhästi heurestiikoiksi, joiden avulla esimerkiksi kauppamatkustajan ongelmaa ratkaistaan. 21

23 3.3 ACO-metaheurestiikka Muurahaiskolonnaoptimointi on metaheurestiikka, jossa keinomuurahaisten kolonna toimii yhteistyössä löytääkseen hyviä ratkaisuja vaikeisiin diskreetteihin optimointiongelmiin. ACO-algoritmeja voidaan käyttää ratkaisemaan sekä staattisia että dynaamisia kombinatorisia ongelmia. Staattisen ongelman piirteet on määritelty kerralla, eivätkä ne muutu ajan myötä. Dynaamiset ongelmat on määritelty joidenkin suureiden funktiona, joiden arvo määräytyy piilevän järjestelmän mukaan. Instanssi muuttuu näin ollen ajon aikana ja algoritmin tulee kyetä mukautumaan muuttuvaan ympäristöön. Esimerkkinä dynaamisesta ongelmasta mainittakoon Internetin reititysongelmat, joissa dataliikenne ja verkon topologia voi muuttua ajan myötä. Tässä osiossa kerrotaan ongelmien tyypistä, joihin voidaan soveltaa ACO-metaheurestiikkaa, keinomuurahaisten toiminnasta ja ACO-metaheurestiikan yleisestä rakenteesta Ongelman esitysmuoto ACO:n keinomuurahainen on stokastinen konstruktiivinen proseduuri, joka asteittain luo ratkaisun lisäämällä sopivasti ratkaisukomponentteja tekeillä olevaan osaratkaisuun. Näin ollen ACO-metaheurestiikkaa voidaan soveltaa mihin tahansa kombinatoriseen optimointiongelmaan, jolle voidaan määrittää konstruktiivinen eli rakentava heurestiikka. Konstruktiivinen algoritmi luo ratkaisun kombinatoriseen optimointiongelmaan iteratiivisesti, askel askeleelta, perääntymättä, lisäten ratkaisukomponentteja, kunnes koko ratkaisu on luotu. Vaikka komponenttien järjestys voi olla satunnainen, yleensä jotain heurestista sääntöä noudatetaan. Usein käytetään ahnetta heurestiikkaa, joka lisää ratkaisuun komponentin, joka vaikuttaa sillä hetkellä parhaimmalta. Vaikka tämä tarkoittaa sitä, että ACO-metaheurestiikkaa voidaan soveltaa moniin mielenkiintoisiin ongelmiin, todellisena ongelmana on se miten ongelma tulee esittää, jotta keinomuurahaiset voivat luoda siihen ratkaisun. Seuraavaksi esitetään keinomuurahaisten implementoinnin periaatteet. Oletetaan, että on minimointiongelma (S, f, Ω), missä S on käypien ratkaisujen joukko, f on kohdefunktio, joka määrittää jokaiselle käyvälle rat- 22

24 kaisulle s S kohdefunktion arvon (i.e. kustannuksen) f(s, t), ja Ω(t) on rajoitteiden joukko. Parametri t tarkoittaa sitä, että kohdefunktio ja rajoitteet voivat riippua ajasta (i.e. dynaamiset ongelmat). Tavoitteena on löytää sallittu globaali optimi s. Luonnehditaan ongelma (S, f, Ω) seuraavasti. Komponenttien äärellinen joukko C = {c 1, c 2,..., c NC } on annettu, missä N C on komponenttien lukumäärä. Ongelman tilat on määritelty äärellisen pituisena sarjana x = c i, c j,..., c h,... joukon C yli. Kaikkien tilojen joukkoa kuvaa X. Sarjan pituus eli komponenttien lukumäärä on x. Sarjan maksimipituus on rajoitettu positiivisella vakiolla n < +. Käypien ratkaisujen joukko S on x:n alijoukko eli S X. Sallittujen tilojen joukko X, jolle X X, on määritetty ongelmariippuvaisella testillä, joka varmistaa, ettei ole mahdollista päättää sarjaa x X siten, ettei se täyttäisi rajoitteita Ω. Huomioitakoon, että tämän määritelmän mukaan tilan x X sallittavuus tulee tulkita heikossa mielessä. Itse asiassa se ei takaa, että x:n täydellistymä s on olemassa siten, että s X Optimaalisten ratkaisujen epätyhjä joukko S, jolle S X ja S S Kustannusfunktio g(s, t) on liitetty jokaiseen käypään ratkaisuun s S. Useimmissa tapauksissa g(s, t) f(s, t), s S, missä S S on sallittujen käypien ratkaisujen joukko, joka on saatu joukosta S rajoitteiden Ω(t) avulla. Joissakin tapauksissa kustannus tai sen estimaatti J(x, t) voidaan liittää käypien ratkaisujen sijaista tiloihin. Jos x j voidaan saada lisäämällä ratkaisukomponentteja tilaan x i, niin tällöin J(x i, t) J(x j, t). Huomiotakoon, että J(s, t) g(s, t). Tämän esitysmuodon pohjalta keinomuurahaiset luovat ratkaisuja suorittaen satunnaisia kävelyjä täysin yhdistyneillä graafeilla G C = (C, L), jonka solmut 23

25 ovat komponentit C ja joukko L yhdistää komponentit C täysin. Graaa G C kutsutaan konstruktiograaksi ja sen alkioita L kutsutaan kytköksiksi. Ongelman rajoitteet Ω(t) implementoidaan keinomuurahaisten toimintaan seuraavassa osiossa kerrotulla tavalla. Rajoitteet voidaan implementoida joustavasti kombinatorisesta optimointiongelmasta riippuen joko tarkasti siten, että keinomuurahaiset voivat luoda vain sallittuja ratkaisuja tai löyhästi siten, että keinomuurahaiset voivat luoda ei-sallittuja ratkaisuja, joita voidaan sakottaa ei-sallittavuuden funktiona Keinomuurahaisten toiminta Kuten on jo edellä sanottu ACO-algoritmeissa keinomuurahaiset ovat stokastisia konstruktiivisia proseduureja, jotka luovat ratkaisuja liikkuen konstruktiograalla G C = (C, L), missä joukko L yhdistää kaikki komponentit C. Ongelman rajoitteet on rakennettu keinomuurahaisten konstruktiiviseen heurestiikkaan. Komponentit c i C ja kytkökset l ij L voidaan liittää feromonijälkeen τ (τ i jos liitetään komponentteihin, τ ij jos liitetään kytköksiin) ja heurestiseen arvoon η (vastaavasti η i ja η ij ). Feromonipolku kuvastaa keinomuurahaisen pitkäaikaista muistia koko polunhakuprosessista ja se päivittyy muurahaisten toimesta. Sen sijaan heurestinen arvo tai heurestinen informaatio kuvastaa ennakkotietoja ongelman instanssista tai ajon aikaista tietoa, jota saadaan muusta lähteestä kuin muurahaisilta. Useissa tapauksissa η on kustannus tai kustannuksen estimaatti, siitä kun komponentti tai kytkös lisätään rakenteilla olevaan ratkaisuun. Keinomuurahaisten heurestiset säännöt hyödyntävät näitä arvoja tehtäessä todennäköisyyksiin perustuvia päätöksiä koskien graalla liikkumista. Tarkemmin ilmaistuna jokaisella kolonnan keinomuurahaisella on seuraavat ominaisuudet: Keinomuurahainen hyödyntää konstruktiograaa G C = (C, L) etsiäkseen optimaalisia ratkaisuja s S. Sillä on muisti M k, jota voidaan käyttää tallentamaan informaatiota muurahaisen jo kulkemasta polusta. Muistia voidaan käyttää (a) luomaan sallittuja ratkaisuja, (b) laskemaan heuristisia arvoja η, (c) 24

26 arvioimaan löydettyä ratkaisua ja (d) kulkemaan takaperin käytettyä polkua maalisolmusta alkaen. Sillä on alkutila x k s ja yksi tai useampi lopetusehto e k. Yleensä alkutila on esitetty joko tyhjänä sarjana tai yhden komponentin pituisena sarjana. Oltaessa tilassa x r = x r 1, i, jos yhtään lopetusehtoa ei ole täytetty, keinomuurahainen kulkee seuraavaan solmuun j naapurustossaan N k (x r ), toisin sanoen tilaan x r, j X. Jos yksikin lopetusehdoista e k täyttyy, muurahainen pysähtyy. Kun muurahainen luo käyvän ratkaisun, liikkeet ei-sallittuihin tiloihin on usein kiellettyjä, joko muistin käytön tai sopivasti määritellyn heurestisen arvon η avulla. Keinomuurahainen valitsee seuraavan siirron käyttäen todennäköisyyteen perustuvaa päätöksentekosääntöä. Kyseinen sääntö on (a) paikallisesti saatavilla olevien feromonijälkien ja heurestisten arvojen funktio (i.e. feromonijäljet ja heurestiset arvot, jotka liitetään komponentteihin ja kytköksiin muurahaisen nykyisen sijainnin naapurustossa graa- lla G C ), (b) muurahaisen yksityiseen muistiin tallennetun tilan (c) ongelman rajoitteiden funktio. Kun nykyiseen tilaan lisätään komponentti c j, keinomuurahainen voi päivittää feromonijäljen τ, joka liittyy kyseessä olevaan komponenttiin tai vastaavaan kytkökseen. Kun keinomuurahainen on luonut ratkaisun, se kykenee kulkemaan takaperin juuri kulkemaansa polkua pitkin ja päivittämään käyttämiensä komponenttien feromonijäljet. On tärkeää huomata, että muurahaiset toimivat samanaikaisesti ja itsenäisesti, ja vaikka jokainen muurahainen on riittävän monimutkainen löytämään ratkaisun ongelmaan, hyvälaatuisia ratkaisuja saadaan muurahaisten välisen vuorovaikutuksen ansiosta. Tämä tapahtuu kirjoittamalla ja lukemalla feromonijälkimuuttujia. Tämä on tavallaan jaettu oppimisprosessi. 25

27 3.4 Pseudokoodi ACO-algoritmin voidaan ajatella koostuvan kolmen proseduurin vuorovaikutuksesta: ConstructAntsSolutions, UpdatePheromones, DaemonActions. ConstructAntsSolutions hallinnoi muurahaiskolonnaa, joka samanaikaisesti ja asynkronisesti käy ongelman vierekkäisissä tiloissa liikkumalla konstruktiograan G C naapurisolmuja pitkin hyödyntäen feromonipolkuja ja heurestista informaatiota. Kun muurahainen on luonut ratkaisun, se arvioi sen ja UpdatePheromones-proseduuri käyttää sitä tietoa päättämään kuinka paljon feromonia asetetaan. UpdatePheromones on proseduuri, joka muokkaa feromonijälkiä, joko lisäämällä tai haihduttamalla feromonin määrää. Feromonin lisäys kasvattaa polun käyttämämisen todennäköisyyttä ja sen väheneminen eli niin kutsuttu unohtaminen aiheuttaa sen, että vältytään liian nopealta konvergoitumiselta alioptimaaliseen ratkaisuun ja kyetään etsimään uusia ratkaisuja. DaemonActions-proseduuri hallitsee keskitettyjä toimintoja, joita yksittäiset muurahaiset eivät kykene toteuttamaan. Esimerkkejä taustatoiminnoista ovat lokaalin optimointiproseduurin aktivointi, globaalin informaation kerääminen, jota voidaan hyödyntää feromonin asettamisessa tai parhaiden ratkaisujen painottaminen ylimääräisellä feromonilla. Algoritmi 1: ACO-metaheurestiikan pseudokoodi Procedure ACOMetaheurestic ScheduleActivities ConstructAntsSolutions UpdatePheromones DaemonActions %valinnainen lopeta ScheduleActivities lopeta Procedure Yllä näkyy ACO-metaheurestiikan pseudokoodi. ScheduleActivities hallinnoi kolmea edellä kuvattua proseduuria, mutta se ei kerro miten se niitä hallitsee. Niitä voidaan hallita joko rinnakkain, itsenäisesti tai niiden välillä 26

28 voi olla jokin synkronointi. Toteutustapa on algoritmin suunnittelijan valittavissa, kunhan käsiteltävä ongelma otetaan huomioon. ACO-metaheurestiikan toteuttamista valaistaan seuraavassa kappaleessa kauppamatkustajan ongelman näkökulmasta. 27

29 4 Kauppamatkustajan ongelman ratkaiseminen muurahaiskolonnaoptimoinnilla ACO-metaheurestiikan toimintaa voidaan parhaiten kuvata soveltamalla sitä johonkin ongelmaan. Tässä tarkastellaan kauppamatkustajan ongelmaa. Kauppamatkustajan ongelma saa nimensä siitä, että kauppamatkustaja lähtee kotikaupungistaan ja hänen tulee löytää lyhin mahdollinen reitti asiakaskaupungien kautta palaten lopulta kotikaupunkiinsa. TSP (kirjallisuudessa käytetään tätä lyhennettä, joka tulee englannin kielestä Traveling Salesman Problem) voidaan esittää täysin yhdistyneellä painotetulla graalla G = (N, A), jossa N on solmujen (kaupunkien) joukko (n = N ) ja A on kaarien joukko, joka yhdistää solmut täysin eli jokaista solmuparia yhdistää kaari. Mikäli graa G ei ole täysin yhdistynyt, voidaan luoda graa G, johon on lisätty mielivaltaisen painoiset kaaret puuttuvien tilalle siten, että optimaalinen ratkaisu ei varmuudella muutu. Jokaisella kaarella (i, j) A on paino d ij, joka kuvastaa kaupunkien i ja j välistä etäisyyttä. TSP on graa- n lyhimmän Hamiltonin polun löytämisen ongelma. Hamiltonin polku on suljettu piiri, jossa kuljetaan jokaisen graan G solmun kautta täsmälleen kerran. TSP voi olla joko symmetrinen, jolloin kaupunkien väliset etäisyydet ovat riippumattomia kulkusuunnasta, tai epäsymmetrinen (ATSP = Asymmetric TSP), jolloin ainakin yhdellä solmupareista i, j pätee d ij d ji. Kuva 4.1: Esimerkki Hamiltonin polusta Ratkaisu TSP:n instanssiin voidaan esittää kaupunki-indeksien permutaationa. Tämä permutaatio on syklinen eli kaupungin absoluuttinen sijainti 28

30 kierroksella ei ole merkitsevä sen sijaan suhteellinen järjestys on ratkaiseva, toisin sanoen on olemassa n permutaatiota, jotka kuvaavat samaa ratkaisua. Konstruktiograa. Konstruktiograa on identtinen suhteessa ongelman graain. Komponenttien joukko C vastaa solmujen joukkoa (i.e. C = N). Kytkökset vastaavat kaaria (i.e. L = A) ja jokaisella kytköksellä on paino, joka vastaa etäisyyttä d ij solmujen i ja j välillä. Kaikkien mahdollisten osakierrosten joukko vastaa ongelman tiloja. Rajoitteet. TSP:n ainut rajoite on se, että kaikissa kaupungeissa tulee käydä täsmälleen yhden kerran. Tätä rajoitetta valvotaan siten, että jokaisella konstruktioaskeleella muurahainen valitsee seuraavan kaupungin ainoastaan niiden joukosta, joissa ei ole vielä käynyt. Muurahaisen k kaupungissa i sallittu naapurusto Ni k käsittää kaikki kaupungit, joissa ei ole vielä käyty. Feromonijäljet ja heurestinen informaatio. TSP:n feromonijäljet τ ij viittaa kaupungissa j käymisen haluttavuuteen lähdettäessä kaupungista i. Heurestinen informaatio η ij on usein kääntäen verrannollinen kaupunkien i ja j väliseen etäisyyteen. Yksinkertaisin ja yleisin valinta on siis η = 1/d ij. Ratkaisun luominen. Alussa jokainen muurahainen on asetettu satunnaiseen aloitussolmuun eli -kaupunkiin ja jokaisella askeleella muurahainen lisää iteratiivisesti yhden vierailemattoman kaupungin osakierrokseensa. Ratkaisun luominen päättyy, kunnes jokaisessa kaupungissa on käyty. Yleiset kommentit. TSP on paradigmaattinen N P-vaikea kombinatorinen optimointiongelma, joka on houkuttanut useita tutkijoita. (Johnson & McGeoch, 1997; Lawler et al., 1985; Reinelt, 1994). TSP on ollut keskeisessä roolissa muurahaiskolonnaoptimoinnissa, sillä sitä käytettiin ensimmäisenä sovelluksena, kun esiteltiin ensimmäinen ACO-algoritmi nimeltään Ant System (Dorigo, 1992 [2]; Dorigo, Maniezzo, & Colorni, 1991 [3], 1996 [4]) ja sitä on myös käytetty miltei kaikissa myöhemmissäkin ACO-algoritmeissa. On useita syitä miksi TSP:llä on hyvä testata ACO-algoritmeja. Se on tärkeä optimointiongelma, joka esiintyy useissa sovelluksissa, ACO-algoritmeja on helppo soveltaa siihen, se on yksinkertaisesti ymmärrettävä siten, että algoritmin toimintaa ei häiritse liian useat tekniset yksityiskohdat ja se on hyvä koealusta uusille algoritmisille ideoille - hyvä suorituskyky TSP:llä usein takaa algoritmin käytettävyyden. 29

31 4.1 Kauppamatkustajan ongelman matemaattinen esitys ATSP (epäsymmetrinen TSP) voidaan esittää formaalisti seuraavalla tavalla: min d ij x ij s.t. i j i x ij = 1 j x ij = 1 i i = 1,..., n j = 1,..., n (4.1) x 1 2 S n 2 i S j S x ij {0, 1} i = 1,..., n j = 1,..., n, missä päätösmuuttuja x ij tarkoittaa: 1, jos reitti kulkee kaupungista i kaupunkiin j, i j x ij = 0, muulloin (4.2) ja S on joukon {1, 2,..., n} alijoukko, jonka avulla elimoidaan alisyklien muodostuminen[12]. Kuten aiemmin kappaleen 4 alussa todettiin, TSP:n optimaalinen ratkaisu voidaan esittää selkeämmin solmuindeksien permutaationa π = {1, 2,..., n} siten, että pituus f(π) on pienin mahdollinen, missä f(π) on n 1 f(π) = d π(i)π(i+1) + d π(n)π(1) (4.3) i=1 4.2 Algoritmien vertailu ja tulokset Tarkastellaan ACS-algoritmia (Ant Colony System) ja vertaillaan sitä muihin tunnettuihin algoritmeihin. Tulokset löytyvät Dorigon ja Gambardellan artikkelista [13], jossa on viitattu aiemmin saatuihin tuloksiin. Näiden tutkimusten suoma näyttö löytyy taulukoista 1, 2, 3, ja 6. Taulukoissa kerrotut solmujen määrät tarkoittavat samaa kuin kaupunkien lukumäärä ongelman 30

32 tunnetussa viitekehyksessä. Testatut ongelmat on valittu joko sen perusteella mitä kirjallisuudesta löytyy, jotta voidaan verrata tuloksia muihin algoritmeihin tai optimiratkaisuihin tai jotta voidaan näyttää ACS:n kykyjä ratkaista monimutkaisia TSP instansseja (erityisesti epäsymmetriset instanssit). Kaikki ongelmat löytyvät kauppamatkustajan ongelman instanssikirjastosta eli TSPLIB-kirjastosta [27]. Taulukoissa 2 ja 3 ACS:n suorituskykyä vertailtu muihin luonnon inspiroimiin algoritmeihin, joihin kuuluu simuloitu jäähdytys (simulated annealing, SA), neuraaliverkot (NNs), joita tässä edustaa elastiset verkot (elastic net, EN), itseorganisoituva kartta (self organizing map, SOM), evolutionaarinen ohjelmointi (evolutionary computing, EP) ja yhdistelmä simuloidusta jäähdytyksestä ja geneettisistä algoritmeista (AG). Lisäksi näitä on vertailtu kaukaisimman lisäyksen menetelmään (farthest insertion heurestic, FI). Joissakin kokeissa on löydettyä ratkaisua parannettu lokaaliin optimiin 3- optimaalisuuden heurestiikalla (Croes, 1958 [14]). Taulukoista havaitaan, että ACS suoriutuu yhtä hyvin tai jopa paremmin kuin muut algoritmit. Tosin TSP:ään sovellettuna ACS ei ole kuitenkaan kilpailukykyinen erityisille heurestiikoille kuten Ling-Kernighan-menetelmälle (Lin ja Kernighan, 1973 [8]). Dorigo ja Gambardella testasivat ACS-algoritmia myös suurempi dimensioisilla ongelmilla. Näille ajoille implementoitiin hieman modioitu versio ACS:stä, jossa hyödynnetään niin sanottua kandidaattilistaa. Tällaista tietorakennetta käytetään usein ratkaistaessa suuria TSP-ongelmia (Reinelt, 1994 [9]; Jonson ja McGeoch, 1997 [15]). Kandidaattilista on lista ensisijaisesti vierailtavista kaupungeista. Se on staattinen tietorakenne, joka sisältää jokaiselle kaupungille i, lähimmät kaupungit cl. Muurahainen siis valitsee seuraavan kaupungin kandidaattilistalta, jos se ei voikaan mennä mihinkään kandidaattilistan kaupunkiin se valitsee seuraavaksi kaupungin listan ulkopuolelta. Taulukoissa 4 ja 5 tutkitaan ACS:n suorituskykyä eripitusilla kandidaattilistoilla. (ACS ilman kandidaattilistaa tarkoittaa siis samaa kuin cl = n). Tulokset on saatu Eil51- ja Pcb442-ongelmainstansseilla, jotka osoittavat, että lyhyt kandidaattilista parantaa ACS:n suorituskykyä sekä keskiarvon että parhaan suorituksen osalta samalla käytetään myös vähemmän CPU-aikaa kierroksen luomiseen. Taulukon 3 tulokset on saatu käyttäen 31

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

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

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) 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

Lisätiedot

Search space traversal using metaheuristics

Search space traversal using metaheuristics Search space traversal using metaheuristics Mika Juuti 11.06.2012 Ohjaaja: Ville Mattila Valvoja: Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin kaikki

Lisätiedot

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

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

Lisätiedot

10. Painotetut graafit

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ä

Lisätiedot

Harjoitus 1 (20.3.2014)

Harjoitus 1 (20.3.2014) Harjoitus 1 (20.3.2014) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Hämeenlinna 4 = Imatra 5 = Jyväskylä. 5 2 149(5) 190(4) 113(1)

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

Lisätiedot

Algoritmit 1. Luento 13 Ti 23.2.2016. Timo Männikkö

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

Lisätiedot

Kombinatorinen optimointi

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

Lisätiedot

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

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 =

Lisätiedot

Harjoitus 6 ( )

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,

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

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

Lisätiedot

Algoritmit 2. Luento 12 Ke Timo Männikkö

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

Lisätiedot

Harjoitus 6 ( )

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.

Lisätiedot

Verkon värittämistä hajautetuilla algoritmeilla

Verkon värittämistä hajautetuilla algoritmeilla Verkon värittämistä hajautetuilla algoritmeilla 5 12 30 19 72 34 Jukka Suomela 15 77 18 4 9. tammikuuta 2012 19 2 68 Verkko 2 Verkko solmu 3 Verkko solmu kaari 4 Hajautettu järjestelmä solmu (tietokone)

Lisätiedot

Algoritmit 2. Luento 11 Ti Timo Männikkö

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

Lisätiedot

Algoritmit 2. Luento 12 To Timo Männikkö

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

Lisätiedot

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

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 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla

Lisätiedot

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

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.

Lisätiedot

Algoritmit 1. Luento 14 Ke 25.2.2015. Timo Männikkö

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

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

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

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

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

Kurssikoe on maanantaina 29.6. Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 201 Harjoitus 7 Ratkaisut palautettava viimeistään perjantaina 26.6.201 klo 16.00. Huom! Luennot ovat salissa CK112 maanantaista 1.6. lähtien.

Lisätiedot

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

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

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

Lisätiedot

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 6 24.4.2017 Tehtävä 1 Määritelmän (ks. luentomonisteen s. 107) mukaan yleisen muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on min θ(u,v)

Lisätiedot

Johdatus verkkoteoriaan 4. luento

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,

Lisätiedot

Harjoitus 1 (17.3.2015)

Harjoitus 1 (17.3.2015) Harjoitus 1 (17.3.2015) Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 = Turku 2 = Tampere 3 = Helsinki 4 = Kuopio 5 = Joensuu. a) Tehtävänä on ratkaista Bellman

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 1 12.3.2018 Tehtävä 1 Piirretään tilanteesta verkko, jossa kaupungeille on annetttu seuraavat numerot: 1 297 4 2 4 163 3 454 6 179 2 136 2 169 2 390 4 3 436 7 5 Kuva 1: Tehtävän 1

Lisätiedot

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

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

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut

14. Luennon sisältö. Kuljetustehtävä. Verkkoteoria ja optimointi. esimerkki. verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut JYVÄSKYLÄN YLIOPISTO 14. Luennon sisältö Kuljetustehtävä esimerkki Verkkoteoria ja optimointi verkkoteorian optimointitehtäviä verkon virittävä puu lyhimmät polut kevät 2012 TIEA382 Lineaarinen ja diskreetti

Lisätiedot

Harjoitus 3 (31.3.2015)

Harjoitus 3 (31.3.2015) Harjoitus (..05) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i,j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT VERKOT ELI GRAAFIT Lähteet: Timo Harju, Opintomoniste Keijo Ruohonen, Graafiteoria (math.tut.fi/~ruohonen/gt.pdf) HISTORIAA Verkko- eli graafiteorian historia on saanut

Lisätiedot

Harjoitus 3 (3.4.2014)

Harjoitus 3 (3.4.2014) Harjoitus 3 (3..) Tehtävä Olkoon kaaren paino c ij suurin sallittu korkeus tieosuudella (i, j). Etsitään reitti solmusta s solmuun t siten, että reitin suurin sallittu korkeus pienimmillään olisi mahdollisimman

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 3 7.3.07 Tehtävä Olkoon tilamuuttujat Tällöin saadaan rekursioyhtälö f n (x n ) = max yn {0,} ynwn xn f 0 ( ) = 0. x n = vaiheessa n jäljellä oleva paino, n =,...,N, esine n pakataan

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.381 Laskennallinen Neurotiede Projektityö 30.1.007 Heikki Hyyti 60451P Tehtävä 1: Virityskäyrästön laskeminen Luokitellaan neuroni ensin sen mukaan, miten se vastaa sinimuotoisiin syötteisiin. Syöte

Lisätiedot

3.4 Peruutus (backtracking)

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

Lisätiedot

Mat Lineaarinen ohjelmointi

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ä

Lisätiedot

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 62 Luku 2 Yhtenäisyys 2.1 Polku 2.2 Lyhin painotettu polku 2.3 Yhtenäinen graafi 2.4 Komponentti 2.5 Aste

Lisätiedot

7.4 Sormenjälkitekniikka

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

Lisätiedot

PARITUS KAKSIJAKOISESSA

PARITUS KAKSIJAKOISESSA PARITUS KAKSIJAKOISESSA GRAAFISSA Informaatiotekniikan t iik seminaari i Pekka Rossi 4.3.2008 SISÄLTÖ Johdanto Kaksijakoinen graafi Sovituksen peruskäsitteet Sovitusongelma Lisäyspolku Bipartite matching-algoritmi

Lisätiedot

Opetusmateriaali. Fermat'n periaatteen esittely

Opetusmateriaali. Fermat'n periaatteen esittely Opetusmateriaali Fermat'n periaatteen esittely Hengenpelastajan tehtävässä kuvataan miten hengenpelastaja yrittää hakea nopeinta reittiä vedessä apua tarvitsevan ihmisen luo - olettaen, että hengenpelastaja

Lisätiedot

Aki Taanila LINEAARINEN OPTIMOINTI

Aki Taanila LINEAARINEN OPTIMOINTI Aki Taanila LINEAARINEN OPTIMOINTI 26.4.2011 JOHDANTO Tässä monisteessa esitetään lineaarisen optimoinnin alkeet. Moniste sisältää tarvittavat Excel ohjeet. Viimeisin versio tästä monisteesta ja siihen

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

Lisätiedot

6. Approksimointialgoritmit

6. Approksimointialgoritmit 6. Approksimointialgoritmit Tässä luvussa käsitellään lyhyesti approksimointiin liittyvät peruskäsitteet ja joitain keskeisiä approksimoituvuustuloksia. Tavoitteena on, että opiskelija näkee approksimointialgoritmien

Lisätiedot

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

Malliratkaisut Demot

Malliratkaisut Demot Malliratkaisut Demot 4 3.4.017 Tehtävä 1 Tarkastellaan harjoituksen 1 nopeimman reitin ongelmaa ja etsitään sille lyhin virittävä puu käyttämällä kahta eri algoritmia. a) (Primin algoritmi) Lähtemällä

Lisätiedot

Geneettiset algoritmit

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

Lisätiedot

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

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

Lisätiedot

13 Lyhimmät painotetut polut

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

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot Helsingin yliopisto, Itä-Suomen yliopisto, Jyväskylän yliopisto, Oulun yliopisto, Tampereen yliopisto ja Turun yliopisto Matematiikan valintakoe (Ratkaisut ja pisteytys) 500 Kustakin tehtävästä saa maksimissaan

Lisätiedot

Algoritmi on periaatteellisella tasolla seuraava:

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

Lisätiedot

Kustannusten minimointi, kustannusfunktiot

Kustannusten minimointi, kustannusfunktiot Kustannusten minimointi, kustannusfunktiot Luvut 20 ja 21 Marita Laukkanen November 3, 2016 Marita Laukkanen Kustannusten minimointi, kustannusfunktiot November 3, 2016 1 / 17 Kustannusten minimointiongelma

Lisätiedot

3 = Lisäksi z(4, 9) = = 21, joten kysytty lineaarinen approksimaatio on. L(x,y) =

3 = Lisäksi z(4, 9) = = 21, joten kysytty lineaarinen approksimaatio on. L(x,y) = BM20A5810 Differentiaalilaskenta ja sovellukset Harjoitus 6, Syksy 2016 1. (a) Olkoon z = z(x,y) = yx 1/2 + y 1/2. Muodosta z:lle lineaarinen approksimaatio L(x,y) siten että approksimaation ja z:n arvot

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-2.3140 Lineaarinen ohjelmointi 4.10.2007 Luento 4 Ekstreemipisteiden optimaalisuus ja Simplex (kirja 2.4-2.6, 3.1-3.2) Lineaarinen ohjelmointi - Syksy 2007 / 1 Luentorunko Degeneroituvuus Ekstreemipisteiden

Lisätiedot

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

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi Lineaarinen optimointitehtävä Minimointitehtävä

Lisätiedot

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu (Valmiin työn esittely) 11.4.2011 Ohjaaja: Ville Mattila Valvoja: Raimo Hämäläinen Työn tavoite Tutkia evoluutioalgoritmia (Lee

Lisätiedot

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.

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

Lisätiedot

Äärellisten mallien teoria

Äärellisten mallien teoria Äärellisten mallien teoria Harjoituksen 5 ratkaisut (Hannu Niemistö) Tehtävä 1 OlkootGjaG neljän solmun verkkoja Määritä, milloing = 2 G eli verkot ovat osittaisesti isomorfisia kahden muuttujan suhteen

Lisätiedot

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

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

Lisätiedot

Diskreetit rakenteet

Diskreetit rakenteet Diskreetit rakenteet 811120P 5 op 7. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1 Mikä on verkko? verkko (eli graafi) koostuu solmuista ja väleistä, jotka yhdistävät solmuja

Lisätiedot

A* Reitinhaku Aloittelijoille

A* Reitinhaku Aloittelijoille A* Reitinhaku Aloittelijoille Alkuperäisen artikkelin kirjoittanut Patrick Lester, suomentanut Antti Veräjänkorva. Suom. huom. Tätä kääntäessäni olen pyrkinyt pitämään saman alkuperäisen tyylin ja kerronnan.

Lisätiedot

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko, Tehtävä 1 : 1 a) Olkoon G heikosti yhtenäinen suunnattu verkko, jossa on yhteensä n solmua. Määritelmän nojalla verkko G S on yhtenäinen, jolloin verkoksi T voidaan valita jokin verkon G S virittävä alipuu.

Lisätiedot

Stabilointi. Marja Hassinen. p.1/48

Stabilointi. Marja Hassinen. p.1/48 Stabilointi Marja Hassinen marja.hassinen@cs.helsinki.fi p.1/48 Kertausta ja käsitteitä Sisältö Stabilointi Resynkroninen stabilointi Yleinen stabilointi Tarkkailu Alustus Kysymyksiä / kommentteja saa

Lisätiedot

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Väite: T (n) (a + b)n 2 + a. Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Huomaa että funktion x x 2 + (m 1 x) 2 kuvaaja on ylöspäin aukeava paraabeli, joten funktio saavuttaa suurimman

Lisätiedot

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

Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33 Numeeriset menetelmät TIEA381 Luento 12 Kirsi Valjus Jyväskylän yliopisto Luento 12 () Numeeriset menetelmät 25.4.2013 1 / 33 Luennon 2 sisältö Tavallisten differentiaaliyhtälöiden numeriikasta Rungen

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 8.5.2018 Timo Männikkö Luento 13 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys Kertaus ja tenttivinkit Algoritmit 2 Kevät

Lisätiedot

Kimppu-suodatus-menetelmä

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.

Lisätiedot

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

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.

Lisätiedot

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij

Kuljetustehtävä. Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan. Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij Kuljetustehtävä Materiaalia kuljetetaan m:stä lähtöpaikasta n:ään tarvepaikkaan Kuljetuskustannukset lähtöpaikasta i tarvepaikkaan j ovat c ij Lähtöpaikan i kapasiteetti on a i (oletetaan, että a i > 0

Lisätiedot

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen.

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen. Tietorakenteet, kevät 2012 Kurssikoe 2, mallivastaukset 2. (a) Järjestämistä ei voi missään tilanteessa suorittaa nopeammin kuin ajassa Θ(n log n), missä n on järjestettävän taulukon pituus. Epätosi: Yleisessä

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

Luento 5: Peliteoriaa

Luento 5: Peliteoriaa Luento 5: Peliteoriaa Tässä kappaleessa tutustutaan hieman peliteoriaan. Keskeisiä asioita ovat Nash-tasapaino ja sekastrategia. Cournot n duopolimalli vuodelta 1838 toimii oivallisena havainnollistuksena

Lisätiedot

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

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

Lisätiedot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

1 Kertaus. Lineaarinen optimointitehtävä on muotoa: 1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n

Lisätiedot

Harjoitus 6: Simulink - Säätöteoria. Syksy 2006. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1

Harjoitus 6: Simulink - Säätöteoria. Syksy 2006. Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoitus 6: Simulink - Säätöteoria Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen säätötekniikkaan Takaisinkytkennän

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 6 1 Korkolaskentaa Oletetaan, että korkoaste on r Jos esimerkiksi r = 0, 02, niin korko on 2 prosenttia Tätä korkoastetta käytettään diskonttaamaan tulevia tuloja ja

Lisätiedot

Kokonaislukuoptimointi hissiryhmän ohjauksessa

Kokonaislukuoptimointi hissiryhmän ohjauksessa Kokonaislukuoptimointi hissiryhmän ohjauksessa Systeemianalyysin laboratorio Teknillinen Korkeakoulu, TKK 3 Maaliskuuta 2008 Sisällys 1 Johdanto Taustaa Ongelman kuvaus 2 PACE-graafi Graafin muodostaminen

Lisätiedot

Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely)

Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely) Kustannustehokkaat riskienhallintatoimenpiteet kuljetusverkostossa (Valmiin työn esittely) Joonas Lanne 23.2.2015 Ohjaaja: Eeva Vilkkumaa Valvoja: Ahti Salo Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Katkonnanohjaus evoluutiolaskennan keinoin

Katkonnanohjaus evoluutiolaskennan keinoin Katkonnanohjaus evoluutiolaskennan keinoin Askel kohti optimaalista tavaralajijakoa Veli-Pekka Kivinen HY, Metsävarojen käytön laitos Katkonnanohjauksen problematiikkaa Miten arvo-/tavoitematriisit tulisi

Lisätiedot

Algoritmit 2. Luento 14 To Timo Männikkö

Algoritmit 2. Luento 14 To Timo Männikkö Algoritmit 2 Luento 14 To 2.5.2019 Timo Männikkö Luento 14 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydelliset ongelmat Kertaus ja tenttivinkit Algoritmit

Lisätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

Lisätiedot

A. Huutokaupat ovat tärkeitä ainakin kolmesta syystä. 1. Valtava määrä taloudellisia transaktioita tapahtuu huutokauppojen välityksellä.

A. Huutokaupat ovat tärkeitä ainakin kolmesta syystä. 1. Valtava määrä taloudellisia transaktioita tapahtuu huutokauppojen välityksellä. HUUTOKAUPOISTA A. Huutokaupat ovat tärkeitä ainakin kolmesta syystä 1. Valtava määrä taloudellisia transaktioita tapahtuu huutokauppojen välityksellä. 2. Huutokauppapelejä voidaan käyttää taloustieteen

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 1 1 Matemaattisesta päättelystä Matemaattisen analyysin kurssin (kuten minkä tahansa matematiikan kurssin) seuraamista helpottaa huomattavasti, jos opiskelija ymmärtää

Lisätiedot

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

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

Lisätiedot

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Arvostus Verkostoissa: PageRank. Idea.

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Arvostus Verkostoissa: PageRank. Idea. Arvostus Tommi Perälä Department of Mathematics, Hypermedia Laboratory Tampere University of Technology 8..0 in idea on määrittää verkoston solmuille arvostusta kuvaavat tunnusluvut. Voidaan ajatella

Lisätiedot

Pythagoraan polku 16.4.2011

Pythagoraan polku 16.4.2011 Pythagoraan polku 6.4.20. Todista väittämä: Jos tasakylkisen kolmion toista kylkeä jatketaan omalla pituudellaan huipun toiselle puolelle ja jatkeen päätepiste yhdistetään kannan toisen päätepisteen kanssa,

Lisätiedot

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

Kognitiivinen mallintaminen 1

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

Lisätiedot

30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset

30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset 30A01000 Taulukkolaskenta ja analytiikka Luku 8: Lineaarinen optimointi ja sen sovellukset Mitä on lineaarinen optimointi (LP)? LP= lineaarinen optimointiongelma (Linear Programming) Menetelmä, jolla etsitään

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

811312A Tietorakenteet ja algoritmit 2015-2016. V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit 811312A Tietorakenteet ja algoritmit 2015-2016 V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit Sisältö 1. Johdanto 2. Leveyshaku 3. Syvyyshaku 4. Kruskalin algoritmi 5. Dijkstran algoritmi

Lisätiedot

Kuva 1. Ohmin lain kytkentäkaavio. DC; 0 6 V.

Kuva 1. Ohmin lain kytkentäkaavio. DC; 0 6 V. TYÖ 37. OHMIN LAKI Tehtävä Tutkitaan metallijohtimen päiden välille kytketyn jännitteen ja johtimessa kulkevan sähkövirran välistä riippuvuutta. Todennetaan kokeellisesti Ohmin laki. Välineet Tasajännitelähde

Lisätiedot

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot