Algoritmai kopijuojant gamt genetiniai algoritmai Gravydas Felinskas iauli

  • Slides: 69
Download presentation
Algoritmai kopijuojant gamtą: genetiniai algoritmai Gražvydas Felinskas Šiaulių Universitetas Technologijos, fizinių ir biomedicinos mokslų

Algoritmai kopijuojant gamtą: genetiniai algoritmai Gražvydas Felinskas Šiaulių Universitetas Technologijos, fizinių ir biomedicinos mokslų fakultetas Informatikos ir matematikos katedra 2017 -01 -23

Genetiniai algoritmai (GA) “Genetiniai Algoritmai geba apimti dideles ir netgi milžiniškas paieškos erdves ir

Genetiniai algoritmai (GA) “Genetiniai Algoritmai geba apimti dideles ir netgi milžiniškas paieškos erdves ir jas tyrinėti, ieškant optimalių įvairių dalykų kombinacijų, sprendinių, kurių kitaip nesurastumėt net per visą gyvenimą” - Salvatore Mangano Computer Design, May 1995 // Wendy Williams – Metaheuristic Algorithms //

Dalykinės srities terminai OPTIMUMAS, OPTIMALUS! Optimizavimas -> MIN, MAX ir jų kombinacijos. Optimizavimo uždaviniai.

Dalykinės srities terminai OPTIMUMAS, OPTIMALUS! Optimizavimas -> MIN, MAX ir jų kombinacijos. Optimizavimo uždaviniai. Kombinatorika. Deterministinis ir stochastinis. Keliaujančio pirklio uždavinys (TSP): www. youtube. com/watch? v=SC 5 CX 8 dr. At. U Tikslo funkcija. Pilno perrinkimo metodas (Brute Force). Atsitiktinė paieška (Monte Karlo metodas). Godieji (Greedy) algoritmai. Euristika ir metaeuristika.

Keliaujančio pirklio uždavinys (TSP – Traveling Salesman Problem)

Keliaujančio pirklio uždavinys (TSP – Traveling Salesman Problem)

Keliaujančio pirklio uždavinys (TSP – Traveling Salesman Problem)

Keliaujančio pirklio uždavinys (TSP – Traveling Salesman Problem)

Keliaujančio pirklio uždavinys (TSP – Traveling Salesman Problem)

Keliaujančio pirklio uždavinys (TSP – Traveling Salesman Problem)

Sąvokos, apibrėžimai Euristinis, Heuristic (/hjʊˈrɪstɨk/, iš graikų kalbos žodžio „Εὑρίσκω“, kuris reiškia „rasti" ar

Sąvokos, apibrėžimai Euristinis, Heuristic (/hjʊˈrɪstɨk/, iš graikų kalbos žodžio „Εὑρίσκω“, kuris reiškia „rasti" ar „atrasti") būdvardis, apibūdinantis patirtimi grįstas technikas/metodus, kurios gali padėti spręsti uždavinius, mokytis ir atrasti. Euristiniai metodai taikomi ten, kur reikia greitai rasti sprendinį, kuris, tikimasi, yra artimas pačiam geriausiam - optimaliam. Euristikos yra lyg „pirštų taisyklės“, išmokti spėjimai, praktika, intuityvūs sprendimai ar tiesiog paprastas sveikas protas.

Sąvokos, apibrėžimai Informatikoje euristinis algoritmas, ar tiesiog euristika, yra algoritmas, kuris gali gauti tinkamą

Sąvokos, apibrėžimai Informatikoje euristinis algoritmas, ar tiesiog euristika, yra algoritmas, kuris gali gauti tinkamą uždavinio sprendinį daugelyje praktinių sričių, kuriose gal net nėra formalių įrodymų apie jų teisingumą. Galbūt ji ir gera, bet nėra įrodyta, kad tai gali duoti optimalų sprendinį ar eikvoti pagrįstus išteklius. Euristikos paprastai naudojamos, kai nėra žinomas metodas, kaip reikia rasti optimalų sprendinį su duotais apribojimais (laiko, atminties, erdvės ir t. t. ) ar be jų. //wikipedia//

Sąvokos, apibrėžimai Metaeuristika (metaheuristic) yra euristinis metodas, skirtas įvairių klasių skaičiuojamiesiems uždaviniams spręsti, kombinuojant

Sąvokos, apibrėžimai Metaeuristika (metaheuristic) yra euristinis metodas, skirtas įvairių klasių skaičiuojamiesiems uždaviniams spręsti, kombinuojant vartotojo duotas paslėptas kitas procedūras/euristikas, siekiant gauti efektyvesnį ar patikimesnį metodą. Pavadinimas turi graikišką priešdėlį „meta“ („už“, „anapus“, turint omeny „aukštesnį lygį“) ir „heuristic“ (iš „ευρισκειν“, heuriskein - „rasti"). //wikipedia//

Euristikų/metaeuristikų istorija 1952: Pirmieji darbai apie stochastinius optimizavimo metodus. 1965: Rechenberg sugalvoja pirmąjį evoliucinį

Euristikų/metaeuristikų istorija 1952: Pirmieji darbai apie stochastinius optimizavimo metodus. 1965: Rechenberg sugalvoja pirmąjį evoliucinį algoritmą. 1975: John Holland pasiūlo pirmuosius genetinius algoritmus. 1980: Smith aprašo genetinį programavimą. 1983: Kirkpatrick, Gelatt ir Vecchi sugalvoja modeliuojamojo atkaitinimo (simulated annealing) algoritmą. 1986: Fred Glover pirmą kartą pamini terminą "meta-euristika", pristatydamas tabu paieškos (tabu search) koncepciją. 1989: Goldberg išleidžia vieną labiausiai žinomų knygų apie genetinius algoritmus. 1991: Marco Dorigo pasiūlo kruzdžių kolonijos algoritmus (ACO – Ant colony optimization). 1995: Kennedy ir Eberhart sugalvoja dalelių spiečių optimizavimo metodus (particle swarm optimization). 2000: Pirmieji interaktyvūs genetiniai algoritmai. 2005: Karaboga pasiūlo Dirbtinės bičių kolonijos (Artificial Bee Colony) algoritmą. . //wikipedia//

Paieškos metodų klasės

Paieškos metodų klasės

Įvadas į genetinius algoritmus • Genetiniai algoritmai (GA) – tai technikos/metodai, skirti spręsti optimizavimo

Įvadas į genetinius algoritmus • Genetiniai algoritmai (GA) – tai technikos/metodai, skirti spręsti optimizavimo uždavinius. • GA yra evoliucinių algoritmų poklasė. • GA pagrindas yra Darwin’o evoliucijos teorija. Biologinis pagrindas: Rūšių kilmė, Natūralioji atranka.

Gamta vs. Kompiuteris GAMTA Populiacija Individas Tinkamumas Chromosoma Genas Reprodukcija KOMPIUTERIS Uždavinio sprendinių rinkinys.

Gamta vs. Kompiuteris GAMTA Populiacija Individas Tinkamumas Chromosoma Genas Reprodukcija KOMPIUTERIS Uždavinio sprendinių rinkinys. 1 uždavinio sprendinys. Sprendinio kokybė. Užkoduotas sprendinys. Dalis užkoduoto sprendinio. Kryžminimas Dar abiejose pusėse sutinkami: atranka, mutacija. . . // Abhishek Sharma //

GA – evoliucinis algoritmas Evoliucija

GA – evoliucinis algoritmas Evoliucija

Trumpa GA apžvalga • Dažniausiai taikomi: - Diskretaus optimizavimo uždaviniuose. • Savybės: - Nėra

Trumpa GA apžvalga • Dažniausiai taikomi: - Diskretaus optimizavimo uždaviniuose. • Savybės: - Nėra labai greiti. - Gera euristika kombinatoriniams uždaviniams spręsti. • Specialiosios savybės: - Dažniausiai pabrėžiamas informacijos kombinavimas iš gerų „tėvų“ (kryžminimas). - Daug variacijų, taikant skirtingus kryžminimo, mutacijos, atrankos operatorius.

GA apibrėžimas Genetinis algoritmas yra tikimybinis paieškos algoritmas, kuris rinkinį (populiaciją) matematinių objektų (dažnai

GA apibrėžimas Genetinis algoritmas yra tikimybinis paieškos algoritmas, kuris rinkinį (populiaciją) matematinių objektų (dažnai fiksuoto ilgio binarines simbolių eilutes), kurių kiekvienas turi tinkamumo reikšmę, iteratyviai transformuoja į naują tų objektų palikuonių populiaciją, naudojant Darwin‘o natūraliosios atrankos principus bei panaudojant operacijas, kurios yra natūraliųjų genetinių operacijų pagrindas, t. y. kryžminimą ir mutaciją. // John R. Koza //

Atsitiktinės ar pilno perrinkimo paieškos nepraktiškumas Įsivaizduokite paieškos erdvę: • Uždaviniai, kurių sprendiniai koduojami

Atsitiktinės ar pilno perrinkimo paieškos nepraktiškumas Įsivaizduokite paieškos erdvę: • Uždaviniai, kurių sprendiniai koduojami 81 bitu, genetiniams algoritmams nėra sudėtingi. • Palyginimui, 281 ~ 1027 = skaičius nanosekundžių, kurios prabėgo nuo visatos pradžios po Didžiojo Sprogimo maždaug prieš 15 milijardų metų.

GA tikimybiniai žingsniai • Pradinė populiacija dažniausiai atsitiktinė. • Tikimybinės atrankos pagrindas yra tinkamumas

GA tikimybiniai žingsniai • Pradinė populiacija dažniausiai atsitiktinė. • Tikimybinės atrankos pagrindas yra tinkamumas (fitness). • Geriausias ne visada pasirenkamas. • Blogiausias nebūtinai pašalinamas. • Atsitiktinai parenkami mutacijos ir kryžminimo taškai. • Dažnai tinkamumo matavimui iš dalies naudojamas tikimybinis scenarijus.

GA: pagrindiniai komponentai 1. Genetinė reprezentacija (užkodavimas) 5. Genetiniai operatoriai (kryžminimas, mutacija) 2. Pradinės

GA: pagrindiniai komponentai 1. Genetinė reprezentacija (užkodavimas) 5. Genetiniai operatoriai (kryžminimas, mutacija) 2. Pradinės populiacijos generavimo metodas 6. Tolimesnių generacijų kūrimo mechanizmas GAs 3. Įvertinimo funkcija 7. Stabdymo kriterijus 4. Atrankos reprodukcijai schema 8. GA parametrų nustatymai (praktika ir meistriškumas) // W. Williams, T. Tunnukij, C. Hicks //

genas Dar terminų: Chromosoma Populiacija tėvai … vaikai

genas Dar terminų: Chromosoma Populiacija tėvai … vaikai

GA – Paieškos erdvė • Dažniausiai geriausio sprendinio ieškome specifiniame sprendinių poaibyje. • Šis

GA – Paieškos erdvė • Dažniausiai geriausio sprendinio ieškome specifiniame sprendinių poaibyje. • Šis poaibis vadinamas paieškos erdve. • Kiekvienas taškas paieškos erdvėje yra galimas sprendinys. • Todėl kiekvienas taškas turi tinkamumo reikšmę, priklausančią nuo uždavinio apibrėžimo. • GA naudojami paieškos erdvėje ieškoti geriausio sprendinio, pvz. minimumo. • Sunkumai gali kilti su lokaliais minimumais ir su paieškos starto tašku.

GA– užkodavimas • Chromos dažnai užkoduojamos bitų eilutėmis. • Po kiekviena bitų eilute slypi

GA– užkodavimas • Chromos dažnai užkoduojamos bitų eilutėmis. • Po kiekviena bitų eilute slypi sprendinys, bet nebūtinai geriausias sprendinys. • Būdai, kuriais koduojamos bitų eilutės, skirtinguose uždaviniuose skiriasi.

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria satisfied? N Selection Y T=T+1 (go to next step) Crossover Stop Mutation // http: //obitko. com/tutorials/genetic-algorithms/ //

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria satisfied? N Selection Y T=T+1 (go to next step) Crossover Stop Mutation // http: //obitko. com/tutorials/genetic-algorithms/ //

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria satisfied? N Selection Y T=T+1 (go to next step) Crossover Stop Mutation // http: //obitko. com/tutorials/genetic-algorithms/ //

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria

GA blokinė schema Begin Initialize population Evaluate Solutions T =0 (first step) Stoping criteria satisfied? N Selection Y T=T+1 (go to next step) Crossover Stop Mutation // http: //obitko. com/tutorials/genetic-algorithms/ //

GA vaizdžiai

GA vaizdžiai

Turnyrinė atranka – dažnai taikoma • Procedūra: – Parink atsitiktinai k narių ir iš

Turnyrinė atranka – dažnai taikoma • Procedūra: – Parink atsitiktinai k narių ir iš jų išrink geriausią. – Kartok veiksmą, kad išrinkti daugiau individų. • Atskiras atvejis, kai k=2, vadinamas dvikovų metodu. – Iš dviejų atsitiktinai atrinktų sprendinių laimi geresnis sprendinys (pagal tikslo funkcijos reikšmę). – Taikant šį atrankos metodą, gana prastas sprendinys nebūtinai eliminuojamas. Taip pat nebūtinai tolesnėje evoliucijoje dalyvaus gan geras sprendinys. – PASTEBĖJIMAS: pats geriausias sprendinys visada lieka, pats blogiausias - visada eliminuojamas! Kitos atrankos rūšys: atsitiktinė, ranginė, ruletės principu ir kt.

Kryžminimas Parent 1 Parent 2 (0 1 1 0 0 0) (1 1 0

Kryžminimas Parent 1 Parent 2 (0 1 1 0 0 0) (1 1 0 1 0) (0 1 1 0 1 0) (1 1 0 0 0) Child 1 Child 2 Kryžminimas yra labai svarbi genetinių algorithmų savybė: – Tai žymiai paspartina paiešką ankstyvojoje populiacijos evoliucijoje. – Tai veda į efektyvias skirtingų chromosomų subsprendinių kombinacijas.

Kryžminimas Parent 1 Parent 2 (0 1 1 0 0 0) (1 1 0

Kryžminimas Parent 1 Parent 2 (0 1 1 0 0 0) (1 1 0 1 0) (0 1 1 0 1 0) (1 1 1 0 0 0) Child 1 Child 2 Kryžminimas yra labai svarbi genetinių algorithmų savybė: – Tai žymiai paspartina paiešką ankstyvojoje populiacijos evoliucijoje. – Tai veda į efektyvias skirtingų chromosomų subsprendinių kombinacijas.

1 -taškis kryžminimas • Parenkame atsitiktinį tašką dviejų „tėvų“ chromose. • „Perkerpame“ chromosomas ties

1 -taškis kryžminimas • Parenkame atsitiktinį tašką dviejų „tėvų“ chromose. • „Perkerpame“ chromosomas ties tuo kryžminimo tašku. • Sukuriame „vaikus“, sukeisdami chromosomų „uodegas“.

n-taškis kryžminimas (apibendrinimas) • Parenkame n atsitiktinių kryžminimo taškų. • „Sukarpome“ chromosomas ties tais

n-taškis kryžminimas (apibendrinimas) • Parenkame n atsitiktinių kryžminimo taškų. • „Sukarpome“ chromosomas ties tais taškais. • „Suklijuojame“ chromosomų dalis, kaitaliodami kas antrą iš skirtingų „tėvų“ (sukeičiame kas antrą bloką).

Mutacija Prieš: (1 0 1 1 0) Po: ? 0 1 1 0) (1

Mutacija Prieš: (1 0 1 1 0) Po: ? 0 1 1 0) (1 0 • Sukelia judėjimą paieškos erdvėje (lokalioje ar globalioje) • Atkuria prarastą populiacijos informaciją. • Mucijos apsaugo algoritmą nuo užstrigimo lokaliuose minimumuose.

Mutacija Prieš: (1 0 1 1 0) Po: ? 1 1 0) (0 1

Mutacija Prieš: (1 0 1 1 0) Po: ? 1 1 0) (0 1 • Sukelia judėjimą paieškos erdvėje (lokalioje ar globalioje) • Atkuria prarastą populiacijos informaciją. • Mucijos apsaugo algoritmą nuo užstrigimo lokaliuose minimumuose.

Mutacija • Nepriklausomai keičiame į priešingą kiekvieną geną su tikimybe pm • pm vadinamas

Mutacija • Nepriklausomai keičiame į priešingą kiekvieną geną su tikimybe pm • pm vadinamas mutacijos koeficientu. – Dažniausiai parenkamas tarp 1/pop_dydis ir 1/chromos_ilgis – Pvz. , jei populiacijoje yra 20 chromosomų, kurių kiekvieną sudaro 10 genų, tai 0, 05 ≤ pm ≤ 0, 1 Išeitų, jog mutacija gali paveikti nuo dvidešimtadalio iki dešimtadalio genų. Per maža mutacija nepakankamai pakeis sprendinius, o per didelė gali smarkiai juos iškraipyti.

Kryžminimai, mutacijos … • Skirtingose GA realizacijose naudojami skirtingi: – Reprezentavimai (užkodavimai) – Kryžminimai

Kryžminimai, mutacijos … • Skirtingose GA realizacijose naudojami skirtingi: – Reprezentavimai (užkodavimai) – Kryžminimai – Mutacijos – Atrankos mechanicmai

Kryžminimas AR mutacija? Kas yra geriau / būtina / esminis ? • Atsakymas (bent

Kryžminimas AR mutacija? Kas yra geriau / būtina / esminis ? • Atsakymas (bent jau dėl to sutariama): – Tai priklauso nuo uždavinio, bet. . . – Iš tiesų, gerai būtų naudoti abu. – Abu vaidina skirtingus vaidmenis. – Vien mutacijomis grįstas yra įmanomas, vien kryžminimais grįstas - neveiks.

Kryžminimas AR mutacija? Tyrinėjimas (žvalgymas): Paieškos erdvės daug žadančių sričių aptikimas, pvz. , informacijos

Kryžminimas AR mutacija? Tyrinėjimas (žvalgymas): Paieškos erdvės daug žadančių sričių aptikimas, pvz. , informacijos apie uždavinį įgijimas. Eksploatacija (išnaudojimas): Optimizavimas daug žadančioje srityje, pvz. , panaudojant įgytą/išžvalgytą informaciją. Susiduriame su kooperacija IR konkuravimu tarp šių dviejų dalykų. • Kryžminimas yra tyrinėjantis, jis atlieka didelius šuolius į erdves kažkur tarp dviejų „tėvų“ sprendinių erdvių. • Mutacija yra eksploatatyvi, ji sukuria atsitiktinius mažus nukrypimus, taip išliekant arti „tėvų“ sprendinių sričių.

Kuprinės (Knapsack) uždavinys 0 -1 Kuprinės uždavinys Duotas daiktų rinkinys, kurių kiekvienas turi svorį

Kuprinės (Knapsack) uždavinys 0 -1 Kuprinės uždavinys Duotas daiktų rinkinys, kurių kiekvienas turi svorį (ar tūrį) ir vertę bei tam tikro dydžio (talpos) kuprinė. Rasti tokį daiktų rinkinį, kad bendras tų daiktų svoris (tūris) neviršytų kuprinės talpos, o bendra daiktų vertė būtų kiek įmanoma didesnė, t. y. maksimali. Šiuo atveju labai tinka binarinis sprendinių užkodavimas

0 -1 kuprinės uždavinys 1 genas 0 1 0 0 chromosoma Sprendinio užkodavimas

0 -1 kuprinės uždavinys 1 genas 0 1 0 0 chromosoma Sprendinio užkodavimas

0 -1 kuprinės uždavinys (formalizuotas)

0 -1 kuprinės uždavinys (formalizuotas)

Keliaujančio pirklio uždavinys (TSP) 4 1 5 3 2 6 Šiuo atveju labiausiai tinka

Keliaujančio pirklio uždavinys (TSP) 4 1 5 3 2 6 Šiuo atveju labiausiai tinka sprendinių (maršrutų) kodavimas mazgų numerių sąrašais.

Pradinė sprendinių populiacija (sugeneruojama) (5, 3, 4, 6, 2) (2, 4, 6, 3, 5)

Pradinė sprendinių populiacija (sugeneruojama) (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6, 5, 2) (2, 3, 4, 6, 5) (4, 3, 6, 2, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4)

Parenkame „tėvus“ (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3,

Parenkame „tėvus“ (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6, 5, 2) (2, 3, 4, 6, 5) (4, 3, 6, 2, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) Galima stengtis parinkti kuo geresnius.

Kuriame palikuonis: 1 -taškis kryžminimas (5, 3, 4, 6, 2) (2, 4, 6, 3,

Kuriame palikuonis: 1 -taškis kryžminimas (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6, 5, 2) (2, 3, 4, 6, 5) (4, 3, 6, 2, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) (3, 4, 5, 6, 2) ? (3, 4, 4, 6, 2)

Kuriame daugiau palikuonių (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4,

Kuriame daugiau palikuonių (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6, 5, 2) (2, 3, 4, 6, 5) (4, 3, 6, 2, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) (3, 4, 5, 6, 2) (5, 4, 2, 6, 3)

Pritaikome mutaciją (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (2, 3,

Pritaikome mutaciją (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (2, 3, 4, 6, 5) (4, 3, 6, 2, 5) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) (3, 4, 5, 6, 2) (4, 3, 6, 5, 2) Pakaks? (3, 4, 5, 2, 6) (5, 4, 2, 6, 3)

Pritaikome mutaciją (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3,

Pritaikome mutaciją (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6, 5, 2) (2, 3, 4, 6, 5) (2, 3, 6, 4, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) (3, 4, 5, 6, 2) (5, 4, 2, 6, 3)

Eliminuojame (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6,

Eliminuojame (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (4, 3, 6, 5, 2) (2, 3, 4, 6, 5) (2, 3, 6, 4, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) (3, 4, 5, 6, 2) (5, 4, 2, 6, 3) Galima stengtis eliminuoti blogiausius.

Integruojame (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (5, 4, 2,

Integruojame (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (5, 4, 2, 6, 3) (3, 4, 5, 6, 2) (2, 3, 6, 4, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4) Vietoj eliminuotų į populiaciją įtraukiame palikuonis.

Restartas (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (5, 4, 2,

Restartas (5, 3, 4, 6, 2) (2, 4, 6, 3, 5) (5, 4, 2, 6, 3) (3, 4, 5, 6, 2) (2, 3, 6, 4, 5) (3, 4, 5, 2, 6) (3, 5, 4, 6, 2) (4, 5, 3, 6, 2) (5, 4, 2, 3, 6) (4, 6, 3, 2, 5) (3, 4, 2, 6, 5) (3, 6, 5, 2, 4)

O kaip galima būtų interpretuoti dvitaškį kryžminimą? Kitas TSP pavyzdys. . .

O kaip galima būtų interpretuoti dvitaškį kryžminimą? Kitas TSP pavyzdys. . .

Sprendinių užkodavimas/atvaizdavimas Naudojame surikiuotą miestų numerių sąrašą. 1) London 2) Venice 3) Dunedin 4)

Sprendinių užkodavimas/atvaizdavimas Naudojame surikiuotą miestų numerių sąrašą. 1) London 2) Venice 3) Dunedin 4) Singapore 5) Beijing 7) Tokyo 6) Phoenix 8) Victoria City. List 1 (3 5 7 2 1 6 4 8) City. List 2 (2 5 7 6 8 1 3 4)

2 -taškis kryžminimas Parent 1 Parent 2 Child 1 * * (3 5 7

2 -taškis kryžminimas Parent 1 Parent 2 Child 1 * * (3 5 7 2 1 6 4 8) (2 5 7 6 8 1 3 4) (5 8 7 2 1 6 3 4) (3 5 7 6 8 1 2 4)

2 -taškis kryžminimas Parent 1 Parent 2 Child 1 * * (3 5 7

2 -taškis kryžminimas Parent 1 Parent 2 Child 1 * * (3 5 7 2 1 6 4 8) (2 5 7 6 8 1 3 4) (5 8 7 2 1 6 3 4) (3 5 7 6 8 1 2 4) OK

2 -taškis kryžminimas Parent 1 Parent 2 Child 1 * * (3 5 7

2 -taškis kryžminimas Parent 1 Parent 2 Child 1 * * (3 5 7 2 1 6 4 8) (2 5 7 6 8 1 3 4) (5 8 7 2 1 6 3 4) (3 5 7 6 8 1 2 4) OK OK

Mutacija šiek tiek pakeičia sąrašą: Prieš: * * (5 8 7 2 1 6

Mutacija šiek tiek pakeičia sąrašą: Prieš: * * (5 8 7 2 1 6 3 4) Po: (5 8 6 2 1 7 3 4)

Keliaujančio pirklio uždavinio (angl. TSP – Traveling Salesman Problem) pavyzdys: 30 miestų

Keliaujančio pirklio uždavinio (angl. TSP – Traveling Salesman Problem) pavyzdys: 30 miestų

Sprendinys i (Atstumas = 941)

Sprendinys i (Atstumas = 941)

Sprendinys j (Atstumas = 800)

Sprendinys j (Atstumas = 800)

Sprendinys k (Atstumas = 652)

Sprendinys k (Atstumas = 652)

Geriausias sprendinys (Atstumas = 420)

Geriausias sprendinys (Atstumas = 420)

GA taikymų sritys // W. Williams //

GA taikymų sritys // W. Williams //

GA iliustruojantis video www. youtube. com/watch? v=ejxf. Ty 4 l. I 6 I

GA iliustruojantis video www. youtube. com/watch? v=ejxf. Ty 4 l. I 6 I

Papildomi video apie GA www. youtube. com/watch? v=zw. YV 11 a__HQ

Papildomi video apie GA www. youtube. com/watch? v=zw. YV 11 a__HQ

Papildomi video apie GA www. youtube. com/watch? v=Y-XMh-iw 07 w

Papildomi video apie GA www. youtube. com/watch? v=Y-XMh-iw 07 w

Papildomi video apie GA www. youtube. com/watch? v=lp. D 38 Nx. TOnk

Papildomi video apie GA www. youtube. com/watch? v=lp. D 38 Nx. TOnk

Ačiū už dėmesį! Turite klausimų?

Ačiū už dėmesį! Turite klausimų?