当前位置: 首页 > article >正文

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

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

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

实际上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 x1x2<0, 在数学规划中,一般使用 < = <= <= 或者 > = >= >=, 引入非常小的正数 ϵ \epsilon ϵ,使得 x 1 − x 2 + ϵ < = 0 x_1 - x_2 + \epsilon<= 0 x1x2+ϵ<=0, 于是写为线性规划约束为:
x 1 − x 2 + ϵ − M v < = 0 x_1 - x_2 + \epsilon - Mv<= 0 x1x2+ϵMv<=0

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

其他的常见的建模方法:
在这里插入图片描述在这里插入图片描述


http://www.kler.cn/a/443976.html

相关文章:

  • IntelliJ IDEA 快捷键大全:提升开发效率的利器
  • Docker环境下MySQL数据库持久化部署全攻略
  • Unity中有什么情况下是需要用UniTask替代其他异步方式的吗?
  • 图书借阅管理系统|SpringBoot|HTML|web网站|Java【源码+数据库文件+包部署成功+答疑解惑问到会为止】
  • 如何在window 使用 conda 环境下载大模型
  • jvm栈帧中的动态链接
  • C#核心(18)面向对象多态vob
  • LabVIEW中的“Synchronize with Other Application Instances“
  • uniapp blob格式转换为video .mp4文件使用ffmpeg工具
  • DePIN潜力项目Spheron解读:激活闲置硬件,赋能Web3与AI
  • rust使用log与env_logger两个crate实现同时向控制台和文件输出日志。并在隔日自动创建新日志文件。
  • IEC 101/104 中为什么我们需要单点和双点信号
  • 01、NodeJS学习笔记,第一节:Node.js初识与内置模块
  • 如果 MySQL 的自增 ID 用完了,怎么解决?
  • C语言学习day24:DLL函数导出详情
  • leetcode 881.救生艇
  • R语言的字符串操作
  • APO v1.1.0 更新:大模型根因分析支持深入分析;优化数据筛选功能;内置 NGINX 日志分析看板
  • 小米自研系统Vela全面开源:开启物联网新时代的技术革新之旅
  • 【Yonghong 企业日常问题04】永洪BI可视化工具Linux部署全攻略(部署详解版)
  • 探索 Seaborn Palette 的奥秘:为数据可视化增色添彩
  • sqlserver新建用户并分配对视图的只读权限
  • 面试小札:Java后端闪电五连鞭_8
  • Oracle 数据库中,UNION ALL创建视图的使用详解
  • 【MySQL】InnoDB存储引擎中的页
  • 梳理你的思路(从OOP到架构设计)_浅尝架构师的滋味03