线性规划中的几种逻辑表达式

线性规划中的几种逻辑表达式

注意: 摘录字刘博士的《数学建模与数学规划》, 以便用时可查。

实际上Gurobi API 中自身放啊变的逻辑表达式函数,下面列出自定义的实现方式。

1 逻辑与

如果 x 1 = 1 x_1 = 1 x1=1, x 2 = 1 x_2 = 1 x2=1, 那么 y = 1 y=1 y=1

如果考虑N个变量的逻辑与,则:

2 逻辑或

如果 x 1 = 1 x_1 = 1 x1=1 或者 x 2 = 1 x_2 = 1 x2=1, 那么 y = 1 y=1 y=1

如果考虑 N个变量的逻辑或, 则:

3 逻辑异或

如果 x 1 = 1 x_1 = 1 x1=1 和 x 2 = 1 x_2 = 1 x2=1中, 当且仅当一个为真时, y = 1 y=1 y=1

如果考虑N个0-1变量的异或, 那么:

4 if-then 约束

当 x 1 > = x 2 x_1 >= x_2 x1>=x2 时 v=1;

当 x 1 < x 2 x_1 < x_2 x1<x2 时, v=0.

考虑上述两个推理的逆否命题。 第一个为 当 v=0 时,有 x 1 < x 2 x_1 < x_2 x1<x2, 进一步 x 1 − x 2 < 0 x_1 - x_2 < 0 x1−x2<0, 在数学规划中,一般使用 < = <= <= 或者 > = >= >=, 引入非常小的正数 ϵ \epsilon ϵ,使得 x 1 − x 2 + ϵ < = 0 x_1 - x_2 + \epsilon<= 0 x1−x2+ϵ<=0, 于是写为线性规划约束为:
x 1 − x 2 + ϵ − M v < = 0 x_1 - x_2 + \epsilon - Mv<= 0 x1−x2+ϵ−Mv<=0

第二个的逆否命题为 当 v=1时,有 x 1 > = x 2 x_1 >= x_2 x1>=x2, 进一步 x 2 − x 1 < = 0 x_2 - x_1 <= 0 x2−x1<=0,于是写为线性规划约束为:
x 2 − x 1 − M ( 1 − v ) < = 0 x_2 - x_1 - M(1-v)<= 0 x2−x1−M(1−v)<=0

其他的常见的建模方法:

相关推荐
Lxinccode3 分钟前
python(42) : 监听本地文件夹上传到服务器指定目录
服务器·开发语言·python·文件上传服务器·监听文件上传服务器
静水流深-刘申28 分钟前
算法继续刷起-2025年09月26日
开发语言·c++·算法
我是华为OD~HR~栗栗呀38 分钟前
前端面经-高级开发(华为od)
java·前端·后端·python·华为od·华为·面试
木头左1 小时前
跨周期共振效应在ETF网格参数适配中的应用技巧
开发语言·python·算法
爱蹦跶的精灵1 小时前
降级版本Pillow解决freetypefont has no attribute getsize问题
python·pillow
一人の梅雨1 小时前
亚马逊 MWS 关键字 API 实战:关键字搜索商品列表接口深度解析与优化方案
python·spring
顾你&2 小时前
机器学习之无监督学习算法大总结
学习·算法·机器学习
神龙斗士2402 小时前
Java 数组的定义与使用
java·开发语言·数据结构·算法
Y.O.U..2 小时前
力扣HOT100-跳跃游戏II
算法·leetcode
hn小菜鸡2 小时前
LeetCode 3132.找出与数组相加的整数 II
算法·leetcode·职场和发展