// Этап естественного отбора. 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; }
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); } }
// ���������� ������������ ���������. 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); }