示例#1
0
        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;
        }
示例#2
0
        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]);
                }
            }
        }