Geneettiset algoritmit Evoluution piirteitä laskennassa Optimoinnin perusteet - Kevät 2002 / 1
Sisältö Geneettisten algoritmien sovelluskenttä Peruskäsitteitä Esimerkkejä funktion ääriarvon etsintä vangin ongelma Optimoinnin perusteet - Kevät 2002 / 2
Sovelluskenttä Vaikeasti ratkaistavat optimointitehtävät, kuten kombinatoriset ongelmat Soveltuu myös perinteisillä menetelmillä ratkaistaviin ongelmiin, mutta ei ole niissä välttämättä tehokas Ohjelmointi, koneoppiminen, taloustiede, immuunijärjestelmä, ekologia, genetiikka, evoluutio ja oppiminen, Optimoinnin perusteet - Kevät 2002 / 3
Yleistä Geneettiset algoritmit eivät vaadi kohdefunktion jatkuvuutta Tavoitteena on löytää hyvä, ei välttämättä optimaalinen ratkaisu Ei kannata käyttää perinteisillä menetelmillä tehokkaasti ratkeaviin ongelmiin Optimoinnin perusteet - Kevät 2002 / 4
Algoritmien rakenne Iteratiivinen menetelmä, jossa ratkaisujoukko päivittyy iteraatiosta toiseen Alkupopulaatio(ratkaisujoukko) luodaan satunnaisesti, jonka jälkeen joukkoa operoidaan Kohdefunktion arvo evaluoidaan jokaiselle nykyisen ratkaisujoukon alkiolle Optimoinnin perusteet - Kevät 2002 / 5
Tyypillinen algoritmin runko Luodaan satunnaisesti alkupopulaatio Evaluoidaan populaation jäsenet hyvyysfunktiolla Luodaan uusi populaatio geneettisten operaattoreiden avulla Toistetaan vaiheita 2 ja 3, kunnes ratkaisu suppenee tai on tehty haluttu määrä iteraatioita Optimoinnin perusteet - Kevät 2002 / 6
Geneettisiä operaattoreita Ratkaisujoukkoa operoidaan seuraavilla operaattoreilla Uudelleenvalinta eli reproduktio Risteytys Mutaatio Optimoinnin perusteet - Kevät 2002 / 7
Uudelleenvalinta Uuteen populaatioon valitaan alkiot se. paremman hyvyysfunktion arvon omaavilla alkioilla on suurempi tn. tulla valituiksi uudelleen Populaation alkioiden lukumäärä pidetään vakiona => hyvät ratkaisuehdokkaat valtaavat populaation Optimoinnin perusteet - Kevät 2002 / 8
Uudelleenvalinnan rulettitulkinta D E C A B Optimoinnin perusteet - Kevät 2002 / 9
Risteytys Ratkaisujoukon kahden alkion geenit sekoitetaan, ja saadaan uudet alkiot XXXXXXXXX YYYYYYYYY XXXXYYYYY YYYYXXXXX Toivotaan, että hyvien alkioiden geenejä sekoittamalla saadaan vielä parempia alkioita Katkaisukohta arvotaan satunnaisesti Optimoinnin perusteet - Kevät 2002 / 10
Mutaatio Valitaan alkiosta satunnaisesti geeni, joka vaihdetaan toiseen XXXXXXXXX XXXYXXXXX Mutaatio estää jämähtämistä paikallisiin optimeihin Risteytystä tai mutaatiota ei tehdä aina: on valittava risteytystodennäköisyys pc ja muutaatiotodennäköisyys pm Optimoinnin perusteet - Kevät 2002 / 11
Toimintaperiaate Rakennuspalikkahypoteesi: hyviä ratkaisuja yhdistämällä on mahdollisuus löytää vielä parempia ratkaisuja Algoritmin tehokkuuteen vaikuttaa sopivan kokoisen alkupopulaation valinta ja ongelman koodaus (varsinaiset haasteet) Optimoinnin perusteet - Kevät 2002 / 12
Esimerkki: Vangin ongelma Axelrod Michiganin yliopistosta järjesti 84 ja 87 turnajaisia toistetusta vanginongelmasta Eri alan tutkijoita pyydettiin 84 kisoissa lähettämään ohjelma, joka noudattaa tiettyä strategiaa, kun muistetaan 3 edellistä peliä Parhaaksi havaittiin silmä silmästä hammas hampaasta strategia Optimoinnin perusteet - Kevät 2002 / 13
Esimerkki: Vangin ongelma Oheisessa taulukossa on pelaajien hyödyt kustakin valinnasta Pelaaja 1 valitsee joko C:n tai D:n, samoin 2. pelaaja Tavoitteena on maksimoida systeemin pisteet, kun peliä toistetaan 2 C D 1 C 3,3 5,0 D 0,5 1,1 Optimoinnin perusteet - Kevät 2002 / 14
Esimerkki: Vangin ongelma 87 Axelrod päätti yrittää, kuinka geneettiseen algoritmiin perustuva strategiavalinta menestyy Axelrod havaitsi, että geneettisiin algoritmeihin perustuva valintamenettely oli menestyksekäs Optimoinnin perusteet - Kevät 2002 / 15
Esimerkki: Vangin ongelma Ongelman koodaus: CC CC CC (tapaus 1) CC CC CD (tapaus 2) DD DD DD (tapaus 64) Koodataan historioita vastaava päätös eli strategia 70-alkioiseksi vektoriksi, esim (CDCC.C), 64 alkiota stratgialle ja 6 aloitusvaihtoehdolle Optimoinnin perusteet - Kevät 2002 / 16
Esimerkki: Ääriarvon etsintä Etsitään ääriarvoa, esim. minimiä funktiolle, jolla on monta lokaalia minimiä välillä [a,b] Diskretoidaan väli 2^N pisteeksi, ja ilmoitetaan pisteiden koordinaatit N:n pituisena binäärijonona Arvotaan alkupopulaatio valitsemalla {0,1}^N :stä M alkiota, ja käytetään geneettisiä operaatioita uuden populaation luomiseksi Optimoinnin perusteet - Kevät 2002 / 17
Esimerkki: Kauppamatkustajan ongelma Etsittävä lyhin reitti M:n kaupungin läpikäymiseksi, kun kussakin kaupungissa on käytävä, mutta vain yhden kerran Koodataan ongelma siten, että ratkaisua voidaan etsiä geneettisten algoritmien avulla (Prujujen osuus geneettiset algoritmit s. 166) Optimoinnin perusteet - Kevät 2002 / 18
Esimerkki: Kauppamatkustajan ongelma Valitaan jokin käypä reitti kiinteäksi, ja koodataan muut reitit tämän avulla Esim. Olkoon kiinteä reitti (a,b,c,d,e); koodataan reitti (a,b,c,d,e) K a c e d b VR (a,b,c,d,e) (b,c,d,e) (b,d,e) (b,d) (b) nro 1 2 3 2 1 Tulos (1,2,3,2,1) Optimoinnin perusteet - Kevät 2002 / 19
Esimerkki: Kauppamatkustajan ongelma Näin koodattujen reittien risteytykset ovat myös reittejä: valitaan yksilöt x ja y arvotaan katkaisukohta k joukosta {1,2,,n-1} jälkeläisiksi vektorit (x1,,xk,yk+1,,yn) ja (y1,,yk, xk+1,,xn) Mutaatio voidaan tehdä valitsemalla koodivektorin i:nnen komponentin uusi arvo joukosta {1,2,,n+1-i} Optimoinnin perusteet - Kevät 2002 / 20