我们正在使用网格(二维数组)。在每个单元格中,我们计算一个双精度值。
有没有办法在 gurobi 中定义约束(或目标) 确保只有 5% 的单元格可以大于某个值?
我们正在使用网格(二维数组)。在每个单元格中,我们计算一个双精度值。
有没有办法在 gurobi 中定义约束(或目标) 确保只有 5% 的单元格可以大于某个值?
计数需要(某种形式的)二进制变量。例如
x(i,j) ≤ threshold + δ(i,j)⋅(U(i,j)-threshold)
sum((i,j),δ(i,j)) ≤ 0.05*gridsize
x(i,j) ∈ [0,U(i,j)]
δ(i,j) ∈ {0,1}
这里的 U(i,j)
是 x(i,j)
(您的单元格值)的边界。如果您对 x(i,j)
的边界没有很好的了解,可以使用指标约束:
δ(i,j) = 0 ==> x(i,j) ≤ threshold
sum((i,j)) ≤ 0.05*gridsize
δ(i,1}