整数规划

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 本章只讨论整数线性规划的一些基本概 念和常用算法,还将介绍一些特殊的整 数规划问题(0-1规划、分配问题)的 解法.
• • • • •
§1 §2 §3 §4 §5
整数规划问题及其数学模型 分枝定界法 割平面法 0-1整数规划与隐枚举法 分配问题与匈牙利法
§1 整数规划问题及其数学模型
• 1.1 整数规划问题的实例 • 1.2 整数规划的数学模型 • 1.3 整数规划与线性规划的关系
得到非整数最优解
若求解某个分枝问题得到的是不满足整数 条件的最优解.还要区分两种情况: • 该最优解的目标函数值Z小于当前的下界Z,则 该分枝内不可能含有原问题的整数最优解(为 什么).因此该分枝不需要继续分枝,称之为 “枯枝”,需要剪掉. • 若该最优解的目标函数值Z大于当前的下界Z, 则仍需对该枝继续分枝,以查明该分枝内是否 有目标函数值比当前的Z更好的整数最优解.
混合整数规划
• 只有一部分的决策变量要求取非负整数, 另一部分可以取非负实数.
0-1整数规划
• 所有决策变量只能取0或1两个整数.
1.3 整数规划与线性规划的关系
• 从数学模型上看,整数规划似乎是线性规划的 一种特殊情况,求解只需在线性规划解的基础 上,通过舍入取整,寻求满足整数要求的解即 可。 • 但是实际上整数规划与线性规划之间确实有着 很大的不同,通过舍入取整得到的整数解也不 一定就是整数规划问题的最优解,有时甚至不 能保证所得的解是整数可行解.
1.1 整数规划问题的实例
• 例1 合理下料问题 • 用某种型号的圆钢下零件A1A2…Am的毛 坯,在一根圆钢上,下料的不同方式有 B1B2…,Bn种,每种下料方式可以得到 各种零件的毛坯数以及每种零件的需要 量如表7.1所示.问应怎样安排下料方 式,使得既满足需要,又使所用的原材 料最少?
例2 选址问题
对每个分枝问题求解,可能得到以下几种可能: • 分枝无可行解——该分枝是“树叶”. • 求得该分枝的最优解,且满足A0的整数条 件.将该最优解的目标函数值作为新的下界Z, 该分枝也是“树叶”. • 求得该分枝的最优解,且不满足A0 的整数条件, 但其目标函数值不大于当前下界Z,则该分枝 是“枯枝”,需要剪枝. • 求得不满足A0 整数条件的该分枝的最优解,且 其目标函数值大于当前下界Z,则该分枝需要 继续进行分枝.
在一般情况下,对某个分枝问题(伴随规 划)求解时,可能出现以下几种可能: • 无可行解 • 得到整数最优解 • 得到非整数最优解
无可行解
• 若无可行解,说明该枝情况已查明,不 需要由此分枝再继续分枝,称该分枝为 “树叶”.
得到整数最优解
• 若求得整数最优解,则该分枝情况也已 查清,不需要再对此分枝继续分枝,该 分枝也是“树叶”.
( 2)
( 3)
Z
Z Z
( 4)
( 5) ( 6)
2
3 3
X X
( 5) ( 6)
X X
(7) (8)
(2,2) (3,1)
Z 4 (8) Z 4
(7)
X ( 2,2)
* *
X (3,1) Z 4
*
• 完全枚举法的问题是计算量太大,特别是当变 量个数很多和约束条件的个数也很多时,这个 工作是很费时的,有时甚至是不可能实现的. • n! 当n=20时,大于2×108 • 因此,如何巧妙地构造枚举过程是必须研究的 问题,目前用得较多的是将完全枚举法变成部 分枚举法. • 常用的求解整数规划的方法有分枝定界法和割 平面法,对于特别的0-l规划问题的求解,可 以采用隐枚举法和匈牙利法.
• 整数规划有很现实的意义,因为在很多 线性规划问题中,决策变量往往代表的 是人数、机器台数等,这时,非整数解 显然是不合要求的. • 整数规划在工业、商业、交通运输、经 济管理和军事等领域都有重要的应用.
• 求解整数规划问题是相当困难的,到目 前为止,整数规划问题还没有一个很有 效的解法. • 但是,由于在理论及应用方面提出的许 多问题都可以归结为整数规划问题,所 以对整数规划的研究在理论上和实践上 都有着重大意义.
• 严格地说,IP问题是一个非线性问题。 这是因为IP的可行域是一个整点凸包, 而不是一个凸集。
X
X
( 0) (1) ( 2) ( 3) ( 4)
(0,0)
(1,0)
Z
( 0)
0
Z Z
Z
(1)
1 2
3
X
X X
(2,0)
(3,0) (1,1) (1,2) (2,1)
• 如果用分枝定界法求解混合型整数规划, 则分枝的过程只针对有整数要求的变量 进行.对无整数要求的变量则不必考 虑.
分枝定界法的计算步骤
第1步:将原整数线性规划问题称为 问题A0。去掉问题A0 的整数条件,得到 伴随规划问题B0。
第2步:求解问题B0,有以下几种可能: • B0 没有可行解,则A0也没有可行解,停止计 算. • 得到B0 的最优解,且满足问题A0的整数条件, 则B0的最优解也是A0 的最优解,停止计算. • 得到不满足问题 A0 的整数条件的B0的最优解, 记它的目标函数值为f0*,这时需要对问题A0 (从而对问题B0 )进行分枝,转下一步.
例4
• 关于整数规划问题的可行解和最优解的 定义与线性规划类似,只是要加上满足 整数条件.一般来说,整数规划问题的 可行解是相应的线性规划问题可行域内 的整数格子点,因此整数规划的可行解 集是一个有限集(见图7.1).
• 既然整数规划的可行解是一个有限集, 我们可以将这个集合内的每一个点对应 的目标函数值都一一计算出来,然后从 中找出最大者,就是整数规划问题的最 优解.这种方法称为完全枚举法.
• 分枝定界法由“分枝”和“定界”两部 分组成 • 其基本解题思路可大致叙述如下:
• 4. 修改上、下界:修改界值按照以下两 点规则:
– 在各分枝问题中,找出目标函数值最大者作 为新的上界; – 从已符整数条件的分枝中,找出目标函数值 最大者作为新的下界.
例1
• 用分枝定界法求解整数规划问题
• 因每个分枝的求解结果不外乎上述各种情 况.因此每个分枝求解结果可表明它或是不需 要继续分枝(是“树叶”或是“枯枝”,要被 剪枝),或是需要继续分枝. • 若一对分枝都需要继续分枝时,首先将目标函 数值较优的分枝求解.而对目标函数值稍差的 那一核暂且放下,待目标函数较优的那枚全部 分解到不能(或不需要)再分,全部查清时为 止.再回过头来考虑目标函数值稍差的那枝, 也将它全部查清为止.这样做,有可能减少一 部分计算工作量.
第七章 整数规划
• 整数规划是数学规划的一个重要分支. • 在一个规划问题中,如果它的某些变量 (或全部变量)要求取整数时,这个规 划问题就称为整数规划问题(Integer Programming) • 特别,当这个规划问题是线性规划问题 时,就称此问题为整数线性规划问题, 简称为整数规划问题(记为IP).
例1
• 下面结合一个极大化例题来介绍分枝定界法的 主要思路. • 例 1某公司计划建筑两种类型的宿舍.甲种每 幢占地 0.25千平方米,乙种每幢占地0.4千平方 米。该公司拥有土地3千平方米.计划甲种宿 舍不超过8幢,乙种宿舍不超过4幢· 甲种宿舍每 幢利润为10万元,乙种宿舍利润为每幢20万 元.问该公司应计划甲、乙两种类型宿舍各建 多少幢时,能使公司获利最大?
例3 机床任务分配问题
• 设有m台同一类型的机床,有n种零件要 在这些机床上加工.已知各种零件的加 工时间分别为a1,a2,· n.问如何分 · ,a 配,使各机床的总加工任务相等,或者 说尽可能均衡.
此消彼长
最大的最小,其它的会变大,整体平衡
1.2 整数规划的数学模型
• 一般地,整数规划的数学模型是
求解整数规划的其它方法
• • • • • 动态规划 分解方法 近似算法 计算机模拟法 群论方法
§2 分枝定界法
• 60年代初,由 Land Doing和Dakin等人 提 出 • 是一个部分枚举的方法. • 优点:灵活,便于计算机求解,成为目 前求解整数规划的重要方法之一 • 用途:可用于求解纯整数规划或混合整 数规划问题.
• 某公司计划在几个地点建厂,可供选择的地点 有A1A2…Am 它们的生产能力分别是a1a2…am (为简便起见,假设生产同一种产品)第i个工 厂的建设费用为fi(i=1,2,…,m)又有n个地点 B1B2…Bn需要销售这种产品,其销量分别为b1, b2…bn。从工厂Ai运往销地Bj的单位运费为 cij(见表7.2).试决定应在哪些地方建厂,使 得既满足各地的需求,又使总建设费和总运输 费用最省?
D1
D2
D4 D3
D6
D5
x1 2
x1 3
G
D7
D8
61 / 14
分枝定界法
分枝定界法的主要思路
• 是首先求解整数规划的伴随规划,如果 求得的最优解不符合整数条件,则增加 新约束——缩小可行域;将原整数规划 问题分枝——分为两个子规划,再解子 规划的伴随规划……通过求解一系列子 规划的伴随规划及不断地定界.最后得 到原整数规划问题的整数最优解.
• • • •
纯整数规划 全整数规划 混合整数规划 0-1整数规划
纯整数规划
• 所有决策变量要求取非负整数(这时引 进的松弛变量和剩余变量可以不要求取 整数).
全整数规划
• 除了要求所有决策变量取非负整数外,而且系 数aij和常数项bi也都要求是整数(这时引进的 松弛变量和剩余变量也必须是整数) • 全整数规划可以推广到系数aij和常数项bi 为有 理数的情形.因为若系数aij和常数项bi为有理 数,则以aij和bi 的公分母通乘约束方程的所有 各项,就能够将系数和常数项都化为整数,而 得到全整数规划.
x2 4
修改下界Z • 修改下界的时机是:每求出一个整数可 行解时,都要作修改下界Z的工作. • 修改下界Z的原则:在至今所有计算出的 整数可行解中,选目标函数值最大的那 个作为最新下界. • 因此在用分枝定界法的求解全过程中, 下界Z是不断增大的·
修改上界 • 上界的修改时机是:每求解完一对分枝,都要 考虑修改上界. • 修改上界的原则是:挑选在迄今为止所有未被 分枝的问题的目标函数值中最大的一个作为新 的上界,新的上界应该小于原来的上界. • 在分枝定界法的整个求解过程中,上界的值在 不断减小.
• 若得到的是前三种情形之一,表明该分 枝情况已探明,不需要继续分枝. • 若求解一对分枝的结果表明这一对分枝 都需要继续分枝,则可先对目标函数值 大的那个分枝进行分枝计算,且沿着该 分枝一直继续进行下去,直到全部探明 情况为止.再返过来求解目标函数值较 小的那个分枝.
• 上面的求解过程是用图解法来做的,这 样做是为了便于说明分枝的几何意义, 容易理解. • 但在实际计算时,还是用单纯形法在表 格上进行.请看下面的例子.
பைடு நூலகம்
x1 8
当所有分枝均已查明(或无可行 解——“树叶”,或为整数可行解—— “树叶”,或其目标函数值不大于下 界——―枯枝”),且此时上界=下界, 则已得到了原问题的整数最优解,即目 标函数值为下界Z的那个整数解.
• 从上述分析可看出,实际上分枝定界法 只检查了变量的所有可行的组合中的一 部分,即确定了最优解.这种思想是我 们经常会用到的.
例2
• 用分枝定界法求解整数规划(用单纯形 法计算)
• 由于第一张表不是正规单纯形表(单位 矩阵给破坏了)因此要先用初等变换将 其变为正规单纯形表(即恢复单位矩阵) 得表7.4和表7.5的第二张表,然后再 用对偶单纯形法迭代得第三张表.
IP4
4 14 4
§3 割平面法
• 割平面法是求解整数规划的另一个有效 的方法 • 它是由R.E Gomory提出来的. • 故又称Gomory 割平面法. • 主要用于求解纯整数规划 • 有许多种类型,但基本思想相同
解伴随规划 • 分解——分枝定界法 • 切割——割平面法 割平面方程——切割方程
此方法仍然是用线性规划的方法求解整数规划问 题,其主要解题思路叙述如下: • 对于整数规划问题(IP),首先不考虑对变量的 整数要求,求得对应松弛问题(LP)的最优 解.如果得到最优解是一个非整数解,构造一 个新的约束,对松弛问题的可行域进行切割, 在保证其整数可行解不被切割掉的情况下,重 复这个过程,逐步切割可行域,直到得到一个 整数的最优极点为止.
相关文档
最新文档