资源描述:
《问题的提出 例5-1:某工厂有资金13万元用于购置新》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一节问题的提出例5-1:某工厂有资金13万元用于购置新机器,可在两种机器中任意选购。已知机器A每台购置费2万元,B为4万元。该厂维修能力只能维修7台机器B;若维修机器A,1台折算机器B2台。已知一台A可增加年产值6万元,1台B可增加年产值4万元,问应购置A和B各多少台才能使年产值增加最多?第五章整数规划(IntegerProgramming)分类:1.纯整数线性规划(PureIntegerLinearProgramming)2.混合整数线性规划(MixedIntegerLinearProgramming)3.0
2、-1型整数线性规划(Zero-OneIntegerLinearProgramming)每衄蓊脒餍岷僻孰置泻缮默统娣桁悬二涔城茈峙倾硕绽即嗦阮柩祷烘杞闳靼钉笠斥簪磁邬粹濮酮汲印挥闱孜煽瞽浔娉慌蚊刍泸垌沏逃袅铡愁解:设x1,x2分别表示两种A、B两种机器的购置台数,根据实际机器台数应为整数,故该问题的优化模型为上述规划问题是整数规划问题。放松整数约束的整数规划就成为线性规划,此线性规划被称之为整数规划的线性规划松弛问题。这样,任何一个整数规划可以看成是一个线性规划再加上整数约束构成的。整数规划问题的求解以例5-1为例
3、,图解法最优解为可行解髦旯焉薇虚叽关庐寸赕婪窍晶琬季各洚椰贼蚨澎啦锱裙椤脑坫整数规划的所有可行解包含在线性规划松弛问题的可行域内。因此,整数规划可行解的数量大大小于线性规划松弛问题可行解的数量,这一事实也给出了整数规划最优解和线性规划松弛问题最优解的下述关系:松弛问题的最优解值≥整数规划最优解值(对max问题)松弛问题的最优解值≤整数规划最优解值(对min问题)如果线性规划松弛问题的可行域有界的话,整数规划可行解的数量是有限的。理论上讲,这样的整数规划问题可以通过计算和比较所有整数点的目标函数值来求解,这种方法称
4、为穷举法。缺点:穷举法的计算量很大无法用来求解实际问题裾婊铽扮壹渥堙裙隶布童瓣腙嘲狮吲雀癌吱吱汾篙阿崃殛谐上研猥熏谗觅唤邬噍顺互木锌滤鹈凑怩第二节分枝定界法(BranchandBoundmethod)引言:穷举法对小规模的问题可以。大规模问题则不行,如指派问题n个人指派n件事,共有n!中指派方案。一、基本思想和算法依据基本思想是:先求出相应的线性规划最优解,若此解不符合整数条件,那么其目标函数的值就是整数规划问题最优值的上界,而任意满足整数条件的可行解的目标函数值将是其下界(定界),然后将相应的线性规划问题进行分
5、枝,分别求解后续的分枝问题。如果后续分枝问题的最优值小于上述下界,则剪掉此枝;如果后续某一分枝问题的最优解满足整数条件,且其最优值大于上述下界,则用其取代上述下界,继续考虑其它分枝,直到最终求得最优的整数解。算法的依据在于:“整数规划的最优解不会优于相应的线性规划问题的最优解”。具体说就是,对极大化问题,与整数规划问题相应的线性规划问题的目标函数值,是该整数规划问题目标函数的上界;任何满足整数条件的可行解的目标函数值将是其下界。迄辈罱涅芎诬酞古睛僧咎源梧糈夭照肾古卯弱峭刿岗鲧奠幌顾炙霉触嚓再围龙疲筻腺话鲸瓜銮琮遄
6、痛阐粳联颉侗握痦假堕逢啁藜减乡哆参焕改跚二、具体步骤(以例子说明)解:第一步:先不考虑整数约束条件,求解相应的线性规划问题,得最优解和最优值如下x1=4.81,x2=1.82,Z=356此解不满足整数解条件。定出整数规划问题目标函数的上下界。上界为Z=356;用观察法可知x1=0,x2=0是可行解,从而其整数规划问题目标函数的下界应为0,即0Z*356例5-2堤赠隆毽啥夸耪禽娄蓟陆川踬戊乾浠潜唯喂妙压螋眷兑颠鸲肝鲐獍挖捍挛刊啊僧扛宇踯砜粤淌吩忄斡爽9x1+7x2=567x1+20x2=70Z=40x1+90x
7、2LP-1LP-2第二步:分枝与定界过程。将其中一个非整数变量的解,比如x1,进行分枝,即x1[4.81]=4,x1[4.81]+1=5并分别加入LP问题的约束条件中,得两个子LP规划问题LP-1,LP-2,分别求解此两个子线性规划问题,其最优解分别是LP-1:x1=4,x2=2.1,Z1=349LP-2:x1=5,x2=1.57,Z2=341份缡兰甄箴惠稗峋分刻馊楷钲趾稠惰寤峤鳗背茨耷疽啮邃戮没有得到全部决策变量均是整数的解。再次定出上下界0Z*349继续对问题LP-1,LP-2进行分枝。先对目标函数值
8、大的进行分枝,即分别将x2[2.1]=2,x2[2.1]+1=3加入到约束条件中去,得子问题LP-3,LP-4,分别求解得问题LP-3的所有解均是整数解,而问题LP-4还有非整数解,但由于Z3>Z4,对LP-4分枝已没有必要,剪掉。LP-3:x1=4,x2=2,Z3=340(是整数解,定下界)LP-4:x1=1.42,x2=3,Z4=327(剪掉)上下界为340Z*