1、运筹学 割平面法(一)、计算步骤:(一)、计算步骤:1、用单纯形法求解、用单纯形法求解(IP)对应的松弛问题对应的松弛问题(LP):.若若(LP)没有可行解,则没有可行解,则(IP)也没有可行解,停止也没有可行解,停止计算。计算。.若若(LP)有最优解,并符合有最优解,并符合(IP)的整数条件,则的整数条件,则(LP)的最优解即为的最优解即为(IP)的最优解,停止计算。的最优解,停止计算。.若若(LP)有最优解,但不符合有最优解,但不符合(IP)的整数条件,转的整数条件,转入下一步。入下一步。第二节第二节 割平面法割平面法运筹学 割平面法 2 2、从、从(LP)的最优解中,任选一个不为整数的分
2、量的最优解中,任选一个不为整数的分量x xr,r,将最优单纯形表中该行的系数将最优单纯形表中该行的系数 和和 分解为分解为整数整数部分和小数部分之和部分和小数部分之和,并以该行为源行,按下式作割,并以该行为源行,按下式作割平面方程:平面方程:rjarb1 nrjjrj mfxf 3 3、将所得的割平面方程作为一个新的约束条件置于、将所得的割平面方程作为一个新的约束条件置于最优单纯形表中(同时增加一个单位列向量),用对最优单纯形表中(同时增加一个单位列向量),用对偶单纯形法求出新的最优解,返回偶单纯形法求出新的最优解,返回1 1。的小数部分的小数部分的小数部分的小数部分rjarb运筹学 割平面法
3、例一:用割平面法求解整数规划问题例一:用割平面法求解整数规划问题 且为整数且为整数0,023623 max2121212xxxxxxxZ解:增加松弛变量解:增加松弛变量x3和和x4,得到,得到(LP)的初始单纯形表和最优单纯形表:的初始单纯形表和最优单纯形表:运筹学 割平面法 此题的最优解为:此题的最优解为:X(1,3/2)Z=3/2 但不是整数最优解,但不是整数最优解,引入割平面。以引入割平面。以x2 为源行生成割平面,由于为源行生成割平面,由于 1/4=0+1/4,3/2=1+1/2,我们已将所需要的数分解为整数和分数,所以,生我们已将所需要的数分解为整数和分数,所以,生成割平面的条件为成
4、割平面的条件为:34111442xx 现将生成的割平面条件加入松弛变量,然后加到表中:现将生成的割平面条件加入松弛变量,然后加到表中:214141143 sxx运筹学 割平面法214141143 sxx运筹学 割平面法 此时,此时,X1(2/3,1),Z=1,仍不是整数解。继续以仍不是整数解。继续以x1为源行生成割为源行生成割平面,其条件为:平面,其条件为:41222333xs 将生成的割平面条件加入松弛变量,然后加到表中:将生成的割平面条件加入松弛变量,然后加到表中:323232214 ssx运筹学 割平面法323232214 ssx运筹学 割平面法 至此得到最优表,其最优解为至此得到最优表
5、,其最优解为 X=(1,1),Z=1,这这也是原问题的最优解。也是原问题的最优解。有以上解题过程可见,表中含有分数元素且算法过有以上解题过程可见,表中含有分数元素且算法过程中始终保持对偶可行性,因此,这个算法也称为分程中始终保持对偶可行性,因此,这个算法也称为分数对偶割平面算法。数对偶割平面算法。运筹学 割平面法例一:用割平面法求解整数规划问题例一:用割平面法求解整数规划问题 且为整数且为整数0,023623 max2121212xxxxxxxZ解:增加松弛变量解:增加松弛变量x3和和x4,得到,得到(LP)的初始单纯形表和的初始单纯形表和最优单纯形表:最优单纯形表:运筹学 割平面法 此题的最
6、优解为:此题的最优解为:X(1,3/2)Z=3/2 但不是整数最优解,引入但不是整数最优解,引入割平面。以割平面。以x2 为源行生成割平面,为源行生成割平面,由于由于 1/4=0+1/4,3/2=1+1/2,我们已我们已将所需要的数分解为整数和分数,将所需要的数分解为整数和分数,所以,生成割平面的条件为所以,生成割平面的条件为:34111442xx 也即:也即:23423423411344211114421111()244xxxxxxxxx0)4141(21 43 xx运筹学 割平面法 且为整数且为整数0,023623 max2121212xxxxxxxZ212312412max 326320
7、,0Zxxxxxxxx x且为整数212312412max 326320,0Zxxxxxxxx x且为整数312632xxx41232xxx运筹学 割平面法将将 x3=6-3x1-2x2,x4=3x1-2x2 ,带入带入 中中 得到等价的割平面条件:得到等价的割平面条件:x2 1 见下图。见下图。x1x233第一个割平面第一个割平面 且为整数且为整数0,023623 max2121212xxxxxxxZ34111442xx 运筹学 割平面法 此题的最优解为:此题的最优解为:X(1,3/2)Z=3/2 但不是整数最优解,引入但不是整数最优解,引入割平面。以割平面。以x2 为源行生成割平面,为源行
8、生成割平面,由于由于 1/4=0+1/4,3/2=1+1/2,我们已我们已将所需要的数分解为整数和分数,将所需要的数分解为整数和分数,所以,生成割平面的条件为所以,生成割平面的条件为:也即:也即:23423423411344211114421111()244xxxxxxxxx0)4141(21 43 xx34111442xx 运筹学 割平面法214141143 sxx运筹学 割平面法 此时,此时,X1(2/3,1),Z=1,仍不是整数解。继续以仍不是整数解。继续以x1为源行生成割为源行生成割平面,其条件为:平面,其条件为:用上表的约束解出用上表的约束解出x4 和和s1,将它们带入上式得到等价的
9、割平面,将它们带入上式得到等价的割平面条件:条件:x1 x2,见图:,见图:41222333xs 运筹学 割平面法 用上表的约束解出用上表的约束解出x4 和和s1,将它们带入上式得到等价的割平面,将它们带入上式得到等价的割平面条件:条件:x1 x2,见图:,见图:x1x233第一个割平面第一个割平面第二个割平面第二个割平面运筹学 割平面法 此时,此时,X1(2/3,1),Z=1,仍不是整数解。继续以仍不是整数解。继续以x1为源行生成割为源行生成割平面,其条件为:平面,其条件为:323232214 ssx41222333xs 运筹学 割平面法323232214 ssx运筹学 割平面法 至此得到最
10、优表,其最优解为至此得到最优表,其最优解为 X=(1,1),Z=1,这这也是原问题的最优解。也是原问题的最优解。有以上解题过程可见,表中含有分数元素且算法过有以上解题过程可见,表中含有分数元素且算法过程中始终保持对偶可行性,因此,这个算法也称为分程中始终保持对偶可行性,因此,这个算法也称为分数对偶割平面算法。数对偶割平面算法。运筹学 割平面法例二:用割平面法求解数规划问题例二:用割平面法求解数规划问题 且且为为整整数数0,205462max21212121xxxxxxxxZ初初始始表表运筹学 割平面法初初始始表表最最优优表表运筹学 割平面法最最优优表表34112333xx 引入松弛变量引入松弛
11、变量s1 后得到下式,将此约束条件加到上表后得到下式,将此约束条件加到上表中,继续求解。中,继续求解。323131143 sxx运筹学 割平面法323131143 sxx运筹学 割平面法运筹学 割平面法 得到整数最优解,即为整数规划的最优解,而且此整数规划得到整数最优解,即为整数规划的最优解,而且此整数规划有两个最优解:有两个最优解:X=(0,4),Z=4,或 X=(2,2),Z=4。运筹学 割平面法例二:用割平面法求解数规划问题例二:用割平面法求解数规划问题 且且为为整整数数0,205462max21212121xxxxxxxxZ初初始始表表运筹学 割平面法初初始始表表最最优优表表运筹学 割
12、平面法在松弛问题最优解中,在松弛问题最优解中,x1,x2 均为非整数解,由上表有:均为非整数解,由上表有:383132356165432431 xxxxxx运筹学 割平面法383132356165432431 xxxxxx将系数和常数都分解成整数和非负真分数之和将系数和常数都分解成整数和非负真分数之和 32231)311(321)651(65432431 xxxxxx运筹学 割平面法将系数和常数都分解成整数和非负真分数之和将系数和常数都分解成整数和非负真分数之和 32231)311(321)651(65432431 xxxxxx 以上式子只须考虑一个即可,解题经验表明,考虑式子右端以上式子只须
13、考虑一个即可,解题经验表明,考虑式子右端最大真分数的式子,往往会较快地找到所需割平面约束条件。最大真分数的式子,往往会较快地找到所需割平面约束条件。以上两个式子右端真分数相等,可任选一个考虑。现选以上两个式子右端真分数相等,可任选一个考虑。现选第二个第二个式子式子,并将真分数移到右边得:,并将真分数移到右边得:运筹学 割平面法 以上式子只须考虑一个即可,解题经验表明,考虑式子右端以上式子只须考虑一个即可,解题经验表明,考虑式子右端最大真分数的式子,往往会较快地找到所需割平面约束条件。最大真分数的式子,往往会较快地找到所需割平面约束条件。以上两个式子右端真分数相等,可任选一个考虑。现选以上两个式
14、子右端真分数相等,可任选一个考虑。现选第二个第二个式子式子,并将真分数移到右边得:,并将真分数移到右边得:)(313224332xxxx 引入松弛变量引入松弛变量s1 后得到下式,将此约束条件加到上表中,继续后得到下式,将此约束条件加到上表中,继续求解。求解。323131143 sxx34112333xx 运筹学 割平面法323131143 sxx运筹学 割平面法运筹学 割平面法 得到整数最优解,即为整数规划的最优解,而且此整数规划得到整数最优解,即为整数规划的最优解,而且此整数规划有两个最优解:有两个最优解:X=(0,4),Z=4,或 X=(2,2),Z=4。运筹学 割平面法且且为为整整数数练练习习:0,421625421411max2121212121xxxxxxxxxxZ运筹学 割平面法(2,3)