1、运筹学运运 筹筹 学学3.1 整数规划数学模型整数规划数学模型 Mathematical Model of IP3.2 纯整数规划的求解纯整数规划的求解 Solving Pure Integer Programming 3.3 01规划的求解规划的求解 Solving Binary Integer Programming Chapter 3 整数规划整数规划Integer Programming运筹学运筹学Operations Research3.1 整数规划数学模型整数规划数学模型 Mathematical Model of IP 一个规划问题中要求部分或全部决策变量是整数,则这一个规划问题
2、中要求部分或全部决策变量是整数,则这个规划称为整数规划。当要求全部变量取整数值的,称为纯整个规划称为整数规划。当要求全部变量取整数值的,称为纯整数规划;只要求一部分变量取整数值的,称为混合整数规划。数规划;只要求一部分变量取整数值的,称为混合整数规划。如果模型是线性的,称为整数线性规划。本章只讨论整数线性如果模型是线性的,称为整数线性规划。本章只讨论整数线性规划。规划。很多实际规划问题都属于整数规划问题很多实际规划问题都属于整数规划问题 1.变量是人数、机器设备台数或产品件数等都要求是整数变量是人数、机器设备台数或产品件数等都要求是整数2.对某一个项目要不要投资的决策问题,可选用一个逻辑变对某
3、一个项目要不要投资的决策问题,可选用一个逻辑变量量 x,当,当x=1表示投资,表示投资,x=0表示不投资;表示不投资;3.人员的合理安排问题,当变量人员的合理安排问题,当变量xij=1表示安排第表示安排第i人去做人去做j工作,工作,xij=0表示不安排第表示不安排第i人去做人去做j工作。逻辑变量也是只允许取整数工作。逻辑变量也是只允许取整数值的一类变量。值的一类变量。3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP【例例3.1】某人有一背包可以装某人有一背包可以装10公斤重、公斤重、0.025m3的物品。他准备的物品。他准备用来装甲、乙两种物品,每
4、件物品的重量、体积和价值如表用来装甲、乙两种物品,每件物品的重量、体积和价值如表3-1所所示。问两种物品各装多少件,所装物品的总价值最大?示。问两种物品各装多少件,所装物品的总价值最大?表表3-1【解解】设甲、乙两种物品各装设甲、乙两种物品各装x1、x2件,则数学模型为:件,则数学模型为:且均取整数,0,255.22108.02.134max21212121xxxxxxxxZ(3.1)3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP 物品物品重量重量(公斤(公斤/每件)每件)体积体积(m3/每件)每件)价值价值(元元/每件每件)甲甲乙乙1.20.8
5、0.0020.002543如果不考虑如果不考虑x1、x2取整数的约束(称为(取整数的约束(称为(3.1)的松弛问题),)的松弛问题),线性规划的可行域如图线性规划的可行域如图3-1中的阴影部分所示。中的阴影部分所示。3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP 图图3-1 用图解法求得点用图解法求得点B为最优解:为最优解:X(3.57,7.14),Z35.7。由于由于x1,x2必须取整数值,实际上整数规划问题的可行解集只必须取整数值,实际上整数规划问题的可行解集只是图中可行域内的那些整数点。用凑整法来解时需要比较四是图中可行域内的那些整数点。用
6、凑整法来解时需要比较四种组合,但(种组合,但(4,7)、()、(4,8)()(3,8)都不是可行解,()都不是可行解,(3,7)虽属可行解,但代入目标函数得)虽属可行解,但代入目标函数得Z=33,并非最优。实际上并非最优。实际上问题的最优解是(问题的最优解是(5,5),),Z=35。即两种物品各装即两种物品各装5件,总价件,总价值值35元。元。由图由图31知,点(知,点(5,5)不是可行域的顶点,直接用图解)不是可行域的顶点,直接用图解法或单纯形法都无法求出整数规划问题的最优解,因此求解整法或单纯形法都无法求出整数规划问题的最优解,因此求解整数规划问题的最优解需要采用其它特殊方法。数规划问题的
7、最优解需要采用其它特殊方法。还有些问题用线性规划数学模型无法描述,但可以通过设还有些问题用线性规划数学模型无法描述,但可以通过设置逻辑变量建立起整数规划的数学模型。置逻辑变量建立起整数规划的数学模型。3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP【例例3.2】在例在例3.1中,假设此人还有一只旅行箱,最大载重量中,假设此人还有一只旅行箱,最大载重量为为12公斤,其体积是公斤,其体积是0.02m3。背包和旅行箱只能选择其一,建背包和旅行箱只能选择其一,建立下列几种情形的数学模型,使所装物品价值最大。立下列几种情形的数学模型,使所装物品价值最大。(1
8、)所装物品不变;)所装物品不变;(2)如果选择旅行箱,则只能装载丙和丁两种物品,价值分)如果选择旅行箱,则只能装载丙和丁两种物品,价值分别是别是4和和3,载重量和体积的约束为,载重量和体积的约束为2025.1126.08.12121xxxx【解解】此问题可以建立两个整数规划模型,但用一个模型描述此问题可以建立两个整数规划模型,但用一个模型描述更简单。引入更简单。引入01变量(或称逻辑变量)变量(或称逻辑变量)yi,令,令2,10,1iiiyi种方式装载时不采用第,种方式装载时采用第i=1,2分别是采用背包及旅行箱装载。分别是采用背包及旅行箱装载。3.1 整数规划的数学模型整数规划的数学模型 M
9、athematical Model of IP(1)由于所装物品不变,式由于所装物品不变,式(3.1)约束左边不变,整数规划数学约束左边不变,整数规划数学模型为模型为2,110,0120255.2212108.02.134max212121212121iyxyyyyxxyyxxxxZii或且取整数(2)由于不同载体所装物品不一样,数学模型由于不同载体所装物品不一样,数学模型为为121221211221211212max431.20.810()1.80.612()22.525()1.5220()1,0,01ZxxxxMyaxxMybxxMycxxMydyyx xy且均取整数或3.1 整数规划的数
10、学模型整数规划的数学模型 Mathematical Model of IP 式中式中M为充分大的正数。从上式可知,当使用背包时为充分大的正数。从上式可知,当使用背包时(y1=1,y2=0),式式(b)和和(d)是多余的;当使用旅行箱时是多余的;当使用旅行箱时(y1=0,y2=1),式式(a)和和(c)是多余的。上式也可以令:是多余的。上式也可以令:yyyy1,21 同样可以讨论对于有同样可以讨论对于有m个条件互相排斥、有个条件互相排斥、有m(m、m)个个条件起作用的情形。条件起作用的情形。3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP(1)右端常
11、数是右端常数是k个值中的一个时,类似式个值中的一个时,类似式(3.2)的约束条件为的约束条件为1111kiikiiinjjijyybxa,(2)2)对于对于m组组条件中有条件中有k(m)组起作用时,)组起作用时,类似式类似式(3.3)的的约束条件写成约束条件写成111kiiiinjjijyMybxa,这里这里yi=1表示第表示第i组约束不起作用(如组约束不起作用(如y1=1式式(3.3b)、(3.3d)不起不起作用),作用),yi=0表示第表示第i个约束起作用。当约束条件是个约束起作用。当约束条件是“”符号符号时右端常数项应为时右端常数项应为iibMy(3)对于对于m个个条件中有条件中有k(m
12、)个起作用时,约束条件写成)个起作用时,约束条件写成kmyMybxakiiiinjjij11,3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP【例例3.3】试引入试引入01变量将下列各题分别表达为一般线性约变量将下列各题分别表达为一般线性约束条件束条件(1)x1+x26或或4x1+6x210或或2x1+4x220(2)若)若x15,则,则x20,否则否则x28(3)x2取值取值0,1,3,5,7【解解】(1)3个约束只有个约束只有1个起作用个起作用1211221231236461024202011,2,3jxxy Mxxy Mxxy Myyyyj或
13、,3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP 3,2,1101)1(2042)1(1064)1(6321321221121jyyyyMyxxMyxxMyxxj,或或或(3)右端常数是)右端常数是5个值中的个值中的1个个4,3,2,1101753432143211jyyyyyyyyyxj,或10)1(8)1(552211或yMyxyMxMyxyMx3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP(2)两组约束只有一组起作用)两组约束只有一组起作用趣味题趣味题 v有父亲有父亲A和母亲和母亲B和三个孩子
14、(和三个孩子(C,D,E)组成的一个家庭,)组成的一个家庭,买了一台彩电,买回来的第一天晚上,关于家中那几个人看了买了一台彩电,买回来的第一天晚上,关于家中那几个人看了电视的问题,有以下几种正确说法:电视的问题,有以下几种正确说法:1.A在看电视时,在看电视时,B也在看;也在看;2.D和和E或两个人都看,或他们之中的一个看了;或两个人都看,或他们之中的一个看了;3.B和和C只有一人看了;只有一人看了;4.C和和D或者两个人都看,或者两个人都没看;或者两个人都看,或者两个人都没看;5.如果如果E看了,那么看了,那么A和和D也看了。也看了。这个晚上哪几个人看了电视?这个晚上哪几个人看了电视?XA=
15、XB1=XD+XE=2XB+XC=1XC+XD=2Y XE=1 或 XE=0 XA+XD=2 XA+XD=2线性化处理得:XA=XB1=XD+XE=2XB+XC=1XC+XD=2Y1XE=1-M(1-Y2)XA+XD=M(1-Y2).【例例3.4】企业计划生产企业计划生产4000件某种产品,该产品可自己加工、件某种产品,该产品可自己加工、外协加工任意一种形式生产已知每种生产的固定费用、生产外协加工任意一种形式生产已知每种生产的固定费用、生产该产品的单件成本以及每种生产形式的最大加工数量(件)限该产品的单件成本以及每种生产形式的最大加工数量(件)限制如表制如表32所示,怎样安排产品的加工使总成本
16、最小所示,怎样安排产品的加工使总成本最小表表32【解解】设设xj为采用第为采用第j(j=1,2,3)种方式生产的产品数量,生种方式生产的产品数量,生产费用为产费用为)0(0)0()(jjjjjjjxxxckxC3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP 固定成本(元)固定成本(元)变动成本变动成本(元件)(元件)最大加工数最大加工数(件)(件)本企业加工本企业加工50081500外协加工外协加工80052000外协加工外协加工6007不限不限式中式中kj是固定成本,是固定成本,cj是单位产品成本设是单位产品成本设01变量变量yj,令,令101
17、,2,300jjjjxyjjx采用第 种加工方式,时不采用在第 种加工方式,时)7600()5800()8500(min332211xyxyxyZ数学模型为数学模型为 3,2,101,02000,150040003,2,1021321jyxxxxxxjMyxjjjj,或3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP(3.4)式(式(3.4)中)中 是处理是处理xj与与yj一对变量之间逻辑关系的特殊约束,一对变量之间逻辑关系的特殊约束,当当xj0时时yj=1,当当xj0时,为使时,为使Z最小化,有最小化,有yj=0。例例3.4是混合整数规划问题用是
18、混合整数规划问题用WinQSB软件求解得到:软件求解得到:X(0,2000,2000)T,Y(0,1,1)T,Z=25400.0jjMyx作业:教材作业:教材P75 1,2,3,4,5,6 1.线性整数规划模型的特征线性整数规划模型的特征2.什么是纯(混合)整数规划什么是纯(混合)整数规划3.01规划模型的应用规划模型的应用3.1 整数规划的数学模型整数规划的数学模型 Mathematical Model of IP 下一节:纯整数规划的求解下一节:纯整数规划的求解3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming分枝定界法的步骤:分枝定界
19、法的步骤:1.求整数规划的松弛问题最优解;求整数规划的松弛问题最优解;2.若松弛问题的最优解满足整数要求,得到整数规划的最优若松弛问题的最优解满足整数要求,得到整数规划的最优解,否则转下一步;解,否则转下一步;3.任意选一个非整数解的变量任意选一个非整数解的变量xi,在松弛问题中加上约束,在松弛问题中加上约束xixi及及xixi+1组成两个新的松弛问题,称为分枝。新的松弛组成两个新的松弛问题,称为分枝。新的松弛问题具有特征:当原问题是求最大值时,目标值是分枝问题的问题具有特征:当原问题是求最大值时,目标值是分枝问题的上界;当原问题是求最小值时,目标值是分枝问题的下界;上界;当原问题是求最小值时
20、,目标值是分枝问题的下界;4.检查所有分枝的解及目标函数值,若某分枝的解是整数并检查所有分枝的解及目标函数值,若某分枝的解是整数并且目标函数值大于(且目标函数值大于(max)等于其它分枝的目标值,则将其它)等于其它分枝的目标值,则将其它分枝剪去不再计算分枝剪去不再计算,若还存在非整数解并且目标值大于(若还存在非整数解并且目标值大于(max)整数解的目标值,需要继续分枝,再检查,直到得到最优解。整数解的目标值,需要继续分枝,再检查,直到得到最优解。3.2.1求解纯整数规划的分枝定界法求解纯整数规划的分枝定界法3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Pro
21、gramming【例例3.5】用分枝定界法求解例用分枝定界法求解例5.1【解解】先求对应的松弛问题(记为先求对应的松弛问题(记为LP0):):0,255.22108.02.1:034max21212121xxxxxxLPxxZ用图解法得到最优解用图解法得到最优解X(3.57,7.14),Z0=35.7,如下图所示。如下图所示。且均取整数,0,255.22108.02.134max21212121xxxxxxxxZ3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 8.3310108.02.121xx255.2221xx松弛问题LP0的最优解
22、X=(3.57,7.14),Z0=35.7x1x2oABC103.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 1010 x1x2oABC0,3255.22108.02.1:134max211212121xxxxxxxLPxxZLP1LP234LP1:X=(3,7.6),Z1=34.8LP2:X=(4,6.5),Z2=35.50,4255.22108.02.1:234max211212121xxxxxxxLPxxZ得到两个线性规划及增加约束4311xx1010 x1x2oABCLP1LP334LP3:X=(4.33,6),Z3=35.33
23、0,64255.22108.02.1:334max2121212121xxxxxxxxLPxxZ,不可行,得到线性规划,显然及进行分枝,增加约束选择目标值最大的分枝7762222xxxLP6不可行72xLP1:X=(3,7.6),Z1=34.81010 x1x2oACLP134可行域是一条线段即,,40,464255.22108.02.1:434max121121212121xxxxxxxxxxLPxxZ:及,到线性规划及进行分枝,增加约束,选择由于545431113LPLPxxLPZZ60,65255.22108.02.1:534max2121212121xxxxxxxxLPxxZ,LP4:
24、X=(4,6),Z4=34LP5:X=(5,5),Z5=355LP1:X=(3,7.6),Z1=34.8LP3LP5 尽管尽管LP1的解中的解中x1不为整数,但不为整数,但Z5Z因此因此LP5的最优解的最优解就是原整数规划的最优解。就是原整数规划的最优解。上述分枝过程可用下图表示上述分枝过程可用下图表示LP0:X=(3.57,7.14),Z0=35.7LP1:X=(3,7.6)Z1=34.8LP2:X=(4,6.5)Z2=35.5x13x14LP3:X=(4.33,6)Z3=35.33x26LP4:X=(4,6)Z4=34LP5:X=(5,5)Z5=35x14x15无无可行解可行解x27设设纯
25、整数规划纯整数规划njxbxaxcZjinjjijnjjj,10max11且为整数,松弛问题松弛问题njxbxaxcZjinjjijnjjj,10max11,的的最优解最优解TmTbbbbBbbBX),()0,(2111设设xi不为整数,不为整数,为非基变量kkkikiixxabx3.2.2 求解求解IP的割平面法的割平面法3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 将将 分离成一个整数与一个非负真分数之和:分离成一个整数与一个非负真分数之和:ikiab及 10,10,ikiikikikiiifffaafbb则有则有kkikkkij
26、iiixfxafbxkkikikkijiixffxabx等式两边都为整数并且有等式两边都为整数并且有1ikkikifxff3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 加入松弛变量加入松弛变量si得得ikkikifxfs此式称为以此式称为以xi行为源行(来源行)的割平面,或分数切割式,行为源行(来源行)的割平面,或分数切割式,或或R.E.Gomory(高莫雷高莫雷)约束方程。约束方程。将将Gomory约束加入到松弛问题的最优表中,用对偶单纯约束加入到松弛问题的最优表中,用对偶单纯形法计算,若最优解中还有非整数解,再继续切割,直到全形法
27、计算,若最优解中还有非整数解,再继续切割,直到全部为整数解。部为整数解。0kkikixff则则3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 324313322354613651xxxxxx例如,例如,3246536511)1(xxxx1行:行:移项:移项:46536532411xxxx令令046536532xx加入松弛变量加入松弛变量s1得得324653651xxs同理,对于同理,对于x2行有:行有:324313312xxs3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming【例例3
28、.6】用割平面法求解下列用割平面法求解下列IP问题问题且为整数0,102304634max21212121xxxxxxxxZ【解解】放宽变量约束,对应的松弛问题是放宽变量约束,对应的松弛问题是 0,102304634max21212121xxxxxxxxZ3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 加入松弛变量加入松弛变量x3及及x4后,用单纯形法求解,得到最优表后,用单纯形法求解,得到最优表3-3。最优解最优解X(0)(5/2,15/4),不是不是IP的最优解。选择表的最优解。选择表3-3的第一的第一行行(也可以选第二行也可以选第
29、二行)为源行为源行252141431xxx3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming Cj4300bCBXBx1x2x3x443x1x210011/41/81/23/45/215/4j005/81/4表表3-3分离系数后改写成分离系数后改写成212)211(41431xxx021412124341xxxx加入松弛变量加入松弛变量x5得到高莫雷约束方程得到高莫雷约束方程22543xxx将式将式(3.8)作为约束条件添加到表作为约束条件添加到表33中,用对偶单纯形法中,用对偶单纯形法计算,如表计算,如表34所示所示 3.2 纯整数规划的
30、求解纯整数规划的求解Solving Pure Integer Programming Cj43000bCBXBx1x2x3x4x5430 x1x2x51000101/41/811/23/42 0015/215/42j005/81/40430 x1x2x41000101/21/21/2001 1/43/81/2331j001/201/8最优解最优解X(1)(3,3),最优值,最优值Z21。所有变量为整数,。所有变量为整数,X(1)就是就是IP的最优解。如果不是整数解,需要继续切割,重复上述计算的最优解。如果不是整数解,需要继续切割,重复上述计算过程。过程。3.2 纯整数规划的求解纯整数规划的求解
31、Solving Pure Integer Programming 表表34 如果在对偶单纯形法中原切割方程的松弛变量仍为基变量,则此松弛如果在对偶单纯形法中原切割方程的松弛变量仍为基变量,则此松弛变量所在列化为单位向量后就可以去掉该行该列,再切割。变量所在列化为单位向量后就可以去掉该行该列,再切割。作业:教材作业:教材P76 T 7,8 1.理解分枝与定界的含义理解分枝与定界的含义2.选择合适的选择合适的“枝枝”生生“枝枝”3.掌握何时停止生掌握何时停止生“枝枝”4.领会割平面法的基本原理领会割平面法的基本原理5.分离源行,求出分离源行,求出Gomory约束约束6.在最优表中增加在最优表中增加
32、Gomory约束,用约束,用 对偶单纯形法迭代对偶单纯形法迭代3.2 纯整数规划的求解纯整数规划的求解Solving Pure Integer Programming 下一节:下一节:01规划的求解规划的求解3.3 01规划的求解规划的求解Solving BIP 3.3.1 求解求解01整数规划的隐枚举法整数规划的隐枚举法隐枚举法的步骤:隐枚举法的步骤:1.找出任意一可行解,目标函数值为找出任意一可行解,目标函数值为Z0 2.原问题求最大值时,则增加一个约束原问题求最大值时,则增加一个约束1 1220(*)nnc xc xc xZ当求最小值时,上式改为小于等于约束当求最小值时,上式改为小于等于
33、约束 3.列出所有可能解,对每个可能解先检验式(列出所有可能解,对每个可能解先检验式(*),若满足再),若满足再检验其它约束,若不满足式(检验其它约束,若不满足式(*),则认为不可行,若所有约束),则认为不可行,若所有约束都满足,则认为此解是可行解,求出目标值都满足,则认为此解是可行解,求出目标值 4.目标函数值最大(最小)的解就是最优解目标函数值最大(最小)的解就是最优解 3.3 01规划的求解规划的求解Solving BIP【例例3.7】用隐枚举法求解下列用隐枚举法求解下列BIP问题4,3,2,11010542324653103245326max43214321432143214321jx
34、xxxxxxxxxxxxxxxxxxxxZj,或【解解】(1)不难看出,当所有变量等于)不难看出,当所有变量等于0或或1的任意组合时,的任意组合时,第一个约束满足,说明第一个约束没有约束力,是多余的,第一个约束满足,说明第一个约束没有约束力,是多余的,从约束条件中去掉。还能通过观察得到从约束条件中去掉。还能通过观察得到X0(1,0,0,1)是一是一个可行解,目标值个可行解,目标值Z011是是BIP问题的下界,构造一个约问题的下界,构造一个约束:束:,原,原BIP问题变为问题变为1153264321xxxx3.3 01规划的求解规划的求解Solving BIP)9.3()9.3()9.3()9.
35、3(4,3,2,110105423246531153265326max43214321432143214321dcbajxxxxxxxxxxxxxxxxxxxxxZj,或(2)列出变量取值列出变量取值0和和1的组合,共的组合,共2416个,分别代入约束条件个,分别代入约束条件判断是否可行。首先判断式(判断是否可行。首先判断式(3.9a)是否满足,如果满足,接下是否满足,如果满足,接下来判断其它约束,否则认为不可行,计算过程见表来判断其它约束,否则认为不可行,计算过程见表37所示。所示。3.3 01规划的求解规划的求解Solving BIP jXj3.9a3.9b3.9c3.9dZjjXj3.9
36、a3.9b3.9c3.9dZj1(0,0,0,0)9(1,0,0,0)2(0,0,0,1)10(1,0,0,1)113(0,0,1,0)11(1,0,1,0)4(0,0,1,1)12(1,0,1,1)145(0,1,0,0)13(1,1,0,0)6(0,1,0,1)14(1,1,0,1)137(0,1,1,0)15(1,1,1,0)8(0,1,1,1)16(1,1,1,1)表表35(3)由表由表3-5知,知,BIP问题的最优解:问题的最优解:X(1,0,1,1),最),最优值优值Z143.3 01规划的求解规划的求解Solving BIP 选择不同的初始可行解,计算量会不一样。一般地,当目选择
37、不同的初始可行解,计算量会不一样。一般地,当目标函数求最大值时,首先考虑目标函数系数最大的变量等于标函数求最大值时,首先考虑目标函数系数最大的变量等于1,如例如例3.8。当目标函数求最小值时,先考虑目标函数系数最大。当目标函数求最小值时,先考虑目标函数系数最大的变量等于的变量等于0。在表在表37的计算过程中,当目标值等于的计算过程中,当目标值等于14时,将其下界时,将其下界11改改为为14,可以减少计算量。,可以减少计算量。3.3.2 分枝隐枚举法求解分枝隐枚举法求解BIP问题问题将分枝定界法与隐枚举法结合起来用,得到分枝隐枚举法。计将分枝定界法与隐枚举法结合起来用,得到分枝隐枚举法。计算步骤
38、如下:算步骤如下:(1)将)将BIP问题的目标函数的系数化为非负,如问题的目标函数的系数化为非负,如332max,132max212221xxZxxxxZ令3.3 01规划的求解规划的求解Solving BIP 当变量作了代换后,约束条件中的变量也相应作代换。当变量作了代换后,约束条件中的变量也相应作代换。(3)求主枝:目标函数是)求主枝:目标函数是max形式时令所有变量等于形式时令所有变量等于1,得到,得到目标值的上界;目标函数是目标值的上界;目标函数是min形式时令所有变量等于形式时令所有变量等于0,得,得到目标值的下界;如果主枝的解满足所有约束条件则得到最优到目标值的下界;如果主枝的解满
39、足所有约束条件则得到最优解,否则转下一步;解,否则转下一步;(4)分枝与定界:从第一个变量开始依次取)分枝与定界:从第一个变量开始依次取“1”或或“0”,求,求极大值时其后面的变量等于极大值时其后面的变量等于“1”,求极小值时其后面的变量等,求极小值时其后面的变量等于于“0”,用分枝定界法搜索可行解和最优解。,用分枝定界法搜索可行解和最优解。分枝隐枚举法是从非可行解中进行分枝搜索可行解,第(分枝隐枚举法是从非可行解中进行分枝搜索可行解,第(1)步到第()步到第(3)步用了隐枚举法的思路,第()步用了隐枚举法的思路,第(4)步用了分枝定)步用了分枝定界法的思路。界法的思路。3432max,143
40、2max4213224321xxxxZxxxxxxZ令3.3 01规划的求解规划的求解Solving BIP (2)变量重新排序:变量依据目标函数系数值按升排序;变量重新排序:变量依据目标函数系数值按升排序;停止分枝和需要继续分枝的原则:停止分枝和需要继续分枝的原则:(1)当某一子问题是可行解时则停止分枝并保留;)当某一子问题是可行解时则停止分枝并保留;(2)不是可行解但目标值劣于现有保留分枝的目标值时停止分枝并剪枝;)不是可行解但目标值劣于现有保留分枝的目标值时停止分枝并剪枝;(3)后续分枝变量无论取)后续分枝变量无论取“1”或或“0”都不能得到可行解时停止分枝并剪枝都不能得到可行解时停止分
41、枝并剪枝;(4)当某一子问题不可行但目标值优于现有保留分枝的所有目标值,则要)当某一子问题不可行但目标值优于现有保留分枝的所有目标值,则要继续分枝。继续分枝。【例例3.8】用分枝隐枚举法求解下列用分枝隐枚举法求解下列BIP问题问题)10.3()10.3()10.3(4,3,2,110105423246535326max4321432143214321cbajxxxxxxxxxxxxxxxxxZj,或3.3 01规划的求解规划的求解Solving BIP 解解(1)目标函数系数全部非负,直接对变量重新排序)目标函数系数全部非负,直接对变量重新排序)10.3()10.3()10.3(4,3,2,1
42、10105423243656532max1432143214321432cbajxxxxxxxxxxxxxxxxxZj,或(2)求主枝:令)求主枝:令X(1,1,1,1)得到主枝得到主枝1,检查约束条件知,检查约束条件知(3.10c)不不满足,则进行分枝。满足,则进行分枝。(3)令)令x2=0同时令同时令x3=0及及x3=1得到分枝得到分枝2和分枝和分枝3,X2和和X3是可行解,分是可行解,分枝停止并保留,如表枝停止并保留,如表3-8及图及图3-8所示。所示。3.3 01规划的求解规划的求解Solving BIP 表表3.8 令令x2=1同时令同时令x3=0得到分枝得到分枝4,X4是可行解,分
43、枝停止并保留。是可行解,分枝停止并保留。令令x2=1、x3=1,x4取取“0”和和“1”得到分枝得到分枝5和和6,分枝,分枝5不可行并不可行并且且Z511小于小于Z3和和 Z4,分枝停止并剪枝。注意到分枝分枝停止并剪枝。注意到分枝6,x41时只有时只有x10(x11就是主枝),就是主枝),X6不可行并且不可行并且Z610小于小于Z3和和 Z4,分枝停止并剪枝,分枝过程结束。整个计算过程可用图分枝停止并剪枝,分枝过程结束。整个计算过程可用图32和表和表3.8表示。表示。分枝分枝(x2,x3,x4,x1)3.10a3.10b3.10cZj可行性可行性1(1,1,1,1)16不可行不可行2(0,0,
44、1,1)11可行可行3(0,1,1,1)14可行可行4(1,0,1,1)13可行可行5(1,1,0,1)11不可行不可行6(1,1,1,0)10不可行不可行3.3 01规划的求解规划的求解Solving BIP 搜索到搜索到3个可行解,个可行解,3个目标值中个目标值中Z3最大,因此最大,因此X3是最优解,转是最优解,转换到原问题的最优解为换到原问题的最优解为X(1,0,1,1),最优值),最优值Z14,计,计算结束。算结束。图图323.3 01规划的求解规划的求解Solving BIP【例例3.9】用分枝隐枚举法求解下列用分枝隐枚举法求解下列BIP问题问题)11.3()11.3(4,3,2,1
45、1010354127264263min543215432154321bajxxxxxxxxxxxxxxxxZj,或解解(1)令)令x2=1x2及及x5=1x5,代入模型后整理得,代入模型后整理得)11.3()11.3(4,3,2,1103354972674263min543215432154321bajxxxxxxxxxxxxxxxxZj,或3.3 01规划的求解规划的求解Solving BIP(2)目标函数系数按升序将对应的变量重新排列得到模型)目标函数系数按升序将对应的变量重新排列得到模型)11.3()11.3(4,3,2,1103534927676432min35241352413524
46、1bajxxxxxxxxxxxxxxxxZj,或(3)求主枝。由于目标函数求最小值,令所有变量等于零,)求主枝。由于目标函数求最小值,令所有变量等于零,得到主枝的解得到主枝的解X1(0,0,0,0,0),),Z17,检验约束条,检验约束条件知件知X1不可行,进行分枝。不可行,进行分枝。(4)取)取x1=1和和x1=0,分别其它变量等于,分别其它变量等于“1”和和“0”分枝,判分枝,判断可行性,计算过程参见表断可行性,计算过程参见表36及图及图33。3.3 01规划的求解规划的求解Solving BIP 分枝分枝j上一分上一分枝枝Xj=(x1,x4,x2,x5,x3)3.11a3.11bZj可行
47、性可行性12345主枝主枝1111(0,0,0,0,0)(0,1,0,0,0)(0,0,1,0,0)(0,0,0,1,0)(0,0,0,0,1)75431不可行不可行不可行不可行不可行不可行不可行不可行可行可行67891016666(1,0,0,0,0)(1,1,0,0,0)(1,0,1,0,0)(1,0,0,1,0)(1,0,0,0,1)64320不可行不可行不可行不可行不可行不可行不可行不可行可行可行表表363.3 01规划的求解规划的求解Solving BIP 由表由表36知,分枝知,分枝5和分枝和分枝10两个问题可行,分枝两个问题可行,分枝5优于分枝优于分枝10,其它不可行子问题尽管目
48、标值优于分枝其它不可行子问题尽管目标值优于分枝5,由约束,由约束(3.11b)知,继知,继续分枝不可能得到其它可行解,因此停止分枝,计算结束。分枝续分枝不可能得到其它可行解,因此停止分枝,计算结束。分枝5的解的解X5(x1,x4,x2,x5,x3)(0,0,0,0,1),原),原BIP的最优的最优解为解为X(x1,x2,x3,x4,x5)(0,1,1,0,1),最优值最优值Z1。图图333.3 01规划的求解规划的求解Solving BIP 在分枝隐枚举法的计算过程中,由于变量已经按目标在分枝隐枚举法的计算过程中,由于变量已经按目标函数系数从小到大重新排序,因此在选择子问题分枝的函数系数从小到
49、大重新排序,因此在选择子问题分枝的原则是按排序后的变量顺序分枝,但变量较多时搜索可原则是按排序后的变量顺序分枝,但变量较多时搜索可行解的过程可能非常漫长。针对转换后的目标函数特征,行解的过程可能非常漫长。针对转换后的目标函数特征,极大值问题的解中极大值问题的解中“1”越多越优,极小值问题的解中越多越优,极小值问题的解中“0”越多越优,因此在选择变量分枝时尽可能采用避越多越优,因此在选择变量分枝时尽可能采用避“0”或或“1”的方法,请观察表的方法,请观察表38及及36.3.3 01规划的求解规划的求解Solving BIP 作业:作业:P76 T 9,101.用隐枚举法求用隐枚举法求0-1规划的最优解规划的最优解2.用分枝隐枚举法求解用分枝隐枚举法求解0-1规划的最优解规划的最优解3.3 01规划的求解规划的求解Solving BIP The End of Chapter 3 3,2,11072462534max321321321jxxxxxxxxxxZj,或4,3,2,1107423422335434min4321432143214321jxxxxxxxxxxxxxxxxxZj,或3.9(1)3.9(2)