예제 #1
0
 public void InitProcess(CalculationTask calculationTask, INetCreator netcreater)
 {
     NetMap           = netcreater.CreateNet();
     _calculationTask = calculationTask;
     SelectAB();
     _percalationResult = new List <int>(_calculationTask.CountOfIteration);
 }
 public void InitProcess(CalculationTask calculationTask, INetCreator netcreater)
 {
     _netMap = netcreater.CreateNet();
     UseOnlyActiveNodes();
     _calculationTask = calculationTask;
     SelectAb();
     _percalationResult = new List <int>(_calculationTask.CountOfIteration);
     _random            = new Random();
 }
예제 #3
0
        public Node[] CreateNet()
        {
            var net       = _netCreator.CreateNet();
            var linkcount = net.Sum(node => node.NearestNodes.Length);

            var linkChangeStep = (_targetAverageLinkCount * net.Length - linkcount) / 10;

            if (linkChangeStep < 0)
            {
                while (GrafCalculator.GetAvarageLinkCount(net) > _targetAverageLinkCount)
                {
                    RemoveLinks(net, Math.Abs((int)linkChangeStep));
                }
            }

            //if (linkChangeStep > 0)
            //{
            //    while (GrafCalculator.GetAvarageLinkCount(net) < _targetAverageLinkCount)
            //    {
            //        AddLinks(net, (int)linkChangeStep);
            //    }
            //}
            return(net);
        }