当前位置:
文档之家› 运筹学-第四章 整数规划与分配问题
运筹学-第四章 整数规划与分配问题
L2的最优解为 (2.5,3),z=13.5
4
3 2 1
L2 (3.25,2.5)
L1 1 2 3 4 5 6 7
x1
• 第三步:剪枝 把那些子问题的最优值比较, 凡不优或不能更优的分枝全剪掉, 直到每个分枝都查清为止。
• 分支L2被减去,分枝L1继续分枝如下:
L11:Max z=3x1+2x2 s.t. 2x1+3x2≤14 x1+0.5x2≤4.5 x2≤2 x1≤3 x1,x2≥0
s.t. 3x1+4x2 12
用图解法求出的替代问题的最优解(6/5, 21/10)Z=111/10为各分枝的上界。分枝: X1 1,x1 2
x2 4
3
2
P1
1 x1 0 1
P2 2
3
4
两个子问题:
(L1)Max
Z=4x1+3x2
4x1+2x2 9 x1 1 x1,x2 0
X2=2.1
Z=11.1
一般求解对应的松驰问题,可能会出 现下面几种情况: 若所得的最优解的各分量恰好是整 数,则这个解也是原整数规划的最优 解,计算结束。 若原问题无可行解,则原整数规划 问题也无可行解,计算结束。
例4 用分枝定界法求解:
Max Z=4x1+3x2 4x1+2x2 9 x1,x2 0 且为整数
再对(L1)分枝:X1 1
x2 4 3 2 P4
(L11) x2 2
(L12) x2 3
P1
1 P3 0 1
P2 2
x1
3 4
(L1)两个子问题:
(L11)Max
Z=4x1+3x2
4x1+2x2 9 x1 1 x2 2
s.t. 3x1+4x2 12
x1,x2 0且为整数
0
6
0
0 5
0
3 4
0
Ø
6
3 4
13
13 4
5
Ø
4
0
3
9
3 9
2
3
2
3
Z=9+4+11+4=28
例4: 4个工人分派做4项工作,规定每人只
能做1项工作,每项工作只能1个人做。现设每 个工人做每项工作所消耗的时间如表所示, 求总耗时最少的分派方案。
工作 工作时间/h 工人
1 15 19 26 19
甲 译成英文 译成日文 译成德文 译成俄文 2 15 13 4
乙 10 4 14 15
丙 9 14 16 13
丁 7 8 11 9
匈牙利算法的步骤:
第一步:使分配问题的系数矩阵经 变换,在各行各列中都出现0元素: 从系数矩阵的每行元素减去该行的 最小元素。 再从所得系数矩阵的每列元素减去 该列的最小元素。 若某行已经有0元素,就不必再减了。
反复进行上述两步,直到所有的0元素 都被圈出和划掉为止。
若还有没有划圈的0元素,且同行 (或列)的0元素至少有二个,从剩有 0元素最少的行(或列)开始,比较这 行各0元素所在列中0元素的数目,选 择0元素少的那列的0元素加圈,然后 划掉同行同列的其他0元素,可反复进 行,直到所有的0元素都被圈出和划掉 为止。
Ø
9
1 10 2
3
Ø
3
6
2 4
6 4
Ø
9
0
2
3 0 2
6
3 0 5
10
0 4 0
1 10 2
√
√
0 10 1
3
Ø
3
6
√
2 3
6 3
Ø
10
Ø
0 10 1
4
2
5
2 3
6 3
Ø
10
Ø
√ √ √
0
0
4
10
Ø 10 1
0
12 1
1
0 0
1
0 3
0
6 0
4
2
5
√
√
Ø
1
Ø
4
1
10
Ø 12
0 1 X= 0 0 1 0 1 0 0 0 1
0 0 0
称为解矩阵其 各行各列元素 之和为1。
0 0
4.2.2 匈牙利法
匈牙利算法基本思想: 对同一工作i来说,所有人的效 率都提高或降低同一常数,不会影 响最优分配;同样,对同一人j来 说,做所有工作的效率都提高或降 低同一常数,也不会影响最优分配。
L12:Max z=3x1+2x2 s.t. 2x1+3x2≤14 x1+0.5x2≤4.5 x2≤2 x1≥4 x2≥0
9
8 7 6 5
x2
L11的最优解为 (3,2),z=13
L12的最优解为 (4,1),z=14
4
3 2 1
L2
X1+0.5x2≤4.5
(3.25,2.5)
L11 1 2 3 4
分配问题性质:
分配问题的最优解有这样的性质, 若从系数矩阵C的一行(列)各元 素中分别减去该行(列)的最小元 素得到的新矩阵B,那么B为系数矩 阵求得的最优解和用原来的系数矩 阵C求得的最优解相同。
匈牙利算法:
若系数矩阵中的元素可分 为”0”与非“0”两部分,则覆 盖
“0”元素的最少直线数等于位 于不同行不同列的“0”元素的 最大个数。
用单纯形法可解得相应的(L11) 的最优解(1,2) Z=10
(L1)两个子问题:
(L12)Max
Z=4x1+3x2 4x1+2x2 9
s.t. 3x1+4x2 12 x1 1
x2 3
x1,x2 0 且为整数
用图解法可解得相应的(L12)的最优解 (0,3) Z=9
L0
X1=1.2
L12 5 6
2x1+3x2≤14
7
x1
故原问题的最优解为(4,1),z=14
L0
X1=3.25
X2=2.5
Z=14.75
X2≤2 L1 X2≥3 L2
X1=3.5
X2=2
X1=2.5
X2=3
Z=14.5
Z=13.5
x1≤3
L11
x1≥4
L12
X1=3
X2=2 Z=13
X1=4
X2=1 Z=14
分枝定界整个过程
4、整数规划与分配问题
4.1 整数规划的特点及作用
在线性规划问题中,它的解都假设为具有连 续型数值.但是在许多实际问题中,决策变量 仅仅在取整数值时才有意义,比如变量表示 的是工人的数量,机器的台数,货物的箱数等。 实际问题中经过“四舍五入”处理得到的 解可能不是原问题的可行解,有的虽是原问 题的可行解,但却不是整数最优解.因而有必 要研究整数规划问题的解法.
s.t. 3x1+4x2 12
用图解法可解得相应的(L1)的最优解 (1,9/4) Z=10(3/4)
(L2)Max
Z=4x1+3x2 4x1+2x2 9 x1 2 x1,x2 0
s.t. 3x1+4x2 12
用单纯形法可解得相应的(l2)的 最优解(2,1/2) Z=9(1/2)
重复上述两步,直到得不出新的打行列 为止。 对没有打行画横线,有打列画纵线, 就得到覆盖所有0元素的最少直线数。
8
2 5
5 4
Ø
√
11 2
Ø
3 11
4
5
√
√
第四步:在没有被直线覆盖的部分中 找出最小元素,然后在打行各元素都 减去这最小元素,而在打列中各元素 都加上这最小元素,以保证原来0元素 不变,这样得到新的系数矩阵(它的 最优解和原问题相同)。若得到n个独 立的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 某厂拟用火车装运甲、乙两种货物集装箱,每 箱的体积、重量、可获利润以及装运所受限制如 下: 体积( 米 )
3
重量(百斤) 利润(百元) 2 20
货物集装箱 甲 乙
托运限制
5
4
24
5
13
10
问两种货物各装运多少箱,可使获得利润最大?
设甲、乙两种货物装运箱数分别为x1 和x2。显然,都要求为整数,于是可建立 整数规划模型如下:
引入0-1变量xij=1分配第i人去完成第j 项任 务,xij=0不分配第i人去完成第j 项任务。
xij =1 (j=1,2……n)表示 第j 项任务只能由一人去完成。
x ij =1 (i=1,2……n) 第i人只能完成一项任务。
分配问题的数学模型: Min Z= cijxij xij =1 (j=1,2……n) xij =1 (i=1,2……n) xij = 0或1(i=1,2…..m; j=1,2……n) 满足约束条件的解称为可行解可写成 矩阵形式:
• 选取x2进行分枝,分成如下两个字问 题:
L1:Max z=3x1+2x2 L2:Max z=3x1+2x2
s.t.
2x1+3x2≤14 x1+0.5x2≤4.5 x2≤2 x1,x2≥0