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

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

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

实际上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

其他的常见的建模方法:

相关推荐
计算机毕业编程指导师6 分钟前
大数据可视化毕设:Hadoop+Spark交通分析系统从零到上线 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·城市交通
计算机毕业编程指导师14 分钟前
【计算机毕设选题】基于Spark的车辆排放分析:2026年热门大数据项目 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·车辆排放
浔川python社19 分钟前
浔川社团关于产品数据情况的官方通告
python
生活很暖很治愈20 分钟前
GUI自动化测试[3]——控件&数鼠标操作
windows·python·功能测试·测试工具
星空露珠31 分钟前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
老蒋每日coding32 分钟前
Python3基础练习题详解,从入门到熟练的 50 个实例(一)
开发语言·python
HAPPY酷38 分钟前
构建即自由:一份为创造者设计的 Windows C++ 自动化构建指南
开发语言·c++·ide·windows·python·策略模式·visual studio
瑶池酒剑仙39 分钟前
Libvio.link爬虫技术解析大纲
爬虫·python
喵手1 小时前
Python爬虫实战:构建 Steam 游戏数据库:requests+lxml 实战游戏列表采集与价格监控(附JSON导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集steam商店游戏列表数据·sqlite数据库存放采集数据·价格监控游戏推荐市场分析
happygrilclh1 小时前
高压高频电源的pid算法
算法