Genetiniai algoritmai

Download Report

Transcript Genetiniai algoritmai

Genetiniai algoritmai
Dvi mokslo šakos
Informatika
Biologija
Robotai, uždaviniai, sudėtingumas
• Uždaviniai, kuriuos sprendžia robotai, rečiau
sutinkami klasikinėje informatikoje
• Sudėtingumas ir neapibrėžtumas yra labai
aukštas
• Reikalingas gebėjimas prisitaikyti kintančiose
aplinkose
Evoliucija
• Būtinos sąlygos:
– Egzistuoja būtybė, kuri gali sukurti savo kopiją
– Yra populiacija tokių būtybių
– Yra įvairovė tarp šių būtybių
– Dalis populiacijos savybių susijusių su išlikimu
šioje aplinkoje yra susiję ir su populiacijos įvairove
Ar galime išspręsti problemas tiksliai
neprogramuojant kodo ?
• Struktūros kurios nėra įprastos programos:
– Svorių vektoriai dirbtiniuose neuroniniuose
tinkluose
– Savaime besiorganizuojančios sistemos
– Sprendimų medžiai
– Formalios gramatikos
– Polinomų koeficientai
– Genetinių algoritmų chromosomos
Trumpai apie genetinius algoritmus
• Sukurti JAV apie 1970
• Dažniausiai naudojami diskrečiam
optimizavimui
• Žinomiausios pavardės:
– Holland, DeJong, Goldberg
Keblumai kylantys su genetiniais
algoritmais
Tikslumas
Nuoseklumas
Išaiškinimas
Kur naudojami
•
•
•
•
•
•
•
•
Optimizavime
Automatiniame programavime
Mašinų mokyme – klasifikavime, prognozavime
Ekonomikoje
Imunologijoje
Ekologijoje
Evoliucijoje ir mokyme
Socialinėse sistemose
Problemos kylančios su “kopimo i
kalną algoritmais”
Tačiau
Toliau
O tikrovėje
Kada yra naudojamas genetinis
algoritmas ?
• Genetinius algoritmus geriausiai yra naudoti
kai paieškos erdvė yra didelė, netolygi,
nereikia rasti globalaus optimumo. T.y. greitai
randamas pakankamai optimalus spendimas
• Jei erdvė nėra didelė, gali būti nuosekliai
peržiūrėta, suprantama (kaip keliaujančio
pirklio problema), paieškos metodai su
naudojantys srities žinias dažniausiai aplenks
genetinius algoritmus.
Esminiai dalykai susiję su problema
• Problemos kodavimas – parametrai, kuriuos
mums reikia optimizuoti
• Tinkamumo funkcija
• Optimizavimo problema: turime aibę
kintamųjų, kuriuos mums reikia optimizuoti
pagal tam tikrą tikslą. Maksimizuoti naudą
arba minimizuoti klaidą.
Sąvokos
• Chromosoma: genų rinkinys: [xi1, xi2, xi3, xi4, …]
• Tinkamumas: funkcija nusakanti kiek gerai
individas atlieka savo paskirtį
Genetinio algoritmo sudėtinės dalys
Reprezentacija
Rekombinacija (dauginimasis)
Mutacija
Tėvų atrinkimas
Išlikusių atrinkimas
Ypatybės
Reprezentacija
Bendri organizmo
požymiai
Kodavimas
Fenotipas
1011100111
0011001110
0000111000
Genotipas
Dekodavimas
• Fenotipas - tai organizmo visų požymių visuma
• Genotipas – tai organizmo (ląstelės) genetinės
informacijos visuma
Kodavimas
• Dažniausiai yra naudojamas fiksuoto ilgio,
fiksuotos tvarkos bitų kodavimas, kuris yra
labiausiai ištirtas
• Tačiau naudojami ir kiti kodavimai, kaip kad
simbolių arba pačių reikšmių perkėlimas į
chromosomas
Paprasto genetinio algoritmo (PGA)
ciklas
• Parinkti individus skirtus dauginimuisi (šiuo
atveju visą populiaciją)
• Išmaišyti individus
• Kiekvienai iš eilės einančiai porai pritaikyti
krosoverį su tikimybe Pk, kitaip kopijuoti
individus
• Kiekvienam palikuoniui su tikimybe Pm
pritaikyti mutaciją
• Pakeisti visą populiaciją palikuonimis
PGA kryžminimas
•
•
•
•
Surasti atsitiktinį tašką tarp dviejų tėvų chromosomų
Sukeisti tėvų chromosomas tame taške
Sukurti vaikus iš skirtingų chromosomos dalių
Pk paprastai būna 0.6 - 0.9 ribose
PGA mutacija
• Pakeisti kiekvieną gena nepriklausomaisu
tikimybe Pm
• Pm yra vadinama mutacijos tikimybe ir
paprastai būna tarp 1/populiacijos dydžio ir
1/chromosomos dydžio
PGA atranka
• Pagrindinė idėja geresni individai gauna
didesnes galimybes
• Tikimybė proporcionali individo tinkamumui
• Realizacija: ruletės ratas, kuriame kiekvienam
duodamas plotas atitinkantis tinkamumą
Pirmas
Antras
Trečias
Pirmo tinkamumas = 5
Antro tinkamumas = 15
Trečio tinkamumas = 30
Klasikinis genetinis algoritmas
• Buvo stipriai tiriamas anksčiau ir net dabar
naudojamas kaip pagrindas įvertinti naujiems
genetiniams algoritmams
• Trūkumai:
– Reprezentavimas yra labai ribotas (tik bitų eilutės)
– Mutacija ir krosoveris tinkamas tik bitų eilutėms
– Atrankos mechanizmas yra jautrus populiacijoms
su panašiomis tinkamumo reikšmėmis
Kitokios krosoverio operacijos
• Vieno taško krosoverio efektyvumas stipriai
priklauso nuo genų ir kaip jie yra išsidėstę
chromosomoje
– Turi savybę išlaikyti kartu genus, kurie yra šalia
– Gali niekada neišlaikyti kartu genų, kurie yra
skirtingose chromosomos pusėse
N taškų krosoveris
• Pasirenkame atsitiktinius krosoverio taškus
• Daliname per pasirinktus taškus
• Sujungiame dalis, kurios skiriasi tarp tėvų
Tolygus krosoveris
• Su tikimybe Pt yra sukeičiami tėvų genai
Krosoveris ar mutacija ?
• Yra ginčijamasi, kuris operatorius yra geresnis
– krosoveris ar mutacija ?
• Atsakymas:
– Tai priklauso nuo problemos;
– Gerai yra turėti abu
Problemos ir skirtumai
• Žvalgymas – naudingų ir daug žadančių vietų
radimas paieškos erdvėje t.y. Informacijos apie
problemą paieška
• Naudojimas – optimizacija aplink surastą
vietą, t.y. Informacijos panaudojimas
• Krosoveris yra skirtas žvalgymui, šokinėjimui
per dideles paieškos erdves
• Mutacija skirta tikslių sprendinių paieškai
stipriai nenutolstant nuo pradinės vietos
Krosoveris ar mutacija
• Tik krosoveris gali apjungti informaciją iš
dviejų tėvų
• Tik mutacija gali įvesti naują informaciją
• Kad pasiekti optimalų tašką dažnai reikalinga
“sėkminga” mutacija
Genetiniai algoritmai ir dirbtiniai
neuroniniai tinklai
• Evoliucionuojantys svoriai
• Evoliucionuojanti architektūra
• Evoliucionuojanti mokymosi taisyklė
• Pakankamai natūralu – gamta naudojasi tiek
genetiniais algoritmais, tiek dirbtiniais
neuroniniais tinklais
Baldwin ir Lamarck
• Ar išmoktos žinios persikelia palikuonims ?
Genetinis programavimas
Pavyzdys