第五章整数规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Z 130
x2 3
f 3 132
B5
x1 7 x2 3
x1 7
x1 8
x1 8
B6
x2 2.5
Z 130 Z 130
f 5 130
f 6 130
X
5.2.2 分支界定法的计算步骤
下面将分支定界法求解混合型整数规划的计算步 骤归纳如下: 第1步:将原整数线性规划问题称为问题A0。去掉 问题A0的整数条件,得到伴随规划问题B0。 第2步:求解问题B0,有以下几种可能: (l) B0没有可行解,则A0也没有可行解,停止计 算。 (2) 得到B0的最优解,且满足问题A0的整数条件, 则B0的最优解也是A0 的最优解, 停止计算。
2.计算原问题目标函数值的初始下界 Z
若能从问题A0的约束条件中观察到一个整数可行 解,则可将其目标函数值作为问题A0目标函数值的 初始下界,否则可令初始下界 Z =-∞。给定下界 的目的,是希望在求解过程中寻找比当前 Z 更好的 原问题的目标函数值。 对于本例,很容易得到一个明显的可行解X=(0, 0)T,Z=0。问题A0的最优目标函数值决不会比 它小,故可令 Z =0。
整数规划数学模型
例5.1 某厂拟用火车装运甲、乙两种货物集装箱, 每箱的体积、重量、可获利润以及装运所受限制 如下:
货物集装 体积( ) 米 箱 甲 5 乙 4 托运限制 24
3
重量(百斤) 利润(百元)
2 5 13 20 10
问两种货物各装运多少箱,可使获得利润最大?
设甲、乙两种货物装运箱数分别为x1和x2。显然, x1、x2都要求为整数,于是可建立整数规划模型 如下:
自20世纪60年代以来, 已发展了一些常用的解整数 规划的算法,如各种类型的割平面法、分支定界 法、解 0-1 规划的隐枚举法、分解方法、群论方 法、动态规划方法等等。近十年来有人发展了一 些近似算法及用计算机模拟法,也取得了较好的效 果。
分枝定界法
§5.2 分支定界法
在20世纪60年代初 Land Doig 和 Dakin 等人提出了分支定界法。由于该方法灵活且便 于用计算机求解,所以目前已成为解整数规划 的重要方法之一。分支定界法既可用来解纯整 数规划,也可用来解混合整数规划。
B0
x1 5.6 x2 4
Z 136 Z 0
f 0 136
x1 5
B1
x1 5 x2 4 f1 130
x1 6
x1 6
Z 135
B2 x2 3.75 f 2 135 Z 130
x2 3
x2 4
B3
x1 7.2
B4
Z 132
* 0
问题 A1
问题 A2
max Z 10x1 20x2
5 x1 8 x2 60 x1 8 s.t x2 4 x1 5 x1 , x2 0, 取整数
max Z 10x1 20x2
5 x1 8 x2 60 x1 8 s.t x2 4 x1 6 x1 , x2 0, 取整数
(3) 得到非整数最优解 若求得某个分枝问题得到的是不满足整数条件的 最优解,还要区分两种情况: ①该最优解的目标函数值Z小于当前的下界 Z , 则该分枝内不可能含有原问题的整数最优解,称 为“枯枝”,需剪掉。 ②该最优解的目标函数值Z大于当前的下界 ,则 仍需对该枝继续分枝,以查明该分枝内是否有目 标函数值比当前的下界更好的整数最优解。
本例中问题B1及问题B2的模型及求解结果如下:
max f 10x1 20x2
5 x1 8 x2 60 x1 8 s.t x2 4 x 5 1 x1 , x2 0
f1* 130 X1* (5,4)T
max f 10x1 20x2 5 x1 8 x2 60 x1 8 s.t x2 4 x 6 1 x1 , x2 0
max z 20 x1 10 x2 5 x1 4 x2 24 2 x 5 x 13 1 2 s t x1 , x2 0 x1 , x2为整数
(1)
这是一个纯整数规划问题
整数规划
伴随规划
max z 20 x1 10 x2 5 x1 4 x2 24 2 x 5 x 13 1 2 s t x1 , x2 0 x1 , x2为整数
解伴随规划得到最优解: x1=4.8 x2=0 max z=96
(3)
但它不满足(1)的整数要求。因此它不是(1)的最 优解,若把解(3)“舍零取整”,如取 (x1=5.0, x2=0),但它不是规划(1)的可行解。因为它不满足 (1) 中的约束条件。 若取 (x1=4.0, x2=0),它是 (1) 的可行解, 但 它却不是(1) 的最优解, 因为当 x1=4.0, x2=0 时, Z= 80,但80<96。 即伴随规划的最优解通过 “ 舍零取整 ” 得到的 (x1=5.0, x2=0)和 (x1=4.0, x2=0)都不是 (1) 的 最优解。因此通过伴随规划最优解的 “ 舍零取整 ” 的办法, 一般得不到原整数规划问题的最优解。
f 135X (6,3.75)
* 2
* 2
TLeabharlann Baidu
5 修改上、下界 (l) 修改下界 修改下界的时机是:每求出一个整数可行解时, 都要作修改下界的工作。 修改下界的原则:在至今所 有计算出的整数可行解中,选目标函数值最大的那 个作为最新下界。因此在用分枝定界法的求解全过 程中,下界是不断增大的。
(2) 修改上界 上界的修改时机是:每求解完一对分 枝,都要考虑修改上界。修改上界的原则是:挑选 在迄今为止所有未被分枝的问题的目标函数值中 最大的一个作为新的上界。新的上界应该小于原 来的上界 。 在分枝定界法的整个求解过程中,上界的值在不 断减小。
6 结束准则 当所有分枝均已查明(或无可行解——“树叶”, 或为整数可行解——“树叶”,或其目标函数值不 大于下界——”枯枝”),且此时下界= 上界, 则已得到了原问题的整数最优解,即目标函数值 为下界的那个整数解 。
(3) 增加约束条件将原问题分支
当问题A0的最优解不满足整数条件时,在 X 中 任选一个不符合整数条件的变量。 如本例选x1=5.6,显然问题A0的整数最优解只能 是x1≤5或x2≥6,而绝不会在5与6之间。 因此当 将可行域切去5<x1<6部分时,并没有切去A0的整 数可行解。可以用分别增加约束条件x1≤5及x2≥6 * * 来达到在K 0切去5<x1<6部分的目的。K 0 切去5< x1<6后就分为两部分,即问题A0分为问题A1及问 题A2两枝子规划。
某公司计划建造两种类型的宿舍。甲种类型的宿舍每 幢占地0.25×103米2,乙种类型的宿舍每幢占地 0.4×103米2。该公司拥有土地3×103米2。计划建造甲 种类型宿舍不超过8幢,乙种类型宿舍不超过4幢。甲 种类型宿舍每幢利润为10万元,乙种类型宿舍每幢利 润为20万元。问该公司应计划甲、乙两种宿舍各建多 少幢时,能使公司利润最大?
Chapter 5 整数规划 Integer programming
§5.1 整数规划问题的提出
前面讨论的线性规划模型多是连续的,因而决策 变量允许取小数值。这种假定对许多问题是合理的。 但是对某些一次性生产问题,或虽是长期性生产却 受到某些工艺条件(如冶炼、电镀、冷冻、热处理 等)限制的问题,若决策变量代表产品的件数、个 数、台数、箱数、艘数、辆数等等,则变量就只能 取整数值了。
若伴随规划的可行域 K 是有界的,则原整数规划的 可行域K0应是K中有限个格点(整数点)的集合。见 图5.1,图中“*”为整数点(格点)。
当然, 我们也会想到能否用“穷举法”来求解整数 规划。如(1) 问题,将K0中所有整数点的目标函 数值都计算出来,然后逐一比较找出最优解。这 种方法对变量所能取的整数值个数较少时,勉强 可以应用。如本例x1可取 0,1,2,3,4共5个 数值。而x2只能取0,1,2共三个数值,因此其 组合最多为15个(其中有不可行的点)。
整数规划问题是要求决策变量取整数值的线性 或非线性规划问题。
整数规划问题中如果所有的变量都限制为(非负)
整数,就称为纯整数规划或全整数规划问题;如果只
有一部分变量限制为整数,则称为混合整数规划;如
果变量的取值仅限制于0或1,则称为0-1规划。
实际问题中经过“四舍五入”处理得到的解可能不是 原问题的可行解,有的虽是原问题的可行解,但却不是 整数最优解.因而有必要研究整数规划问题的解法.
分支定界法的主要思路是首先求解整数规划的伴 随规划,如果求得的最优解不符合整数条件,则 增加新约束——缩小可行域;将原整数规划问题分 支——分为两个子规划,再解子规划的伴随规划。 通过求解一系列子规划的伴随规划及不断地定界, 最后得到原整数规划问题的整数最优解。
我们用一个例题来具体介绍
5.2.1 分枝定界法的主要思路
作出问题A1,A2的伴随规划B1,B2,则问题B1, B2的可行域为K1,K2见图5.2(b)。以下我们将由 同一问题分解出的两个分支问题称为“一对分 支”。
4 分别求解一对分枝
在一般情况下,对某个分枝问题(伴随规划)求解 时,可能出现以下几种可能: (1 ) 无可行解 若无可行解,说明该枝情况己查明,不需要由此 分枝再继续分枝,称该分枝为 "树叶"。 (2) 得到整数最优解 若求得整数最优解,则该枝情况己查明,不需要 再对此继续分枝,该分枝也是 "树叶"。
但对大型问题,这种组合数的个数可能大得惊人! 如 在指派问题中,有n 项任务指派n个人去完成,不同的 指派方案共有n! 种。当 n=20时,这个数超过21013。如 果用穷举法每一个方案都计算一遍,就是用每秒百万 次的计算机,也要几万年。 显然 “穷举法” 并不是一 种普遍有效的方法。因此研究求解整数规划的一般方 法是有实际意义的。
(3) 得到不满足问题A0的整数条件的B0的最优解, 记它的目标函数值为,这时需要对问题A0 (从而 对问题B0) 进行分支,转下一步。 第3步:确定初始上下界 。 以 f0作为上界 Z 。 观察出问题A0的一个整数可 行解,将其目标函数值记为下界 Z 。 若观察不 到,则可记 -∞。转下一步。
解:设计划甲种宿舍建 x1 幢,乙种宿舍建 x2 幢, 则本题数学模型为 :
max z 20 x1 10 x2 0.25 x1 0.4 x2 24 x 8 1 s t x2 4 x1 , x2 0, 取整数
(5.4)
式(5.4)是一个纯整数规划问题,称为问题A0。 将(5.4)中约束条件0.25 x1+0.4 x2≤3的系数全 化为整数,改为:5x1+8x2≤60,然后去掉整数条 件,得到问题A0的伴随规划(5.5), 称之为问题B0。
10 20 max f 20 x1 10 x2
5 x1 8 x2 60 x 8 1 s t x2 4 x1 , x2 0
用图解法求解问题B0,得到最优解及最优值: x1=5.6 , x2=4 , f0 =136 1) 计算原问题A0目标函数值的初始上界
Z
因为问题B0的最优解不满足整数条件,因此不是问 ' 题的最优解,又因为A0的可行域 K 0 问题B0 的 可行域K0, 故问题 A0 的最优值不会超过问题B0的 * * * 最优值。 即有 Z f 0。因此可令 f 0 作为Z *的 初始上界,即 。
Z 136
一般说来,若问题B0无可行解,则问题A0也无可 行解,停止计算。若问题B0的最优解满足问题A0 的整数条件,则也是问题A0的最优解,停止计算。
第4步: 将问题B0分支。 在B0的最优解X0中,任选一个不符合整数条件的 变量xj,其值为aj,以[aj]表示小于aj的最大整数。 构造两个约束条件: x j [a j ] 1 将这两个约束条件分别加到问题B0的约束条件集 中,得到B0的两个分支:问题B1与B2。
x2 3
f 3 132
B5
x1 7 x2 3
x1 7
x1 8
x1 8
B6
x2 2.5
Z 130 Z 130
f 5 130
f 6 130
X
5.2.2 分支界定法的计算步骤
下面将分支定界法求解混合型整数规划的计算步 骤归纳如下: 第1步:将原整数线性规划问题称为问题A0。去掉 问题A0的整数条件,得到伴随规划问题B0。 第2步:求解问题B0,有以下几种可能: (l) B0没有可行解,则A0也没有可行解,停止计 算。 (2) 得到B0的最优解,且满足问题A0的整数条件, 则B0的最优解也是A0 的最优解, 停止计算。
2.计算原问题目标函数值的初始下界 Z
若能从问题A0的约束条件中观察到一个整数可行 解,则可将其目标函数值作为问题A0目标函数值的 初始下界,否则可令初始下界 Z =-∞。给定下界 的目的,是希望在求解过程中寻找比当前 Z 更好的 原问题的目标函数值。 对于本例,很容易得到一个明显的可行解X=(0, 0)T,Z=0。问题A0的最优目标函数值决不会比 它小,故可令 Z =0。
整数规划数学模型
例5.1 某厂拟用火车装运甲、乙两种货物集装箱, 每箱的体积、重量、可获利润以及装运所受限制 如下:
货物集装 体积( ) 米 箱 甲 5 乙 4 托运限制 24
3
重量(百斤) 利润(百元)
2 5 13 20 10
问两种货物各装运多少箱,可使获得利润最大?
设甲、乙两种货物装运箱数分别为x1和x2。显然, x1、x2都要求为整数,于是可建立整数规划模型 如下:
自20世纪60年代以来, 已发展了一些常用的解整数 规划的算法,如各种类型的割平面法、分支定界 法、解 0-1 规划的隐枚举法、分解方法、群论方 法、动态规划方法等等。近十年来有人发展了一 些近似算法及用计算机模拟法,也取得了较好的效 果。
分枝定界法
§5.2 分支定界法
在20世纪60年代初 Land Doig 和 Dakin 等人提出了分支定界法。由于该方法灵活且便 于用计算机求解,所以目前已成为解整数规划 的重要方法之一。分支定界法既可用来解纯整 数规划,也可用来解混合整数规划。
B0
x1 5.6 x2 4
Z 136 Z 0
f 0 136
x1 5
B1
x1 5 x2 4 f1 130
x1 6
x1 6
Z 135
B2 x2 3.75 f 2 135 Z 130
x2 3
x2 4
B3
x1 7.2
B4
Z 132
* 0
问题 A1
问题 A2
max Z 10x1 20x2
5 x1 8 x2 60 x1 8 s.t x2 4 x1 5 x1 , x2 0, 取整数
max Z 10x1 20x2
5 x1 8 x2 60 x1 8 s.t x2 4 x1 6 x1 , x2 0, 取整数
(3) 得到非整数最优解 若求得某个分枝问题得到的是不满足整数条件的 最优解,还要区分两种情况: ①该最优解的目标函数值Z小于当前的下界 Z , 则该分枝内不可能含有原问题的整数最优解,称 为“枯枝”,需剪掉。 ②该最优解的目标函数值Z大于当前的下界 ,则 仍需对该枝继续分枝,以查明该分枝内是否有目 标函数值比当前的下界更好的整数最优解。
本例中问题B1及问题B2的模型及求解结果如下:
max f 10x1 20x2
5 x1 8 x2 60 x1 8 s.t x2 4 x 5 1 x1 , x2 0
f1* 130 X1* (5,4)T
max f 10x1 20x2 5 x1 8 x2 60 x1 8 s.t x2 4 x 6 1 x1 , x2 0
max z 20 x1 10 x2 5 x1 4 x2 24 2 x 5 x 13 1 2 s t x1 , x2 0 x1 , x2为整数
(1)
这是一个纯整数规划问题
整数规划
伴随规划
max z 20 x1 10 x2 5 x1 4 x2 24 2 x 5 x 13 1 2 s t x1 , x2 0 x1 , x2为整数
解伴随规划得到最优解: x1=4.8 x2=0 max z=96
(3)
但它不满足(1)的整数要求。因此它不是(1)的最 优解,若把解(3)“舍零取整”,如取 (x1=5.0, x2=0),但它不是规划(1)的可行解。因为它不满足 (1) 中的约束条件。 若取 (x1=4.0, x2=0),它是 (1) 的可行解, 但 它却不是(1) 的最优解, 因为当 x1=4.0, x2=0 时, Z= 80,但80<96。 即伴随规划的最优解通过 “ 舍零取整 ” 得到的 (x1=5.0, x2=0)和 (x1=4.0, x2=0)都不是 (1) 的 最优解。因此通过伴随规划最优解的 “ 舍零取整 ” 的办法, 一般得不到原整数规划问题的最优解。
f 135X (6,3.75)
* 2
* 2
TLeabharlann Baidu
5 修改上、下界 (l) 修改下界 修改下界的时机是:每求出一个整数可行解时, 都要作修改下界的工作。 修改下界的原则:在至今所 有计算出的整数可行解中,选目标函数值最大的那 个作为最新下界。因此在用分枝定界法的求解全过 程中,下界是不断增大的。
(2) 修改上界 上界的修改时机是:每求解完一对分 枝,都要考虑修改上界。修改上界的原则是:挑选 在迄今为止所有未被分枝的问题的目标函数值中 最大的一个作为新的上界。新的上界应该小于原 来的上界 。 在分枝定界法的整个求解过程中,上界的值在不 断减小。
6 结束准则 当所有分枝均已查明(或无可行解——“树叶”, 或为整数可行解——“树叶”,或其目标函数值不 大于下界——”枯枝”),且此时下界= 上界, 则已得到了原问题的整数最优解,即目标函数值 为下界的那个整数解 。
(3) 增加约束条件将原问题分支
当问题A0的最优解不满足整数条件时,在 X 中 任选一个不符合整数条件的变量。 如本例选x1=5.6,显然问题A0的整数最优解只能 是x1≤5或x2≥6,而绝不会在5与6之间。 因此当 将可行域切去5<x1<6部分时,并没有切去A0的整 数可行解。可以用分别增加约束条件x1≤5及x2≥6 * * 来达到在K 0切去5<x1<6部分的目的。K 0 切去5< x1<6后就分为两部分,即问题A0分为问题A1及问 题A2两枝子规划。
某公司计划建造两种类型的宿舍。甲种类型的宿舍每 幢占地0.25×103米2,乙种类型的宿舍每幢占地 0.4×103米2。该公司拥有土地3×103米2。计划建造甲 种类型宿舍不超过8幢,乙种类型宿舍不超过4幢。甲 种类型宿舍每幢利润为10万元,乙种类型宿舍每幢利 润为20万元。问该公司应计划甲、乙两种宿舍各建多 少幢时,能使公司利润最大?
Chapter 5 整数规划 Integer programming
§5.1 整数规划问题的提出
前面讨论的线性规划模型多是连续的,因而决策 变量允许取小数值。这种假定对许多问题是合理的。 但是对某些一次性生产问题,或虽是长期性生产却 受到某些工艺条件(如冶炼、电镀、冷冻、热处理 等)限制的问题,若决策变量代表产品的件数、个 数、台数、箱数、艘数、辆数等等,则变量就只能 取整数值了。
若伴随规划的可行域 K 是有界的,则原整数规划的 可行域K0应是K中有限个格点(整数点)的集合。见 图5.1,图中“*”为整数点(格点)。
当然, 我们也会想到能否用“穷举法”来求解整数 规划。如(1) 问题,将K0中所有整数点的目标函 数值都计算出来,然后逐一比较找出最优解。这 种方法对变量所能取的整数值个数较少时,勉强 可以应用。如本例x1可取 0,1,2,3,4共5个 数值。而x2只能取0,1,2共三个数值,因此其 组合最多为15个(其中有不可行的点)。
整数规划问题是要求决策变量取整数值的线性 或非线性规划问题。
整数规划问题中如果所有的变量都限制为(非负)
整数,就称为纯整数规划或全整数规划问题;如果只
有一部分变量限制为整数,则称为混合整数规划;如
果变量的取值仅限制于0或1,则称为0-1规划。
实际问题中经过“四舍五入”处理得到的解可能不是 原问题的可行解,有的虽是原问题的可行解,但却不是 整数最优解.因而有必要研究整数规划问题的解法.
分支定界法的主要思路是首先求解整数规划的伴 随规划,如果求得的最优解不符合整数条件,则 增加新约束——缩小可行域;将原整数规划问题分 支——分为两个子规划,再解子规划的伴随规划。 通过求解一系列子规划的伴随规划及不断地定界, 最后得到原整数规划问题的整数最优解。
我们用一个例题来具体介绍
5.2.1 分枝定界法的主要思路
作出问题A1,A2的伴随规划B1,B2,则问题B1, B2的可行域为K1,K2见图5.2(b)。以下我们将由 同一问题分解出的两个分支问题称为“一对分 支”。
4 分别求解一对分枝
在一般情况下,对某个分枝问题(伴随规划)求解 时,可能出现以下几种可能: (1 ) 无可行解 若无可行解,说明该枝情况己查明,不需要由此 分枝再继续分枝,称该分枝为 "树叶"。 (2) 得到整数最优解 若求得整数最优解,则该枝情况己查明,不需要 再对此继续分枝,该分枝也是 "树叶"。
但对大型问题,这种组合数的个数可能大得惊人! 如 在指派问题中,有n 项任务指派n个人去完成,不同的 指派方案共有n! 种。当 n=20时,这个数超过21013。如 果用穷举法每一个方案都计算一遍,就是用每秒百万 次的计算机,也要几万年。 显然 “穷举法” 并不是一 种普遍有效的方法。因此研究求解整数规划的一般方 法是有实际意义的。
(3) 得到不满足问题A0的整数条件的B0的最优解, 记它的目标函数值为,这时需要对问题A0 (从而 对问题B0) 进行分支,转下一步。 第3步:确定初始上下界 。 以 f0作为上界 Z 。 观察出问题A0的一个整数可 行解,将其目标函数值记为下界 Z 。 若观察不 到,则可记 -∞。转下一步。
解:设计划甲种宿舍建 x1 幢,乙种宿舍建 x2 幢, 则本题数学模型为 :
max z 20 x1 10 x2 0.25 x1 0.4 x2 24 x 8 1 s t x2 4 x1 , x2 0, 取整数
(5.4)
式(5.4)是一个纯整数规划问题,称为问题A0。 将(5.4)中约束条件0.25 x1+0.4 x2≤3的系数全 化为整数,改为:5x1+8x2≤60,然后去掉整数条 件,得到问题A0的伴随规划(5.5), 称之为问题B0。
10 20 max f 20 x1 10 x2
5 x1 8 x2 60 x 8 1 s t x2 4 x1 , x2 0
用图解法求解问题B0,得到最优解及最优值: x1=5.6 , x2=4 , f0 =136 1) 计算原问题A0目标函数值的初始上界
Z
因为问题B0的最优解不满足整数条件,因此不是问 ' 题的最优解,又因为A0的可行域 K 0 问题B0 的 可行域K0, 故问题 A0 的最优值不会超过问题B0的 * * * 最优值。 即有 Z f 0。因此可令 f 0 作为Z *的 初始上界,即 。
Z 136
一般说来,若问题B0无可行解,则问题A0也无可 行解,停止计算。若问题B0的最优解满足问题A0 的整数条件,则也是问题A0的最优解,停止计算。
第4步: 将问题B0分支。 在B0的最优解X0中,任选一个不符合整数条件的 变量xj,其值为aj,以[aj]表示小于aj的最大整数。 构造两个约束条件: x j [a j ] 1 将这两个约束条件分别加到问题B0的约束条件集 中,得到B0的两个分支:问题B1与B2。