Witam!
Mam do wykonania projekt który za pomocą algorytmu genetycznego rozwiązuje problem sumy podzbiorów. Niestety podczas przelewania algorytmu na kod powstał dość duży problem...
Mój algorytm wygląda mniej więcej tak:
dopóki nie znaleziono rozwiązania i liczba kroków mniejsza od zadanej to:
oblicz prawdopodobieństwo a potem dystrybuantę dla każdego chromosomu
poddaj chromosomy selekcji (koło ruletkowe)
wybierz n chromosomów do krzyżowania
wykonaj krzyżowanie (miejsce przecięcia wybierz losowo)
wybierz m chromosomów do mutacji
wykonaj mutacje
jeśli znaleziono rozwiązanie to przerwij
(Algorytm zaczerpnięty z książki: "Algorytmy genetyczne + struktury danych = programu ewolucyjne, rozdział 2")
Zmienne takie jak: wielkość populacji, ilość danych, zakres zbioru danych, ilość kroków, ilość mutacji (w danym kroku), ilość krzyżówek (w danym kroku) ustawia się na sztywno w opcjach programu.
Problem polega na tym, że po określonej (dość małej) ilości kroków w populacji wszystkie chromosomy są identyczny. Dobrze obrazuje to wykres:
Co robię źle? Jak to poprawić?
Proszę o pomoc.
Pozdrawiam, Ziem!