private AlgorithmPlane ChooseAirportForPackage(AlgorithmPackage package, IEnumerable <PopulationElement> availablePlanes) { var a = availablePlanes.ToList(); var planeToLoadThePackageOnto = availablePlanes .Where(element => element.Route.Contains(package.Destination)) .OrderBy(plane => plane.Route.IndexOf(package.Destination)) .FirstOrDefault(); return(planeToLoadThePackageOnto?.Plane); }
private double PenaltyFactor(AlgorithmPackage package, int delieverdIn) { return(Math.Min(1, 1 - ((delieverdIn - package.DeadlineInTimeUnits) * PenaltyPerDayPercentage / 100d))); }