private void CalculateScore() //liczy wynik na podtawie odległości miast { double suma = 0; for (int i = 0; i < CitySequence.Length - 1; i++) { suma += City.Distance(problem.Cities[CitySequence[i]], problem.Cities[CitySequence[i + 1]]); } suma += City.Distance(problem.Cities[CitySequence[CitySequence.Length - 1]], problem.Cities[CitySequence[0]]); Score = suma; }
public Problem(int _cityCount, int multiplier) { Cities = new City[_cityCount]; RNG = new Random(); for (int i = 0; i < _cityCount; i++) { Cities[i] = new City(RNG.NextDouble() * multiplier, RNG.NextDouble() * multiplier); } DistanceArray = new double[_cityCount, _cityCount]; for (int i = 0; i < _cityCount; i++) { for (int j = 0; j < _cityCount; j++) { DistanceArray[i, j] = City.Distance(Cities[i], Cities[j]); } } }