Mam problem z optymalizacją, próbuję rozwiązać za pomocą algorytmu genetycznego. Zasadniczo istnieje lista 10 powiązanych zmiennych o wartościach rzeczywistych (-1 < = x < = 1) i muszę zmaksymalizować niektóre funkcje tej listy. Połów jest taki, że tylko do 4 zmiennych na liście może być! = 0 (warunek podzbioru).Algorytm genetyczny na plecaku optiproblem
Matematycznie rzecz biorąc: pewnego funkcji F: [1, 1]^10 -> R min f (x) S.t. | {var in X with var! = 0} | < = 4
Niektóre tła na f: funkcja NIE jest podobna do jakiejkolwiek funkcji celu plecakowego, takiej jak Suma x * lub coś podobnego.
Co próbowali dotychczas:
tylko podstawowe algorytm genetyczny przez genomu [1, 1]^10, z 1-pkt zwrotnicy i niektóre Gaussa mutacja zmiennych. Próbowałem zakodować warunek podzbioru w funkcji fitness, używając tylko pierwszych 4 niezerowych (zero jak w wystarczająco blisko wartości 0). Takie podejście nie działa tak dobrze, a algorytm utknął na 4 pierwszych zmiennych i nigdy nie wykorzystuje wartości przekraczających tę. Widziałem pewnego rodzaju GA dla problemu z plecakiem 01, w którym to podejście działało dobrze, ale najwyraźniej działa to tylko ze zmiennymi binarnymi.
Co poleciłbyś mi spróbować?
nie mam pojęcia o algorytmach genetycznych, ale można spróbować zakodować ten problem inaczej: wybierając 4 wartości rzeczywiste i 4 różne liczby całkowite w zakresie 0-9. – Patrick
Całkowita liczba rozwiązań jest mniejsza niż 10^4, dlaczego nie używać wyliczenia? Czy to zadanie domowe? – willem