SI2020/algorytm_genetyczny.md

2.2 KiB

Opis dokumentu

Ten dokument to raport z wykonanego podprojektu na przedmiot Sztuczna Inteligencja. Celem zadania jest implementacja algorytmu genetycznego w projekcie o tematyce inteligentny traktor.

Zastosowanie algorytmu

Algorytm został wykorzystany do wygenerowania zbioru roślin do zasadzenia na bazie zebranych wcześniej roślin

Skrócony opis implementacji w projekcie wspólnym

  • Na początku dla każdego pola zawierającego buraki, zostanie wygenerowany kod genetyczny roślin z tego pola.

  • Funkcja Move teraz zajmuje się również zbieraniem i wywoływaniem sadzenia roślin

  • Funkcja przypiszKod decyduje czy należy zasadzić jedną z modyfikowanych genetycznie roślin, czy należy zasadzić nową (losową).

  • Gdy liczba zebranych buraków osiągnie określoną wartość, zostanie przeprowadzony algorytm genetyczny i powstanie tablica roślin do zasadzenia

Opis algorytmu genetycznego

  • Algorytm wykonuje 5 iteracji, w których dokonuje selekcji osobników populacji, które zostaną poddane rozrodowi i wytwarza kolejne pokolenie populacji. Po wyjściu z pętli metodą rankingu selekcjonuje najlepszą część ostatniego pokolenia.

  • Selekcja odbywa się metodą ruletki. Obliczana jest wartość funkcji dostosowania dla każdego osobnika. Im lepsza wartość, tym większa szansa na wylosowanie.

  • Funkcja dostosowania polega na wyliczeniu średniej arytmetycznej trzech wartości: smaku, rozmiaru i koloru rośliny, które są zakodowane w łańcuchu znaków.

  • Funkcja crossover zajmuje się wywołaniem krzyżowania odpowiedniej liczby osobników

  • Zastosowana została metoda krzyżowania równomiernego (uniform crossover) z małą modyfikacją, zmniejszającą szansę na to, że dziecko będzie "klonem" rodzica. Istnieje również mała szansa, że dojdzie do równomiernej mutacji (uniform mutation), w której losowa cecha dziecka zostaje wygenerowana na nowo.