运筹学课件第五章整数规划.docx

上传人:b****9 文档编号:25045662 上传时间:2023-06-04 格式:DOCX 页数:35 大小:77.78KB
下载 相关 举报
运筹学课件第五章整数规划.docx_第1页
第1页 / 共35页
运筹学课件第五章整数规划.docx_第2页
第2页 / 共35页
运筹学课件第五章整数规划.docx_第3页
第3页 / 共35页
运筹学课件第五章整数规划.docx_第4页
第4页 / 共35页
运筹学课件第五章整数规划.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

运筹学课件第五章整数规划.docx

《运筹学课件第五章整数规划.docx》由会员分享,可在线阅读,更多相关《运筹学课件第五章整数规划.docx(35页珍藏版)》请在冰豆网上搜索。

运筹学课件第五章整数规划.docx

运筹学课件第五章整数规划

第五章整数规划

、学习目的与要求

1、熟悉分支定界法和割平面法的原理及其应用;

2、掌握求解0――1规划问题的隐枚举法;

3、掌握求解指派问题的匈牙利法。

二、课时9学时

第一节整数规划的数学模型及解的特点

整数规划IP(integerprogramming):

在许多规划问题中,如果要求一部分或全部决策变量必须取整数。

例如,所求的解是机器的台数、人数、车辆船只数等,这样的规划问题称为整数规划,简记IP。

松弛问题(slackproblem):

不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整

数规划问题的松弛问题。

若松弛问题是一个线性规化问题,则该整数规划为整数线性规划(integerlinearprogramming)。

一、整数线性规划数学模型的一般形式

n

max(或min)z八cjxj

ja

"n

ZaijXj<(或=,或X)bi(i=1,2,…,m)

j=1

s.t.」XjX0(j=1,2,…,n)

X-X2,…,xn中部分或全部取整数

I

整数线性规划问题可以分为以下几种类型

1、纯整数线性规划(pureintegerlinearprogramming):

指全部决策变量都必须取整数值的整数线性规划。

有时,也称为全整数规划。

2、混合整数线性规划(mixedintegerlinerprogramming):

指决策变量中有一部分必须取整数值,另一部分

可以不取整数值的整数线性规划。

3、0—1型整数线性规划(zero—oneintegerlinerprogramming):

指决策变量只能取值0或1的整数线性规划。

二、整数规划的例子

例1某服务部门各时段(每2h为一时段)需要服务员的人数见下表。

按规定,服务员连续工作8h(即

四个时段为一班)。

现在求安排服务员的工作时间,使服务部门服务员总数最少?

时段

1

2

3

4

5

6

7

8

服务员最少数目

10

8「

9

11

P13

8

5

3

解:

设在第j时段开始上班的服务员的人数为x。

问题的数学模式略。

例2现有资金总额为B。

可选择投资项目有n个,项目j所需投资额和预期收益分别为aj和Cj(j=1,2,,,

n)。

此外由于种种原因,有三个附加条件:

若选择项目1就必须选择项目2。

反这则不一定;第二,项

目3和项目4中至少选择一个;第三,项目5、项目6和项目7恰好选择两个。

应当怎样选择投资项目,才能使预期收益最大?

解:

每一个投资项目都有被选择和不被选择两种可能,为此令

项目j投资

项目j不投资

(j=1,2,,n)

 

这样,问题可表示为

n

maxz八cjXj

j2

严n

ZajXj=B

j三

X2兰Xi

S.t.

X5+X6+X7=2

Xj=0或1(j=1,2,…,n)

例3工厂Ai和A2生产某种物资。

由于该种物资供不应求,故需要再建一家工厂。

相应的建厂方案有A3和A4两个。

这种物资的需求地有Bi,B2,B3,B4四个。

各工厂年生产能力、各地所需求量、各厂至各

需求地的单位物资运费Cij(i,j=i,2,,,4)见下表。

B1

B2

B3

B4

生产能力

(kt/年)

A1

2

9

3

4

400

A2

8

3

5

7

600

A3

7

6

1

2

200

A4

4

5

2

5

200

需求量(kt/年)

350

400

300

150

A3

工厂A3或A4开工后,每年的生产费用估计分别为1200万元或1500万元。

现要决定应该建设工厂

还是A4,才能使今后每年的总费用(即全部物资运费和新工厂生产费用之和)最少?

解:

这是全个物资运输问题,其特点是事先不能确定应该建A3或A4中哪一个,因而不知道新厂投产

后的实际生产费用。

引入0—1变量

1若建工厂A3

y=<

0若建工厂a4

再设Cij为由Ai运往Bj的物资数量(i,j=1,2,,,4),单位是千吨,z表示总费用。

问题数学模型为

44

minz-、q刍y1200(1-y)1400

ji

送\=350

i1

4

Z£=400

i丄

4

送金=300

i亠

4

瓦仏=150

i丄4

s.t.X[j=400

i丄

工X2j=600

4

送X3j=200y

4

XX4j=200(1—y)

i丄

XjjK0(i,j=1,2,3,4),y=0或1

三、整数规划的解的特点

相对于松弛问题而言,二者之间既有联系,又有本质的区别

(1)整数规划问题的可行域是其松弛问题的一个子集

(2)整数规划问题的可行解一定是其松弛问题的可行解

(3)一般情况下,松弛问题的最优解不会刚好满足变量的整数约束条件,因而不是整数规划的可行解,是最优解

(4)

甚至也不

对松弛问题的最优解中非整数变量简单的取整,所得到的解不一定是整数规划问题的最优解,

一定是:

整数规划问题的可行解

(5)求解还是要先求松弛问题的最优解,然后用分支定界法或割平面法。

例4考虑下面的整数规划问题:

max=x14x2

考虑纯整数规划问题

第二节解纯整数规划的割平面法

n

maxz八cjXj

j=i

ZaijXj旳(i=1,2,…,m)

j壬

s.t.«Xj30(j=1,2,…,n)

Xi,X2,…,Xn取整数

I

设其中aij(i=1,2,,,m,j=1,2,,,n)和b(j=1,2,,,n)皆为整数。

纯整数规划的松驰问题是一个线性规划问题,可以用单纯形法求解。

在松驰问题的最优单纯形表中,

记Q为m个基变量的下标的集合,

K为n-m个非基变量的下标的集合,则m个约束方程可表示为

而对应的最优解X*=(/*,x2*

T

Xn*)

,其中

bjjEQ

Xj*=«

0j乏K

若bj皆为整数,则此解就是纯整数规划的最优解。

否则不是原整数规划最优解。

割平面法基本思路:

通过增加新的约束来切割可原问题伴随规划的可行域,使它在不断缩小的过程中,

将原问题的整数最优解逐渐暴露且趋于可行域极点的位置,这样就有可能用单纯形法求出。

每次增加的新的约束条件应当具备两个基本性质:

一是已获得的不符合整数要求的线性规划最优解不

满足线性约束条件,从而不可能在以后的解中再出现;二是凡整数可行解均满足线性约束条件,因而整数最优解始终被保留在每次形成的线性规划可行域中。

为此若bi0(i。

•Q)不是整数,在

(1)式中的约束方程为

Xi。

•a-jXj

(2)

j&

其中xi0,Xj(j€K)应为整数,按bi0(i°EQ)不是整数,ai0,j可能是整数也可能不是整数。

分解ai0,j和bi0成两个部分。

一部分是不超过该数的最大整数,另一部分是余下的小数。

a.,j=Nio,j-fio,j,Nio,j

bi。

=Ni°fio,Nio

fio-1

(2)式变为

Xi0'Ni0,jXj-Ni0二fi0-'fi°,jXj

j:

KjIK

因此有fi一送fiiXj<0,即

j-K

-7fio,jXj<-fio(3)

jWK

上式满足上面要求的两个性质(证明见书P128)。

实际解题时,经验表明若从最优单纯表中选择具有最大(小)数部分的非整分量所在行构造割平面约

束条件,往往可以提高切割效果,减少切割次数。

例5用割平面法解整数规划问题

maxz=3Xi

-X2

3x1

-2x2

<3

5x1

+4x2

>10

<2Xi

+X2

<5

Xi,X2

I

>0且为整数

解:

将原整数规划问题称为原问题Ao,不考虑整数条件的松驰问题为问题Bo,求解过程如下:

1.用单纯形法求解Bo,得最优单纯形表

Cj

3

-1

0

0

0

Cb

b

X1

X2

X3

X4

X5

3

X1

13/7

1

0

1/7

0

2/7

-1

X2

9/7

0

1

-2/7

0

3/7

0

X4

31/7

0

0

-3/7

1

22/7

Cj-Zj

0

0

-5/7

0

-3/7

2.求一个割平面方程

在最终表上任选一个含有不满足整数条件基变量的约束方程。

若选X!

,则含X!

的约束方程为:

13..6

_7x3_7X5

上式加入松驰变量X6得

Cj

3

-1

0

0

0

0

Cb

b

X1

X2

X3

X4

X5

X6

3

X1

13/7

1

0

1/7

0

2/7

0

-1

X2

9/7

0

1

-2/7

0

3/7

0

0

X4

31/7

0

0

-3/7

1

22/7

0

0

X6

-6/7

0

0

-1/7

0

-3/7

1

Cj-Zj

0

0

-5/7

0

-3/7

0

13

7X3_"FX5X6

6

7

3、将上述约束方程重新组合。

用对偶单纯形法解新线性规划

3

X1

1

1

0

0

0

0

1

-1

X2

5/4

0

1

0

-1/4

0

-5/4

0

X3

5/2

0

0

1

-1/2

0

-11/2

0

X5

7/4

0

0

0

1/4

1

-3/4

Cj-Zj

0

0

0

-1/4

0

-17/4

113

—4X4~4X6X7——~

类似的得新割平面约束条件

再解新线性规划得

Cj

31

-1

0

0

0

0

0

Cb

b

X1

X2

X3

X4

X5

X6

X7

3

X1

1

1

0

0

0

0

1

0

-1

X2

2

0

1

0

0

0

-1

-1

0

X3

4

0

0

1

0

0

-5

-2

0

X5

1

0

0

0

0

1

-1

1

0

X4

1

0

0

0

1

0

1

-4

Cj-Zj

0

0

0

0

0

-4

-1

得最优解。

割平面法解整数规划问题的基本步骤

第一步:

用单纯形法解松弛问题,得到最优单纯形表。

第二步:

求一个割平面方程,加到最优单纯形表中,用对偶单纯形法继续求解。

第三步:

若没有得到整数最优解,则继续作割平面方程,转第二步。

第三节分支定界法

分枝定界法是一种隐枚举法或部分枚举法,它不是一种有效算法,是枚举法基础的改进。

分枝定界法的关键是分支和定界。

分支定界法的主要思路是首先求解整数规划的伴随规划,如果求得的最优解不符合整数条件,则增加

新约束一一缩小可行域;将原整数规划问题分支一一分为两个子规划,再解子规划的伴随规划……,最后

得到原整数规划的伴随规划。

这就是所谓的分支”

所谓定界”是在分支过程中,若某个后继问题恰巧获得整数规划问题的一个可行解,那么,它的目标函数值就是一个界限”,可以作为衡量处理其它分支的一个依据。

分支”为整数规划最优解的出现创造了条件,而定界”则可以提高搜索的效率。

例用分支定界法求解整数规划问题

maxz=

石+X2

9

5i

Xi

+——X2

<—

i4

i4

J

i

-2x1

+X2

<-

3

x1,x^0且为整数

解:

记整数规划为(IP),它的松驰问题为(LP)。

(1)首先解该整数规划的松驰问题为(LP),如图所示,用图解法

不符合整数要求,可任选一个变量,如Xi=3/2进行分支。

由于最接近3/2的整数是1和2,因而可以构造

两个约束条件Xi>2和Xi<1,分别并入原来的约束条件,形成两个分支Si、Si,松驰问题分别记为(LPi)、

(LP2)。

(LPi)其最优解为X*=(2,23/9)'图中点B,Z*=4i/9;(LP2)其最优解为X*=(i,7/3);图中点C,Z*=i0/3;都不整数解,因4i/9>7/3,优先Si分枝。

因X2=23/9,进行分支。

由于最接近23/9的整数是2和3,因而可以构造两个约束条件X2>3和

2,分别并入原来的约束条件,形成两个分支Sii、Si2,松驰问题分别记为(LPii)、(LPi2)。

(LPii)其最

优解为为空;(LPi2)其最优解为X*=(33/i4,2)'图中点D,Z*=6i/i4;不是整数解。

E(3,1)

因xi=33/14,进行分支。

由于最接近33/14的整数是2和3,因而可以构造两个约束条件xi>3和Xi<2,分别并入原来的约束条件,形成两个分支Si21、Si22,松驰问题分别记为(LPi21)、(LP122)。

(LP121)

其最优解为X*=(3,1)'图中点E,Z*=4;(LP122)其最优解为X*=(2,2)'图中点F,Z*=4。

因此有两个最优解,分别是(2,2)、(3,1),最大值为4。

分支定界法的计算步骤

第一步:

计算原问题目标函数值的初始上界

第二步:

计算原问题目标函数值的初始下界

第三步:

增加约束条件将原问题分支

第四步:

分别求解一对分支

第五步:

修改上、下界

第六步:

比较上、下界大小,如有上界=下界,停止计算,找到最优解,否则转3

第四节o—1型整数规划

0—1型整数规划中0—1变量作为逻辑变量(logicalvariable),常被用来表示系统是否处于某一特定状态,

或者决策时是否取某个方案。

1当决策取方案P时

X=<

10当决策不取方案P时

X.

当问题含有多项要素,而个要素的两种选择时,可用一组0—1变量来描述。

‘1若Ej选择Aj

Xj='0若Ej不选择Aj(j=1,2,…,心

一、0—1型整数规划的典型应用问题

例1:

背包问题:

一个登山队员,他需要携带的物品有:

食品、氧气、冰镐、绳索、帐篷、照相器材、

通信器材等。

每种物品的重量合重要性系数如表所示。

设登山队员可携带的最大重量为25kg,试选择该队员

所应携带的物品。

序号

1

2

3

4

5

6

7

物品

食品

氧气

冰镐

绳索

帐篷

照相器材

通信设备

重量/Kg

5

5

2

6

12

2

4

重要性系数

20

15

18

14

8

4

10

解:

引入0—1变量x,Xi=1表示应携带物品i,,Xi=0表示不应携带物品I

maxz=20xt亠15x2亠18x3亠14x4亠8x5亠4x§亠10x7

5人+5x2+2x3+6X4+12x5+2x6+4x7兰25xi=0或1,i=1,2,...,7

上述问题就是一个标准的整数规划问题,解法。

比较每种物品的重要性系数和重量的比值,比值大的物品首先选取,直到达到重量限制

解得:

X*=(1,1,1,1,0,1,1)'Z*=81

例2:

集合覆盖和布点问题

某市消防队布点问题。

该市共有6个区,每个区都可以建消防站,市政府希望设置的消防站最少,但

必须满足在城市任何地区发生火警时,消防车要在15min内赶到现场。

据实地测定,各区之间消防车行驶

的时间见表,请制定一个布点最少的计划。

地区1

地区2

地区3

地区4

地区5

地区6

地区1

0

10

16

28

27

20

地区2

10

0

24

32

17

10

地区3

16

24

0

12

27

21

地区

4

28

32

12

0

15

25

地区

5

27

17

27

15

0

14

地区

6

20

10

21

25

14

0

解:

弓I入0—1变量x,xi=1表示在该区设消防站,,x=0表示不设

min

X

Z=Xt

+x2

+x2+x3+x

4+X5*X6

>1

X1

+x2

+X6

>1

X3+X4

>1

*

X3+X4

+X5

>1

X4

+X5+X6

>1

X2

+X5+X6

>1

x

i=1或0

解得:

X*=(0,1,0,1,0,0)'Z*=2

二、特殊约束的处理

1•含有相互排斥约束条件的问题:

建模时,有时会遇到相互矛盾的约束,而模型只能两者取一,例如下面两个约束

f(x)一3-0

(1)

f(x)<0

(2)

这时引入一个0—1变量y,及一个很大的正数M,原式可化为:

-f(x)3-My(3)

f(x)-M(1-y)(4)

y=0时,

(1)与⑶相同,(4)自然满足,实际上不起作用

y=1时,⑷与⑵相同,(3)自然满足,实际上不起作用

对于形似f(x)Za(a》0),可以用以下一对约束代替

f(x)_a

f(x)_-a

引入0—1变量后,约束可改为

—f(x)a_My

f(x)•a_M(1-y)

2.从p个约束条件中恰好选择q个的问题

模型希望在下列p个约束中,恰在此时好有q个约束有效:

n

、aijXj

j吐

引入p个0—1整数变量yi,i=1,2,…p

则上式可改写为:

(i=1,2,…,p)

'1若选择第i个约束条件

yi=」

0若不选择第i个约束条件

 

n

aijXj込biMyi

j丄

-p(i二1,2,…,p)

yi二p-q

i三

三、隐枚举法求解小规模0-1规划问题

例1隐枚举法求解小规模0-1规划问题

max

z

=3x<,-2x2

+5x

3

+

2x2-

X3

<

2

&

+

4x2+

X3

<

4

+

X2

<

3

4x2+

X3

<

6

ix1

_3

=0或1

解:

(1)先用试探的方法找出一个初始可行解,如X1=1,X2=X3=0

则Xo=(1,O,O)'Zo=3

(2)对原有约束增加一个过滤条件,加到原约束条件中

3X1-2X25X3_3

(3)再求解上述问题

按照枚举法得思路,依次检查各种变量得组合。

每找到一个可行解,求出它的目标函数乙,Z1>Zo,则

将过滤条件换成Z1。

求解过程见下表,表中

(1),

(2),(3),(4)为原问题得约束条件,(5)为增加的过滤条件,"X”代表不满足约

束,"V”代表满足条件,空格代表不需要计算。

八、、

过滤条件

约束

Z值

(5)

(1)

(2)

(3)

(4)

3x^-2x2+5X3色3

(0,0,0)

X

(0,0,1)

V

V

V

V

V

5

3Xt—2x2+5x3狂5

(0,1,0)

X

(0,1,1)

X

(1,0,0)

X

(1,0,1)

V

V

V

V

V

8

3Xt_2x2+5x3工8

(1,1,0)

X

(1,1,1)

X

这种对过滤条件的改进,可以减少计算量。

注:

一般常重新排列Xi的顺序使目标函数中Xi的系数是递增(不减)的,在上例中,改写

z=3x1-2x25x3--2x23x15x3

因为—2,3,5是递增的,变量(x2,x1,x3)也按下述顺序取值:

(0,0,0),(0,0,1),•这样,最优解容易比较早

的发现,再结合过滤条件的改进,更可使计算简化。

例隐枚举法求解小规模0—1规划问题

minz=3x_,亠7x2—x3亠x4

2x^-2x2十x3—x431

x^-x2+6x3+4x4K8

<5Xt十3x2十x435

Xt」=0或1

解:

采用上例的方法解此例共需36次运算,为了进一步减少运算量,按目标函数中各变量系数的大小顺

序重新排列各变量,以使最优解有可能较早出现。

对于最大化问题,可按由小到大的顺序排列,最小化问题则相反。

本例可写为:

minz=7x2亠3xt亠x4—x3

-X2+

2X1—

X4+

21

_X2+

X1+

4x4+

6x3启8

3x2+

5X!

+

X4

>5

=0或1

由于本题过滤条件不好选,所以开始不设过滤条件

八、、

过滤条件

约束

Z值

(X2,X1,X4,X3)

(4)

(1)

(2)

(3)

(0,0,0,0)

X

(0,0,0,1)

V

X

(0,0,1,0)

X

(0,0,1,1)

X

(0,1,0,0)

V

X

(0,1,0,1)

V

X

(0,1,1,0)

V

X

(0,1,1,1)

V

V

V

3

(1,0,0,0)

X

(1,0,0,1)

X

(1,0,1,0)

X

(1,0,1,1)

X

(1,1,0,0)

X

(1,1,0,1)

X

(1,1,1,0)

X

(1,1,1,1)

X

此例的最优解X*=(0,1,1,1)'m

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1