GA & robot path planning Janne Haapsaari AUTO3070 - Geneettiset algoritmit
GA robotiikassa Sovelluksia liikkeen optimoinnissa: * eri vapausasteisten robottien liikeratojen optimointi * autonomisten robottien reittihaku * muuttuvaan ympäristöön reagoiminen
Miksi GA? * Polunmääritys usein laskennallisesti vaativa ongelma jollaisista GA:n todettu selviävän monessa tapuksessa kiitettävästi. * Polunmäärityksen parametreja voidaan muuttaa erilaisia polkuvaihtoehtoja varten ilman algoritmin muuttamista. * Opettaminen / ohjaaminen ilman ihmistä. * Robustimpi kuin monet perinteiset menetelmät
Reitinhaun käsitteitä Ympäristö * Staattinen * Dynaaminen Agloritmi * Global * Local Suoritustilanne * Offline * Online
Yleiset ominaisuudet reitinhaussa Alkupopulaatio / geenit Luodaan joukko jonkinlaisia reittejä alkupisteen ja päätepisteen välille satunnaisista pisteistä. Yksittäisissä reiteissä voi olla eri määrä solmuja. Solmujen koodaus yhdenmukainen. (samanpituisia) Populaatioiden yleinen ongelma liiallinen konvergenssi joka johtaa ratkaisujoukkojen supistumiseen ja todennäköiseen umpikujaan.
Yleiset ominaisuudet reitinhaussa Hyvyysfunktio Yksinkertaisimmillaan pisteiden euklidisten etäisyyksien summa. Esteet reitillä korkeammalla painokertoimella siten että paras toteutuskelvoton reitti saa aina huonomman hyvyysarvon kuin huonoin toeteutuskelpoinen reitti. Muita yleisiä parametrejä solmujen määrä, kuluva aika ja reitin muoto joita painottamalla saadaan helutessa erilaisia reittejä. Elitismi huomattavasti yleisempää staattisissa ympäristöissä kuin dynaamisissa joissa kattavan perimän ylläpito tärkeää.
Yleiset ominaisuudet reitinhaussa Geneettiset operaatiot Yleisesti käytetyt risteytys ja mutaatio usein riittämättömiä reitinhaussa. Parhaiden reittien optimointiin vaaditaan usein lisäksi erilliset silotus- ja korjausfunktiot jotka korjaavat reittiä optimaalisemmaksi ja kiertävät esteitä.
Yleiset ominaisuudet reitinhaussa Risteytys Yleisin käytetty risteytysmuoto oli alijoukkojen risteytys joka saattoi muuttaa reitin solmujen määrää. Ongelmatyypistä riipuen risteytys vain reittien leikkauspisteiden väleillä oli suosittu menetelmä. Harvemmin käytetyssä risteytysmuodossa risteytyksessä käytettiin isäntäsolmujen keskiarvoja joihin lisättiin vähäistä satunnaisuutta. Risteytys aiheutti monissa tapauksissa liiallista ratkaisujoukon kutistumista josta oli haittaa erityisesti dynaamisessa ympäristössä.
Yleiset ominaisuudet reitinhaussa Mutaatio Yleisesti käytetty mutaatio on vaihtaa satunnainen polun solmu ratkaisuavaruuden ulkopuoliseen solmuun. Staattisissa ympäristöissä mutaatioiden todennäköisyys pieneni yleisesti sukupolvien kasvaessa. Dynaamisissa ympäristöissä huomattavan korkea mutaatioaste. Vähemmän käytettyjä mutaatioita: osajoukon kääntäminen kupera -> kovera, solmujen vähäinen siirtäminen lähemmäs optimia kasvavalla todennäköisyydellä.
Yleiset ominaisuudet reitinhaussa Silotus ja oikopolku Yleisesti käytettyjä hienosäätöfunktioita joita käytetään toimiviin reitteihin paikallisessa reitinhaussa. Silotusfunktiolla siirretään solmua lähemmäs optimia tai opistetaan koko solmu mikäli näin päästään parempaan tulokseen. Oikopolussa toimivien yhteyksien lisätään välisolmut jotka yhdistetään ja poistetaan näiden väliin jäävät solmut kuten silotusfunktiossa.
Korjaus Varsinkin dynaamisessa ympäristössä paikallista algoritmia suoritettaessa tulee vastaan tilanteita jolloin reitillä oleva este pysäyttää funktion etenemisen. Yleisin korjausfunktion toteutus on luoda esteen ympäristöön yksi tai useampi satunnainen piste jotka yhdistetään polkuun.
Esim. Salvatore Candino Solmujen arvot tallennetaan kahden pisteen välisenä kulmana binääripuuhun. Polun resoluutiota voidaan säätää puun syvyydellä.
Esim. Salvatore Candino Hyvyysfunktio: Hyvyysfunktio laskee yhteen solmujen euklidiset etäisyydet ja lisää rangaistuksen jokaisesta esteeseen törmäävästä reitistä. Valinta: Käytettiin kahdensuuruista turnajaisvaintaa.
Esim. Salvatore Candino Risteytys: Alipuuristeytys Yksipisteristeytys jossa pisteiden alipuut vaihdetaan keskenään. Mutaatio: Satunnaismutaatio - Yhden solmun kulma vaihdetaan satunnaisesti. Tn 0.05 laski sukupolvien myötä. Pieni mutaatio - Yhden solmun kulmaa pienennetään vähän. Kääntömutaatio Kääntää kuperan osan koveraksi. Voidaan käyttää kääntämään reitti esteen ohi. Näiden tn 0.025 ja kasvoi sukupolvien myötä hienosäätöä varten.
Esim. Salvatore Candino Hybridi: Lopuksi kelvollisiin reitteihin sovellettiin paikallishakua jossa solmuja poistettiin ja tarkistettiin saavutettiinko lyhyempää reittiä. Näin saatiin parannettua suoritusta huomattavasti.
Esim. Salvatore Candino Ilman hybridiä Hybridillä
Lähteet * Autonomous Robot Path Planning using a Genetic Algorithm - Salvatore Candido http://www-cvr.ai.uiuc.edu/~scandido/pdf/gapathplan.pdf * Using genetic algorithms to learn reactive control parameters for autonomous robotic navigation - A Ram, G Boone, R Arkin http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.727&rep=rep1&type=pdf * Genetic path planning for mobile robots Gerke M. http://ieeexplore.ieee.org.proxy.tritonia.fi/stamp/stamp.jsp? tp=&arnumber=786483 * Genetic Algorithm for Dynamic Path Planning - A Elshamli http://deimos.eos.uoguelph.ca/sareibi/publications_dr/absconferences/shamli_ccecc04_r5.pdf