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); }
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); }
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); } }