作为约束的分段线性函数
Piecewise Linear Function as Constraint
我正在尝试使用 pyscipopt 来解决线性规划问题,但无法将分段线性函数作为约束进行拟合。
约束表达如下:
我试过这样写:
cfm = quicksum( max(quicksum(cf[i][t] * q[i] - L[t] for i in range(I)), 0) for t in range(T) / quicksum(L[t] for t in range(T)) <= cfm_max
其中 cfm_max = 0.15,在这种情况下。
但这可能是非常错误的,因为它 returns 一个 NotImplementedError
。我在 piecewise.py
中看到了与软件包一起找到的示例,但它们的用法似乎差异很大,对我来说不起作用。
非常感谢任何帮助,谢谢。
我觉得可以这样写:
sum(t,y[t]) <= 0.15*sum(t,L[t])
y[t] >= sum(i,CF[i,t]*q[i])-L[t]
其中 y[t]
是 non-negative 个变量。这现在完全是线性的(没有除法,没有 max())。
我正在尝试使用 pyscipopt 来解决线性规划问题,但无法将分段线性函数作为约束进行拟合。
约束表达如下:
我试过这样写:
cfm = quicksum( max(quicksum(cf[i][t] * q[i] - L[t] for i in range(I)), 0) for t in range(T) / quicksum(L[t] for t in range(T)) <= cfm_max
其中 cfm_max = 0.15,在这种情况下。
但这可能是非常错误的,因为它 returns 一个 NotImplementedError
。我在 piecewise.py
中看到了与软件包一起找到的示例,但它们的用法似乎差异很大,对我来说不起作用。
非常感谢任何帮助,谢谢。
我觉得可以这样写:
sum(t,y[t]) <= 0.15*sum(t,L[t])
y[t] >= sum(i,CF[i,t]*q[i])-L[t]
其中 y[t]
是 non-negative 个变量。这现在完全是线性的(没有除法,没有 max())。