Informacni hodnota clanku je slusna, to ano, ale ten kod. Nejde cist. Nazvy mnohych promennych jsou krypticke. Vypocet probiha v konstruktoru (!) tridy. Navic se tam micha kreslici a vypocetni kod. Temer nic neni oddelene do samostatnych metod, napr. doCrossover(), doMutation() apod. Takhle ja si ukazkovy kod nepredstavuju. "Setreni mistem" (uspora par radku inlinovanim funkci) zde opravdu "neni na miste".
Navic mam pocit, ze SimpleGA mutuje jedince i tehdy, pokud se nekrizili, coz tenhle kod myslim nedela.
Jo, uvedeny kod nedovoluje mutaci, pokud se nekrizilo.
Je to sice jen o definici SimpleGA a vuli autora, ale mnohdy je uzitecne provadet mutaci i bez krizeni. Obzvlaste kdyz krizenim hrozi rozbiti jedince (vznik nevalidniho reseni), nebo je oprava rozbiteho jedince prilis draha.
Napriklad pri krizeni (rozhodovacich) stromu s unikatnimi atributy v listech a pritom chceme zajistit, aby vysledny strom po krizeni (prohozeni nahodne vybranych podstromu) mel i nadale dane vlastnosti - urcitou hloubku, unikatni atributy v listech - tedy ze se nam nestane, ze ve 2 listech budeme mit shodny atribut apod.
Proto taky v pripadech, kdy mame v genu kodovane slozitejsi struktury nez pole cisel - napriklad uz zminene stromy, kusy zdrojoveho kodu, polynomy, atd. a mame i striktnejsi pozadavky na validitu reseni, prichazi do uvahy evolvovat misto techto struktur gramatiky poposujici pripustna reseni. Obrovskou vyhodou je, za kazda takto vznikla gramatika produkuje pouze validni reseni. Nic anm vsak nezarucuje, ze takto produkovana reseni budou lepsi, nez jina - primo nalezena pomoci GA i za cenu velmi slozitych implementaci doCross()/doMutate() s pripadnymi naslednymi opravami vzniklych zmetku.
Je tedy na kazdem, aby peclive uvazil jakou cestou jit a idealne se rovnou poucit z predchozich (ne)uspechu jinych experimentatoru.
Souhlasim. Cvicne jsem si zkusil zavest tridu Organism s tim double[9] a fitness, par radku pribylo, velikost souboru se vsak dokonce zmensila a je to samozrejme mnohem prehlednejsi. Takhle to autor utopil v polich a indexech. Pripomina mi to starou poucku, ze fortranske programy se daji psat v jakemkoli jazyce :-)
Jinak serial hezky, sice jsem se na GA vyblbnul az moc, ale cist bych o tom mohl porad. Tesim se na dalsi dil.