【问题标题】:Optimizer supporting `or` and `count` constraints in AMPL在 AMPL 中支持“或”和“计数”约束的优化器
【发布时间】:2018-09-22 16:37:07
【问题描述】:

我设计了一个 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] ;

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

如果我想要这些限制,我可以使用什么求解器?或者我怎样才能用我上面提到的任何求解器都可以解决的限制来代替它们?

【问题讨论】:

  • 嗯...您的模型基于什么文档?它告诉您哪些求解器受支持?如果没有 AMPL exp,快速搜索让我觉得 or 和 co 保留给 CP 求解器和 CPLEX。您始终可以自己进行基于 MIP 的公式化。拿起任何有关整数编程的书或从AIMMS Modeling Guide 开始。 production[p,t] = 0 or production[p,t] &gt;= min_production[p] 只是 rhs 或然后 (1-production[p,t]) + indicator &gt;= 1 的指标公式(假设 prod 是 bin)。

标签: optimization solver ampl


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多