在前面讨论的线性规划问题中,最优解可能是整数,也可能不是整数,但对于某些实际问题,要求答案必须是整数。如所求的解是安排上班的人数,按某个方案剪裁钢材的根数,生产机器的台数等。
整数规划是一类要求变量取整数值的数学规划。

文章目录

  • 1 整数规划问题的提出
  • 2 整数规划与分支定界法
  • 3 整数规划与割平面法
  • 4 指派问题

1 整数规划问题的提出

所谓整数规划(Integer Programming,简称IP):
决策变量要求取整数的线性规划

数学模型:

整数规划问题可以分为下列几种类型:
1 . 纯(全)整数线性规划(Pure Integer Linear Programming):指全部决策变量都必须取整数的整数线性规划。
2 . 混合整数线性规划 (Mixed Integer Linear Programming): 指决策变量中有一部分必须取整数,另一部分可以不取整数值的整数线性规划。
3 . 0-1整数规划(0-1 Integer Linear Programming):指决策变量只能取值0、1的整数线性规划。

2 整数规划与分支定界法

分支定界法可用于解纯整数或混合的整数线性规划问题
混合整数规划问题一般有无穷多个可行解。即使是纯整数规划问题,随着问题规模的扩大,其可行解的数目也将急剧增加。因此通过枚举全部可行解,并从中筛选出最优解的算法没有实际应用价值。
分支定界法是一种隐枚举法(implicit enumeration)或部分枚举法,是枚举法基础上的改进。
分支定界法的关键是分支定界

原问题的松驰问题:任何整数规划(IP),凡放弃某些约束条件(如整数要求)后,所得到的问题(P) 称为(IP)的松驰问题。

分支定界法的步骤:
一般求解对应的松驰问题,可能会出现下面几种情况:
若所得的最优解的各分量恰好是整数,则这个解也是原整数规划的最优解,计算结束。
若松驰问题无可行解,则原整数规划问题也无可行解,计算结束
若松驰问题有最优解,但其各分量不全是整数,则这个解不是原整数规划的最优解,转下一步。

从不满足整数条件的基变量中任选 一个xl 进行分枝,它必须满足xl ≤[xl ] 或xl ≥[xl ] +1中的一个,把这两个约束条件加进原问题中,形成两个互不相容的子问题(两分法)。
定界:把满足整数条件各分枝的最优目标函数值作为上(下)界,用它来判断分枝是保留还是剪枝。
剪枝:把那些子问题的最优值与界值比较,凡不优或不能更优的分枝全剪掉,直到每个分枝都查清为止。

“分支”为整数规划最优解的出现创造了条件,而“定界”则可以提高搜索的效率。

例1. 用分枝定界法求解:

用单纯形法可解得相应的松驰问题的最优解为(6/5,21/10)
Z=111/10为各分枝的上界。



3 整数规划与割平面法

此方法的基础仍然是用解线性规划的方法去解整数规划问题。
思路: 先不考虑变量xi是整数这一条件,但增加线性约束条件(几何术语:割平面)使得由原可行域中切割掉一部分(此部分只包含非整数解,没有切割掉任何整数可行解),使切割后最终得到这样的可行域,它的一个有整数坐标的极点恰好是问题的最优解。
该方法是1958年R.E.Gormory首先提出的,故又称为Gormory割平面法
割平面法的关键: 如何找到适当的割平面?
构造割平面约束的方法很多,下面只介绍一种(它可以从相应线性规划的最终单纯形表中直接产生)

先通过举一简单的例子入手,介绍算法的过程




将上推导对应一般情况,可得:
思路:
用割平面法解整数规划时,若其松弛问题的最优解x不满足整数条件,则从x的非整分量中选取一个,用以构造一个线性约束条
件,将其加入原松弛问题中,形成一个新的线性规划之后求解。
若新的最优解满足整数条件,则它就是整数规划的最优解,否则重复上述步骤,直到获得最优解为止。
为获得整数最优解,每次增加的线性约束条件应满足2个基本性质
(1)已获得的不符合整数要求的线性规划最优解不满足该线性约束条件,从而不可能在以后的解中再出现。
(2)凡整数可行解均满足该线性约束条件,故整数最优解始终被保留在每次形成的线性规划可行域中。

4 指派问题

一类特殊的0-1规划问题:将m项工作分派给n个人去做,既发挥各人特长又使总效率最高。
又如:某单位需完成n项任务,恰好有n个人可承担这些任务。由于各人的专长不同,故各人完成任务的效率(如时间等)不同。问题需解决确定指派哪个人完成哪项任务,使完成n项任务的总效率最高等。
上述类型问题称为指派问题(assignment problem)

指派问题是0-1规划及运输问题的特例,可用前已学方法求解,但不够方便。
(下介绍一针对指派问题特点的简便求解方法。)
指派问题的标准形式为:
即:目标求最小,且系数矩阵为方阵(每项工作只能由1个人做,每个人只能做一项工作)


从中即可说明,系数矩阵中元素本身的大小不决定最优解,而元素之间的差值发生则可能改变最优解
其中k为一个常数,故当z达最大值时,z’也达到最大值



(完)

运筹学笔记 整数规划相关推荐

  1. 【运筹学】整数规划 ( 整数规划示例 | 整数规划解决的核心问题 )

    文章目录 一.整数规划示例 二.整数规划解决的核心问题 一.整数规划示例 资金总额 B\rm BB , 有 nnn 个投资项目 , 项目 jjj 所需的投资金额 是 aja_jaj​ , 预期收益是 ...

  2. 管理运筹学笔记一之图解法

    管理运筹学笔记一之图解法 文章目录 一.图解法 1.决策变量.目标函数.约束条件 2.图解法求解 3.松弛变量与剩余变量区别 4.标准化四步走 总结 一.图解法 1.决策变量.目标函数.约束条件 2. ...

  3. 数学建模、运筹学之整数规划(原理、例题、代码)

    数学建模.运筹学之整数规划(原理.例题.代码) 一.何为整数规划? 二.整数规划与线性规划 三.分枝定界法 四.0-1整数规划 一.何为整数规划? 整数规划具有深远的实际应用价值,因为现实生活中的规划 ...

  4. 运筹学1——整数规划之分支定界法与MATLAB的intlinprog函数

    1 背景 直接用fmincon求解最优化问题时,得到的结果可能是小数,但针对某一些问题,要求结果必须是整数,称为整数规划问题. 分支定界法是一种求解整数规划的算法,具体介绍可看 分支定界法MATLAB ...

  5. 运筹学广泛的使用计算机,运筹学笔记

    绪论 一.最优化理论方法与运筹学 (一)运筹学在管理科学中的地位 运筹学是管理科学学科的主要课程.1999年,复旦大学对"管理科学与工程学科的国内外发展动态"的研究结果表明:优化技 ...

  6. 【运筹学笔记】 第二章 对偶理论

    第二章 对偶问题 对偶问题的提出 我们可以先通过一个常识来理解"对偶"的含义和特征: 矩形中,周长一定,正方形的面积最大:面积一定,正方形的周长最小. 在许多课本中,都用如下的例子 ...

  7. 运筹学笔记 运输问题

    文章目录 1.运输问题的模型及其结构特征 一. 运输问题的数学模型 二. 运输问题的结构特征 2.运输问题的求解方法--表上作业法 一. 初始基本可行解的确定(西北角法,最小元素法) 二. 最优解的判 ...

  8. 运筹学笔记 对偶理论与灵敏度分析

    本章内容要点 单纯形法的矩阵描述及改进单纯形法的介绍: 线性规划的对偶问题的概念.理论及经济意义: 线性规划的对偶单纯形法: 线性规划的灵敏度分析. 文章目录 改进单纯形法的介绍 线性规划的对偶问题 ...

  9. 运筹学笔记 图与网络分析

    文章目录 图的基本概念与基本定理 树和最小生成树 最短路问题 网络系统最大流问题 网络系统最小费用最大流问题 中国邮递员问题 图的基本概念与基本定理 一 . 图的基本概念 1 . 无向图与有向图 2 ...

  10. 【运筹学】指派问题、匈牙利法总结 ( 指派问题 | 克尼格定理 | 匈牙利法 | 行列出现 0 元素 | 试指派 | 打 √ | 直线覆盖 ) ★★★

    文章目录 一.克尼格定理 二.匈牙利法引入 三.指派问题求解步骤 四.匈牙利法示例 1 1.第一步 : 使行列出现 000 元素示例 2.第二步 : 试指派操作示例 ( 方法一 :克尼格定理 ) 3. ...

最新文章

  1. 从PyTorch到ONNX的端到端AlexNet
  2. 说说我为什么看好Spring Cloud Alibaba
  3. 用 Java 实现断点续传 (HTTP)
  4. sap转换成基本订单单位
  5. 简要说说一个完整机器学习项目的流程
  6. day1||python
  7. php get raw,file_get_contents(“php:// input”)或$ HTTP_RAW_POST
  8. c语言小学生四则运算出题_软件工程第一次作业,小学生四则运算的出题程序...
  9. 阿里二面:RocketMQ同一个消费组内的消费者订阅量不同tag,会有问题吗?
  10. Java集合系列---ConcurrentHashMap源码解析
  11. java web redis_java web网页版redis客户端工具
  12. QT分析之网络编程(七)
  13. 斑图的matlab程序,斑图生成
  14. UCOII信号量与消息邮箱
  15. 产品读书《自卑与超越》
  16. c语言程序中u8是什么意思,c – __u8和uint8_t之间的区别
  17. 搜图出处的软件_【识图】怎样查找图片的来源出处,又快又好
  18. Kylin快速入门系列(1) | Kylin的简单介绍及安装部署
  19. 海思3518E sample的整体架构venc层源码分析
  20. FS5175降压型3-4节锂电池充电芯片

热门文章

  1. 计算机学院微信公众平台,智慧校园管理,一个微信公众号搞定
  2. Python代码自动转成C++代码
  3. hadoop配置历史服务器
  4. 【过关斩将】如何制作高水平简历-原则篇
  5. 行业精英解答十大游戏关卡设计问题
  6. 深入浅出学习CAN系列-了解CAPL编程语言
  7. Linux汇编语言开发指南
  8. EEGLAB预处理脑电数据
  9. 高数篇:高等数学全目录
  10. ipmitool源码解析(一)——一次带内ipmitool raw data发送过程