使用 OPL,我可以在约束下进行写入。主要是我在约束中使用了 or(||) 并成功获得了结果。na_supply_component 是 2d 决策变量
// MOQ (Minimum Order Quantity)
con2: forall(i in 1..12,j in 1..5)
na_supply_component[j,i]>=na_moq_supplier[j] || na_supply_component[j,i]==0;
现在我正在尝试使用 docplex 包将我的 OPL 代码转换为 python。示例代码如下。这里我使用了一维决策变量来检查(purch_val)
Supplier=['q','w','e','r','t'];
n_Supplier=len(Supplier);
r_Supplier=range(n_Supplier);
na_moq_supplier=[10,20,30,40,0]
from docplex.mp.model import Model
x=Model("mymod");
purch_val=x.integer_var_list(n_Supplier,lb=0,ub=10000);
for i in r_Supplier:x.add_constraint(purch_val[i]>=na_moq_supplier[i] or purch_val[i]==0);
当我运行时,我得到一个错误TypeError: Cannot convert a linear constraint to boolean: x1 >= 10
它不允许我使用or
。你能解释一下我能做些什么来克服这个错误。