向模型添加约束
向模型添加约束
一旦新变量集成到模型中,下一步就是添加我们的两个线性约束。这些约束通过了grbaddconstr()常规。要添加约束,您必须指定几条信息,包括与约束,约束义,右侧侧值和约束名称相关联的非零值。这些都被指定为参数grbaddconstr():
/ *第一个约束:x + 2 y + 3 z <= 4 * / ind [0] = 0;IND [1] = 1;IND [2] = 2;val [0] = 1;val [1] = 2;val [2] = 3;ERROR = GRBADDCONSTR(型号,3,IND,VAL,GRB_LESS_EQUAL,4.0,“C0”);如果(错误)转到戒烟;
第一个论点grbaddconstr()是添加约束的模型。第二是与新约束相关联的非零系数的总数。接下来的两个参数描述了新约束中的非零。使用索引值对列表指定约束系数,每个非零值一个。在我们的示例中,要添加的第一个约束是。我们选择了我们的约束矩阵中的第一个变量,第二,和第三(注意,这选择是任意的)。鉴于我们的可变订购选择,我们的第一个约束所需的索引值对(0,1.0),(1,2.0),(2,3.0)。这些对放置在Ind.
和瓦
阵列。
第五个论点grbaddconstr()提供了新约束的感觉。可能的值是grb_less_equal.
那grb_greater_equal.
, 或者grb_equal.
。第六个论点给出了右侧值。最终的参数给出了约束的名称(我们允许约束通过指定来占据其默认名称空值
对于论点)。第二约束以类似的方式添加。
注意常规grbaddconstrs()将允许您在单个呼叫中添加两个约束。此例程的参数更复杂,而不提供任何显着的优势,因此我们建议您一次添加一个约束。