optimization - 在 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] ;
但无论是默认求解器 (MINOS) 还是 AMPL 网页中列出的开源非线性求解器(IPOPT、BONMIN 和 COUENNE)似乎都无法处理这种类型的约束,而且由于我处于演示版本中,因此专有的 AMPL 非线性求解器是不可能的。
如果我想要这些限制,我可以使用什么求解器?或者我怎样才能用我上面提到的任何求解器都可以解决的限制来代替它们?
解决方案
AMPL 书中关于整数规划的章节帮助我解决了这个问题。
我实施的解决方案是使用二进制变量重新制定限制,然后使用 CPLEX 求解器。
推荐阅读
- express - 为什么收到“/”获取请求后前两个函数不执行?
- jquery - 如何将参数从 jQuery 传递到 laravel 路由
- python - 如何检查一行中的所有列是否都是正数?
- antlr4 - 使用 PDDL 语言的默认 ANTLR4 语法解析错误
- php - 返回值 = 1 时回显
- algorithm - 反向移动到前面变换
- php - 如何使相同的文件包含在位于不同目录中的两个不同文件中以重定向到相同的最终路径?
- node.js - 无法让 websocket 客户端作为子进程运行
- reactjs - React useState Hook setter 没有数组变量的结果
- docker - 如何解决docker容器内的权限被拒绝?