Stiahnuť prezentáciu
Prezentácia sa nahráva. Prosím počkajte
1
Horolezecký algoritmus
10 minútová úloha na cvičenia z predmetu Evolučné algoritmy Ján Májek
2
Obsah prezentácie Úloha Algoritmus Meranie Výsledky Zhodnotenie
Diskusia
3
Úloha Horolezeckým algoritmom nájsť referenčný reťazec (RR)
Fitnes je počet pozícií s rovnakým znakom ako RR Štatisticky vyhodnotiť získané údaje pre rôzne dĺžky reťazca a rôzne veľkosti okolia
4
Algoritmus Generovanie okolia je náhodný proces
Lokálne minimá sú prekonateľné Vždy nájde vrchol
5
Algoritmus $string = $this->generateFirst(); $maxFitnes = -1;
$generation = 0; while ( $generation < $this->maxGenerations && $maxFitnes < $this->perfectFitnes ) { $generation++; $surrounding = $this->generateSurrounding($string); $newString = $this->getBestSurrounding($surrounding); if ($this->fitnes($newString)>=$this->fitnes($string)) $maxFitnes = $this->fitnes($newString); $string = $newString; }
6
Algoritmus function generateSurrounding($string) {
$surrounding = array(); for ($a = 0; $a < $this->surroundingSize; $a++) { $mutatedString = $this->mutate($string); array_push($surrounding, $mutatedString); } return $surrounding; function getBestSurrounding($surrounding) { $bestSurrounding = ''; $maxFitnes = -1; foreach ($surrounding as $string) { $fitnes = $this->fitnes($string); if ($fitnes > $maxFitnes) { $bestSurrounding = $string; $maxFitnes = $fitnes; } return $bestSurrounding;
7
Algoritmus function mutate($string) {
$pos = rand(0, strlen($string) - 1); $char = rand(0, strlen($this->alphabeth) - 1); $string{$pos} = $this->alphabeth{$char}; return $string; } function fitnes($string) { $fitnes = 0; for ($a = 0; $a < strlen($string); $a++) { if ($string{$a} == $this->perfectMatch{$a}) { $fitnes++; } return $fitnes;
8
Meranie 3 reťazce rôznej dĺžky: Abeceda: A-Z,a-z,.,?,!,medzera
“Ahoj” (4) “Ahoj ako sa mas?” (16) “Ahoj ako sa mas? Ja sa mam uplne super!” (39) Abeceda: A-Z,a-z,.,?,!,medzera Veľkosť okolia: 10, 50, 100 20 behov pre najdlhší reťazec a veľkosti okolia 50 a 100 100 behov pre ostatné kombinácie
9
Výsledky
10
Výsledky
11
Výsledky
12
Výsledky Počet generácií potrebných na zvýšenie fitnes o jedna rastie smerom k vrcholu
13
Zhrnutie Počet generácií rastie v závislosti od dĺžky reťazca
Počet generácií mierne klesá s rastúcou veľkosťou okolia Počet ohodnotení pomerne prudko rastie v závislosti od dĺžky okolia aj od veľkosti okolia
14
Priestor pre vaše otázky
Ďakujem za pozornosť Priestor pre vaše otázky
Podobné prezentácie
© 2024 SlidePlayer.sk Inc.
All rights reserved.