Exemple #1
0
        public virtual int NumberOfMissingBreaks()
        {
            var santaBreaks = new Dictionary <int, int>();

            foreach (var v in OptimizationInput.Visits.Where(v => v.IsBreak))
            {
                if (santaBreaks.ContainsKey(v.SantaId))
                {
                    throw new InvalidOperationException("each santa can only have at most one break");
                }
                santaBreaks.Add(v.SantaId, v.Id);
            }

            return(NonEmptyRoutes.Count(r => santaBreaks.ContainsKey(r.SantaId) &&
                                        r.Waypoints.All(wp => wp.VisitId != santaBreaks[r.SantaId])));
        }
Exemple #2
0
 public int NumberOfRoutes()
 {
     return(NonEmptyRoutes.Count());
 }