运筹学课件第五章整数规划
- 格式:doc
- 大小:453.00 KB
- 文档页数:19
第五章整数规划、学习目的与要求1、熟悉分支定界法和割平面法的原理及其应用;2、掌握求解0―― 1规划问题的隐枚举法;3、掌握求解指派问题的匈牙利法。
二、课时9学时第一节整数规划的数学模型及解的特点整数规划IP (integer programming):在许多规划问题中,如果要求一部分或全部决策变量必须取整数。
例如,所求的解是机器的台数、人数、车辆船只数等,这样的规划问题称为整数规划,简记IP。
松弛问题(slack problem):不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整数规划问题的松弛问题。
若松弛问题是一个线性规化问题,则该整数规划为整数线性规划(integer linear programming)。
一、整数线性规划数学模型的一般形式nmax(或min) z 八c j x jj a"nZ a ij X j <(或=,或X)b i (i =1,2,…,m)j =1s.t.」X j X0( j =1,2,…,n)X-X2,…,x n中部分或全部取整数I整数线性规划问题可以分为以下几种类型1、纯整数线性规划(pure integer linear programming):指全部决策变量都必须取整数值的整数线性规划。
有时,也称为全整数规划。
2、混合整数线性规划(mixed integer liner programming):指决策变量中有一部分必须取整数值,另一部分可以不取整数值的整数线性规划。
3、0—1型整数线性规划(zero—one integer liner programming):指决策变量只能取值0或1的整数线性规划。
二、整数规划的例子例1某服务部门各时段(每2h为一时段)需要服务员的人数见下表。
按规定,服务员连续工作8h (即四个时段为一班)。
现在求安排服务员的工作时间,使服务部门服务员总数最少?解:设在第时段开始上班的服务员的人数为。
问题的数学模式略。
第5章整数规划(割平面法)求解整数规划问题:Max Z=3x1+2x22x1+3x2≤144x1+2x2≤18x1,x2≥0,且为整数解:首先,将原问题的数学模型标准化,这里标准化有两层含义:(1)将不等式转化为等式约束,(2)将整数规划中所有非整数系数全部转化为整数,以便于构造切割平面。
从而有:Max Z=3x1+2x22x1+3x2+x3=142x1+x2+x4=9x1,x2≥0,且为整数利用单纯形法求解,得到最优单纯形表,见表1:表1最优解为:x1=13/4, x2=5/2, Z=59/4根据上表,写出非整数规划的约束方程,如:x2+1/2x3-1/2x4=5/2 (1)将该方程中所有变量的系数及右端常数项均改写成“整数与非负真分数之和”的形式,即:(1+0)x2+(0+1/2)x3+(-1+1/2)x4=2+1/2把整数及带有整数系数的变量移到方程左边,分数及带有分数系数的变量称到方程右边,得:x2 - x4-2 =1/2-(1/2x3+1/2x4) (2)由于原数学模型已经“标准化”,因此,在整数最优解中,x2和x4也必须取整数值,所以(2)式左端必为整数或零,因而其右端也必须是整数。
又因为x3,x4 0,所以必有:1/2-(1/2x3+1/2x4)<1由于(2)式右端必为整数,于是有:1/2-(1/2x3+1/2x4)≤0 (3)或x3+x4≥1 (4)这就是考虑整数约束的一个割平面约束方程,它是用非基变量表示的,如果用基变量来表示割平面约束方程,则有:2x1+2x2≤11 (5)从图1中可以看出,(5)式所表示的割平面约束仅割去线性规划可行域中不包含整数可行解的部分区域,使点E(3.5,2)成为可行域的一个极点。
图1在(3)式中加入松弛变量x5,得:-1/2x3-1/2x4+x5=-1/2 (6)将(6)式增添到问题的约束条件中,得到新的整数规划问题:Max Z=3x1+2x22x1+3x2+x3=142x1+x2+x4=9-1/2x3-1/2x4+x5=-1/2x i≥0,且为整数,i=1,2,…,5该问题的求解可以在表1中加入(6)式,然后运用对偶单纯形法求出最优解。
第五章 整数规划一、学习目的与要求1、熟悉分支定界法和割平面法的原理及其应用;2、掌握求解0——1规划问题的隐枚举法;3、掌握求解指派问题的匈牙利法。
二、课时 9学时第一节整数规划的数学模型及解的特点整数规划IP (integer programming):在许多规划问题中,如果要求一部分或全部决策变量必须取整数。
例如,所求的解是机器的台数、人数、车辆船只数等,这样的规划问题称为整数规划,简记IP 。
松弛问题(slack problem):不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整数规划问题的松弛问题。
若松弛问题是一个线性规化问题,则该整数规划为整数线性规划(integer linear programming)。
一、整数线性规划数学模型的一般形式⎪⎪⎪⎩⎪⎪⎪⎨⎧=≥=≥=≤=∑∑==中部分或全部取整数或或或n j i nj j ij nj jjx x x n j x m i b x a t s x cz ,,,),,2,1(0),,2,1(),(..min)max(2111整数线性规划问题可以分为以下几种类型1、纯整数线性规划(pure integer linear programming):指全部决策变量都必须取整数值的整数线性规划。
有时,也称为全整数规划。
2、混合整数线性规划(mixed integer liner programming):指决策变量中有一部分必须取整数值,另一部分可以不取整数值的整数线性规划。
3、0—1型整数线性规划(zero —one integer liner programming):指决策变量只能取值0或1的整数线性规划。
二、整数规划的例子例1 某服务部门各时段(每2h 为一时段)需要服务员的人数见下表。
按规定,服务员连续工作8h (即四个时段为一班)。
现在求安排服务员的工作时间,使服务部门服务员总数最少?j例2 现有资金总额为B 。
可选择投资项目有n 个,项目j 所需投资额和预期收益分别为a j 和c j (j=1,2,…,n )。
此外由于种种原因,有三个附加条件:若选择项目1,就必须选择项目2。
反这则不一定;第二,项目3和项目4中至少选择一个;第三,项目5、项目6和项目7恰好选择两个。
应当怎样选择投资项目,才能使预期收益最大?解:每一个投资项目都有被选择和不被选择两种可能,为此令),,2,1(01n j j j x j =⎩⎨⎧=不投资项目投资项目这样,问题可表示为∑==nj j jx cz 1max⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧===++≥+≥=∑=),,2,1(1021..76543121n j x x x x x x x x B x a t s j nj j j 或例3 工厂A 1和A 2生产某种物资。
由于该种物资供不应求,故需要再建一家工厂。
相应的建厂方案有A 3和A 4两个。
这种物资的需求地有B 1,B 2,B 3,B 4四个。
各工厂年生产能力、各地所需求量、各厂至各需求地的单位物资运费c(i,j=1,2, …,4)见下表。
工厂A 3或A 4A 3还是A 4,才能使今后每年的总费用(即全部物资运费和新工厂生产费用之和)最少?解:这是全个物资运输问题,其特点是事先不能确定应该建A 3或A 4中哪一个,因而不知道新厂投产后的实际生产费用。
引入0—1变量⎩⎨⎧=4301A A y 若建工厂若建工厂再设c ij 为由Ai 运往Bj 的物资数量(i,j=1,2, …,4),单位是千吨,z 表示总费用。
问题数学模型为1400)1(1200min 4141y y x cz j i ij ij-++=∑∑==⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧==≥-========∑∑∑∑∑∑∑∑========10),4,3,2,1,(0)1(200200600400150300400350..414413412411414413412411或y j i x y x y x x x x x x x t s ij i j i j i j i j i i i i i i i i三、整数规划的解的特点相对于松弛问题而言,二者之间既有联系,又有本质的区别 (1)整数规划问题的可行域是其松弛问题的一个子集 (2)整数规划问题的可行解一定是其松弛问题的可行解(3)一般情况下,松弛问题的最优解不会刚好满足变量的整数约束条件,因而不是整数规划的可行解,更不是最优解(4)对松弛问题的最优解中非整数变量简单的取整,所得到的解不一定是整数规划问题的最优解,甚至也不一定是整数规划问题的可行解(5)求解还是要先求松弛问题的最优解,然后用分支定界法或割平面法。
例4 考虑下面的整数规划问题:⎪⎩⎪⎨⎧≥≤+≤+-+=且取整数0,82332..4max 21212121x x x x x x t s x x zx 1x 2 9 12第二节 解纯整数规划的割平面法考虑纯整数规划问题⎪⎪⎪⎩⎪⎪⎪⎨⎧=≥===∑∑==取整数n j i nj j ij nj jjx x x n j x m i b x a t s x cz ,,,),,2,1(0),,2,1(..max 2111设其中a ij (i=1,2,…,m,j=1,2, …,n )和b j (j=1,2, …,n )皆为整数。
纯整数规划的松驰问题是一个线性规划问题,可以用单纯形法求解。
在松驰问题的最优单纯形表中,记Q 为m 个基变量的下标的集合,K 为n-m 个非基变量的下标的集合,则m 个约束方程可表示为Q i b x ax iKj j iji ∈=+∑∈ (1)而对应的最优解T n x x x X *),*,*,(*21 =,其中⎪⎩⎪⎨⎧∈∈=Kj Q j b x jj 0*若j b 皆为整数,则此解就是纯整数规划的最优解。
否则不是原整数规划最优解。
割平面法基本思路:通过增加新的约束来切割可原问题伴随规划的可行域,使它在不断缩小的过程中,将原问题的整数最优解逐渐暴露且趋于可行域极点的位置,这样就有可能用单纯形法求出。
每次增加的新的约束条件应当具备两个基本性质:一是已获得的不符合整数要求的线性规划最优解不满足线性约束条件,从而不可能在以后的解中再出现;二是凡整数可行解均满足线性约束条件,因而整数最优解始终被保留在每次形成的线性规划可行域中。
为此若)(00Q i b i ∈不是整数,在(1)式中的约束方程为000,i Kj j ji i b x ax =+∑∈ (2)其中)(,0K j x x j i ∈应为整数,按)(00Q i b i ∈不是整数,j i a ,0可能是整数也可能不是整数。
分解00,i j i b a 和成两个部分。
一部分是不超过该数的最大整数,另一部分是余下的小数。
即)(10,,,,,,,,000000K j fa N fN a ji j i j i ji j i j i ∈<≤≤+=且为整数10,,000000<<<+=i i i i i i f b N f N b 且为整数(2)式变为∑∑∈∈-=-+Kj j ji i i Kj j ji i x ff N x Nx ,,00000因此有∑∈≤-Kj j ji i x ff 0,00,即0,i Kj j ji fx f-≤-∑∈ (3)上式满足上面要求的两个性质(证明见书P128)。
实际解题时,经验表明若从最优单纯表中选择具有最大(小)数部分的非整分量所在行构造割平面约束条件,往往可以提高切割效果,减少切割次数。
例5 用割平面法解整数规划问题⎪⎪⎪⎩⎪⎪⎪⎨⎧≥≤+≥+≤--=且为整数0,5210453233max 2121212121x x x x x x x x x x z解:将原整数规划问题称为原问题A 0,不考虑整数条件的松驰问题为问题B 0,求解过程如下: 1. 用单纯形法求解B 0,得最优单纯形表2在最终表上任选一个含有不满足整数条件基变量的约束方程。
若选x 1,则含x 1的约束方程为:76573371-≤--x x上式加入松驰变量x 6得766573371-=+--x x x 3737641441-=+--x x x 再解新线性规划得割平面法解整数规划问题的基本步骤第一步:用单纯形法解松弛问题,得到最优单纯形表。
第二步:求一个割平面方程,加到最优单纯形表中,用对偶单纯形法继续求解。
第三步:若没有得到整数最优解,则继续作割平面方程,转第二步。
第三节 分支定界法分枝定界法是一种隐枚举法或部分枚举法,它不是一种有效算法,是枚举法基础的改进。
分枝定界法的关键是分支和定界。
分支定界法的主要思路是首先求解整数规划的伴随规划,如果求得的最优解不符合整数条件,则增加新约束——缩小可行域;将原整数规划问题分支——分为两个子规划,再解子规划的伴随规划……,最后得到原整数规划的伴随规划。
这就是所谓的“分支”。
所谓“定界”,是在分支过程中,若某个后继问题恰巧获得整数规划问题的一个可行解,那么,它的目标函数值就是一个“界限”,可以作为衡量处理其它分支的一个依据。
“分支”为整数规划最优解的出现创造了条件,而“定界”则可以提高搜索的效率。
例 用分支定界法求解整数规划问题⎪⎪⎩⎪⎪⎨⎧≥≤+-≤++=且为整数0,3121451149max 21212121x x x x x x x x z解:记整数规划为(IP ),它的松驰问题为(LP )。
(1)首先解该整数规划的松驰问题为(L P ),如图所示,用图解法其最优解为X *=(3/2,10/3)’,图中点A ,Z*=29/6。
不符合整数要求,可任选一个变量,如x 1=3/2进行分支。
由于最接近3/2的整数是1和2,因而可以构造两个约束条件x 1≥2 和x 1≤1,分别并入原来的约束条件,形成两个分支S 1、S 1,松驰问题分别记为(LP 1)、(LP 2)。
(LP 1)其最优解为X*=(2,23/9)’,图中点B ,Z*=41/9;(LP 2)其最优解为X*=(1,7/3)’,图中点C ,Z*=10/3;都不整数解,因41/9>7/3,优先S 1分枝。
因x 2=23/9,进行分支。
由于最接近23/9的整数是2和3,因而可以构造两个约束条件x 2≥3 和x 2≤2,分别并入原来的约束条件,形成两个分支S 11、S 12,松驰问题分别记为(LP 11)、(LP 12)。
(LP 11)其最优解为为空;(LP 12)其最优解为X*=(33/14,2)’,图中点D ,Z*=61/14;不是整数解。
x 1x 2x 1x 2 x 2E(3,1)因x1=33/14,进行分支。
由于最接近33/14的整数是2和3,因而可以构造两个约束条件x1≥3 和x1≤2,分别并入原来的约束条件,形成两个分支S121、S122,松驰问题分别记为(LP121)、(LP122)。