添加约束模型

一旦新变量纳入模型,下一步是添加我们的两个线性约束。这些约束是通过补充道GRBaddconstr ()例行公事。添加一个约束,您必须指定几条信息,包括相关的非零值约束,约束意义,右边的值,和约束名。这些都是指定为参数GRBaddconstr ():


/ *第一个约束:x + 2 y + 3 z < = 4 * /印第安纳州[0]= 0;印第安纳州[1]= 1;印第安纳州[2]= 2;val [0] = 1;val [1] = 2;val [2] = 3;错误= GRBaddconstr(模型3,印第安纳州,val, GRB_LESS_EQUAL, 4.0,“c0”);如果(错误)转到退出;

的第一个参数GRBaddconstr ()模型的约束是补充道。第二个是相关联的非零系数的总数与新约束。接下来的两个参数描述新约束的非零。约束系数是使用一个索引值对列表,指定一个用于每一个非零值。在我们的示例中,第一个约束添加< span > < / span > x + 2美元y + 3 z \ leq 4 < span > < / span >美元。我们要做出选择< span > < / span > x < span >美元< / span >第一个变量的约束矩阵,< span > < / span > y < span >美元< / span >第二,< span > < / span > z < span >美元< / span >第三个(注意,这个选择是任意的)。鉴于我们变量排序选择,第一个约束所需的索引值对(0,1.0),(2.0)和(3.0)。这些对放置在印第安纳州瓦尔数组。

第五个参数GRBaddconstr ()提供了新的约束的感觉。可能的值是GRB_LESS_EQUAL,GRB_GREATER_EQUAL,或GRB_EQUAL。第六个参数给右边的值。最后的参数为约束的名称(我们允许约束其通过指定缺省名称这个论点)。第二个约束是在类似的方式补充道。

请注意,常规GRBaddconstrs ()将允许您添加两个约束在一个电话。这个例程的参数是复杂得多,不过,没有提供任何显著的优势,所以我们建议您添加一个约束。