Luento 13: Geneettiset Algoritmit



Samankaltaiset tiedostot
Geneettiset algoritmit

Implementation of Selected Metaheuristics to the Travelling Salesman Problem (valmiin työn esittely)

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Luento 5: Peliteoriaa

Kombinatorinen optimointi

Nollasummapelit ja bayesilaiset pelit

v 8 v 9 v 5 C v 3 v 4

Mat Lineaarinen ohjelmointi

MS-C2105 Optimoinnin perusteet Malliratkaisut 5

Harjoitus 6 ( )

Luento 5: Peliteoriaa

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

SEKASTRATEGIAT PELITEORIASSA

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Johdatus verkkoteoriaan 4. luento

Algoritmit 2. Luento 11 Ti Timo Männikkö

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

Harjoitus 6 ( )

Demo 1: Simplex-menetelmä

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

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Evolutiivisesti stabiilin strategian oppiminen

Mat Sovelletun matematiikan erikoistyöt. Geneettiset algoritmit ja sukupuolten taistelu

Luento 1: Optimointimallin muodostaminen; optimointitehtävien luokittelu

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

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

Kenguru 2012 Junior sivu 1 / 8 (lukion 1. vuosi)

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.

1.4 Funktion jatkuvuus

Pohdiskeleva ajattelu ja tasapainotarkennukset

Epätäydellisen tiedon jatkuvat pelit. Mika Viljanen Peliteorian seminaari

Search space traversal using metaheuristics

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

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

Monitavoitteiseen optimointiin soveltuvan evoluutioalgoritmin tarkastelu

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Ohjelmoinnin perusteet Y Python

Johdanto peliteoriaan Kirja kpl. 2

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

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Ohjelmoinnin peruskurssi Y1

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

11 Oligopoli ja monopolistinen kilpailu (Mankiw & Taylor, Ch 17)

12. Hessen matriisi. Ääriarvoteoriaa

Äärellisten mallien teoria

Luento 8: Epälineaarinen optimointi

Ohjelmoinnin perusteet Y Python

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

Algoritmit 1. Luento 10 Ke Timo Männikkö

1 Rajoittamaton optimointi

Yhteistyötä sisältämätön peliteoria jatkuu

(a) Kyllä. Jokainen lähtöjoukon alkio kuvautuu täsmälleen yhteen maalijoukon alkioon.

Datatähti 2019 loppu

Harjoitus 4: Matlab - Optimization Toolbox

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Malliratkaisut Demot

Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1

Toistetut pelit Elmeri Lähevirta. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Martingaalit ja informaatioprosessit

1. Lineaarinen optimointi

Peliteoria Strategiapelit ja Nashin tasapaino. Sebastian Siikavirta

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

Kimppu-suodatus-menetelmä

Algoritmit 2. Luento 10 To Timo Männikkö

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

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

Harjoitus 3 ( )

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta

min x x2 2 x 1 + x 2 1 = 0 (1) 2x1 1, h = f = 4x 2 2x1 + v = 0 4x 2 + v = 0 min x x3 2 x1 = ± v/3 = ±a x 2 = ± v/3 = ±a, a > 0 0 6x 2

Harjoitus 3 ( )

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Tutkimustiedonhallinnan peruskurssi

Signaalien generointi

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

Vastausehdotukset analyysin sivuainekurssin syksyn välikokeeseen

Kokonaislukuoptiomointi Leikkaustasomenetelmät

isomeerejä yhteensä yhdeksän kappaletta.

Optimaalisuusehdot. Yleinen minimointitehtävä (NLP): min f(x) kun g i (x) 0 h j (x) = 0

Algoritmit 2. Luento 9 Ti Timo Männikkö

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Kuvioton metsäsuunnittelu Paikkatietomarkkinat, Helsinki Tero Heinonen

Algoritmit 1. Luento 11 Ti Timo Männikkö

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset


MS-A0004/A0006 Matriisilaskenta

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

Luento 9. June 2, Luento 9

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Transkriptio:

Luento 13: Geneettiset Algoritmit Geneettiset algoritmit ovat luonnon evoluutiomekanismeja imitoivia heuristisia optimointimenetelmiä. Ne soveltuvat tehtäviin, joissa ratkaisuavaruus on hyvin suuri (esim. suuret kombinatooriset tehtävät) ja joissa likimääräinenkin optimi riittää ratkaisuksi. Tietokoneiden laskentakapasiteetin nopean kasvun myötä geneettisten algoritmien sovellusmahdollisuudet ovat laajentuneet suuresti viimeisen vuosikymmenen aikana. Geneettisissä algoritmeissa optimointitehtävän mahdolliset ratkaisut esitetään merkkijonoina, jotka vastaavat kromosomeja. Merkkijonojen alkiot ovat binääriarvoisia, mutta tietyissä tapauksissa merkkijonojen alkiot voivat saada useampiakin arvoja. Mahdollisista merkkijonoista muodostetaan aluksi satunnainen alkupopulaatio. Tästä alkupopulaatiosta aletaan kehittää uusia sukupolvia imitoimalla luonnonvalintaa. Tämä tarkoittaa sitä, että uusi sukupolvi muodostuu edellisen sukupolven parhaiden yksilöiden jälkeläisistä. Jälkeläisten syntymistä imitoidaan ns. geneettisillä operaattoreilla, jota esitellään kappaleessa. Uusia sukupolvia luodaan niin kauan, kunnes on löydetty riittävän hyvä ratkaisu. Geneettiset algoritmit voidaan luokitella heuristisiin optimointimenetelmiin. Toinen esimerkki heuristisesta optimointimenetelmästä on simuloitu jäähdytys [10], joko tietyiltä osin muistuttaa geneettistä algoritmia. Siinä ratkaisua muutetaan satunnaisesti geneettisissä algoritmeissakin käytettävillä mutaatioilla (ks. kappale ), kunnes on löydetty riittävän hyvä ratkaisu. Erona näillä menetelmillä on se, että simuloidussa jäähdytyksessä kehitetään ainoastaan yhtä ratkaisua, kun genettisissä algoritmeissa kehityksen kohteena on ratkaisupopulaatio. Kolmas esimerkki heuristisista menetelmistä on ant colony optimization, joka imitoi muurahaisten käytöstä reitinvalinnassa (ks. esim. []). Useat tutkijat julkaisivat evoluution numeerista simulointia käsitteleviä papereita 1950-luvulta lähtien (ks. esim. [4]). Geneettisten algoritmien käytön 1

optimointimenetelmänä esitteli kuitenkin ensimmäisenä John H. Holland klassikkokirjassaan vuonna 1975 []. Tällä luennolla esitellään geneettisten algoritmien yleinen toimintaperiaate sekä havainnollistetaan menetelmän toimintaa tunnettujen esimerkkien avulla. Esimerkit osoittavat kuinka monipuolisesti geneettisiä algoritmeja voidaan soveltaa optimoinnissa. Esimerkeissä näytetään, kuinka kombinatoorisen optimoinnin tunnettu tehtävä, kauppamatkustajan ongelma, voidaan ratkaista geneettisten algoritmien avulla. Lisäksi esitellään Robert Axelrodin kehittämä menetelmä, jossa toistetun vangin dilemma -pelin pelistrategia muodostetaan geneettisten algoritmien avulla. Geneettisen algoritmin rakenne Geneettisissä algoritmeissa ratkaisuavaruuden alkiot muutetaan geneettiseksi koodiksi (esim. jonoksi bittejä), siten että jokaista mahdollista ratkaisua vastaa tietty merkkijono. Merkkijonoja kutsutaan kromosomeiksi ja kromosomien alkioita geeneiksi, geenien mahdollisia arvoja kutsutaan alleeleiksi. Tämän jälkeen luodaan halutun kokoinen alkupopulaatio, jonka kromosomit valitaan sattumanvaraisesti. Jokainen populaation kromosomi arvioidaan hyvyysfunktion avulla, jonka jälkeen muodostetaan uusi populaatio geneettisillä operaattoreilla, jotka imitoivat evoluution ja perinnöllisyyden periaatteita. Tämä prosessi imitoi luonnonvalintaa, jossa hyödylliset ominaisuudet siirtyvät seuraaviin sukupolviin ja huonot ominaisuudet katoavat. Geneettisen algoritmin iteraatioita kutsutaan sukupolviksi. Uusia sukupolvia muodostetaan, kunnes ratkaisu suppenee. Geneettisissä algoritmeissa populaation koko säilyy vakiona koko iteraation ajan. Tyypillinen geneettinen algoritmi muodostuu seuraavista vaiheista: 1. Muodosta ratkaisuavaruuden kromosomeista alkupopulaatio sattumanvaraisesti. 2

2. Arvioi kromosomit hyvyysfunktion avulla. 3. Muodosta uusi populaatio soveltamalla geneettisiä operaattoreita. 4. Toista vaiheita 2 ja 3, kunnes lopetusehto toteutuu. Yleensä geneettisiä algoritmeja iteroidaan ennalta määrätty määrä sukupolvia ja lopetusehto on näissä tilanteissa iteraatiokierrosten täyttyminen. Lopetusehto voidaan kuitenkin tarvittaessa määrittää myös muilla tavoin. Voidaan asettaa hyvyysfunktiolle kynnysarvo, jonka ylittyessä iterointi lopetetaan. Toisaalta voidaan myös tarkastella niiden iteraatiokierrosten lukumäärää, joiden aikana paras ratkaisu ei ole parantunut. Joissain tapauksissa tarkastellaan myös populaatioiden monimuotoisuutta ja lopetetaan iterointi, kun populaatio on riittävän homogeeninen. Avain toimivaan algoritmiin on ratkaisujen kromosomiesityksen ja käytettävien geneettisten operaattoreiden huolellisessa valinnassa. Rakennuspalikkahypoteesi Geneettiset algoritmit perustuvat rakennuspalikkahypoteesiin: Hyviä ratkaisuja yhdistämällä on mahdollista löytää vielä parempia ratkaisuja. Geneettisissä algoritmeissa ratkaisujen (kromosomien) ajatellaan siis koostuvan rakennuspalikoista (geeneistä). Hyvissä ratkaisuissa nämä rakennuspalikat ovat parempia kuin huonoissa ratkaisuissa. Kun hyvien ratkaisujen rakennuspalikoita yhdistellään geneettisillä operaattoreilla, on mahdollista että onnistutaan muodostamaan vielä parempia ratkaisuja. 3

Geneettisiä operaattoreita Geneettiset operaattorit luovat kromosomeja imitoimalla evoluutiota ja perinnöllisyyttä. Operattoreiden kirjo on suuri, mutta seuraavat kolme operaattoria ovat yksinkertaisimpia ja ovat tuottaneet hyviä tuloksia [1]. 1. Uudelleenvalinta (engl. reproduction). 2. Risteytys (crossover). 3. Mutaatio (mutation). Uudelleenvalinta Uudelleenvalinnassa uuteen populaatioon valitaan edellisen sukupolven kromosomeja s.e. paremman hyvyysfunktion arvon omaavilla kromosomeilla on suurempi todennäköisyys tulla valituksi uudelleen. Esim. Populaatio muodostuu kuudesta kromosomista, joiden hyvyysfunktion arvot on esitetty alla. (Huomaa, että populaatiossa voi olla useita samoja kromosomeja.) Kromosomi (i) Hyvyysfunktion arvo (f i ) ValintaTN ( f i / i f ) i A 25 0.5 B 10 0.2 C 0.12 C 0.12 D 2 0.04 E 1 0.02 Summa 50 1 Suhde f i / i f i kertoo kunkin kromosomin todennäköisyyden tulla valituksi, kun seuraavaan sukupolveen valitaan uusi kromosomi. 4

Uusi populaatio voidaan siis muodostaa esim. jakamalla väli (0,1) todennäköisyyksien mukaan kromosomeja vastaaviin alueisiin [A=(0, 0.5), B=(0.5, 0.7), C=(0.7, 0.94), D=(0.94, 0.9), E=(0.9, 1)] ja luomalla kuusi välille (0,1) tasajakautunutta satunnaislukua. Uuden populaation kromosomit valitaan sen mukaan, mitä kromosomia vastaaviin alueisiin satunnaisluvut kuuluvat. Risteytys Risteytysoperaattori luo kahdesta kromosomista kaksi uutta kromosomia vaihtamalla osan geeneistä keskenään. Ajatuksena on, että hyvien alkioiden geenejä sekoittamalla voidaan löytää vielä parempia alkioita. Risteytysoperaattorin toiminnassa on kaksi vaihetta: 1. Valitse sattumanvaraisesti katkaisukohta, josta risteytettävät kromosomit jaetaan kahteen osaan. 2. Vaihda kromosomien loppuosat kekenään. Toisin kuin uudelleenvalinnassa, risteytyksen avulla uuteen populaatioon syntyy alkioita, joita edellinen populaatio ei sisältänyt. Risteytyksen avulla voidaan siis muodostaa uusia ratkaisuvaihtoehtoja, jotka voivat olla parempia kuin edellisen populaation ratkaisut. Kaikkia uuteen populaatioon valittuja kromosomeja ei risteytetä. Risteytyksen todennäköisyyden määrää parametri risteytystodennäköisyys p c. Ennen risteytystä Risteytyksen jälkeen X X X X X X X X X X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y X X X X X Katkaisukohta 5

Mutaatio Kaikki uudelleenvalinnalla tai risteytyksellä saatavat geenit periytyvät tavalla tai toisella edellisestä populaatiosta. Näin ollen iteraatio voi helposti päätyä johonkin lokaaliin optimiin, sillä alkupopulaatio ei välttämättä sisältänyt kaikkia globaalin optimin geenejä. Mutaatio-operaattori valitsee kromosomista sattumanvaraisesti geenin, ja vaihtaa sen alleelin toiseksi. Ennen mutaatioa Mutaation jälkeen X X X X X X X X X Mutaatiokohta X X Y X X X X X X Kaikille uuteen populaatioon valituille kromosomeille ei tehdä mutaatioa, vaan mutaation todennäköisyyden määrää parametri mutaatiotodennäköisyys p m. Mallialgoritmi Geneettinen algoritmi, joka käyttää edellä esiteltyjä geneettisiä operaattoreita, voisi koostua seuraavista vaiheista. 1. Luo alkupopulaatio, jossa on m alkiota. 2. Toista vaihetta 3, kunnes lopetusehto toteutuu. 3. Luo uusi m:n kromosomin populaatio toistamalla seuraavia vaiheita a) Valitse uudelleenvalintaoperaattorilla kaksi alkiota. b) Jos p c > rand[0, 1], sovella risteytysoperaattoria näihin alkioihin.

c) Jos p m > rand[0, 1], sovella mutaatio-operaattoria näihin alkioihin. d) Lisää saadut kaksi alkiota uuteen populaatioon. Merkintä rand[0, 1] tuottaa välille [0,1] tasajakautuneen satunnaisluvun. Esimerkki jatkuvan funktion maksimoinnista Alla esitettävä esimerkki havainnollistaa, kuinka monihuippuisen funktion optimointitehtävä voidaan ratkaista geneettisellä algoritmilla. Esimerkki, laskut ja tulokset on esitetty kirjassa [1]. Olkoon tehtävänä maksimoida funktiota f(x) = 0.4 + sinc(4x) + 1.1sinc(4x+2) + 0.sinc(x 2) + 0.7sinc(x 4) välillä x [ 2, 2], missä 1 kun x = 0 sinc(x) = sin(πx) kun x 0 πx Funktio on esitetty kuvassa 1. Globaali maksimi on pisteessä x = 0.507179, missä funktio saa arvon 1.50154. Jotta optimointitehtävä voitaisiin ratkaista geneettisillä algoritmeilla, on x:n arvot välillä [ 2, 2] esitettävä kromosomeina. 1-alkioisella binäärivektorilla voidaan esittää kokonaisluvut väliltä [0,5535]. Tarkastelualue x [ 2, 2] voidaan nyt diskretoida 5535:ksi tasavälein jakautuneeksi pisteeksi, asettamalla x = 2 + 4b 5535, missä b on binäärivektorilla esitetty kokonaisluku väliltä [0, 5535]. Näin esitettyjen pisteiden diskretointiväli x-akselilla on 4/5535 0.00001. Huom. esimerkiksi binäärivektori v = (1 0 1 0) vastaa kokonaislukua b = 1 2 3 + 0 2 2 + 1 2 1 + 0 2 0 = 10. 7

1. 1.4 1.2 1 f(x) 0. 0. 0.4 0.2 0 2 1.5 1 0.5 0 0.5 1 1.5 2 x Kuva 1: Funktion f(x) kuvaaja alueessa x [ 2, 2]. Seuraavassa on esitetty kaksi 1-bittistä binäärivektoria ja niitä vastaavat pisteet x-akselilla: v 1 = (1 0 1 1 1 0 1 1 1 1 1 0 0 1 1 0) = b 1 = 4102 = x 1 = 0.93595 v 2 = (0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0) = b 2 = 13310 = x 2 = 1.171 Nyt voimme soveltaa edellisessä kappaleessa esitettyä geneettisen algoritmin mallia, löytääksemme optimaalisen binäärivektorin, ja näin ollen varsin tarkan likiarvon finktion f(x) maksimille. Kirjassa on valittu seuraavat parametrien arvot: Populaation koko m = 30. Risteytystodennäköisyys p c = 0.3. Mutaatiotodennäköisyys p m = 0.01. Kun algoritmi ajettiin 100 kertaa erilaisilla satunnaisesti valituilla alkupopulaatioilla, optimiratkaisu löytyi 0 kertaa alle 400:lla iteraatiolla.

Kauppamatkustajan ongelma Kauppamatkustajan ongelmalla tarkoitetaan tehtävää, jossa on etsittävä lyhin reitti annettujen kaupunkien välille, siten että kaikissa kaupungeissa käydään kerran ja lopuksi palataan lähtökaupunkiin. Kaupunkien väliset yhteydet ovat tiedossa, joten kyseessä on tyypillinen kombinatoorinen tehtävä. Geneettiset algoritmit soveltuvat hyvin kauppamatkustajan ongelman approksimatiiviseen ratkaisemiseen, vaikka ongelma ratkeaa varsin tehokkaasti myös muilla optimointimenetelmillä, kuten lineaarisella ohjelmoinnilla [5] ja simuloidulla jäähdytyksellä [10]. Seuraavassa esitetään matemaattinen malli kauppamatkustajan ongelmalle. Olkoon annettu n kaupunkia ja symmetrinen n n matriisi D, jonka alkiot kuvaavat etäisyyksiä kaupunkiparien (a, b) välillä, a, b 1, 2,..., n. Reitillä tarkoitetaan suljettua polkua, joka käy kussakin kaupungissa täsmälleen kerran. Tehtävän ratkaisuavaruutena on kaupunkien syklisten permutaatioiden π joukko, jossa on (n 1)! eri mahdollisuutta 1. Minimoitavana kustannusfunktiona on reitin pituus eli n f(π) = d i,π(i), i=1 missä π(i) tarkoittaa kaupungin i seuraajaa reitillä π. Seuraavassa esitetään eräs tapa koodata kauppamatkustajan ongelma geneettisen algoritmin vaatimaan muotoon. Keskeinen vaatimus on, että kahden kromosomin, eli kahden eri reitin, risteyttäminen tuottaa käypiä kromosomeja, eli uudet reitit. Emme voi siis esimerkiksi soveltaa mutaatioa siten, että satunnaisesti valittu kaupunki muutetaan toiseksi kaupungiksi, koska tällöin syntyvä reitti ei enää kulje kaikkien kaupunkien kautta. Valitaan jokin reitti, joka kulkee kaikkien kaupunkien kautta. Pidetään tätä vakiojärjestyksenä, esimerkiksi (a, b, c, d, e). Mikä tahansa reitti, esimerkiksi 1 Esim. 39! 2.0 10 4 9

(a, c, e, d, b), koodataan seuraavasti: poistetaan vakiojärjestyksessä olevasta listasta kaupungit sitä mukaa kun ne esiintyvät reitissä ja otetaan ylös kukin esiintymispaikka listassa: Kaupunki Vakiolista Järjestysnumero a (a, b, c, d, e) 1 c (b, c, d, e) 2 e (b, d, e) 3 d (b, d) 2 b (b) 1 Siten reitin (a, c, e, d, b) koodivektori on (1, 2, 3, 2, 1). Tällä tavalla koodattujen reittien risteytykset ovat myös reittejä, joten risteytysoperaattoria voidaan käyttää aiemmin esitetyllä tavalla. Kromosomin i:nnen geenin mahdolliset alleelit ovat {1, 2,..., n + 1 i}. Mutaatiossa valitaan sattumanvarainen geeni ja korvataan se satunnaisesti valitulla käyvällä alleelilla. Kauppamatkustajan ongelman ratkaiseva geneettinen algoritmi voidaan nyt muodostaa aiemmin esitetyn mallialgoritmin pohjalle. Kuvassa 2 on esitetty geneettisen algoritmin tuottamia reittejä neljänkymmenen kaupungin välille 2. Kaupunkien sijainnit poikkeavat toisistaan eri kuvissa. Kuva 3 näyttää, kuinka paras ratkaisu kehittyy iteraatiokierrosten aikana. Axelrodin koe Robert Axelrod Michiganin yliopistosta järjesti vuonna 194 toistettuun vangin dilemma -peliin (ks. [7]) liittyvän kilpailun. Eri alojen tutkijoita pyydettiin kehittämään pelistrategia, jossa toiminta perustuu kolmen edellisen kierroksen pelihistoriaan. Axelrod peluutti näitä strategioita vastakkain ja tutki 2 Kuvat tehtiin Joseph Kirkin kirjoittamalla Matlab-algoritmilla [9] 10

10 9 7 5 32 22 2934 5 1 1 Paras reitti, 1 iteraatio 30 25 10 4 19 4 17 2 23 39 3 20 27 13 2 37 12 1 40 31 1 11 2 35 9 15 0 21 0 2 4 10 14 2 3 33 7 3 3 24 Paras reitti, 20 iteraatiota 10 5 37 19 34 23 9 29 32 13 30 35 9 1 7 11 15 14 27 3 33 24 2 5 39 4 17 4 3 10 7 31 40 3 20 1 1 21 2 12 2 22 1 3 0 2 25 0 2 4 10 Paras reitti, 50 iteraatiota 10 1 9 14 39 7 15 23 24 20 7 10 22 12 40 3 5 29 11 4 37 3 5 35 4 2 27 30 19 2 1 3 1 25 31 17 13 34 3 2 32 2 21 1 33 0 9 0 2 4 10 Paras reitti, 400 iteraatiota 10 2 37 19 5 9 34 9 27 33 1 24 35 39 7 2 25 7 5 14 22 23 3 4 30 40 1 13 3 31 32 29 1 4 2 17 2 3 20 1 3 12 15 0 11 21 10 0 2 4 10 Kuva 2: Geneettisen algoritmin generoimia reittejä, kun iteraatiokierroksien määrä vaihtelee. Jokaisessa kuvassa populaatio koostuu 0:stä kromosomista. 200 Parhaan reitin pituus 10 10 140 Reitin pituus 120 100 0 0 40 20 0 50 100 150 200 250 300 350 400 Sukupolvi Kuva 3: Kunkin sukupolven lyhimmän reitin pituus kuvan 2 400:n iteraation tapauksessa. 11

mikä strategia tuotti keskimäärin parhaat tulokset. Vangin dilemma on tunnettu peliteoreettinen malli, jossa kaksi pelaajaa valitsee yhtä aikaa kahden vaihtoehdon välillä. Vaihtoehtoja kutsutaan yhteistyöksi (engl. Cooperate) ja loikkaukseksi (engl. Defect) ja niistä käytetään lyhenteitä C ja D. Pelaajien saamat hyödyt riippuvat molempien pelaajien valinnoista. Peli voidaan esittää alla olevan taulukon avulla, jossa kirjaimet T, R, P ja S viittaavat pelaajien saamiin hyötyihin. C D C R,R S,T D T,S P,P Yllä esitetty peli on vangin dilemma, mikäli hyödyt toteuttavat ehdot T > R > P > S sekä 2R > T + S. Jälkimmäisen ehdon tulee päteä silloin kun peliä toistetaan useammin kuin kerran. Tämä ehto selitetään tarkemmin myöhemmin tässä kappaleessa. Määritelmä 0.1 Pelin Nashin tasapaino on strategiakombinaatio, jossa yksikään pelaaja ei voi parantaa hyötyään vaihtamalla yksin strategiaansa. Mikäli peliä pelataan yhden kerran, sen Nashin tasapaino (ks. [7]) on tilanne jossa kumpikin pelaaja valitsee D:n. Tämä johtuu siitä, että riippumatta vastustajan valinnasta pelaaja saa aina suuremman hyödyn valitsemalla D:n, kuin valitsemalla C:n. Pelin dilemma on siinä, että vaikka vaikka sen Nashin tasapaino on molempien pelaajien loikkaus (merkitään DD), molemmat pelaajat saisivat suuremman hyödyn jos molemmat valitsisivat C:n. 12

Tilanne muuttuu, kun peliä toistetaan useammin kuin kerran. Tällöin valinnassa ei tule huomioida ainoastaan parhaillaan pelattavasta kierroksesta saatavaa hyötyä, vaan myös tulevien kierrosten hyödyt. Näin ollen Nashin tasapaino ei olekaan enää itsestään selvä lopputulos, sillä pelaajien on huomioitava pelin dynamiikka, eli se kuinka hänen valintansa vaikuttaa vastustajan valintoihin tulevilla kierroksilla. Toistettuun peliin liityvä ehto 2R > T + S tarkoittaa, että pelaaja saa suuremman hyödyn kahdelta CC-kierrokselta, kuin CD- ja DC-kierroksilta yhteensä. Näin ollen pelaajien yhteenlaskettu hyöty toistetussa pelissä maksimoituu, kun molemmat valitsevat jokaisella kierroksella C:n. Turnauksessa käytetty vangin ongelma -peli on esitetty alla: C D C 3,3 0,5 D 5,0 1,1 Turnaukseen osallistui todella monimutkaisia strategioita, mutta voittajaksi selviytyi yksinkertainen potut pottuina -strategia (engl. TIT FOR TAT), jossa pelaaja toimii kullakin kierroksella samoin kuin vastustaja toimi edellisellä kierroksella. Axelrod käsittelee turnauksen tulosten laajempaa filosofista merkitystä yksityiskohtaisesti kirjassaan The Evolution of Co-operation [3]. Pelistrategian kehittäminen geneettisellä algoritmilla Vuonna 197 Axelrod päätti kokeilla pelistrategian kehittämistä geneettisen algoritmin avulla, katso viite [2]. Pelin sääntöihin kuului, että strategian tulee perustua kolmen edellisen kierroksen historiaan. Koska kolmen edellisen kierroksen historia voidaan esittää kuuden binäärisen merkin avulla (esim. CC CD CC), on mahdollisia historioita yhteensä 2 = 4 kappaletta. Näin ollen pelistrategia voidaan esittää 13

4-alkioisena vektorina, joka liittää kuhunkin kolmen kierroksen historiaan jonkin reaktion. Yllä mainitut 4 strategiaa liittyvät erilaisiin kolmen edellisen siirron historioihin. Pelin ensimmäisillä kolmella kierroksella tätä historiaa ei kuitenkaan ole olemassa. Näitä kierroksia varten täytyy siis luoda omat strategiat. Ensimmäistä kierrosta varten tarvitaan yksi strategia, sillä sitä ennen ei ole mitään historiaa. Toisella kierroksella mahdollisia historioita on 2 2 = 4 (CC, CD, DC, DD), joita kutakin varten tarvitaan oma strtegia. Kolmannen kierroksen strategiat perustuu kahden ensimmäisen kierroksen historiaan, joka tarkoittaa että erilaisia mahdollisuuksia on 2 4 = 1 kappaletta. Näin ollen koko pelistrategia voidaan esittää vektorilla, jossa on 4 + 1 + 4 + 1 = 5 alkioita. 3 Taulukko 1 havainnollistaa kuinka pelistrategia liittää jonkin reaktion kaikkiin mahdollisiin historioihin. Geneettisten algoritmien käyttö on tässä tilanteessa tarpeellista, sillä erilaisia strategiavaihtoehtoja on yhteensä 2 5 3.9 10 25 kappaletta. Kaikkien strategioiden läpikäyminen on nykyisilläkin tietokoneilla mahdotonta. 3 Alkuperäisessä tutkimuksessaan Axelrod liitti ensimmäisten kolmen kierroksen strategiat vain vastustajan pelihistoriaan. Näin ollen nämä historiat voitiin käsitellä seitsemällä (1 + 2 1 + 2 2 = 7) strategialla. Malli kuitenkin paranee kun se huomioi myös omat alkusiirrot. 14

Historia Ensimmäinen siirto CC CD DC DD CC CC CC CD. DD DC DD DD CC CC CC CC CC CD CC CC DC. DD DD DC DD DD DD Strategia C C D C D C D. C D C D C. C D Taulukko 1: Taulukossa on esitetty, kuinka strategia liittää kuhunkin vektoriin jonkin reaktion. Oikeanpuoleinen sarake kuvaa strategiavektoria. Taulukon reaktiot noudattavat potut pottuina -strategiaa, jossa kunkin kierroksen reaktio on sama kuin vastustajan valinta edellisellä kierroksella. 15

Axelrodin tulokset Geneettisessä algoritmissaan Axelrod peluutti luotuja strategioita kahdeksaa kilpailuun osallistunutta strategiaa vastaan. Optimoitavana hyvyysfunktiona (engl. fitness function) käytettiin kaikilta pelikierroksilta, kaikkia vastustajia vastaan, saatua kokonaishyötyä. Kokeessa jokaista peliä pelattiin 151 kierrosta, alkupopulaatioon kuului 20 strategiaa ja algoritmia iteroitiin 50 sukupolvea. Alkupopulaation strategiat valittiin täysin satunnaisesti. Koe tuotti merkittäviä tuloksia: Algoritmi kehitti populaation, jonka keräämän kokonaishyödyn mediaani oli yhtä hyvä kuin turnauksen voittaneella potut pottuina -strategialla. Geneettisen algoritmin luomat strategiat olivat itse asiassa ominaisuuksiltaan hyvin lähellä potut pottuina -startegiaa. Tuloksia tarkastellessa on hyvä muistaa, että geneettisen algoritmin tuottama optimistrategia riippuu voimakkaasti niistä strategioista joita vastaan sitä peluutetaan. Valitsemalla vastustajien strategiat toisin saataisiin siis myös toisenlaisia optimistrategioita. Viitteet [1] N. Ansari and E. Hou. Computational Intelligence for Optimization. Kluwer Academic Publishers, 1997. [2] R. Axelrod. The evolution of strategies in the iterated prisoner s dilemma. In L. Davis, editor, Genetic algorithms and simulated annealing. Pitman, 197. [3] R. Axelrod. The Evolution of Cooperation. Penguin Books, 1990. [4] N.A. Barricelli. Numerical testing of evolution theories. part ii. preliminary tests of performance, symbiogenesis and terrestrial life. Acta Biotheoretica, 1:99 12, 193. 1

[5] G.B. Dantzig, R. Fulkerson, and S.M. Johnson. Solution of a large-scale traveling salesman problem. Operations Research, 2:393 410, 1954. [] M. Dorigo and T. Stützle. Ant Colony Optimization. The MIT Press, 2004. [7] R. Gibbons. A Primer in Game Theory. Prentice Hall, 1992. [] J. H. Holland. Adaptation in Natural and Artificial Systems. The MIT Press, 1975. [9] J. Kirk. Traveling salesman problem - genetic algorithm. http://www.mathworks.com/matlabcentral/fileexchange/ loadfile.do?objectid=130&objecttype=file. [10] S. Kirkpatrick, C.D. Gelatt, and M.P. Vecchi. Optimization by simulated annealing. Science, 220:71 0, 193. 17