Temat: Pomysł na test ewolucji

Nie za dobrze skończyło się podejście genetycznego szukania minimów funkcji. Tam nie używałem mutacji, losowo dobierałem w pary i zastępowałem jedno pokolenie następnym których chromosomy były średnią rodziców i odpowiadały współrzędnym. Gdy mamy sytuację że część jest skupiona przy jednym minimum lokalnym a druga część przy drugim to potomstwo będzie po środku daleko od minimum. Do szukania minimów są szybsze metody niż algorytmy ewolucyjne.
Myślę obecnie nad czymś takim aby osobniki nie miały zadania do zrobienia, aby nie było funkcji oceniającej,kary, ale sukcesem było po prostu lepsze przystosowanie.
Przedtem losowo dobierałem w pary. Można by zrobić wyliczaną w jakiś sposób preferencję i kojarzyć na podstawie algorytmu Gale'a - Shapleya. Osobnik odniósł by sukces wtedy jeśli skojarzony byłby z drugim do którego ma wysoką preferencję.
Jakie rzeczy powinny być zakodowane w genach? Może wygląd. Tu można by stosować L-system (Lindenmayera).

konto usunięte

Temat: Pomysł na test ewolucji

Polecam dobrze zapoznać się z książką pana Zbigniewa Michalewicza "Algorytmy genetyczne + struktury danych = programy ewolucyjne". Daje dobre podstawy do implementacji i dyskusji.

ps. funkcja oceny wyznacza przystosowanie, może uwzględniać karę :)

Jeżeli kod jest Twoją własnością mogę ocenić, co można poprawić.Dżafar - Sadik Ridha Hassan edytował(a) ten post dnia 27.06.11 o godzinie 17:42

Temat: Pomysł na test ewolucji

To pomysł całkowicie hobbystyczny, jest na razie w fazie przemyśleń. Jak wyglądała by funkcja kary? Myślę że ilość dzieci byłaby proporcjonalna do tego jak preferujemy partnera. Pierwsze podejście do algorytmów ewolucyjnych nie udało się gdy jak najprostszy algorytm usiłowałem wykorzystywać do jakiegoś celu w rodzaju wyszukiwania minimum funkcji. Chciałbym zrobić program demonstracyjny, stworki mogły by ewoluować wyglądem - tu L-system chociaż nadaje się bardziej dla roślin.
Przedtem przy krzyżowaniu używałem średnich bez mutacji, natomiast gdy będą mutacje bardzo dobrze przyda się kod Graya.Andrzej Borucki edytował(a) ten post dnia 28.06.11 o godzinie 07:10
Piotr Bigaj

Piotr Bigaj Adiunkt @ PIAP,
algorytmika, wizja
kompterowa, AI

Temat: Pomysł na test ewolucji

Zapoznanie sie z jakąkolwiek literaturą dotyczącą GA jest chyba konieczne.

Generalnie są dwa rodziaje operatorów genetycznych ( w czystych algorytmach genetycznych):
1. krzyżowanie (chyba tak się to nazywa po polsku)
2. mutacja

jeżeli stosujesz tylko 2. to masz algorytm random search - to już lepiej stosować jakiś steppest descent, tabu search albo simmulated annealing.

Jeżeli stosujesz tylko 1. nie wnosisz żadnej nowej informacji do populacji a tym samym pogarszasz entropię i zmiejszasz różnorodność. Dużo osób o tym zapomina, ale róznorodnośc populacji powinna byc maksymalizowana w trakcie działania algorytmu. Inaczej otrzymasz przedwczesną zbierzność (w zależności od kryterium) i to pewnie jeszcze nie do lokalnego minimum.

Jeżeli twoim zadaniem jest znalezienie minimum a masz daną funkcję expicite to odpuść sobie algorytmy genetyczne i skorzystaj z innych metod, bo to co napisałeś to tylko "genetyczna bisekcja"

Następna dyskusja:

teoria ewolucji obalona! ;-)




Wyślij zaproszenie do