Prezentácia sa nahráva. Prosím počkajte

Prezentácia sa nahráva. Prosím počkajte

Horolezecký algoritmus

Podobné prezentácie


Prezentácia na tému: "Horolezecký algoritmus"— Prepis prezentácie:

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


Stiahnuť ppt "Horolezecký algoritmus"

Podobné prezentácie


Reklamy od Google