Example #1
0
        public bool IsUnitSurvive()
        {
            int needsSum      = Organisated.FirstOrDefault().Key.ClientsDeliveryCost.Sum(c => c.Key.Needs);
            int productionSum = Organisated.Sum(m => m.Value * m.Key.ProductionCapacity);

            return(needsSum <= productionSum);
        }
Example #2
0
        private int CalculateAdaptability()
        {
            var           selectManufacture = Organisated.Where(m => m.Value != 0).Select(m => m.Key).ToList();
            TransportTask transportTask     = new TransportTask(selectManufacture);
            var           result            = transportTask.CalculateCost();

            privateRoutes = result.ResultRoute;

            return(result.Cost);
        }
Example #3
0
        private bool Mutate(Random random)
        {
            int genIndex = random.Next(Organisated.Count);
            var gen      = Organisated.ElementAt(genIndex);

            Organisated[gen.Key] = gen.Value == 0 ? 1 : 0;

            if (IsUnitSurvive())
            {
                //adaptability = CalculateAdaptability();
                return(true);
            }
            else
            {
                return(false);
            }
        }