假设我有一组二元决策变量(例如,从1美元,2美元,......,10美元的10个价格点的1行数组)。
优化本身并不重要,除非我必须选择不超过4个价格点。该约束被解决,将二进制数相加并将总和约束为< = 4。
然而,需要另一个限制,这让我很难过。我需要创建一个约束,其中所选内容的最高和最低价格点不大于我在单元格中输入的值。假设我在单元格中输入“4”,那么所有价格点必须在彼此的4美元之内(例如,1美元不能选择6美元或更高,5美元就可以)。
示例:最大价格距离= $ 5(这是一个可变单元格)
DV: [1, 0, 1, 1, 1, 0, 0, 0, 0, 0] is OK
DV: [1, 0, 1, 0, 0, 0, 0, 0, 1, 0] is NOT OK
如何以线性方式执行此操作(不能使用MAX(),MIN()或IF()函数)?
答案 0 :(得分:1)
像
这样的东西 Maxprice >= x(i) * price(i)
Minprice <= x(i) * price(i)+(1-x(i))*M
Maxprice - minprice <= maxdifference
其中M
是常数M=max(i,price(i))
。