示例#1
0
        public IntervalVar NewOptionalFixedSizeIntervalVar <S>(S start, long duration, ILiteral is_present, string name)
        {
            LinearExpr startExpr    = GetLinearExpr(start);
            LinearExpr durationExpr = GetLinearExpr(duration);
            LinearExpr endExpr      = LinearExpr.Sum(new LinearExpr[] { startExpr, durationExpr });

            LinearExpressionProto startProto    = GetLinearExpressionProto(startExpr);
            LinearExpressionProto durationProto = GetLinearExpressionProto(durationExpr);
            LinearExpressionProto endProto      = GetLinearExpressionProto(endExpr);

            return(new IntervalVar(model_, startProto, durationProto, endProto, is_present.GetIndex(), name));
        }
示例#2
0
        /**
         * <summary>
         * Creates an interval variable from an affine expression start, and a fixed size.
         * </summary>
         *
         * <remarks>An interval variable is a constraint, that is itself used in other constraints like
         * NoOverlap.
         * </remarks>
         *
         * <param name="start"> the start of the interval. It needs to be an affine or constant expression.         *
         * </param>
         * <param name="size"> the fixed size of the interval </param>
         * <param name="name"> the name of the interval variable </param>
         * <returns> An IntervalVar object</returns>
         */
        public IntervalVar NewFixedSizeIntervalVar <S>(S start, long size, string name)
        {
            LinearExpr startExpr = GetLinearExpr(start);
            LinearExpr sizeExpr  = GetLinearExpr(size);
            LinearExpr endExpr   = LinearExpr.Sum(new LinearExpr[] { startExpr, sizeExpr });

            LinearExpressionProto startProto = GetLinearExpressionProto(startExpr);
            LinearExpressionProto sizeProto  = GetLinearExpressionProto(sizeExpr);
            LinearExpressionProto endProto   = GetLinearExpressionProto(endExpr);

            return(new IntervalVar(model_, startProto, sizeProto, endProto, name));
        }
 public static LinearExpr Sum(this IntVar[] vars)
 {
     return(LinearExpr.Sum(vars));
 }