32
西 第4第 第第第第 第第第第第第第第第 南南南南南南南南南南南 西 南南南南 : 南南 南南南 南南南 第第第第第第第第第第第第第 西

第 4 讲 线性规划

Embed Size (px)

DESCRIPTION

西南科技大学网络教育系列课程. 数学建模与数学实验. 第 4 讲 线性规划. 主讲教师 : 彭煜 鲜大权 杨学南. 西南科技大学理学院数学系. 两个引例. 问题一 : 任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为 800 和 900 ,三种工件的数量分别为 400 、 600 和 500 ,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 4 讲 线性规划

西南科技大学网络教育

第 4讲 线性规划

数学建模与数学实验

西南科技大学理学院数学系

主讲教师 : 彭煜 鲜大权 杨学南

西南科技大学网络教育系列课程

Page 2: 第 4 讲 线性规划

西南科技大学网络教育

问题一 : 任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为 800和 900 ,三种工件的数量分别为 400 、 600 和 500 ,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?

单位工件所需加工台时数 单位工件的加工费用 车床类 型 工件 1 工件 2 工件 3 工件 1 工件 2 工件 3

可用台时数

甲 0.4 1.1 1.0 13 9 10 800

乙 0.5 1.2 1.3 11 12 8 900

两个引例

Page 3: 第 4 讲 线性规划

西南科技大学网络教育

解 设在甲车床上加工工件 1 、 2 、 3 的数量分别为 x1 、 x2

、 x3 ,在乙车床上加工工件 1 、 2 、 3 的数量分别为 x4 、 x5

、 x6 。可建立以下线性规划模型:

654321 8121110913min xxxxxxz

6,,2,1,0

9003.12.15.0

8001.14.0

500

600

400x

..

654

321

63

52

41

ix

xxx

xxx

xx

xx

x

ts

i

解答

Page 4: 第 4 讲 线性规划

西南科技大学网络教育

问题二: 某厂每日 8 小时的产量不低于 1800 件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度 25 件 / 小时,正确率 98% ,计时工资 4 元 / 小时;二级检验员的标准为:速度 15 小时 / 件,正确率 95% ,计时工资 3 元 / 小时。检验员每错检一次,工厂要损失 2 元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?

解 设需要一级和二级检验员的人数分别为 x1 、 x2 人 ,则应付检验员的工资为:

2121 24323848 xxxx 因检验员错检而造成的损失为:

2121 1282)%5158%2258( xxxx

Page 5: 第 4 讲 线性规划

西南科技大学网络教育

故目标函数为:212121 3640)128()2432(min xxxxxxz

约束条件为:

0,0

1800158

1800258

1800158258

21

2

1

21

xx

x

x

xx

Page 6: 第 4 讲 线性规划

西南科技大学网络教育

线性规划模型:21 3640min xxz

0,0

15

9

4535

..

21

2

1

21

xx

x

x

xx

ts

解答

Page 7: 第 4 讲 线性规划

西南科技大学网络教育

1. 线性规划的标准形式:

xminz= )(xf

..ts )(xgi 0 ( ),,2,1 mi

其中目标函数)(xf和约束条件中)(xgi都是线性函数

mi n f = c x

s. t . A x = b ( 1) x 0

这 里 A = ( ija ) m, n , x = T 21 nxxx

b = T 21 nbbb , c = nccc 21

用单纯法求解时,常将标准形式化为:

2. 线性规划的基本算法——单纯形法

线性规划的基本算法——单纯形法

Page 8: 第 4 讲 线性规划

西南科技大学网络教育

例 min z = 10x1 + 9x2

s.t.6x1 + 5x2 ≤ 60 10x1 + 20x2 ≥ 150 x1 ≤ 8 x1, x2 ≥ 0

引入松弛变量 x3, x4, x5, 将不等式化为等式 , 即单纯形标准形 : min z = 10x1 + 9x2

s.t.6x1 + 5x2 + x3 = 60 10x1 + 20x2 - x4 = 150 x1 + x5 = 8

xi≥ 0 (i = 1,2,3,4,5)

系数矩阵为: 6 5 1 0 0 A = 10 20 0 -1 0 = (P1 P2 P3 P4 P5) 1 0 0 0 1 b = (60, 150, 8 ) T

显然 A的秩 ran(A)=3, 任取 3个线性无关的列向量 ,如 P3 P4 P5称为一组基 , 记为 B. 其余列向量称为非基 , 记为 N .

Page 9: 第 4 讲 线性规划

西南科技大学网络教育

于是 f = cBxB + cNxN , Ax = BxB + NxN = b, 则 xB = B-1b-B-1NxN , f = cBB-1b + (cN – cBB-1N)xN

令非基变量xN = 0, 解得基变量xB = B1b, 称(xB, xN)为基解.基解的所有变量的值都非负,则称为基可行解,此时的基称为可行基.

若可行基进一步满足 : cN – cBB-1N≥0, 即 : cBB-1N - cN≤0则对一切可行解 x, 必有 f(x) ≥ cBB-1b, 此时称基可行解 x = (B-1b, 0) T

为最优解 . 3. 最优解的存在性定理

将 A的列向量重排次序成 A = (B, N), 相应 x = (xB, xN) T, c = (cB, cN)基对应的变量 xB称为基变量 , 非基对应的变量 xN称为非基变量 .

定理 1 如果线性规划 (1)有可行解,那么一定有基可行解 .

定理 2 如果线性规划 (1)有最优解,那么一定存在一个基可行解 是最优解 .

Page 10: 第 4 讲 线性规划

西南科技大学网络教育

4. 基可行解是最优解的判定准则因为 f = cBB-1b + (cN – cBB-1N)xN,即 f - 0•xB + (cBB-1N- cN )xN = cBB-1b若基B=(1P,2P,,mP), 非基N=( 1mP, 2mP,,nP),

令j=Bc1BjP-jc,j=m+1,m+2, ,n ,则 (1) 可写成

min f

s.t. Bx + 1BNNx =

1Bb

f + 0· Bx +

n

mjjjx

1

= Bc1Bb

x 0称为(1)式的典式.定理3 设(1x,2x,,mx)是规划 (1) 的一个可行基,B是对应的基阵,如果典式中的1,2,,m都不大于零,即对应的1m0,2m0,,n0,则基(1x,2x,,mx)对应的基可行解0X =

0

1bB 是最优解.

Page 11: 第 4 讲 线性规划

西南科技大学网络教育

令1Bb =

m

2

1

,1BN=

nmmmmm

nmm

nmm

,2,1,

,22,21,2

,12,11,1

5. 基可行解的改进

线性规划(1)的典式变为:min f

s.t. ix +

n

mjjijx

1

= i i=1,2, ,mf + 0·Bx +

n

mjjjx

1

=Bc1Bb

x 0

Page 12: 第 4 讲 线性规划

西南科技大学网络教育

定理4 设(1x, 2x,, mx)是规划 (1) 的一个可行基,

B是对应的基阵,如果存在 km >0,使

1) km,1 , km,2 ,, kmm, 中至少有一个大于零;2) 所有的i>0,i=1,2, ,m

则一定存在另一个可行基,它对应的基可行解使目标函数值更小.

令0=

kmi

i

kmi ,0,

min = kml

l

,,则把lx从原有的基中取出来,

把kmx加进后得到的(1x,2x,,lx ,kmx,1lx,,mx)仍是基,即是所要找的新基.

改进方法:

Page 13: 第 4 讲 线性规划

西南科技大学网络教育

用 MATLAB 优化工具箱解线性规划

min z=cX bAXts ..

1 、模型:

命令: x=linprog ( c , A, b )

2 、模型: min z=cX

bAXts ..

beqXAeq

命令: x=linprog ( c , A , b , Aeq,beq)注意:若没有不等式: 存在,则令 A=[ ] , b=[ ].bAX

Page 14: 第 4 讲 线性规划

西南科技大学网络教育

3 、模型: min z=cX

bAXts ..

beqXAeq VLB≤X≤VUB

命令: [1] x=linprog ( c , A , b , Aeq,beq, VLB , VUB )

[2] x=linprog ( c , A , b , Aeq,beq, VLB , VUB, X0 )

注意: [1] 若没有等式约束 : , 则令 Aeq=[ ], beq=[ ].

[2] 其中 X0 表示初始点

beqXAeq

4 、命令: [x,fval]=linprog(…)

返回最优解x及x处的目标函数值 fval.

Page 15: 第 4 讲 线性规划

西南科技大学网络教育

解 编写 M 文件 xxgh1.m 如下:

c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6];

A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08];

b=[850;700;100;900];

Aeq=[]; beq=[];

vlb=[0;0;0;0;0;0]; vub=[];

[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)

 

例 1 m a x 654321 6.064.072.032.028.04.0 xxxxxxz 85003.003.003.001.001.001.0.. 654321 xxxxxxts

70005.002.0 41 xx

10005.002.0 52 xx

90008.003.0 63 xx

6,2,10 jx j

Page 16: 第 4 讲 线性规划

西南科技大学网络教育

x = 1.0e+004 *

3.5000

0.5000

3.0000

0.0000

0.0000

0.0000

fval = -2.5000e+004

Page 17: 第 4 讲 线性规划

西南科技大学网络教育

例2 321 436min xxxz 120.. 321 xxxts

301x 500 2x 203x

解 : 编写 M 文件 xxgh2.m 如下: c=[6 3 4]; A=[0 1 0]; b=[50]; Aeq=[1 1 1]; beq=[120]; vlb=[30,0,20]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)

3

2

1

)436(minxxx

z

3

2

1

200

30

xxx

50

120

010

111 ..

3

2

1

x

x

x

ts

x =   30.0000

   50.0000

   40.0000fval = 490.0000

Page 18: 第 4 讲 线性规划

西南科技大学网络教育

S.t.

Xz 8121110913min

900

800

3.12.15.0000

00011.14.0X

500

600

400

100100

010010

001001

X , 0

6

5

4

3

2

1

x

x

x

x

x

x

X

改写为:

例 3 问题一的解答 问题

Page 19: 第 4 讲 线性规划

西南科技大学网络教育

编写 M 文件 xxgh3.m 如下 :

f = [13 9 10 11 12 8];A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3];b = [800; 900];Aeq=[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1];beq=[400 600 500];vlb = zeros(6,1);vub=[];[x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)

Page 20: 第 4 讲 线性规划

西南科技大学网络教育

结果 :x = 0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval =1.3800e+004

即在甲机床上加工 600 个工件 2, 在乙机床上加工 400 个工件1 、 500 个工件 3 ,可在满足条件的情况下使总加工费最小为 13800 。

Page 21: 第 4 讲 线性规划

西南科技大学网络教育

例 2 问题二的解答 问题

2

13640minx

xz

s.t. )45(352

1

x

x

改写为:

Page 22: 第 4 讲 线性规划

西南科技大学网络教育

编写 M 文件 xxgh4.m 如下:

c = [40;36];A=[-5 -3];b=[-45];Aeq=[];beq=[];vlb = zeros(2,1);vub=[9;15]; % 调用 linprog 函数:[x,fval] = linprog(c,A,b,Aeq,beq,vlb,vub)

Page 23: 第 4 讲 线性规划

西南科技大学网络教育

结果为:x = 9.0000 0.0000fval =360

即只需聘用 9 个一级检验员。 注:本问题应还有一个约束条件: x1 、 x2 取整数。故

它是一个整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数: x1=9 , x2=0 ,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。

Page 24: 第 4 讲 线性规划

西南科技大学网络教育

投资的收益和风险一、问题提出 市场上有n种资产is(i=1,2……n)可以选择,现用数额为M的相当大的资金作一个时期的投资。这n种资产在这一时期内购买is的平均收益率为ir,风险损失率为iq,投资越分散,总的风险越小,总体风险可用投资的is中最大的一个风险来度量。 购买is时要付交易费,(费率ip),当购买额不超过给定值iu时,交易费按购买iu计算。另外,假定同期银行存款利率是0r,既无交易费又无风险。(0r=5%)已知n=4时相关数据如下:

is ir(%) iq(%) ip(%) iu(元)S1 28 2.5 1 103

S2 21 1.5 2 198

S3 23 5.5 4.5 52

S4 25 2.6 6.5 40

试给该公司设计一种投资组合方案,即用给定达到资金M,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。

Page 25: 第 4 讲 线性规划

西南科技大学网络教育

基本假设:1. 投资数额M相当大,为了便于计算,假设M=1;2.投资越分散,总的风险越小;

3.总体风险用投资项目is中最大的一个风险来度量;4.n种资产Si之间是相互独立的;

5.在投资的这一时期内, ri,pi,qi,r0为定值,不受意外因素影响;6.净收益和总体风险只受 ri,pi,qi影响,不受其他因素干扰。

二、基本假设和符号规定

符号规定:Si ——第i种投资项目,如股票,债券ri,pi,qi ----分别为Si的平均收益率,风险损失率,交易费率

ui ----Si的交易定额 0r -------同期银行利率xi -------投资项目Si的资金 a -----投资风险度Q ----总体收益 ΔQ ----总体收益的增量

Page 26: 第 4 讲 线性规划

西南科技大学网络教育

三、模型的建立与分析1. 总体风险用所投资的 Si 中最大的一个风险来衡量 , 即 max{ qixi|i=1 , 2,…n}2.购买 Si所付交易费是一个分段函数,即 pixi xi>ui

交易费 = piui xi≤ ui

而题目所给定的定值 ui(单位:元)相对总投资M很小, piui更小,可以忽略不计,这样购买 Si的净收益为(ri-pi)xi

3.要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型:

目标函数 MAX

n

iiii xpr

0

)(

MINmax{ qixi}

约束条件

n

i

ii xp0

)1( =M

xi≥0 i=0,1,…n

4. 模型简化:

Page 27: 第 4 讲 线性规划

西南科技大学网络教育

c.投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益赋予权重s(0<s≤1),s称为投资偏好系数.

模型3 目标函数:min s{max{qixi}} -(1-s)

n

i

iii xpr0

)(

约束条件

n

iiixp

0

)1( =M, xi≥0 i=0,1,2,…n

b. 若 投 资 者 希 望 总 盈 利 至 少 达 到 水 平 k 以 上 , 在 风 险 最 小 的 情 况 下 寻 找 相 应 的 投 资 组 合 。模 型 2 固 定 盈 利 水 平 , 极 小 化 风 险 目 标 函 数 : R = m in { m a x { q ix i} }

约 束 条 件 :

n

i

iii xpr0

)( ≥ k,

Mxp ii )1( , x i≥ 0 i= 0, 1, … n

a. 在 实 际 投 资 中 , 投 资 者 承 受 风 险 的 程 度 不 一 样 , 若 给 定 风 险 一 个 界 限 a, 使 最 大 的 一 个风 险 q ix i/M ≤ a, 可 找 到 相 应 的 投 资 方 案 。 这 样 把 多 目 标 规 划 变 成 一 个 目 标 的 线 性 规 划 。模 型 1 固 定 风 险 水 平 , 优 化 收 益

目 标 函 数 : Q=MAX

1

1

)(n

iiii xpr

约 束 条 件 : M

xq ii ≤ a

Mxp ii )1( , x i≥ 0 i= 0, 1, … n

Page 28: 第 4 讲 线性规划

西南科技大学网络教育

四、模型 1 的求解 模型 1为: minf = (-0.05, -0.27, -0.19, -0.185, -0.185) (x0 x1 x2 x3 x 4 )

T

x0 + 1.01x1 + 1.02x2 +1.045x3 +1.065x4 =1s.t. 0.025x1 ≤ a

0.015x2 ≤ a 0.055x3 ≤ a 0.026x4≤ a

xi ≥ 0 (i = 0,1,…..4)

由于 a 是任意给定的风险度,到底怎样给定没有一个准则,不同的投资者有不同的风险度。我们从 a=0 开始,以步长△ a=0.001 进行循环搜索,编制程序如下:

Page 29: 第 4 讲 线性规划

西南科技大学网络教育

a=0;

while(1.1-a)>1

c=[-0.05 -0.27 -0.19 -0.185 -0.185];

Aeq=[1 1.01 1.02 1.045 1.065]; beq=[1];

A=[0 0.025 0 0 0;0 0 0.015 0 0;0 0 0 0.055 0;0 0 0 0 0.026];

b=[a;a;a;a];

vlb=[0,0,0,0,0];vub=[];

[x,val]=linprog(c,A,b,Aeq,beq,vlb,vub);

a

x=x'

Q=-val

plot(a,Q,'.') , axis([0 0.1 0 0.5]) , hold on

a=a+0.001;

end

xlabel('a'),ylabel('Q')

Page 30: 第 4 讲 线性规划

西南科技大学网络教育

a = 0.0030 x = 0.4949 0.1200 0.2000 0.0545 0.1154 Q = 0.1266a = 0.0060 x = 0 0.2400 0.4000 0.1091 0.2212 Q = 0.2019a = 0.0080 x = 0.0000 0.3200 0.5333 0.1271 0.0000 Q = 0.2112a = 0.0100 x = 0 0.4000 0.5843 0 0 Q =0.2190a = 0.0200 x = 0 0.8000 0.1882 0 0 Q =0.2518

a = 0.0400 x = 0.0000 0.9901 0.0000 0 0 Q =0.2673

计算结果:

Page 31: 第 4 讲 线性规划

西南科技大学网络教育

五、 结果分析

4. 在 a=0.006 附近有一个转折点,在这一点左边,风险增加很少时,利润增长 很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和 收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合, 大约是 a*=0.6%, Q*=20% ,所对应投资方案为 : 风险度 收益 x0 x1 x2 x3 x4

0.0060 0.2019 0 0.2400 0.4000 0.1091 0.2212

3.曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最小风险。对于不同风险的承受能力,选择该风险水平下的最优投资组合。

2. 当投资越分散时,投资者承担的风险越小,这与题意一致。即 : 冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。

1. 风险大,收益也大。

Page 32: 第 4 讲 线性规划

西南科技大学网络教育

实验作业

某厂生产甲乙两种口味的饮料 , 每百箱甲饮料需用原料 6千克 , 工人 10 名 , 可获利 10万元 ; 每百箱乙饮料需用原料 5千克 , 工人 20 名 , 可获利 9万元 .今工厂共有原料 60千克 , 工人 150 名 , 又由于其他条件所限甲饮料产量不超过 8百箱 . 问如何安排生产计划 , 即两种饮料各生产多少使获利最大 . 进一步讨论 : 1) 若投资 0.8万元可增加原料 1千克 , 问应否作这项投资. 2) 若每百箱甲饮料获利可增加 1万元 , 问应否改变生产计划 .