第二章 整数规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章 整数规划

一、

整数规划模型介绍

规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。对于整数线性规划模型大致可分为三类:

(1)变量全限制为整数时,称纯(完全)整数线性规划。 (2)变量部分限制为整数的,称混合整数线性规划。 (3)变量只能取0或1时,称之为0-1线性规划。 整数线性规划特点

(i ) 原线性规划有最优解,当自变量限制为整数后,其整数规划解会出现下述情况:

(1)原线性规划最优解全是整数,则整数线性规划最优解与线性规划最优解一致。 (2)整数线性规划无可行解。

(3)有可行解(当然就存在最优解),但最优解值一定不会优于原线性规划的最优值。 (ii ) 整数规划最优解不能按照实数最优解简单取整而获得。

二、整数规划的求解法之一(分枝定界法)

2.1 分枝定界法的思想

对有约束条件的最优化问题(其可行解为有限数)的可行解空间恰当地进行系统搜索,这就是分枝与定界内容。通常,把全部可行解空间反复地分割为越来越小的子集,称为分枝;并且对每个子集内的解集计算一个目标上(下)界(对于最大(小)值问题),这称为定界。在每次分枝后,凡是界限不优于已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。现用下例来说明: 例1 求解下述整数规划

219040Max

x x z +=

s.t. ⎪⎩⎪

⎨⎧≥≥+≤+且为整数0,7020756

792

12121x x x x x x (2.1)

解 (i )先不考虑整数限制,即作为一般线性规划问题求解,得最优解为:

355.8779,8168.1,8092.421===z x x

可见它不符合整数条件。这时z 是原问题A 的最优目标函数值*z 的上界,记作z 。而

0,021==x x 显然是原问题A 的一个整数可行解,这时0=z ,是*

z 的一个下界,记作z ,

即3560*≤≤z 。

(ii )因为21,x x 当前均为非整数,故不满足整数要求,任选一个进行分枝。设选1x 进行分枝:44.8092][1=≤x ,514.8092][1=+≥x , 将原问题A 分成两个子问题B1和B2。

问题1B : 219040Max

x x z +=

s.t. ⎪⎩

⎨⎧≥≤≤≥+≤+0

,407020756

79212121x x x x x x

最优解为:349,1.2,0.4121===z x x 。

问题2B : 219040Max

x x z +=

s.t. ⎪⎩⎪

⎨⎧≥≥≥+≤+0

,570207567921

2121x x x x x x

最优解为:4.341,57.1,0.5121===z x x 。

再定界:3490*

≤≤z 。

(iii )对问题1B 对2x 再进行分枝:22≤x ,32≥x ,得问题11B 和12B ,它们的最优解为

340,2,4:112111===z x x B

327.14,00.3x 1.43,:

122112===z x B

再定界:341340*≤≤z ,并将12B 剪枝。

(iv )对问题2B 对2x 再进行分枝:12≤x ,22≥x ,得问题21B 和22B ,它们的最优解为

083,00.1x 5.44,:

222121===z x B

22B 无可行解。

将2221,B B 剪枝。

于是可以断定原问题的最优解为:

340,2,4*

21===z x x

从以上解题过程可得用分枝定界法求解整数规划(最大化)问题的步骤为:

开始,将要求解的整数规划问题称为问题A ,将与它相应的线性规划问题称为问题B 。 (i )解问题B 可能得到以下情况之一:

(a )B 没有可行解,这时A 也没有可行解,则停止.

(b )B 有最优解,并符合问题A 的整数条件,B 的最优解即为A 的最优解,则停止。 (c )B 有最优解,但不符合问题A 的整数条件,记它的目标函数值为z 。

(ii )用观察法找问题A 的一个整数可行解,一般可取n j x j ,,1,0 ==,求得其目标函数值,并记作z 。以*z 表示问题A 的最优目标函数值;这时有

z z z ≤≤*

进行迭代。

第一步:分枝,在B 的最优解中任选一个不符合整数条件的变量j x ,其值为j b ,以][j b 表示小于j b 的最大整数。构造两个约束条件

][j j b x ≤ 和 1][+≥j j b x

将这两个约束条件,分别加入问题B ,求两个后继规划问题1B 和2B 。不考虑整数条件求解这两个后继问题。

定界,以每个后继问题为一分枝标明求解的结果,与其它问题的解的结果中,找出最优目标函数值最大者作为新的上界z 。从已符合整数条件的各分支中,找出目标函数值为最大者作为新的下界z ,若无作用0=z 。

第二步:比较与剪枝,各分枝的最优目标函数中若有小于z 者,则剪掉这枝,即以后不再考虑了。若大于z ,且不符合整数条件,则重复第一步骤。一直到最后得到z z =*

为止。得最优整数解n j x j ,,1,*

=。 2.2 整数规划的计算机解法

例2 求解下列整数规划问题:

3214min

x x x z -+=

s.t. ⎪⎪

⎩⎪⎪

⎨⎧≥≤++-≤-+≤++为整数042

923

21321321321x ,x ,x x x x x x x x x x (2.2)

在LINGO 模型窗口中输入下列模型: MIN=X1+X2-4*X3; X1+X2+2*X3<=9; X1+X2-X3<=2; -X1+X2+X3<=4;

@GIN(X1); @GIN(X2); @GIN(X3);

选菜单Lingo|Solve (或按Ctrl-S ),或用鼠标点击“solve ”按钮,可得结果如下:

Global optimal solution found.

Objective value: -16.00000 Extended solver steps: 0 Total solver iterations: 0

Variable Value Reduced Cost X1 0.000000 1.000000 X2 0.000000 1.000000 X3 4.000000 -4.000000 Row Slack or Surplus Dual Price 1 -16.00000 -1.000000 2 1.000000 0.000000 3 6.000000 0.000000 4 0.000000 0.000000

三、0-1型整数规划

3.1 0-1整数规划实际问题举例:

10-型整数规划是整数规划中的特殊情形,它的变量j x 仅取值0或1。我们先介绍几

相关文档
最新文档