第四章 整数规划
运筹学-4-整数规划
若松弛问题的最优解满足整数要求,得到整数规划的最优解,否则转下 一步;
2)分支与定界: 任意选一个非整数解的变量xi,在松弛问题中加上约束: xi≤[xi] 和 xi≥[xi]+1 组成两个新的松弛问题,称为分枝。新的松弛问题具有特征:当原问题 是求最大值时,目标值是分枝问题的上界;当原问题是求最小值时,目 标值是分枝问题的下界。 检查所有分枝的解及目标函数值,若某分枝的解是整数并且目标函数 值大于(max)等于其它分枝的目标值,则将其它分枝剪去不再计算, 若还存在非整数解并且目标值大于(max)整数解的目标值,需要继续分枝, 再检查,直到得到最优解。
x1 , x2 , xn 0
实际问题要求xi为整数! 如机器的台数,人数等
第四章 整数规划
例: 胜利家具厂生产桌子和椅子两种家具。桌 子售价50元/个,椅子售价30元/个,生产桌子 和椅子需要木工和油漆工两种工种。生产一个 桌子需要木工4个小时,油漆工2小时。生产一 个椅子需要木工3个小时,油漆工1小时。该厂 每月可用木工工时为120小时,油漆工工时为 50小时。问该厂如何组织生产才能使每月的销 售收入最大?
第四章 整数规划
min z cij xij [1200 y3 1500 y4 ]
i 1 j 1 4 4
x11 x21 x31 x41 350 x12 x22 x32 x42 400 x13 x23 x33 x43 300 x14 x24 x34 x44 150 x x x x 400 11 12 13 14 s .t x21 x22 x23 x24 600 x31 x32 x33 x34 200 y3 x41 x42 x43 x44 200 y4 x 0 ( i , j 1, 2, 3, 4) ij yi 0,1 ( i 1, 2)
第4章 整数规划
第4章 整数规划判断:用分枝定界法求解一个极大化的整数规划问题,任何一个可行解的目标函数值是该问题目标函数值的下界;指派问题数学模型的形式同运输问题十分相似,故也可以用表上作用法求解;效率矩阵的任一行(或列)减去(或加上)任一常数,指派问题最优解不会受到影响; 匈牙利法只能用于平衡分配问题;对于极大化问题,匈牙利法不能直接求解。
整数规划问题解的目标函数值优于其相应的线性规划问题的解的目标函数。
用割平面法求解整数规划问题,构造的割平面有可能切去一些不属于最优解的整数解。
用分枝定界法求解一个极大化的整数规划问题时,当得到多于一个可行解时,通常可任取其中一个作为下界值,在进行比较剪枝。
分配问题的每个元素都加上同一个常数k ,并不会影响最优分配方案。
分配问题的每个元素都乘上同一个常数k ,并不会影响最优分配方案。
分配问题域运输问题的数学模型结构形式十分相似,故也可以用表上作业法求解。
隐枚举法也可以用来求解分配问题简答试述分枝定界法求解问题的主要思想。
试述隐枚举法的步骤。
试讲述割平面方法的基本原理. 试例举三种应该剪枝的情况。
计算题分枝定界法用分枝定界法求解下列整数规划问题12max Z x x =+1212129511414123,x x x x x x +≤-+≤≥0且为整数用分枝定界法求解下列整数规划问题12max 32Z x x =+121212231429,x x x x x x +≤+≤≥0且为整数用分枝定界法求解下列整数规划问题12max 2010Z x x =+1232312312324434323,,x x x x x x x x x x x ++≤≤+≤≥---0且为整数用分枝定界法求解下列整数规划问题12max 79Z x x =+121212136735,x x x x x x x +≤+≤≥-0,且为整数用分枝定界法求解下列整数规划问题123max 33Z x x x =++123231231231324432323,,,x x x x x x x x x x x x x ++≤≤+≤≥---0,且为整数用分枝定界法解下列整数规划问题:1212121212232478188..3219,0MaxZ x x x x x x s t x x x x =+-+≤⎧⎪+≤⎪⎨+≤⎪⎪≥⎩且为整数用分枝定界法解下列整数规划问题1212121212250..6221,0MaxZ x x x x x x s t x x x x =++≤⎧⎪-+≤⎪⎨+≤⎪⎪≥⎩且为整数用分枝定界法解下列整数规划问题12312121225231050..7228,0,MaxZ x x x x x s t x x x x x =-+-+≤⎧⎪-≤⎨⎪≥⎩为整数用分枝定界法解下列整数规划问题12312341234345272222..0,1,2,3,4,5,j MaxZ x x x x x x x x x x x s t x j x x =-+-⎧-+-+=⎪⎪⎪-++=⎨⎪≥=⎪⎪⎩为整数用分枝定界法求解下列整数规划模型12max 23z x x =+121257354936x x x x +≤+≤12,0x x ≥且为整数有如下整数规划问题12max z x x =+12129511414123x x x x +≤-+≤12,0x x ≥且为整数试用分枝定界法求其最优解。
第四章 整数规划
√
√
27
17
结论: 结论: 最优解为x 最优解为 1=1、x2=1、x3=0,即对Ⅰ和Ⅱ两个 、 、 ,即对Ⅰ 项目投资,利润最大为27万元 万元。 项目投资,利润最大为 万元。
18
例2:用完全枚举法求解 型整数规划 :用完全枚举法求解0-1型整数规划
max f = 3x1 − 2 x2 + 5 x3 x1 + 2 x2 − x3 ≤ 2 x + 4x + x ≤ 4 2 3 1 x1 + x2 ≤ 3 4x + x ≤ 6 1 3 x1 , x2 , x3 = 0或1
① ② ③ ④
16
点
过滤条件 f≥16 × √ × √ f≥26 × √ √ f≥27 √
约束条件 ① ② ③ ④
f值 值
(0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) (1,0,1) (1,1,0) (1,1,1)
√ √
√ √
√ √
√ √
16 26
√ √ ×
× √
35
min
第二步: 第二步:检验
行检验 列检验
0 * 8 11 0 * 2 3 0 11
第四章整数规划讲稿11
设司机和乘务人员分别在各时间段一开始时上班,并连 续工作8h,问该公交线路怎样安排机和乘务人员,既能 满足工作需要,又配备最少司机和乘务人员?
解:设 xi 表示第i班次时开始上班的司机和乘 务人员数,这样我们建立如下的数学模型。
目标函数:minZ= x1 + x2 + x3 + x4 + x5 + x6
第四章 整数规划(Integer Programming ,简称为IP) 本章要求 • 理解整数规划的含义; • 掌握分配问题的匈牙利算法; • 掌握割平面法; • 掌握分枝定界法的思想和方法; • 掌握0-1变量的含义和用法。
§1
整数规划问题的提出
在线性规划问题中,所有的解都假设为具 有连续型的数值,即解可以是整数、分数或 小数。但对于某些具体的问题,常要求最优 解是整数的情形。例如,所求的解是机器台 数,完成工作的人数或装货的车数等,还有 逻辑变量,只允许取整数值的一类变量,比 如x=1或0。这时,分数或小数的解就不符合 要求。
一、整数规划的定义:决策变量要求取整数的LP。
IP的松驰问题:任何IP,放弃整数要求后,所得到的 问题称为原IP的松驰问题(Slack Problem)或称作和原 IP相应的LP问题。 二、分类
1、纯整数规划(Pure Integer Programming)或全整数规划 (All Integer Programming):全部决策变量均要求取整数 的LP。
解题时需要引入m2个0-1变量 xij ,即令 :
匈牙利法要求分配问题的模型为标准型, 即满足下列条件的模型: (1)目标函数为极小化;
(2)效率矩阵[ij]为m阶方阵;
(3)[ ij]中元素 ij ≥0,且为常数。
第4章 整数规划
整数规划
整数规划问题的提出
整数规划模型与一般的线性规划模型 的区别仅在于: 的区别仅在于:整数规划的变量要求 部分的或全部的为整数。例如: 部分的或全部的为整数。例如:
m Z = x + x2 ax 1 14 1 x +9x2 ≤ 51 −6x +3x2 ≤1 1 x , x ≥ 0且 整 为 数 1 2
(纯整数规划问题) 纯整数规划问题)
解:设xi为第i天开始上班的人数: 为第i天开始上班的人数: Min: Min:z=x1+x2+x3+x4+x5+x6+x7 s.t. x1 +x4+x5+x6+x7≥17 +x5+x6+x7≥13 x1+x2 x1+x2+x3 +x6+x7≥15 x1+x2+x3+x4+ +x7≥19 x1+x2+x3+x4+x5 ≥14 x2+x3+x4+x5+x6 ≥16 x3+x4+x5+x6+x7≥11 xi≥0 ( i=1,2,…,7) i=1,2,…,7)
例:某市6 例:某市6个区,希望设 置最少消防站以便节省 费用。条件:
必须保证在城区任何地方发 生火警时,消防车能在15 生火警时,消防车能在15分 15分 钟之内赶到现场。各区之间 消防车行驶的时间见右表。
请确定设站方案。
布点问题的数学模型: 0-1规划 布点问题的数学模型:
设0−1为决策变量,当表示i地区设站,表示i 为决策变量,当表示i地区设站,表示i 地区不设站。这样根据消防车15分钟赶到现 地区不设站。这样根据消防车15分钟赶到现 场的限制,可得到如下模型
4第四章 整数规划
分别求解这两个线性规划问题,得到的解是:
x1 4, x2 2.1, z 349 和 x1 5, x2 1.57, z 341 变量 x2 仍不满足整数的条件,对问题(A), 必有 ,将(A)增加约束条件,得到
4.2 整数规划的求解算法 能否采用四舍五入或者去尾法求得整数解? 以例4.1的求解为例,先不考虑 x1 , x2为整数的 条件,采用单纯形法求解该问题,得到: 采用四舍五入法求解,则有 x1 5, x2 0 x1 , x2 ,此解不是可行解; 而去尾法得到 x1 4, x2 0 ,目标函数 z 80 , 该解是否是最优解呢?实际上,当 x1 4, x2 1 时, z 90 ,表明,去尾法得到的解并非最优解。 若对
4.1 整数规划的数学建模 4.1.1 装箱问题 例4.1 某厂拟用集装箱托运甲、乙两种货物,每箱 的体积、重量、可获利润以及托运所受限制如表4-1 所示。问两种货物各托运多少箱,可使获得利润为最 大? 表 4-1
货物 甲 乙 托运限制 体积(米3/箱) 重量(百公斤/箱) 利润(百元/箱) 5 4 24米3 2 5 13百公斤 20 10
用观察法找问题A的一个整数可行解,一 般可取 x j 0, j 1, , n, 试探,求 得其目标函数值,并记 z 。以 z* 表示问题 A的最优目标函数值;这时有 , * z z z0 然后按下述步骤进行迭代。
步骤1:分支定界过程 分支过程。在B 的最优解中任选一个不符 bj [b j ] xj 合整数条件的变量 ,若其值为 ,以 bj 表示小于 的最大整数,构造两个约束条件: x j [bj ]和x j [bj ] 1 。将这两个约束条件, 分别加入问题B ,得到后续规划问题 B1和B2 。 不考虑整数条件求解这两个后续问题。 定界过程。以每个后续问题为一分支标明求 解的结果,在其他问题解的结果中,找出最优 目标函数值最大者作为新的上界 z 。从已符合 整数条件的各分支中,找出目标函数值最大者 作为新的下界 z ,若无可行解,则 z 0 。
运筹学基础及应用_(第四章_整数规划与分配问题)
(d) 8
(e)1号、
4号、6号、9号开采时不能超过两个,试表示上
述约束条件。
Next
基础教研室
(a)当x8=1 当x8=0 ∴ x8 x6
x6=1,x6≠0 x6=1,x6=0
(b)当x5 =1 当x5 =0 ∴ x5 + x3 1
x3=0, x3 ≠1 x3=0, x3 =1
基础教研室
【例1】求下述整数规划的最优解
Max z= 3x1 + 2x2 st . 2x1 + 3x2 14 x1 + 0.5x2 4.5 x10,x20,且为整数
基础教研室
x2 x1+0.5x2=4.5
4
(3.25, 2.5) 2 2x1+3x2=14
2
4
6
x1
3x1+2x2=6
二、整数规划的求解方法
1 -选择电网供应 设 y1 0 -不选择电网供应
10 d j x j f (1 y1 ) M j 1 10 0.3d j x j p (1 y2 ) M j 1 y1 y2 1 y1 , y2 0或1
基础教研室
【例3】投资决策问题 某公司准备1000万元资金在10个地点中选择若干个建立 工厂(工厂名称用地点名来命名),有关数据如下:
由于各个工厂之间有配套和协作关系,因此必须满足条件: 1、 建工厂1就必须同时建工厂2; 2、 若建工厂2就不允许建工厂3; 3、 工厂4和工厂5至少建一个; 4、 工厂6,7,8恰好建2个; 5、 工厂8,9,10最多建2个; 6、 建工厂4或者建工厂6,就不能建工厂8,反过来也一样; 7、 条件2,3,5最多满足2个。 问选择哪几个地点建厂最有利? Next
第4章整数规划——指派问题
13 11 2 0 10 11 57 4 4 2 13 7 0 0 6 9 5 32 0 0
0 0 X 1 0
0 0 1 1 0 0 0 0 0 0 1 0
故可得到指派问题的最优解X,这样 安排能使总的维修时间最少,维修时间为 z=4+4+9+11=28(小时)。
X (2)
都是指派问题的最优解。
4 指派问题
4.3 指派问题的求解 指派问题既是一类特殊的整数规划问题,又是特殊的运输问 题,因此可以用多种相应的解法来求解,然而这些解法都没有充 分利用指派问题的特殊性质,有效地减少计算量,直到1955年库 恩(W. W. Kuhn)提出的匈牙利法才有效地解决了指派问题。 匈牙利法的理论基础 定义2 独立零元素组 在效率矩阵中,有一组在不同行不同 列的零元素,称为独立零元素组,其每个元素称为独立零元素。 5 0 2 0 2 3 0 0 C 【例4】 已知效率矩阵 0 5 6 7 4 8 0 0 求其独立零元素组。
4 指派问题
0 , 不 指 派 第 i小 组 维 修 第 j台 机 床 x ij ( i , j 1, 2 ,3, 4 ) 1, 指 派 第 i 小 组 维 修 第 j 台 机 床 机车 该问题的数学模型为: 1 2 3 4 4 小组 min z cij xij i 1 j 1 1 x11 x12 x13 2 x11 15 x12 2 x21 x22 x23 任务约束 4 x 1, j 1, 2 , 3 , 4 3 x31 x32 x33 ij i 1 4 x41 x42 x43 人员约束 4 x ij 1, i 1, 2 , 3, 4 j 1 x ij 0 或 1 i , j 1 , 2 , 3 , 4
第四章 整数规划
第四章整数规划第一节整数规划的数学模型及解的特点第二节解纯整数规划的割平面法第三节分支定界法第四节0-1型整数规划第五节指派问题整数规划的数学模型及解的特点一、整数规划数学模型的一般形式要求一部分或全部决策变量必须取整数值的规划问题称为整数规划( integer programming,简记IP )。
不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整数规划问题的松弛问题(slack problem)。
若松弛问题是一个线性规划,则称该整数规划问题为整数线性规划( integer liner programming )。
本章仅讨论整数线性规划。
∑==nj jj x c z 1min)max(或⎪⎪⎩⎪⎪⎨⎧=≥=≥=≤∑=中部分或全部取整数j j n j i j ij x n j x m i b x a ),,1(0),,1(),(1 ∑==nj jj x c z 1min)max(或⎪⎩⎪⎨⎧=≥=≥=≤∑=),,1(0),,1(),(1n j x m i b x a j nj i j ij 松弛问题为1. 纯整数线性规划(pure integer liner programming ):指全部决策变量都必须取整数值的整数线性规划。
有时,也称为全整数规划。
2. 混合整数线性规划(mixed integer liner programming):指决策变量中有一部分必须取整数值,另一部分可以不取整数值的整数线性规划。
3. 0-1型整数线性规划( zero-one integer liner programming):指决策变量只能取值0 或1 的整数线性规划。
例:某服务部门各时段(每2小时为一时段)需要服务员人数见表,按规定服务员连续工作8小时(即四个时段)为一班。
现在要求安排服务员的工作时间,使服务部门服务员总数最少。
时段12345678服务员最少数目10891113853设在第j 时段开始上班的服务员人数为x j 。
系统工程---第四章 整数规划
问题B2 x1=2.25 x2=4 f2=272.5
90 f * 285
max f 50x1 40x 2 4 x1 5 x 2 29 3 x1 2 x 2 16 问题B4 x 2 3 x 4 1 x1 , x 2 0
继续对问题B1和 B2进行分解, 因f1 >f2,先分解B1为B3和 B4
例3 求解0-1规划
max f x x x x x x x x x x x x x x , x , x 或
① ② ③ ④
90 f * 288.5 由 x2=3.285 得到两个分枝如下:
max f 50x1 40x 2 4 x1 5 x 2 29 3x1 2 x 2 16 问题B1 x2 3 x1 , x 2 0
max f 50x1 40x 2
整数规划问题A
max(min)f ( x) c j x j
j 1 n
其松弛问题B
max(min)f ( x) c j x j
j 1 n
n a ij x j (, )bi , i 1,2, , m j 1 x j 0 且为整数, j 1,2, , n
f f1
再用观察法找到 A的一个整数可行解,求其目标函数值作为 f*的下界,记为f,这时有 f f * f Step3 判断 f 是否等于 f 。如果 f f ,则 A 的最优解即为 其目标函数值等于 f 的那个整数可行解。否则,进行Step4。
Step4 分枝,在B的最优解中任选一个不符合整数条件的变量 xj=bj,以[bj]表示小于bj的最大整数。构造两个约束条件:
运筹学课件--第四章 整数规划
LP0:X=(3.57,7.14),Z0=35.7
x1≤3 x1≥4
LP1:X=(3,7.6) Z1=34.8
x2≤6
LP2:X=(4,6.5) Z2=35.5
x2≥7 无可行解 x1≥5 LP5:X=(5,5) Z5=35
OR:SM OR:SM
LP3:X=(4.33,6) Z3=35.33
10
OR:SM OR:SM
第二节 整数规划求解
【例3.5 】用分枝定界法求解例3.1
max Z 4 x 1 3 x 2 1 . 2 x 1 0 . 8 x 2 10 2 x 1 2 . 5 x 2 25 x 1 , x 2 0 , 且均取整数
【解】先求对应的松弛问题(记为LP0):
7
OR:SM OR:SM
第二节 整数规划求解
一、舍入化整法
为了满足整数解的要求,自然想到“舍入”或“截尾”处理,以得到 与最优解相近的整数解。 这样做除少数情况外,一般不可行,因为化整后的解有可能超出 了可行域,成为非可行解;或者虽是可行解,却不是最优解。
不考虑整数约束则是一个LP问题,称为原整数规划的松弛问题 对于例1的数学模型,不考虑整数约束的最优解:
6
LP1 LP3
LP3:X=(4.33,6),Z3=35.33
C o
14
3
4
10
x1
OR:SM OR:SM
x2 ① ②
10 A
由于 Z 3 Z 1,选择 LP 3 进行分枝,增加约束 x 1 4 及 x 1 5,到线性规划 LP 4 及 LP 5:
max Z 4x1 3x2 LP1:X=(3,7.6),Z1=34.8 1.2x1 0.8x2 10 2x1 2.5x2 25 LP4 : LP4:X=(4,6),Z4=34 x1 4,x2 6,x1 4 x1 , x2 0 即x1 4, 可行域是一条线段 max Z 4x1 3x2
第04章 整数规划
第4章整数规划在前面讨论的线性规划问题中,决策变量的取值可以是整数也可以是小数或分数,但在有些实际问题中,决策变量只有取整数才有意义。
例如,生产或配备的机器的台数,完成工作需要的人数等等。
这时,若得到的解为小数或分数就不符合要求,粗看起来,似乎只要把已得到的带有小数或分数的解,经过“四舍五人”的办法,就可得到问题的整数解。
但这常常是不行的,因为化整后的解不一定是可行的解。
或虽是可行解,但不一定是最优解,因此,对于此类问题有必要另行研究。
我们把有变量限制为整数的规划问题称为整数规划(Integer Programming)。
在整数规划中,若所有变量都限制为整数,称为纯整数规划;若仅有一部分变量限制为整数,称为混合整数规划。
在纯整数规划中,若所有变量的取值仅限于0或1,称为0-1型整数规划。
对于整数规划的求解,还没有像线性规划中单纯形法那样普遍有效的方法。
但已经出现了一系列的算法,常用的有分枝定界法、隐枚举法、匈牙利法等。
下面分别进行介绍。
1 分枝定界法在求解整数规划时,首先容易想到的方法就是穷举变量的所有可行的整数组合,然后比较它们的目标函数值以确定最优解。
对于小规模问题,这个方法是可行的,也是有效的。
而对于大规模问题,可行的整数组合数很大,穷举法是不可能的。
所以,一般采取的方法是仅检查可行的整数组合中的一部分来确定最优的整数解,分枝定界法(Branch and Bound Method)就是这样的一种方法。
分枝定界法是以求相应的线性规划问题的最优解为出发点,如果这个解不符合整数条件,就将原问题分为几个部分,每部分都增加了决策变量为整数这样的约束条件,这样就缩小了原线性规划问题的可行域。
考虑到整数规划的最优解不会更优于线性规划的最优解,对于求最大值问题来说,相应的线性规划的目标函数的最大值就成为整数规划目标函数值的上界。
分枝定界法就是利用这个性质进行求解的。
现举例说明这种方法。
例4—1 求解下列整数规划问题解先不考虑整数约束,求解相应的线性规划,得因x1、x2不满足整数条件,故需进行分枝迭代。
运筹学 第4章 整数规划
第四章整数规划整数规划(Integer Programming)主要是指整数线性规划。
一个线性规划问题,如果要求部分决策变量为整数,则构成一个整数规划问题,在项目投资、人员分配等方面有着广泛的应用。
整数规划是近二、三十年发展起来的数学规划的一个重要分支,根据整数规划中变量为整数条件的不同,整数规划可以分为三大类:所有变量都要求为整数的称为纯整数规划(Pure Integer Programming)或称全整数规划(All integer Programming);仅有一部分变量要求为整数的称为混合整数规划(Mixed Integer Programming);有的变量限制其取值只能为0或1,这类特殊的整数规划称为0-1规划。
本章主要讨论整数规划的分枝定界法、割平面法、0-1规划及指派问题。
第一节整数规划问题及其数学模型一、问题的提出在线性规划模型中,得到的最优解往往是分数或小数,但在有些实际问题中要求有的解必须是整数,如机器设备的台数、人员的数量等,这就在原来线性规划模型的基础上产生了一个新的约束,即要求变量中某些或全部为整数,这样的线性规划称为整数规划(Integer Programming)简称IP,是规划论中的一个分枝。
整数规划是一类特殊的线性规划,为了满足整数解的条件,初看起来,只要对相应线性规划的非整数解四舍五入取整就可以了。
当然在变量取值很大时,用上述方法得到的解与最优解差别不大,当变量取值较小时,得到的解与实际最优解差别较大,当变量较多时,如n=10个,则整数组合有210=1024个,而且整数解不一定在这些组合当中。
先来看下面的例子。
例4.1某工厂生产甲、乙两种设备,已知生产这两种设备需要消耗材料A、材料B,有关数据如下,问这两种设备各生产多少使工厂利润最大?表4-112量都要求为整数,建立模型如下:2123max x x z +=⎪⎪⎩⎪⎪⎨⎧≥≤+≤+为整数21212121,0,5.45.01432x x x x x x x x 要求该模型的解,首先不考虑整数约束条件④,用单纯形法对相应线性规划求解,其最优解为:x 1=3.25 x 2=2.5 max z =14.75由于x 1=3.25,x 2=2.5都不是整数,不符合整数约束条件。
管理运筹学第四章整数规划与指派问题
货物运输路线选择案例
案例描述
某物流公司需要为其客户提供从起点到终点的货物运 输服务。在运输过程中,有多种可能的路线可以选择 ,每条路线都有不同的运输成本和时间。此外,客户 对货物的运输时间和成本也有一定的要求。
整数规划应用
该案例可以通过整数规划来解决。首先,将每条路线的 选择定义为整数决策变量,1表示选择该路线,0表示 不选择。然后,根据每条路线的运输成本和时间,构建 目标函数,即最小化总运输成本和时间。接下来,根据 客户的要求和路线的特点,构建约束条件,如运输时间 限制、成本限制和路线连通性等。最后,使用整数规划 求解算法,找到满足所有约束条件的最优路线组合,即 最小化总运输成本和时间的路线选择方案。
展望
未来,整数规划与指派问题将在更多领域得到应用和推广 ,为实际问题的解决提供更加有效的方法和工具。同时, 随着相关技术的不断发展,整数规划与指派问题的求解方 法将更加高效和精确,为相关领域的发展提供更加有力的 支持。
THANKS
感谢观看
要点一
Xpress
Xpress是一款功能强大的数学优化求 解器,适用于线性规划、整数规划等 多种问题。它提供了丰富的算法和工 具,支持大规模问题的求解和分析。
要点二
LINGO
LINGO是一款易于使用的数学优化建 模工具,具有直观的语法和丰富的函 数库。它可以帮助用户快速构建和求 解线性规划、整数规划等问题,并提 供详细的解决方案和报告。
原理
通过添加割平面约束条件,逐 步缩小问题的可行域,从而找 到整数最优解。
添加割平面
根据松弛问题的最优解,构造 一个割平面约束条件,添加到 原问题中。
迭代
重复添加割平面和求解新问题 的步骤,直到找到整数最优解 或确定无整数最优解为止。
第四章 整数规划
11
二、0-1规划隐枚举法
12
第五节 指 派 问 题
一、指派问题的标准形式及其牙利法
16
第六节 整数规划的WinQSB求解
利用WinQSB软件求解线性整 数规划以及混合整数规划问题 时,仍是调用子程序Liear and Integer Proramming,操作时 改变一些变量类型。
2
第四章 整 数 规 划
整数规划是数学规划的一个重要分支。在一个规划问 题中,如果它的某些变量或全部变量要求取整数时, 这个规划问题就称为整数规划问题。特别是当这个问 题的约束条件为线性等式或不等式,目标函数为线性 函数时,就称此问题是整数线性规划问题。求解整数 规划问题是相当困难的,到目前为止,整数规划问题 还没有一个很有效的解法。 本章主要讨论整数线性规划问题的解法。 通过本章的学习,应当了解整数线性规划问题的数学 模型及其结构,掌握分枝定界法和割平面法的原理, 能够运用0-1规划的求解方法和匈牙利法解决实际生活 中的整数线性规划问题,并且学会用WinQSB求解整 数规划。
例4-9 (参见教材P104)
17
习
题
参见教材P106
3
第一节 整数规划的例子
一、下料问题。
参见教材P85
4
二、背包问题
5
第二节 分枝定界法
6
第二节 分枝定界法
7
第二节 分枝定界法
8
第三节 割 平 面 法
9
第四节 0-1整数规划
求解0-1整数规划问题 的常见方法主要有两种, 即完全枚举法和隐枚举 法,现分述如下。
10
一、完全枚举法
完全枚举法的思想是,首先将全部变 量取0或1的所有组合列出,也就是把 全部解列出,然后再逐个检查这些解 是否可行。为了加快求解速度,增加 一个过滤条件,这个过滤条件也是一 个界。 下面通过例4-6来说明其方法步骤。
第四章 整数规划
第四章 整数线性规划(Inregre Linear Progemming )§1 整数规划特点及应用前面讨论的LP 的最优解可能是分数或小数。
但是在经济管理和工程实践中,常常会出现要求变量值取整数的现象。
如决策变量是机器台数、人数或车辆数等。
最初有些人认为:只要对非整数解“舍入取整”即可。
但后来发现这是不行的。
因为舍入取整后的解不见得是可行解,即使是可行解,也不一定是最优整数解。
因此,这里另设一章,研究此问题,并称这种求整数最优解的LP 问题为整数线性规划,简记为“ILP ”。
整数规划分为许多类型:通常把所有变量都要求取整数的整数规划,称其为全(纯)整数规划;把部分变量要求取整数的整数规划,称为混合型ILP 。
把所有变量取值均为0或1的整数规划称为0-1规划。
等等。
求解整数规划的一种简单方法是:先不考虑整数条件,直接求解相应的线性规划问题,当最优解为非整数且数值都较大时,把非整数最优解取整到最接近的整数可行解即可。
但是,当最优解为非整数且数值都较小时,这种舍入化整的办可能导致解的可行性被破坏。
例如,我们来研究下面整数规划问题。
例4-1求解下面ILP 问题: 相应的LP :⎪⎪⎩⎪⎪⎨⎧≥≤+≤++=为整数2121212121,0,5.45.0143223max x x x x x x x x x x z ⎪⎩⎪⎨⎧≥≤+≤++=0,5.45.0143223max 21212121x x x x x x x x z解:若先不考虑整数约束条件求解相应的LP问题,由图解法得可行域如图4-1。
最优解X*=(3.25,2.5)。
所谓整数解,即要求变量取整数值。
而由X*舍入化整得到的解,如(4,3)或(4,2)或(3,3)都不在可行域上,所以都不是可行解,而(3,2)虽是可行解,但它并不是最优整数解,因为该例有一个可行解X=(4,1),其目标值Z=14,大于可行解(3,2)的目标值13。
为了求得该整数规划的最优整数解,我们将经过B点的目标函数等值线向可行域内平行移动,首次碰到的整数点即为所求。
整数规划(PDF)
例4-2:求解整数规划问题
s.t. 4x1 2x2 1 4x1 2x2 11
2x2 1
c=[-1;-1];
x1, x2 0, 且取整数值
A=[-4 2;4 2;0 -2];
b=[-1;11;-1];
lb=[0;0];
M=[1;2];
%均要求为整数变量
Tol=1e-8; [x,fval]=linprog(c,A,b,[],[],lb,[]) [x1,fval1]=intprog(c,A,b,[],[],lb,[],M,Tol)
可行否
枚举法随着变量维数增加呈指数增长,不可行!
四舍五入可能都不是可行解,不可行!
max s.t.
f 5x1 8x2 x1 x2 6 5x1 9x2 45 x1, x2 0, 且取整数值
x* f*
9 15 T 44 165 4
x [2 4]
四舍五入后的解 不是可行解!
一般整数规划问题的MATLAB求解
输入参数
MATLAB工具箱中的bintprog函数在求0-1规划问题时,提供的参数有如下几种 模型参数: x、c、b、beq、A和Aeq 初始解参数:x0 算法控制参数: options,我们可以通过optimset命令对这些具体的控制参数进
行设臵,其中主要参数的设臵方法如下一页的表格所示
调用格式 [x,fval,exitflag]=intprog(c,A,b,Aeq,beq,lb,ub,M,TolXInteger)
一般整数规划问题的MATLAB求解
标准形式
min f cT x s.t. Ax b
Aeq x beq lb x ub xi 0 (i 1, 2,...,n) x j 取整数值 (j M )
运筹学:第4章 整数规划与分配问题
2021/4/18
17
资源 金属板(吨) 劳动力(人月) 机器设备(台月)
小号容器 2 2 1
中号容器 4 3 2
大号容器 8 4 3
解:设 x1, x2, x3 分别为小号容器、中号容器和大号容 器的生产数量。
0, 不生产j型号容器 y j 1, 生产j型号容器
建立如下的数学模型:
2021/4/18
为:
C
j
(x
j
)
K 0,
j
c
j
x
j
,
xj 0 xj 0
其中 K j 是与产量无关 的生产准备费用
n
目标函数: min z C j (x j )
j 1
定义
0 y j 1
则原问题可表示为
xj 0
xj 0
n
min z (c j x j K j y j ) j 1
s.t
0 x j Myj
y
j
0或1
2021/4/18
10
§2.2 应用举例
例1 东方大学计算机实验室聘用4名大学生(代号
1,2,3,4)和2名研究生(代号5,6)值班。已知各学生从 周一至周五每天可安排的值班时间及每人每小时报酬见下 表所示。
学生 代号
1 2 3 4 5 6
酬金 (元/h) 10.0 10.0
9.9 9.8 10.8 11.3
2021/4/18
29
(0) 8
2
5
11 (0) 5
4
2
3 (0) 0
0
11
4
5
根据上图,k=2,
周一 6 0 4 5 3 0
每天可安排的值班时间(h) 周二 周三 周四
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例4-1求解下面ILP问题: 相应的LP:
(LP4)
(3.25,2.5) (LP2)
(4,1),14
14.75
(2.5,3),13.5
分枝定界法小结 (1) 先将求解最大化的ILP的松弛问题LP(若是最小化的ILP,可先化
成最大化的ILP),有以下结果之一:
1. 若LP无可行解,则原ILP也无可行解,计算结束; 2. 若LP的最优解是整数解,则它也是原ILP的最优解,计算
2、分枝
在ILP中,X1,X2要求取整数值。若X2取整数值,就要在X2≤2或
X2≥3中取值,为此,我们将X2≤2和X2≥3分别加入原ILP中,将ILP分
成两子问题。即
ILP1:
ILP2:
显然这两个子问题把LP的可行域划分成部分,但是,这样划分,并未丢 掉原ILP的可行解。我们称这一划分过程为分枝。
结束; 3.若LP的最优解不是整数解,则其目标函数值是ILP目标函数 值的上界,转下步。 (2) 在LP的最优解中选取小(分)数部分大的变量作为分枝变量,假 定的小(分)数部分大,则以构造两个约束条件和分别加入 ILP,将ILP分成两个子问题ILP1和ILP2; (3) 求解子问题的松弛问题LP1和LP2,并修改ILP目标值的上界,若 新上界所对应的解为整数解或符合混合整数规划条件,则这个解 就是原ILP的最优解,计算结束,否则,对新上界对应的子问题 继续分枝,直到求出最优解为止。
输入约束条件右边值,然后进行规划求解,“规划求解”对话框如图4-
4所示。
图4-4 规划求解”对话框
应的ILP1再分枝。考虑到X1*=(3.5,2)中X1=3.5仍非整数,不合要
求,再把X1≤3或X1≥4分别加入ILP1中,将ILP1分成两个子问题如下:
ILP3:
ILP4:
显然子问题ILP3和ILP4的整数可行解中包含了ILP1中的全部整数可行 解,因此我们可通过求解ILP3和ILP4的松弛问题LP3和LP4来寻找原 ILP1的最优整数解,于是由图解法得:
0.20X1 + 0.25X2<=5000 X1 ,X2 >= 0, 且为整数
例4-4 有n个工厂拟在n个不同的厂址上建设。已知从i厂到j厂的物资 运量为di j,又知从p厂址到q厂址单位物资的运费为Cpq。试将这个问题 归结成一个整数规划模型,目标是使总运费为最少。
解:设 则此问题的模型为:
例4-5某钻井队要从以下10个可供选择的井位中确定5个钻井探油,
为了求得该整数规划的最优整数解,我们将经过B点的目标函数等 值线向可行域内平行移动,首次碰到的整数点即为所求。在本例中,最 优整数解点就是(4,1)相应的Z=14。本例说明,在一般情况下,企图 用舍入化整的办法直接得到最优整数解是不可取的,必须专门研究其解 法。
促使人们研究整数规划还有其他原因,就是整数规划模型,还能为 处理某些特殊问题提供一种很好的方法,因为有些问题不利用整数规划 就很难处理。例如,投资工作中的许多决策问题,还有资源分配问题 中,有多重约束条件的选择问题,等等。都属于这种情况。
例4-3设某国际巧克力公司生产两种产品,朱古力和朱尔斯,其相 关数据如下:
单位边际贡献 单位机器工时 单位直接人工
工时
朱古 力
$1.00 0.02
0.20
朱尔 斯
$2.00 0.05
0.25
可以利用的有限资源:机器工时700;直接人工工时5000。求产品如何 组合才能使公司的效益达到最大。
解:设利润为Y,产品朱古力和朱尔斯的产量分别为X1 X2 MAX Y=1.00X1+2.00X2 S.T 0.02X1 + 0.05X2<=700
LP3的X3*=(3,2),Z3*=13 LP4的X4*=(4,1),Z4*=14
此结果表明,在LP1的可行域上,无论X1取何整数值,ILP1的最优目标 值都不会超过Z4*=14,而ILP2的目标值Z2*=13.5也不超过14,所以可断
定原ILP的目标值不会超过14,为此我们再把原ILP的目标值上界修改为
第4章 整数线性规划
(Inregre Linear Progemming) §1 整数规划特点及应用 前面讨论的LP的最优解可能是分数或小数。 但是在经济管理和工程实践中,常常会出现要求 变量值取整数的现象。如决策变量是机器台数、 人数或车辆数等。最初有些人认为:只要对非整 数解“舍入取整”即可。但后来发现这是不行的。 因为舍入取整后的解不见得是可行解,即使是可 行解,也不一定是最优整数解。因此,这里另设 一章,研究此问题,并称这种求整数最优解的LP 问题为整数线性规划,简记为“ILP”。 整数规划分为许多类型:通常把所有变量都 要求取整数的整数规划,称其为全(纯)整数规 划;把部分变量要求取整数的整数规划,称为混 合型ILP。把所有变量取值均为0或1的整数规划称 为0-1规划。等等。
5.0
15.0
700
5.0
7.5
12.5
1200
处理能力(吨/
1000
500
1300
周)
解:以i=1,2分别表示城镇1和城镇2;j=1,2,3分别表示焚烧、 填海和掩埋三种废物处理方式。用Xij为按j方式每周处理城镇i的废物吨 数,再设
则该问题的数学模型为:
在Excel工作表上建立运价表和变量表,如图4-3所示。
下面我们就用例子来说明整数规划模型的应用。 例4-2 试利用0-1变量将下列各题分别表示成一般线性约束条件。
(1) X1+X2 ≤ 2 或 2X1+3X2 ≥ 5 (2) 变量X只能取值0、3、5或7中的一个 (3) 若X1≤2,则X2≥1,否则X2≤4 (4) 以下四个约束条件中至少满足两个:
X1+X2≤5,X1≤2,X3≥2,X3+X4≥6
下面我们通过例子来说明分枝定界法的具体求解过程。
例4-6 用分枝定界法求解上节中例1-1问题。 解:1、先不考虑整数约束条件,用图解法求得相应LP的最优解 为:
X*=(3.25,2.5),Z*=14.75 因为LP可行域上所有整数点是原ILP的全部可行解,所以原ILP的最 优解应在这些整数点当中。 上面求出LP的最优解X*虽不是整数解,但由图可知,Z*是原ILP目 标值的上界。这是因为ILP的全部可行解(即可行域上全部整数点)的 目标函数值都不会超过Z*。所以称这一步为定界。
§3 利用Excel求解整数规划问题
例4-7 某地区有两个城镇,它们每周分别产生700吨和1200吨固体废 物。拟用三种方式(焚烧、填海、掩埋)分别在三个场地对这些废物进 行处理,如下图4-2所示。每个处理场所的处理成本分为固定成本和变 动成本两部分,其数据如表1所示。两城镇至各处理场所的运输成本、 应处理量与各处理场所的能力如表2所示。试求使两城镇处理固体废物 总费用最小的方案。
解:
例4-6 某厂需生产2000件产品,该产品可利用 A、B、C设备中的任意一种(或两种或三种)设 备加工。已知每种设备的生产准备费用、生产该 产品时的单位成本以及每种设备限定的最大加工 数量如下表所示,试建立使总费用最小的生产计 划问题数学模型。
设备 生产准备费用 生产成本(元/ 限定最大加
(元)
件)
工件数
A
1000
B
3000
C
2000
100
600
20
800
50
1200
解:用j=1,2,3表示A、B、C三种设备,Xj 表示在设备j上加工的产品数量,再设
则有
§2 分枝定界法*
分枝定界法是求解混合整数规划与纯整数规划的一种常用的有效方 法,多数求解ILP的软件也是用分枝定界法编写的。
分枝定界法的思想是先不考虑整数约束条件,直接求解其相应的 LP(又称其为松弛问题)。若相应的LP的最优解不是整数解,则由其 最优目标函数值可确定出原ILP目标函数的上(下)界,称此为定界。 然后增加约束条件把原ILP分成两个子问题,称其为分枝。接下来求解 子问题,由此,不断缩小原ILP目标函数的上界,直至求出最优整数解 或判断出无解为止。
解:若先不考虑整数约束条件求解相应的LP问题,由图解法得可 行域如图4-1。最优解X*=(3.25,2.5)。
所谓整数解,即要求变量取整数值。而由X*舍入化整得到的解,如 (4,3)或(4,2)或(3,3)都不在可行域上,所以都不是可行解, 而(3,2)虽是可行解,但它并不是最优整数解,因为该例有一个可行 解X=(4,1),其目标值Z=14,大于可行解(3,2)的目标值13。
城镇1(700吨)
焚烧(1000吨) 填海(500吨) 掩埋(1300吨)
表1
处理场所
1.焚烧 2.填海 3.掩埋
城镇2(1200吨)
图4-2
固定成本(元 / 吨)
3850 1150 1920
变动成本(元 / 吨)
12 16 6
表2
处理场所 运费(元/吨)
焚烧
填海
掩埋 应处理量
城镇
城镇1 城镇2
7.5
图4-3 运价表和变量表
将工作表的B9:D10及B12:D12区域作为可变单元格,在单元格B13
中输入目标函数表达式“=SUMPRODUCT(B3:D4,
B9:D10)+
SUMPRODUCT(B6:D6, B12:D12)”。
在单元格B14:B18中输入约束条件左边表达式,在单元格D14 :D18中
解: (1)设
(2)
(3)
(4) 设
则 下面看一个实际问题。假定某化工厂有两条生产线A1和A2均可用