教案整数规划解读ppt课件.ppt

上传人:小飞机 文档编号:1340037 上传时间:2022-11-11 格式:PPT 页数:60 大小:551KB
返回 下载 相关 举报
教案整数规划解读ppt课件.ppt_第1页
第1页 / 共60页
教案整数规划解读ppt课件.ppt_第2页
第2页 / 共60页
教案整数规划解读ppt课件.ppt_第3页
第3页 / 共60页
教案整数规划解读ppt课件.ppt_第4页
第4页 / 共60页
教案整数规划解读ppt课件.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《教案整数规划解读ppt课件.ppt》由会员分享,可在线阅读,更多相关《教案整数规划解读ppt课件.ppt(60页珍藏版)》请在三一办公上搜索。

1、第一节 问题的提出 例子:某厂拟采用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运所受限制如下表,问两种货物托运多少箱,可使获得利润为最大?,第五章 整数规划(Integer Programming),分类:1. 纯整数线性规划(Pure Integer Linear Programming) 2. 混合整数线性规划(Mixed Integer Linear Programming) 3. 0-1型整数线性规划(Zero-One Integer Linear Programming),解:设x1,x2分别表示两种货物托运的箱数,那么其线性规划为,可得最优解为x*=(5/3,8/3)

2、T。 如果选用“向上凑整”的方法可得到x(1)=(2,3)T, 则此时已破坏了体积约束, 超出可行域的范围; 如果“舍去小数”可得x(2)=(1,2)T, 则此时虽是可行解, 值为10,不是最优解, 因为当x*=(2,2)T是, 其利润为14.,由于托运的箱数不能为分数,故上述规划问题是整数规划问题。若不考虑整数约束,其相应的线性规划问题为LP-1:,第二节 分枝定界法(Branch and Bound method)引言:穷举法对小规模的问题可以。大规模问题则不行,如指派问题 n个人指派n件事,共有n!中指派方案。一、基本思想和算法依据 基本思想是:先求出相应的线性规划最优解,若此解不符合整

3、数条件,那么其目标函数的值就是整数规划问题最优值的上界,而任意满足整数条件的可行解的目标函数值将是其下界(定界),然后将相应的线性规划问题进行分枝,分别求解后续的分枝问题。如果后续分枝问题的最优值小于上述下界, 则剪掉此枝; 如果后续某一分枝问题的最优解满足整数条件,且其最优值大于上述下界,则用其取代上述下界,继续考虑其它分枝,直到最终求得最优的整数解。 算法的依据在于:“整数规划的最优解不会优于相应的线性规划问题的最优解”。具体说就是,对极大化问题,与整数规划问题相应的线性规划问题的目标函数值,是该整数规划问题目标函数的上界;任何满足整数条件的可行解的目标函数值将是其下界。,二、具体步骤(以

4、例子说明),解: 第一步:先不考虑整数约束条件,求解相应的线性规划问题,得最优解和最优值如下x1=4.81, x2=1.82, Z=356 此解不满足整数解条件。定出整数规划问题目标函数的上下界。上界为 Z=356;用观察法可知x1=0,x2=0是可行解,从而其整数规划问题目标函数的下界应为0,即0 Z* 356,第二步:分枝与定界过程。 将其中一个非整数变量的解,比如x1, 进行分枝,即x14.81=4, x14.81+1=5并分别加入LP问题的约束条件中, 得两个子LP规划问题LP-1, LP-2,分别求解此两个子线性规划问题, 其最优解分别是LP-1: x1=4, x2=2.1, Z1=

5、349 LP-2: x1=5, x2=1.57, Z2=341,没有得到全部决策变量均是整数的解。再次定出上下界0 Z* 349,继续对问题LP-1,LP-2进行分枝。先对目标函数值大的进行分枝,即分别将 x22.1=2, x22.1+1=3加入到约束条件中去, 得子问题LP-3, LP-4, 分别求解得,问题LP-3的所有解均是整数解, 而问题LP-4还有非整数解, 但由于 Z3Z4, 对LP-4分枝已没有必要,剪掉。,上下界为 340 Z* 349,在对问题LP-2进行分枝, x2 1.57=1, x21.57+1=2, 得子问题LP-5, LP-6, 求解得LP-5: x1=5.44,

6、x2=1, Z5=308 (下界340, 剪掉) LP-6: 无可行解(剪掉),于是得到原整数规划问题的最优解为LP: x1=4, x2=2, Z3=340,整个过程如下:,步骤: 1 求解相应的线性规划问题的最优解和最优值, 如果a) 没有可行解, 停止; b) 若有满足整数条件的最优解, 则已得到整数规划问题的最优解, 停止; c) 若有最优解, 但不满足整数条件, 记此最优值为原整数规划问题Z*的上界, 然后, 用观察法求出下界. 2 分枝、定界,直到得到最优解为止。 a)在以后的各枝中,若某一子规划问题的最优解满足整数条件,则用其最优值置换Z*的下界。b)若某一分枝的最优值小于Z*的下

7、界,则剪掉此枝,即以后不在考虑此枝,三、算法需要注意的几点(以极大化问题为例) 1 在计算过程中,若以得到一个整数可行解x(0),其相应的目标函数值为Z0,那么在计算其它分枝过程中,如果解某一线性规划所得的目标函数值ZZ0,即可停止计算。因为进一步的分枝结果的最优值只能比Z更差。2 若有若干个待求解的分枝,先选那一个待求解的分枝呢?选取目标函数值最大的那一枝。,例 求下列整数规划问题的解,Z=21,Z=22,不考虑整数约束X1=5/2X2=2Z=23,第1个子问题X1=2X2=9/4Z=21,第2个子问题X1=3X2=1Z=22,x1 2,x1 3,练习:用分支定界法求解下述整数规划问题,第三

8、节 割平面解法(Cutting Plane Approach) 割平面法是1958年美国学者R. E. Gomory提出的。 基本思想是:先不考虑变量的取整数约束,求解相应的线性规划,然后不断增加线性约束条件(即割平面),将原可行域割掉不含整数可行解的一部分,最终得到一个具有整数坐标顶点的可行域,而该顶点恰好是原整数规划问题的最优解。 例:求解,加松弛变量x3、x4,使其变成标准形(如有非整数的系数,则将其所在的方程乘以某一常数,变成具有整数系数的约束方程),用单纯形法求解得,最优解x1=3/4,x2=7/4,x3=x4=0,最优值为Z=5/2,是非整数解。 寻求割平面:由最终表得x1 - 1

9、/4x3 + 1/4x4 = 3/4x2 + 3/4x3 + 1/4x4 = 7/4任选一取分数值的基变量,比如x1,将该式中所有变量的系数、右端常数项均改写成整数与非负真分数之和的形式,并移项得x1 - x3 = 3/4 -(3/4x3 + 1/4x4)(注:所有的x均是整数。x3、x4可通过在原约束条件中乘以某一常数变成整数。)则整数约束条件可由下式替代 3/4 -(3/4x3 + 1/4x4)0 即得割平面方程-3x3 - x4 -3引入松弛变量x5,将其加入到原规划的约束条件中,利用上述最终表得,左边项必是整数;0(3/4x3+1/4x4) 3/4内不包含任何整数,-1+3/4,用对偶

10、单纯形算法进行计算。x5作换出变量,x3换入变量,迭代得,已得到整数解,最优解为x1=1,x2=1,最优值为2。注:新约束-3x3-x4 -3的几何意义。 用x1,x2表示上述约束,得 x2 1,其图形见下图。,求切平面的基本步骤: 1 令xi是相应线性规划问题最优解中为分数解的一个基变量,由单纯形最终表得到 xi+aikxk=bi,其中i为基变量的标号;k为非基变量的标号。 2 将bi和aik都分解成整数部分N与非负分数部分f之和,即 bi=Ni+fi, 其中0fi1 aik=Nik+fik, 其中0fik1,将上式代入式xi+aikxk=bi中得xi+Nikxk - Ni=fi - fik

11、xk 3 切平面方程为fi - fikxk0,例1: 用切平面法求解下列整数规划问题,解: 1 求解相应的线性规划得,2. 对x2引入切平面方程 2/3-1/3x3-1/3x40, 整理得x3+x42加入原约束中, 增加剩余变量x5, 用对偶单纯形法求解得最优解为x1=x2=x3=2, 最优值为Z=14. (画出切平面),例2. Max z = 6x1+4x2 2x1+4x2 13 2x1+ x2 7 x1 ,x2 0,整数,cj,-2/5,0,割平面方程:-5/6x3-2/3x4 +x5=-1/2,割平面方程:-2/5x4-2/5x5 +x6=-4/5,第四节 0-1整数规划,例1:投资场所

12、的选定 某公司拟在城市的东、西、南三区建立分公司,拟议中有七个位置Ai(i=1, 2,7), 如选用Ai点,设备投资估计为bi元, 每年可获利润估计为ci元, 但投资总额不能超过B元, 问应选择那几个点可是年利润为最大?,问题的提出: 0-1整数规划是线性规划及整数规划的一种特殊形式。 模型结构和形式是线性规划,只是决策变量取0或1。,0-1规划模型的建立方法,另外,项目有一些规定在A1,A2,A3三个点中至多选两个; 在A4,A5两点中至少选一个; 在A6,A7中只能选一个; A1,A7不能同时选;只有在A被选中的情况下,A 才能被选;,例2 某市共有6个区,每个区都可以设消防站。市政府希望

13、设置消防站最少以便节省费用,但必须保证在城区任何地方发生火警时,消防车能在15分钟内赶到现场。据实地测定,各区之间消防车行驶时间如表2所示。建立该问题的规划模型。,表2,例3某厂拟采用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运(车运)所受限制如下表, 如采用船运, 其体积托运限制则为45,问两种货物托运多少箱,可使获得利润为最大?,一般情况下, m个相互排斥的约束条件, 则可变成为: ai1x1+ai2x2+ainxnbi+yiM, i=1,2,m y1+y2+ym=m-1其中yi是0, 1变量,且只有一个取0。,解: 设x1, x2分别表示甲乙两种货物的托运箱数, 则其整数规

14、划数学模型为,若上述个方程中,至少有个方程必须满足时(约束条件相容)?y1+y2+ym m-,例4设两种产品的利润分别为1,2,需要的工时是和,成本和工时的关系,如图所示,要求建立整数规划模型,确定产品的产量。,Max Z=c1x1+c2x2-10000y1-15000y2-20000y3,例5 某工厂有3种不同的生产方式可供选择,产量不同,固定成本和变动成本也不相同,各种方式的总成本为,Min Z=(K1y1+c1x1 )+ (K2y2+c2x2 )+(K3y3+c2x2 ),xj yjM,若有n个决策变量, 则可以产生2n个可能变量的组合, 故完全枚举是不可能的. 求解0-1整数规划问题的

15、解法均是部分枚举法或称为隐枚举法(Implicit enumeration) 基本思想是: 在2n个可能的变量组合中, 往往只有一部分是可行解. 只要发现某个变量组合不满足其中的某一约束条件时, 就不必要检验其它的约束条件是否可行。 若发现一个可行解, 则根据它的目标函数值可以产生一个过滤条件(Filtering constraint), 对于目标函数值比它差的的变量组合就不必再去检验它的可行性(类似分支定界法中的定界。实际上,隐枚举法是一种特殊的分支定界法)。 在以后求解过程中, 每当发现比原来更好的可行解, 则依次替代原来的过滤条件 (可减少运算次数, 较快地发现最优解)。,0-1整数规划

16、问题的解法,以例子说明上述求解方法例1: 求解下述0-1整数规划问题,解:求解过程见下表,所以,最优解为(x1,x2,x3)T=(1,0,1)T, 最优值为8.,注: 当决策变量(x1, x2 , x3)按(0,0,0), (0,0,1), (0,1,0), (0,1,1),.方式取值时, 为了减少计算次数, 通常将目标函数中的决策变量的顺序按其系数的大小重新排序, 以使最优解能较早出现。对最大化问题, 按从小到大的顺序排列;对极小化问题, 则相反。,例2:求解下述0-1整数规划问题,解:重新排序为,练习:求解下述整数规划问题,第五节 指派问题(Assignment Problem)1. 标准

17、指派问题的提法及模型 指派问题的标准形式是:有n个人和n件事,已知第i个人做第j件事的费用为cij(i,j=1,2,n),要求确定人和事之间的一一对应的指派方案,使完成这n件事的总费用最小。,数学模型为:,其中矩阵C称为是效率矩阵或系数矩阵。 其解的形式可用0-1矩阵的形式来描述,即 (xij)nn。 标准的指派问题是一类特殊的整数规划问题,又是特殊的0-1规划问题和特殊的运输问题。1955年W. W. Kuhn利用匈牙利数学家D. Konig关于矩阵中独立零元素的定理, 提出了解指派问题的一种算法, 习惯上称之为匈牙利解法。2. 匈牙利解法 匈牙利解法的关键是指派问题最优解的以下性质:若从指

18、派问题的系数矩阵C=(cij)的某行(或某列)各元素分别减去一个常数k,得到一个新的矩阵C=(cij),则以C和C为系数矩阵的两个指派问题有相同的最优解。(这种变化不影响约束方程组,而只是使目标函数值减少了常数k,所以,最优解并不改变。),对于指派问题,由于系数矩阵均非负,故若能在在系数矩阵中找到n个位于不同行和不同列的零元素(独立的0元素),则对应的指派方案总费用为零,从而一定是最优的。,匈牙利法的步骤如下: 步1:变换系数矩阵。对系数矩阵中的每行元素分别减去该行的最小元素;再对系数矩阵中的每列元素分别减去该列中的最小元素。若某行或某列已有0元素,就不必要在减了(不能出现负元素)。 步2:在

19、变换后的系数矩阵中确定独立0元素(试指派)。若独立0元素已有n个,则已得出最优解;若独立0元素的个数少于n个,转步3。 确定独立0元素的方法:当n较小时,可用观察法、或试探法;当n较大时,可按下列顺序进行 从只有一个0元素的行(列)开始,给这个0元素加圈,记作,然后划去所在的列(行)的其它0元素,记作。给只有一个0元素的列(行)的0加圈,记作,然后划去所在行的0元素,记作。反复进行,直到系数矩阵中的所有0元素都被圈去或划去为止。,如遇到行或列中0元素都不只一个(存在0元素的闭回路),可任选其中一个0元素加圈,同时划去同行和同列中的其它0元素。被划圈的0元素即是独立的0元素。 步3:作最少数目的

20、直线,覆盖所有0元素(目的是确定系数矩阵的下一个变换),可按下述方法进行1) 对没有的行打“”号;2) 在已打“”号的行中,对 所在列打“”3)在已打“”号的列中,对所在的行打“”号;4)重复2)3),直到再也找不到可以打“”号的行或列为止;5)对没有打“”的行划一横线,对打“”的列划一纵线,这样就得到覆盖所有0元素的最少直线数。,步4:继续变换系数矩阵,目的是增加独立0元素的个数。方法是在未被直线覆盖的元素中找出一个最小元素,然后在打“”行各元素中都减去这一元素,而在打“”列的各元素都加上这一最小元素,以保持原来0元素不变(为了消除负元素)。得到新的系数矩阵,返回步2。 以例说明匈牙利法的应

21、用。,例1:求解效率矩阵为如下的指派问题的最优指派方案。,解:第一步:系数矩阵的变换(目的是得到某行或列均有0元素),第二步:确定独立0元素,第三步:作最少的直线覆盖所有的0元素,目的是确定系数矩阵的下一个变换。,第四步:对上述矩阵进行变换,目的是增加独立0元素的个数。方法是在未被直线覆盖的元素中找出一个最小元素,然后在打“”行各元素中都减去这一元素,而在打“”列的各元素都加上这一最小元素,以保持原来0元素不变(消除负元素)。得到新的系数矩阵。(它的最优解和原问题相同,为什么?),由解矩阵可得指派方案和最优值为32。,例2 某大型工程有五个工程项目,决定向社会公开招标,有五家建筑能力相当的建筑

22、公司分别获得中标承建。已知建筑公司Ai(I=1,2,3,4,5)的报价cij(百万元)见表,问该部门应该怎样分配建造任务,才能使总的建造费用最小?,解:第一步:系数矩阵的变换(目的是得到某行或列均有0元素),第二步:确定独立0元素, 即加圈,元素的个数m=4,而n=5,进行第三步。,第三步:作最少的直线覆盖所有的0元素,目的是确定系数矩阵的下一个变换。,第四步:对上述矩阵进行变换,目的是增加独立0元素个数。方法是在未被直线覆盖的元素中找出一个最小元素,然后在打“”行各元素中都减去这一元素,而在打“”列的各元素都加上这一最小元素,以保持原来0元素不变(消除负元素)。得到新的系数矩阵。(它的最优解

23、和原问题相同,为什么?因为仅在目标函数系数中进行操作),此矩阵中已有5个独立的0元素,故可得指派问题的最优指派方案为:,也就是说,最优指派方案为:让A1承建B3, A2承建B2,A3承建B1,A4承建B4,A5承建B5。这样安排建造费用为最小,即7+9+6+6+6=34(百万元),3. 一般的指派问题 在实际应用中,常会遇到各种非标准形式的指派问题。通常的处理方法是先将它们转化为标准形式,然后用匈牙利解法求解。 最大化指派问题 设最大化指派问题系数矩阵C中最大元素为m。令矩阵B=(bij)=(m-cij), 则以B为系数矩阵的最小化指派问题和以C为系数矩阵的原最大化指派问题有相同的最优解。 人

24、数和事数不等的指派问题 若人少事多,则添上一些虚拟的“人”。这些虚拟的人作各事的费用系数可取0,理解为这些费用实际上不会发生。若人多事少,则添上一些虚拟的“事”。这些虚拟的事被各人做的费用系数同样也取0。 一个人可做几件事的指派问题 若某个人可做几件事,则可将该人看做相同的几个人来接受指派。这几个人作同一件事的费用系数当然都一样。 某事一定不能由某人作的指派问题 若某事一定不能由某个人做,则可将相应的费用系数取做足够大的数M。,例3:对于例2的指派问题,为了保证工程质量,经研究决定,舍弃建筑公司A4和A5,而让技术力量较强的建设公司A1,A2,A3参加招标承建,根据实际情况,可允许每家建设公司

25、承建一项或二项工程。求使总费用最少的指派方案。,上面的系数矩阵有6行5列,为了使“人”和“事”的数目相同,引入一件虚拟的事B6,使之成为标准指派问题的系数矩阵:,解:由于每家建筑公司最多可以承建两项,因此可把每家建筑公司看成两家建筑公司,其系数矩阵为,然后,用匈牙利解法求解。可得费用最省为4+7+9+8+7=35(百万元),练习:某最大化指派问题的效率矩阵如下,求最优方案,隐枚举法,目标函数:最小约束条件: 约束方程的右端值:不限目标函数系数:非负固定变量自由变量,算法的步骤,令全部变量Xj都是自由变量且取0值,检验解是否可行;若可行,已经得到最优解;如不可行,转入2。将某一变量转为固定变量,

26、令其取值为1或0,使问题分成两个子域。令一个子域中的自由变量都取0值,加上固定变量取值,组成此子域的解。计算此解的目标函数值,与已求出的可行解的最小目标函数比较。如果前者大,则不必检验其是否可行而停止分支,若子域都检验过,转第7步,否则转第6步。如前者小,转第4步。检验解是否可行,如可行,得到一个可行解,计算目标函数值Z,并停止分支,若子域都检验过,转第7步,否则,转第6步。如不可行,进行第5步。将固定变量的值代入第一个不等式约束方程,并令等式左端的自由变量当系数为负时取值为1,系数为正时取值为0,这就是左端能取的最小值。若此最小值大于右端值,则称此子域为不可行子域,若所有子域都检验过,转第7步,否则转第6步;若此最小值小于右端值,则依次检验下一个不等式约束方程,直至所有的不等式约束方程都通过,若子域都检验过,转第7步,否则,转第6步。定出尚未检验过的另一个字域的解,进行第3至5步,若所有子域都停止计算,目标函数值最小的可行解就是最优解;否则,转第7步检查有无自由变量。若有,转第2步;若没有,计算停止。目标函数值最小的可行解就是最优解。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号