Horolezecký algoritmus

Slides:



Advertisements
Podobné prezentácie
Sila ktorá premáha zlo Marek 1, február 2015
Advertisements

Santa Fé, štát Nové Mexiko, USA
Anjelské chóry.
Problémy Európy.
Problémy Európy.
„Znepokojujúce otázky svetovej politiky na začiatku 21. storočia“
Frazeológia.
Prepis prezentácie:

Horolezecký algoritmus 10 minútová úloha na cvičenia z predmetu Evolučné algoritmy 23.3.2006 Ján Májek

Obsah prezentácie Úloha Algoritmus Meranie Výsledky Zhodnotenie Diskusia

Ú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

Algoritmus Generovanie okolia je náhodný proces Lokálne minimá sú prekonateľné Vždy nájde vrchol

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; }

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;

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;

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

Výsledky

Výsledky

Výsledky

Výsledky Počet generácií potrebných na zvýšenie fitnes o jedna rastie smerom k vrcholu

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

Priestor pre vaše otázky Ďakujem za pozornosť Priestor pre vaše otázky