第五章整数规划【模板】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章整数规划
§1整数规划的数学模型及特点
要求一部分或全部决策变量必须取整数值得规划问题称为整数规划。
其模型为:
Max(或min)z=
s.t
若要求决策变量只能取值0或1的整数规划称为0-1型整数线性规划。
§5 指派问题
一.指派问题的标准形式及数学模型
在现实生活中,有各种性质的指派问题。例如,有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包;有若干班级需要安排在各教室上课等等。诸如此类的问题,它们的基本要求是在满足特定的指派要求条件下,使指派方案的总体效果最佳。由于指派问题的多样性,有必要定义指派问题的标准形式。
指派问题的标准形式(以人和事为例)是:有n个人和n件事,已知第i个人作第j件事的费用为,要求确定人和事之间的一一对应的指派方案,是完成这n件事的总费用最少。
为了建立标准指派问题的数学模型,引入个0-1变量:
这样,问题的数学模型可写成
(5.1)
s.t (5.3)
其中,(5.1)表示每件事必优且只有一个人去做,(5.2)表示每个人必做且只做一件事。
注:○1指派问题是产量()、销量()相等,且==1,i,j=1,2,…n的运输问题。
○2有时也称为第i个人完成第j件工作所需的资源数,称之为效率系数(或价值系数)。并称矩阵
C= =(5.5)
为效率矩阵(或价值系数矩阵)。
并称决策变量排成的n×n矩阵
X== (5.6)
为决策变量矩阵。
(5.6)的特征是它有n个1,其它都是0。这n个1位于不同行、不同列。每一种情况为指派问题的一个可行解。共n!个解。
其总的费用 z =C⊙X
这里的⊙表示两矩阵对应元素的积,然后相加。
问题是:把这n个1放到X的个位置的什么地方可使耗费的总资源最少?(解最优)例1已知效率矩阵
C=
则
X(1)=,X(2)=
都是指派问题的最优解
例12/P-149:某商业公司计划开办五家新商店。为了尽早建成营业,商业公司决定由
5家建筑公司分别承建。已知建筑公司A i(i=1,2,…5)对新商店B j(1,2,…5)的建造费用的报价(万元)为(i,j=1,2,…5),见表5-9。商业公司应当对5家建筑公司怎样分派建筑任务,才能使总的建筑费用最少?
0-1变量
=
则问题的数学模型为
Min z=4+8+…+10+6
s.t
若看成运输问题,且如上所述,则表5-9为
当然,第一行的1应放在(1,1)位置,此位置同时是第一列的费用最小。但一般情况下没有这么好。需找一适合一般的方法。
二.匈牙利解法原理:
虽然指派问题是一类特殊的整数规划问题,又是特殊的0-1规划问题和特殊的运输问题,因此,它可以用多种相应的解法来求解。但是,这些解法都没有充分利用指派问题的特殊性质,有效地减少计算量。1955年,库恩(W.W.Kuhn)提出了匈牙利法。
定理1:设指派问题的效率矩阵为C=,若将该矩阵的某一行(或某一列)的各个元素都减去统一常数t(t可正可负),得到新的效率矩阵,则以为效率矩阵的新的指派问题与原指派问题的最优解相同。但其最优解比原最优解之减少t.
证明:设式(5.1)~(5.4)为原指派问题。现在C矩阵的第k行个元素东减去同一常数t,记新的指派问题的目标函数为.则有
==+=+
=+-t=-t·1=Z-t
因此有
Min =min(Z-t)=minZ-t
而新问题的约束方程同原指派问题。因此其最优解比相同,而最优解差一个常数。
推论:若将指派问题的效率矩阵每一行即每一列分别减去各行及各列的最小元素,则得到新指派问题与原指派问题有相同的最优解。
证明:结论是显然的。只要反复运用定理1便可得证。
当将效率矩阵的每一行都减去各行的最小元素,将所得的矩阵的每一列在减去当前列中最小元素,则最后得到新效率矩阵中必然出现一些零元素。设=0,从第i行来看,它表示第i个人去干第j项工作效率(相对)最好。而从第j列来看,这个0表示第j项工作以第i 人来干效率(相对)最高。
定义:在效率矩阵C中,有一组在不同行不同列的零元素,称为独立零元素组,此时每个元素称为独立零元素。
例2:已知
C=
则{=0,=0,=0,=0}是一个独立零元素组,=0,=0,=0,=0分别称为独立零元素。{=0,=0,=0,=0}也是一个独立零元素组,而{=0,=0,=0,=0}就不是一个独立零元素组,因为=0与=0这两个零元素位于同一列中。
根据以上对效率矩阵中零元素的分析,对效率矩阵C中出现的的独立零元素组中零元素所处的位置,在决策变量矩阵中令相应的=1,其余的=0。就可找到指派问题的一个最优解。
就上例中
X(1)=,
就是一个最优解。同理
X(2)=
也是一个最优解。
但是在有的问题中发现效率矩阵C中独立零元素的个数不够n个,这样就无法求出最优指派方案,需作进一步的分析。首先给出下述定理。
定理2效率矩阵C中独立零元素的最多个数等于能覆盖所有零元素的最少直线数。
我们不证它,说一下意思:
例3:已知矩阵
C1=,C2=,C3=
分别用最少直线去覆盖各自矩阵中的零元素:
C1=,C2=,C3=
可见,C1最少需要4条线,C2最少需要4条线,C3最少需要5条线,方能划掉矩阵中所有的零。即它们独立零元素组中零元素最多分别为4,4,5。
三.匈牙利法求解步骤:
我们以例题来说明指派问题如何求解:
例4给定效率矩阵
C=
求解该指派问题。