예제 #1
0
        public Constraint AddElement(IntVar index, IEnumerable <IntVar> vars, IntVar target)
        {
            Constraint             ct      = new Constraint(model_);
            ElementConstraintProto element = new ElementConstraintProto();

            element.Index = index.Index;
            foreach (IntVar var in vars)
            {
                element.Vars.Add(var.Index);
            }
            element.Target   = target.Index;
            ct.Proto.Element = element;
            return(ct);
        }
예제 #2
0
        public Constraint AddElement(IntVar index, IEnumerable <int> values, IntVar target)
        {
            Constraint             ct      = new Constraint(model_);
            ElementConstraintProto element = new ElementConstraintProto();

            element.Index = index.Index;
            foreach (int value in values)
            {
                element.Vars.Add(ConvertConstant(value));
            }
            element.Target   = target.Index;
            ct.Proto.Element = element;
            return(ct);
        }
예제 #3
0
        /**
         * <summary>
         * Adds the element constraint: <c> values[index] == target</c>.
         * </summary>
         */
        public Constraint AddElement(IntVar index, IEnumerable <long> values, IntVar target)
        {
            ElementConstraintProto element = new ElementConstraintProto();

            element.Index = index.Index;
            element.Vars.TrySetCapacity(values);
            foreach (long value in values)
            {
                element.Vars.Add(ConvertConstant(value));
            }
            element.Target = target.Index;

            Constraint ct = new Constraint(model_);

            ct.Proto.Element = element;
            return(ct);
        }