使用X
是二进制变量的向量,而W
是float变量的向量,
我想写一个约束,使得如果W[i] > 0
,那么我应该有X[i] = 1
。
dvar boolean X[I]; // we choosed stocks i or not
dvar float W[I]; // weight of stocks i in portfolio
如何声明此约束?
答案 0 :(得分:0)
您可以使用逻辑约束。 让我在OPL CPLEX示例中的投资组合示例中为您提供一个小示例。
您可以阅读
dvar float Allocation[Investments] in FloatRange; // Investment Level
然后您可以添加
dvar boolean X[Investments];
然后在要阻止的主题中添加
forall(i in Investments) X[i]==(Allocation[i]>=0.001);
致谢