Witam, mam problem odnośnie algorytmu genetycznego na studiach, selekcja, krzyżowanie czy mutacja działają ok, natomiast funkcja oceny coś mi nawala, ponieważ co kilka iteracji powtarza swoje wyniki. Tablice distanceArray wypełniam najpierw danymi z pliku txt od wykładowcy,a potem co cały obieg algorytmu (selekcja, krzyżowanie, mutacja) wywołuję funkcję Fitness. Jako wynik oceny biorę z każdej iteracji najmniejszą odległość (chyba że brać sumę odległości w tablicy ? ale ona również powtarza się co 2 iteracja), następnie modyfikuję wszystkie odległości w tablicy no i potem sumuję wszystkie elementy dla selekcji. Wydaje mi się, że problem leży podczas modyfikowania tablicy odległości... ale nie wiem jak mam to robić inaczej (taki sposób dostałem na uczelni). Bardzo proszę o pilną pomoc !
Końcowa tablica wyników:
22261,4787,328,4787,328,4787,328,4787,328,4787,
No i funkcja:
public void Fitness()
{
int max = distanceArray.Max();
minValue = distanceArray.Min();
resultTable.Add(minValue);
for (int i = 0; i < 20; i++)
{
odlO[i] = max + 1 - odlO[i];
}
count = 0;
for (int i = 0; i < distanceArray.Length; i++)
{
count += distanceArray[i];
}
}