1

我正在使用or-tools提供的MIP 求解器(在 python 中)

假设我们有两个变量xy。我知道如何最大化一个变量或两个变量的总和。

例如,如果我们想最大化 2*x 我们可以这样做

objective = solver.Objective()
objective.SetCoefficient(x,2)
objective.SetMaximization()

如果我们想最大化 2*x + 3*y 我们可以这样做

objective = solver.Objective()
objective.SetCoefficient(x,2)
objective.SetCoefficient(y,3)
objective.SetMaximization()

但我不知道如何最大化除以另一个变量的变量。我的问题是如何最大化 (x/y)

4

1 回答 1

2

MIP 求解器只接受线性方程。根据定义,除法不是线性的。当您可以线性化除法时,可能会有非常特殊的情况,例如,如果 y 有一小部分可能的值。

你可以看看 CP-SAT 求解器,它提出了除法,但不能处理连续变量。

于 2018-12-16T11:14:54.290 回答