linear-programming - Pyomo中两个布尔决策变量之间的最小值
问题描述
我需要做这样的事情:
d1 == min(d2,d3)
其中 d 是决策变量。我需要使用 Pyomo。在 cplex 中,解决方案是通过函数 minl 实现的,如何在 Pyomo 或等效的线性形式中做到这一点?我在 Google 上搜索了一个解决方案,发现我可以断言 d1 必须小于或等于 d2 和 d3。但这不适合我的问题,因为如果 d2 和 d3 等于 1,则 d1 <= 1 而我需要 d1 == 1。
感谢您的回复。
解决方案
当d变量是二元变量时,
d1 = min(d2,d3)
真的和乘法一样
d1 = d2*d3
这通常被线性化为
d1 <= d2
d1 <= d3
d1 >= d2+d3-1
推荐阅读
- javascript - 读取字典文件以将它们导出到索引文件中
- sql-server - 将 SQL Server 存储过程转换为 PostgreSQL 函数
- python - 循环:打印一个单词,每次迭代删除一个字母
- c# - 在新的应用程序域中加载程序集
- android - 有没有办法在Android设备上设置代理来拦截未连接到网络的计算机的应用程序流量?
- coq - 记录作为道具?
- html - 您可以使用 Input() 将变量绑定到 id 或类吗
- javascript - Download pdf file with Vue js in mevn stack
- c# - How to convert data type items?
- sql - (Oracle)Getting multiple column when using correlated subquery