优化器支持AMPL中的“或”和“计数”约束

时间:2018-09-22 16:37:08

标签: optimization solver ampl

我设计了一个AMPL模型。

我想添加一些约束,例如:

s.t. Max_dif_prod {t in 1..T}: 
    count {p in PRODUCTS} (production[p,t] > 0) <= max_dif_prod ;

s.t. Min_prod {p in PRODUCTS, t in 1..T}:
    production[p,t] = 0 or production[p,t] >= min_production[p] ;

但是AMPL网页(IPOPT,BONMIN和COUENNE)中列出的默认求解器(MINOS)或开源非线性求解器似乎都无法处理这种约束,并且由于我使用的是演示版本,专有的AMPL非线性求解器是不可能的。

如果我需要这些限制,可以使用哪种求解器?或者我该如何用上面提到的任何求解器可以解决的限制代替它们?

1 个答案:

答案 0 :(得分:1)

AMPL书中的chapter about integer programming帮助我解决了这个问题。

我实施的解决方案是使用二进制变量重新构造限制,然后使用CPLEX求解器。