public Constraint AddNoOverlap(IEnumerable<IntervalVar> intervals) { Constraint ct = new Constraint(model_); NoOverlapConstraintProto args = new NoOverlapConstraintProto(); foreach (IntervalVar var in intervals) { args.Intervals.Add(var.GetIndex()); } ct.Proto.NoOverlap = args; return ct; }
/** * Adds <c> NoOverlap(intervalVars)</c>. * * <remarks>A NoOverlap constraint ensures that all present intervals do not overlap in time. * </remarks> * * <param name="intervals"> the list of interval variables to constrain</param> * <returns> an instance of the Constraint class</returns> */ public Constraint AddNoOverlap(IEnumerable <IntervalVar> intervals) { NoOverlapConstraintProto no_overlap = new NoOverlapConstraintProto(); no_overlap.Intervals.TrySetCapacity(intervals); foreach (IntervalVar var in intervals) { no_overlap.Intervals.Add(var.GetIndex()); } Constraint ct = new Constraint(model_); ct.Proto.NoOverlap = no_overlap; return(ct); }