Minizinc - 错误无法确定边界

时间:2018-02-20 16:03:45

标签: minizinc

我如何使用Minizinc中的fugure链接中的代码? A code that take a minimum number

我试试这个:     约束forall(我在护士中,j在患者中j!= 1)(start [i] == min((到[i,j] +((1-y [i,1,j])* H) - sum(你在病人身上)(dist [1,j] * y [i,1,u])),H));

但它没有限制

1 个答案:

答案 0 :(得分:2)

此问题很可能是由于对没有特定域的变量(即var int)使用等号编码的约束引起的。

当我们分解线性库中的约束时,对于Gurobi,CBC或CPLEX,并非所有语句都可以轻松地重写为线性形式。对于elementmin约束等约束,我们使用等式编码。这意味着我们对整数变量的每个可能值使用0/1变量,并使用这些新变量来表示我们需要的约束。

这里的问题是,如果变量没有边界,这不起作用。我们必须为整数域中的每个值创建一个0/1变量,根据数学,它将是无限的。由于这对解算器不起作用,因此需要相等编码的约束将需要对所使用的变量进行边界。

相关问题