Algorytmy genetyczne - Problem sumy podzbiorów

0

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:
user image

Co robię źle? Jak to poprawić?

Proszę o pomoc.
Pozdrawiam, Ziem!

0

czy oby na pewno AG to dobra metoda do rozwiązania tego problemu? Jaką masz funkcję przystosowania i czy Ty ją maksymalizujesz czy minimalizujesz?

0

Sądzę, że powinieneś zrobić bardziej wyspecjalizowane operatory.
Albo standardowo: błąd w implementacji ;)

0

Poprawiłem parę błędów w implementacji oraz algorytm i nawet to hula:).
Wykres:
user image

Dzięki za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1