Tak, to program czysto proceduralny, wystarczą tablice, kilka pętli i sporo pomysłowości. Choć w sumie, dla większych populacji, dobrze byłoby mieć dostęp do plików (żeby zapisywać na dysk co pokolenie...). Ale bez tego można się obejść bez problemu.
Rowniez do Sokratoidesa i Ntego...
Algorytmy genetyczne sa fragmentem dziedziny AI i sluza do znajdowania rozwiazan zadan na ktore nieznany jest sposob rozwiazania jednak jest mozliwosc okreslenia czy cos jest blizej rozwiazania czy nie.
Wyjasnie na przykladzie.
Zalozmy ze nasz osobnik jest liczbą od 1 do 100 i ze jest tym lepszy im ma wieksza wartosc. Zalozmy rowniez ze rozmnarzanie polega na tym ze sumujemy dwa osobniki i dzielimy przez dwa. Przyklad jest oczywiscie bardzo malo ciekawy bo jest jedna cecha, ciekawe sa te w ktorych jest wiele cech i z ktorych kazda jakos wplywa na "jakosc" osobnika. Problemem czesto jest tez okreslenie wlasnie ktora cecha jak wplywa i czy wplywa.
Zatem mamy wybrana populacje liczb, dobieramy losowo pary i powstaje potomstwo. Czyli np rodzice: 10 i 20 -> 15; 50 i 10 -> 30; 60 i 60 -> 60. Jak rozwiazywac problem liczebnosci mialem podane... Tak czy siak dzieci jest wiecej niz rodzicow i odrzucamy te najgorsze. Powiedzmy w naszym przypadku odpada dziecko 15. W tym momencie nastepuja ewentualne mutacje i jazda od nowa. Czyli teraz do rozmnazania bralo by sie dzieci 30 i 60 ktore teraz byly by rodzicami. Proces mozemy przerwac np gdy osiagniemy zalozona "odleglosc" od najlepszego mozliwego, bierzemy sobie go i robimy sobie znim co chcemy ;>
Zerkne w domu na moje archiwum ze studiow, moze beda programy jakies, prawie napewno bedzie wyklad z wyjasnionym krok po kroku co i jak na poziomie chromosomow (czyli cech).
Aha, Sokratoides, algorytmy genetyczne sa podobne do prawdziwej genetyki bo sa dokladnie z niej wziete, nawet nazewnictwo jest to samo