我们可以使用Gomory切割来完全求解一个整数线性规划问题。思路是

1. 求解线性松弛

2. 根据这个线性松弛的单纯性表产生并添加Gomort切割,切割约束条件空间,

直到线性松弛的最优解为整。

针对混合整数线性规划问题,

\[\begin{array}{*{20}{l}}
{\max 3x + y + 3z}\\
{2x + 2y + z \le 30}\\
{1.5x + 2y + 3z \le 25}\\
{2x + y + z \le 20}\\
{x \ge 0,y \ge 0,z \ge 0,}
\end{array}\]

引入松弛变量s1,s2,s3也是整数

\[\begin{array}{l}
obj = 3x + y + 3z\\
s1 = 30 - 2x - 2y - z\\
s2 = 50 - 3x - 4y - 6z \le 25\\
s3 = 20 - 2x - y - z \le 20
\end{array}\]

最优解

\[\begin{array}{l}
obj = 110/3 - 4/3*x + 1/3*s2 - s3\\
s1 = 10 - y + s3\\
z = 40/9 - 5/9*y - 2/9*s2 + 1/3*s3\\
x = 70/9 - 2/9*y + 1/9*s2 - 2/3*s3
\end{array}\]

obj=110/3,x=70/9,y=0,z=40/9

挑选非整数解的某个等式,改写,

\[\begin{array}{l}
z = 40/9 - 5/9*y - 2/9*s2 + 1/3*s3\\
z + 5/9*y + 2/9*s2 - 1/3*s3 = 40/9\\
(z - s3 - 4) + (5/9*y + 2/9*s2 + 2/3*s3)=4/9
\end{array}\]

其中(z - s3 - 4)必须是整数,(5/9*y + 2/9*s2 + 2/3*s3)必须是正的分数,且产生4/9这个分数部分。

于是我们生成了一个Gomory切割

\[\begin{array}{l}
5/9*y + 2/9*s2 + 2/3*s3 \ge 4/9\\
5y + 2s2 + 6s3 \ge 4
\end{array}\]

将松弛变量消除带入,得到一个新的约束,

\[2x + y + 2z \le 24\]

这样既去掉了最优的非整数解,又保留了原本混合整数线性规划的所有整数可行解。

于是继续对带新约束问题的求解,直到最优解是整数解。

参考

https://www.coursera.org/lecture/lisan-youhua-suanfapian/3-3-3-qie-ge-ping-mian-loPYl

转载于:https://www.cnblogs.com/yijuncheng/p/10953692.html

混合整数线性规划——切割平面相关推荐

  1. 如何用matlab编写混合整数规划,MATLAB中的混合整数线性规划

    我试图用MATLAB解决这个混合整数线性规划问题 . 但是,我在matlab中对线性目标函数和决策变量求和的定义存在问题 . 我在MATLAB中使用intlinprog函数 . 请在下面找到图片链接 ...

  2. 混合整数线性规划(MILP)

    混合整数线性规划(MILP) 线性规划模型(Linear Programming, LP):LP的定义比较简单,它指的就是目标函数是线性的,所有约束也是线性的,最后,决策变量可以取任何的实数.如果在线 ...

  3. 混合整数线性规划问题 Matlab

    问题介绍 一般来说可以使用simplex算法计算正实数范围内的线性规划问题,但是在实际生活中我们常常会遇到带有相关整数要求的线性规划问题,我们称之为整数线性规划问题,而更复杂的情况下,问题中既有实数又 ...

  4. 混合整数线性规划——分支限界法

    当上一节讲到的线性规划问题中,要求某些变量是整数的时候,就变成了混合整数线性规划问题. 其实对于某些问题来说,线性规划问题的最优解刚好是整数,那么它对应的混合整数线性规划问题的解就刚好是这个最优解了. ...

  5. 使用COPT求解混合整数线性规划

    一.使用Copt求解模型步骤 1.模型的引入 使用 from copt import * 引入模型 import coptpy as cp 2.创建求解环境 env = Envr() 创建优化模型,返 ...

  6. 基于混合整数线性规划的电力系统机组组合优化研究

    基于混合整数线性规划的电力系统机组组合优化研究 *一.简介 电力系统机组组合问题属于单目标.多约束优化问题,是电力系统优化调度.系统规划的学习的第一步.通过对机组组合优化的掌握,并进一步引入新的运行场 ...

  7. yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)

    转自,原文: https://www.cnblogs.com/kane1990/p/3428129.html 最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量). ...

  8. MindOpt对于混合整数线性规划问题如何建模优化(python语言)

    简介 MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP).混合整数线性规划(MILP).二次规划(QP),可以支持命令行.c.c++.java和python调用.接下来我们将发布 ...

  9. 利用CVX和gurobi这个求解器复现一篇混合整数线性规划问题时遇到的问题

    利用CVX和gurobi这个求解器复现一篇混合整数线性规划问题时遇到的问题 1.当出现从cvx 转换为double 时出现错误: ![](https://img-blog.csdnimg.cn/202 ...

最新文章

  1. ABAP术语-Object Name
  2. 金融风控实战——有监督分箱
  3. STDIN_FILENO和stdin区别
  4. php layui 框架,Thinkphp5+Layui高颜值内容管理框架
  5. maven打包时跳过测试
  6. Exchange Server 2016 之三:邮箱角色部署
  7. Android 偶见花屏 bug,无法手动重现
  8. 飞机大战游戏python_《飞》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
  9. Docker、Docker file、Docker-compose 详解
  10. 生产计划管理APS系统在食品调味品/复合调味品行业的应用(2)--APS系统功能介绍
  11. wps怎么添加附录_如何将附录生成目录 - 卡饭网
  12. SpringSecurity如何处理logout注销操作
  13. Mybatis数据持久化
  14. 网络游戏外挂制作(3)-1
  15. ios 渐变透明背景_骚气渐变色的海报设计怎么做?
  16. 计算机视觉—BOW图像检索
  17. Lidar based off-road negative obstacle detection and analysis(论文翻译)
  18. 使用Spine软件为骨骼动画制作简单特效
  19. 一个搜索常用字符串的小脚本
  20. 在CANoe/CANalyzer中如何截取/分段CAN Log文件(自定义时间段)

热门文章

  1. Python 魔法方法详解
  2. 怎么用python画房子_用python画一个小房子
  3. APK签名机制原理详解
  4. 【读书笔记】《学会提问》——受用一生的批判性思维
  5. css鼠标点在文字上背景透明,CSS实现文字半透明显示在图片上方法(示例代码)
  6. Latex系列教程 汇总
  7. JavaScript实现图结构
  8. 干支纪年法简便算法_初中阶段常用的四种历史纪年法
  9. Flutter架构图
  10. Nginx快速入门(三)正向代理、HTTP服务器与动静分离