Witam,
głowię się właśnie nad jakimś rozsądnym sposobem rozwiązania następującego problemu:
Napisać algorytm genetyczny (w postaci klasy), który będzie zdolny rozwiązać układ równań typu (przykład):
2*x + y = 9
x*x - y = 2
gdzie x i y przyjmują wartości zmiennoprzecinkowe.
Powiedzmy, że populacja jest dana w tablicy
double populacja[,]; // wymiary to: 2 na wielkosc populacji
gdzie przechowywane są po prostu wartości x oraz y.
Na chwilę obecną jakość danego osobnika populacji (wiersza tablicy) wyznaczam jako pierwiastek sumy kwadratów błędów (sqrt (b1b1, b2b2), gdzie b1 = 2x + y - 9, a b2 = xx - y - 2). Jak ktoś chce wiedzieć dlaczego, to nie wiem, takie coś po prostu mi przyszło do głowy...
Największy problem jest z sortowaniem, selekcją i krzyżowaniem (liczby zmiennoprzecinkowe!) populacji, gdyż jak wiadomo taki układ jak w przykładzie ma 2 rozwiązania. Znowu krzyżówka 2 potencjalnie bardzo dobrych osobników (ale reprezentujących różne rozwiązania) da totalnie beznadziejne wyniki...
Czy ktoś, kto może ma większe doświadczenie w takich rzeczach może rzucić jakąś sugestią, pomysłem?
pozdrawiam,
Mrok