예제 #1
0
        // Этап естественного отбора.
        private void Selection()
        {
            List <int> e = new List <int>();

            foreach (var v in _population)
            {
                e.Add(_graphContext.GetEccentricity(v));
            }
            double[]   prob = _rndWorker.InvertProb(e.ToArray());
            List <int> selectedPopulation = new List <int>();

            while (selectedPopulation.Count < _populationSize)
            {
                selectedPopulation.Add(_rndWorker.Choice(_population.ToArray(), prob));
            }
            _population = selectedPopulation;
        }
예제 #2
0
        public void EccentricityTest()
        {
            int          n            = 100;
            GraphContext graphContext = new GraphContext(CreateFullGraph(n));

            for (int i = 0; i < n; i++)
            {
                Assert.AreEqual(graphContext.GetEccentricity(i), 1);
            }
        }
예제 #3
0
        // ���������� ������������ ���������.
        public int FindRadius(GraphContext graphContext)
        {
            int R = int.MaxValue;

            for (int v = 0; v < graphContext.N; v++)
            {
                R = Math.Min(R, graphContext.GetEccentricity(v));
            }
            return(R);
        }