第十二章 非线性规划方法 非线性规划的一般模型; 无约束线性规划的求解方法; 带约束非线性规划的求解方法; 非线性规划的软件求解方法; 非线性规划的应用案例分析。 2015年10月31日 一、非线性规划的一般模型 1. 引例:股票的组合投资问题 一个投资者拟选择A,B,C三支业 绩好的股票来进行长期组合投资.通过对 这三支股票的市场分析和统计预测得到 相关数据如下表 1 所示. 2015年10月31日 1. 引例:股票的组合投资问题 (1) 问题的提出 表 1 股票的相关数据表 股票名称 五年期望收益 率(%) A B C 64 五年的协方差(%) A B C36120 -30 -30 试从两个方面分别给出三支股票的 投资比例: 2015年10月31日.

Download Report

Transcript 第十二章 非线性规划方法 非线性规划的一般模型; 无约束线性规划的求解方法; 带约束非线性规划的求解方法; 非线性规划的软件求解方法; 非线性规划的应用案例分析。 2015年10月31日 一、非线性规划的一般模型 1. 引例:股票的组合投资问题 一个投资者拟选择A,B,C三支业 绩好的股票来进行长期组合投资.通过对 这三支股票的市场分析和统计预测得到 相关数据如下表 1 所示. 2015年10月31日 1. 引例:股票的组合投资问题 (1) 问题的提出 表 1 股票的相关数据表 股票名称 五年期望收益 率(%) A B C 64 五年的协方差(%) A B C36120 -30 -30 试从两个方面分别给出三支股票的 投资比例: 2015年10月31日.

Slide 1


Slide 2


Slide 3

第十二章 非线性规划方法

非线性规划的一般模型;
无约束线性规划的求解方法;

带约束非线性规划的求解方法;
非线性规划的软件求解方法;

非线性规划的应用案例分析。

3

2015年10月31日


Slide 4

一、非线性规划的一般模型
1. 引例:股票的组合投资问题

一个投资者拟选择A,B,C三支业
绩好的股票来进行长期组合投资.通过对
这三支股票的市场分析和统计预测得到
相关数据如下表 1 所示.

4

2015年10月31日


Slide 5

1. 引例:股票的组合投资问题
(1) 问题的提出
表 1 股票的相关数据表
股票名称

五年期望收益
率(%)





92
64
41

五年的协方差(%)



180
36
110

36
120
-30

110
-30
140

试从两个方面分别给出三支股票的
投资比例:
5

2015年10月31日


Slide 6

1. 引例:股票的组合投资问题
(1) 问题的提出

(1)希望将投资组合中的股票收益的标
准差降到最小,以降低投资风险,并希望
五年后的期望收益率不少于65%.

(2)希望在标准差最大
不超过12%的情况下,
获得最大的收益.

6

2015年10月31日


Slide 7

1. 引例:股票的组合投资问题
2 . 模型的分析

设 x1 , x 2 , x 3 分别表示A,B,C三支股票的
投资比例,其五年的期望收益率分别记为
r1 , r2 , r3 ,即为随机变量.

五年后投资组
合的总收益率为
R  x1 r1  x 2 r2  x3 r3 ,

表 1 股票的相关数据表
股票
名称




7

五年期望收
益率(%)
92
64
41

五年的协方差(%)



180
36
110

36
120
-30

110
-30
140

2015年10月31日


Slide 8

1. 引例:股票的组合投资问题
2 . 模型的分析
由概率统计的知识,投资组合的方差为
V ar ( R )  x1 V ar ( r1 )  x 2 V ar ( r2 )  x 3 V ar ( r3 )
2

2

2

 2 x1 x 2 C ov ( r1 , r2 )  2 x1 x 3 C ov ( r1 , r3 )  2 x 2 x 3 C ov ( r2 , r3 ) ,

根据表 1 中的数据计算得到
Var ( R )  180 x1  120 x 2  140 x 3  72 x1 x 2  220 x1 x 3  60 x 2 x 3 .
2

2

2

投资组合的标准差为
1

D  [180 x  120 x  140 x  72 x1 x 2  220 x1 x 3  60 x 2 x 3 ] 2 .
2
1

2
2

2
3

8

2015年10月31日


Slide 9

1. 引例:股票的组合投资问题
3 . 模型的建立

问题(1):根据投资者第(1)项要求,则问题的模型为
1

m in D  [180 x  120 x  140 x  72 x1 x 2  220 x1 x 3  60 x 2 x 3 ] 2 ;
2
1

2
2

2
3

 x1  x 2  x 3  1,

s.t. 0.92 x1  0.64 x 2  0.41 x 3  0.65,
 x , x , x  0.
 1 2 3

9

2015年10月31日


Slide 10

1. 引例:股票的组合投资问题
3 . 模型的建立
问题(2):希望在标准差最大不超过12%的情
况下,获得最大的收益.
根据投资者第(2)项要求,则问题的模型为
m ax R  0.92 x1  0.64 x 2  0.41 x 3 ;
 x1  x 2  x 3  1,

1

2
2
2
s.t.[180 x1  120 x 2  140 x 3  72 x1 x 2  220 x1 x 3  60 x 2 x 3 ] 2  12,
 x , x , x  0.
 1 2 3

10

2015年10月31日


Slide 11

二. 非线性规划的数学模型
1 . 非线性规划问题的一般模型
如果问题的目标函数和约束条件中包含有非线
性函数,则这样的规划问题称为非线性规划问题。

非线性规划的一般模型为
 min f ( x 1 , x 2 ,  , x n )

 h i ( x 1 , x 2 ,  , x n )  0 , i  1, 2 ,  , m
 g ( x , x ,  , x )  0 , j  1, 2 ,  , l
j
1
2
n

11

(1)

2015年10月31日


Slide 12

1 . 非线性规划问题的一般模型

若 X  ( x1 , x 2 ,  , x n )  E ,
T

n

则模型

 min f ( X )

 h i ( X )  0 , i  1, 2 ,  , m (2)
 g ( X )  0 , j  1, 2 ,  , l
j


(1) 若目标函数为最大化问题,由 max f ( X )   min[  f ( X )] ,
令 F ( X )   f ( X ) ,则 min F ( X )   max f ( X ) ;
(2) 若约束条件为 g j ( X )  0 ,则  g j ( X )  0 ;
(3) h i ( X )  0  h i ( X )  0 且  h i ( X )  0 。
 m in f ( X )
一般模型形式: 
 g j ( X )  0, j  1, 2,
12

,m

(3)
2015年10月31日


Slide 13

二. 非线性规划的数学模型
2 . 非线性规划模型的几种特殊情况

(1)无约束的非线性规划
当问题无约束条件时,则此问题
称为无约束的非线性规划问题。
(2)二次规划
如果目标函
数是 X 的二次函
数,约束条件都有
是线性的,则称此
规划为二次规划.

 min f ( X )
X R

 X  0

(4)

n
n
n

 min f ( X )   c j x j    c jk x j x k
j 1
j 1 k 1

n

  a ij x j  b i  0 , i  1, 2 ,  , m
 j 1
 x  0 , c  c , j , k  1, 2 ,  , n
j
jk
kj



13

2015年10月31日


Slide 14

二. 非线性规划的数学模型
2 . 非线性规划模型的几种特殊情况
 m in f ( X )
一般模型形式: 
 g j ( X )  0, j  1, 2,

,m

(3)

( 3) 凸 规 划
当 模 型 (3 ) 中 的 目 标 函 数 f ( X ) 为 凸 函 数 ,

g j ( X )( j  1, 2 ,  , m ) 均 为 凹 函 数 ( 即  g j ( X ) 为 凸 函
数 ), 则 这 样 的 非 线 性 规 划 称 为 凸 规 划 。

14

2015年10月31日


Slide 15

三、无约束非线性规划的解法
1. 一般迭代法
一般迭代法基本思想:
对问题(4),给出 f ( X ) 的极小点
的初始值 X
X

(k )

(0)

f (X )

 min
X R


 X 0

( 4)

,按某种规律计算出一系列的

( k  1, 2 ,  ) ,希望点列 X

(k )

 的极限 X

*

就是

f ( X ) 的一个极小点。

??问题:如何来产生这个点列?即如何由一个解向量
(k )
求出另一个新的向量解 X ?
X
( k 1 )

15

2015年10月31日


Slide 16

1. 一般迭代法
实际上:向量 X ( k 1) 总可以写成
X

( k 1)

 X

(k )

 k P

(k )

( k  1, 2 ,  )

其中 P ( k ) 为一个向量,  k 为一个实数,称为步长。

实际中各种迭代法就在于寻求不同的  k 和 P ( k ) ,特别是方
向 P ( k ) 的确定是问题的关键,称为搜索方向。

选择  k 和 P ( k ) 的一般原则是使
f (X

(0)

)  f (X

(1 )

)    f (X

这种算法称为下降算法。 最后检验 X

解,即对   0 ,是否有  f ( X
16

( k 1)

(k )

(k )

)

 是否收敛于最优

)   决定迭代是否结束。
2015年10月31日


Slide 17

三、无约束非线性规划的解法
2. 一维搜索法
一维搜索法:沿着一系列的射线方向 P

(k )

寻求极小化点列的方法.

对 确 定 方 向 P ( k ) , 在 X ( k )  P ( k ) (  0) 上 选 取 步 长  k 使
f (X

(k )

 k P

(k )

)  f (X

(k )

) ,则可确定一个新的点 X

( k 1)

 X

(k )

 k P

(k )



即 为 沿 X (k )  P (k ) 求 f ( X ) 的 最 小 值 问 题 。 即 等 价 于 求
(k )
(k )
(k )
(k )
 (  )  f ( X   P ) 在 L  X | X  X   P ,       上 极 小
点k 。

一维搜索法是对某一个确定方向 P ( k ) 来进行的.
??问题:如何选择搜索方向 P ( k ) 呢?
17

2015年10月31日


Slide 18

2、 一维搜索法
(1)梯度法(最速下降法)

选择下降速度最快的方向,可取 f ( X ) 在 X

(k )

数最小的方向作为搜索方向,即令 P ( k )   f ( X

点的方向导

(k )

) ,这就是

梯度法,或最速下降法.
(2)共轭梯度法

共轭梯度法仅适用于正定二次函数的极小值问题:
min f ( X ) 

1

X AX  B X  c
T

T

2

其中 A 为 n  n 实对称正定阵, X , B  E n , c 为常数.
18

2015年10月31日


Slide 19

2、 一维搜索法
(3)牛顿(Newton)法
对 于 问 题 : min

f (X ) 

1

X

T

AX  B X  c
T

2
当 A 为正定时, A

(4)

1

存在,于是有 X

*

1

  A B 为最优解.

拟牛顿法)
对于一般的二阶可微函数 f ( X ) ,在 X
f (X )  f (X


1

(k )

)  f ( X

(X  X

) (X  X

(k ) T

)  f (X

(k ) T

2

(k )

(k )

(k )

点的局部有

)

)( X  X

(k )

)

2

当黑塞矩阵  2 f ( X
就是拟牛顿法,

(k )

) 正定时,也可应用上面的牛顿法,这

19

2015年10月31日


Slide 20

2、 一维搜索法
变尺度法

(5)

1)任取 X
P

(0)

 H

 E 和H

(0)

n

(0)

 f ( X

(0)

(0)

(一般取 H

(k )



3)计算  k 1  X

( k 1)

 X

(k )

 P

P

( k 1)

( k 1)

 H

(k )

 H



( k 1)







k 1

 f ( X

( k 1)

H

(k )



 X

(k )

,  k 1   f ( X

 k 1   k 1
T
k 1

( k 1)

)  f (X

(k )

T

H

,计算
 I 为单位阵)

), k  0 ;

2)若  f ( X ( k ) )  0 ,则停止计算,否则令 X
 k 为最佳步长,由 min f ( X

(0)

(k )

 k P

 k P

( k 1)



k 1

T
k 1

H

(k )

(k )

) 确定;

)  f ( X


(k )

,其中

T
k 1

H



k 1

(k )

),

(k )

,

)

4)令 k  k  1; 返回 2)

20

2015年10月31日


Slide 21

四、带约束非线性规划的解法
1、非线性规划的可行方向法
假设 X

(k )

是问题(3)的

一个可行解,但非最优解,

 min f ( X )
( 3)

 g j ( X )  0 , j  1, 2 ,  , m

为进一步寻找最优解在它的可行下降方向中选取其一个方向
D

(k )

,并确定最佳步长  k 使
 X ( k  1 )  X ( k )   k D ( k )  R
, k  0 ,1, 2 , 

( k 1)
(k )
 f ( X
)  f (X )

反复进行这一过程,直到得到满足精度要求为止。即称为
可行方向法.
21

2015年10月31日


Slide 22

四、带约束非线性规划的解法
2、非线性规划的制约函数法
基本思想:将求解非线性规划的问题转化为一
系列无约极值问题来求解,故也称为序列无约束最
小化方法.在无约束问题的求解中,对企图违反约
束的那些点给出相应的惩罚约束,迫使这一系列的
无约束问题的极小点不断地向可行域靠近(在可行外
部),或者一直在可行域内移动(在可行域内部),直
到收敛到原问题的最优解为止.
制约函数分两类:惩罚函数和障碍函数。从方
法上分为外点法(或外部惩罚函数法)和内点法(或内
部惩罚函数法,即障碍函数法).
22

2015年10月31日


Slide 23

2、非线性规划的制约函数法
(1)外点法(罚函数法)

 min f ( X )
对于等式约束的问题: 
(1)
 h i ( X )  0 , i  1, 2 ,  , m
m

作辅助函数: P1 ( X , M )  f ( X )  M

h

2
j

(X )

j 1

取 M 为充分大的正数,则问题(1)转化为求无约束问题
min P1 ( X , M ) 的解的问题。
X

23

2015年10月31日


Slide 24

(1)外点法(罚函数法)
对于不等式约束的问题:
 min f ( X )

 g j ( X )  0 , j  1, 2 ,  , l

(2)

同样可构造惩罚函数,即对充分大的 M 作:

 min 0 , g
l

P2 ( X , M )  f ( X )  M

j

2



( X )

j 1

则问题(2)可以转化为求 min P2 ( X , M ) 的问题。
X

24

2015年10月31日


Slide 25

(1)外点法(罚函数法)
对于一般的问题
m i n f ( X )

 h i ( X )  0 , i  1, 2 ,  , m
 g ( X )  0 , j  1, 2 ,  , l
j


(3)

对于充分大的 M 作辅助函数: P3 ( X , M )  f ( X )  MP ( X )
m

其中 P ( X ) 


i 1

2



l

2



hi ( X )   mim 0 , g j ( X ) ,则将问题(3)
j 1

化为求解 min P3 ( X , M ) 的问题。
X

25

2015年10月31日


Slide 26

(1)外点法(罚函数法)

选择惩罚因子 M 的一般策略:
选取一个趋向无穷大的严格递增正数列
{ M k } ,逐个求解
min P3 ( X , M k )  f ( X )  M k P ( X )
X

*
k

即可得到一个极小点的序列 { X } ,在一定的条件
下,这个序列收敛于原问题的最优解。

这种方法又称为序列无约束极小化方法,简称
为 SUMT 方法。
26

2015年10月31日


Slide 27

2、非线性规划的制约函数法
(2)内点法(障碍函数法)
内点法总是在可行域内进行的,并一直保持在可行域内
进行搜索.这种方法只适用于只有不等式约束的问题:
 min f ( X )

 X  R  { X | g j ( X )  0 , j  1, 2 ,  , l }

作辅助函数(障碍函数):
Q ( X , r )  f ( X )  rB ( X )

其中 B ( X ) 是连续函数, rB ( X ) 称为障碍项; r 为充分小
的正数,称之为障碍因子。
27

2015年10月31日


Slide 28

(2)内点法(障碍函数法)

作辅助函数(障碍函数):
Q ( X , r )  f ( X )  rB ( X )

其中 B ( X ) 是连续函数, rB ( X ) 称为障碍项; r 为充分小
的正数,称之为障碍因子。
注意到,当点 X 趋向于 R 的边界时,要 B ( X ) 趋向于正无
穷大,则 B ( X ) 的最常用两种形式为
l

B( X ) 

g
j 1

1
j

(X )

和 B ( X )    log g j ( X ) 
l

j 1

28

2015年10月31日


Slide 29

(2)内点法(障碍函数法)
由于 B ( X ) 的存在,在 R 的边界上形成了“围墙”,
对迭代点的向外移动起到了阻挡作用,而越靠近边界阻
力就越大。当点 X 趋向于 R 的边界时,则障碍函数
Q ( X , r ) 趋向于正无穷大;否则, Q ( X , r )  f ( X ) 。
问题转化为求解问题:
min Q ( X , r )
X R0

其中 R 0  X | g j ( X )  0 , j  1, 2 ,  , l  。

29

2015年10月31日


Slide 30

(2)内点法(障碍函数法)

根据 Q(X , r) 定义,显然障碍因子越小,
min Q ( X , r ) 的解就越接近于原问题的解.
X R0

在实际中也采用 SUMT 方法,即取一个严格单
调减少且趋于零的障碍因子数列 { rk } ,对于每一个
rk ,从 R 0 内的某点出发,求解 min Q ( X , rk ) 。
X R0

30

2015年10月31日


Slide 31

(2)内点法(障碍函数法)

针对带有约束条件的非线性规划模型的
一般形式为 :
 min f ( X )

 h i ( X )  0 , i  1, 2 ,  , m
 g ( X )  0 , j  1, 2 ,  , l
j


下面给出LINGO模型的基本形式.

31

2015年10月31日


Slide 32

五、非线性规划的软件解法
1、非线性规划的LINGO解法
MODEL:

 min f ( X )

 h i ( X )  0 , i  1, 2 ,  , m
 g ( X )  0 , j  1, 2 ,  , l
j


sets:
row/1..m/;
arrange/1..L/;
link/1..n/:x0,x;
endsets
init:

x0=x0(1),x0(2),… ,x0(n);
endinit
[OBJ]min=f(x);

!目 标 函 数 的 表 达 式

@for(row(i):hi(x)==0;);

!等 式 约 束 条 件

@for(arrange(j):gj(x)>=0;); !不 等 式 约 束 条 件
@for(link(k):x(k)>=0;);
END
32

2015年10月31日


Slide 33

五、非线性规划的软件解法
2、非线性规划的MATLAB解法
(1)若要求问题: min f ( x ) ,其步骤如下:
第一步:利用文件编辑器编写 M 文件,即定义函数,
并存为*.M 文件。
function f=fun(x)
f=f(x)
(表达式)

第二步:在命令窗口中调用优化程序 fmin,
x  x 0 ;%取初始值
x=fmin(’fun’
,x)
回车后输出最优解 x,键入 fun(x)
,可得到最优值。
33

2015年10月31日


Slide 34

五、非线性规划的软件解法
2、非线性规划的MATLAB解法

(2)若求问题: min f ( x )
[ a ,b ]

指定搜索区间,调用优化程序 constr,即在命令窗
口键入:
x  x0 ;
vlb=a;
vub=b;
x=constr(‘fun’,x,options,vlb,vub)
回车后即执行并输出解,键入 fun(x)输出最优值。
34

2015年10月31日


Slide 35

2、非线性规划的MATLAB解法
(3)求无约束的非线性规划问题: min f ( X )
X E

n

第一步:定义函数
function f=fun(X)
f=f(X) %(表达式);
第二步:在命令窗口键入
X 0  [x

(0)
1

,x

(0)
2

, , x

(0)
n

] ;%给出初始值

options=[ ]; %使用默认值
[X,options]=fmin(‘fun’,X0,options)
%调用优化函数
回车输出最优解,键入 option(8)输出最优值,键入 options
(10)输出计算次数。
35

2015年10月31日


Slide 36

2、非线性规划的MATLAB解法
(4)求解带约束的非线性规划

min n
x R

s .t .

f ( x)
 hi ( x )  0 ,
 i  1, 2 ,  , m
 g ( x )  0,
j

 j  1, 2 ,  , l

x=constr(‘fun’,x0)
x=constr(‘fun’,x0,opt)
x=constr(‘fun’,x0,opt,v1,v2,’grad’)
x=constr(‘fun’,x0,opt,v1,v2,’grad’,p1,…)
[x,opt]=constr(‘fun’,x0,opt,…)

注意:1)fun.m文件中同时给出目标函数f和约束g,
形式为:[f,g]=fun(x);
2)grad.m文件中(用分析梯度方法)同时给出目标
函数f和约束g的梯度,形式为[df,dg]=grad(x)。
36

2015年10月31日


Slide 37

1、问题的提出
一奶制品加工厂用牛奶生产 A1 , A 2 两种初级奶制品,它们
可以直接出售,也可以分别加工成 B 1 , B 2 两种高级奶制品再出
售.按目前技术每桶牛奶可加工成 2 公斤 A1 和 3 公斤 A 2 ,每
桶牛奶的买入价为 10 元,加工费为 5 元,加工时间为 15 小时.
每公斤 A1 可深加工成 0.8 公斤 B 1 ,加工费为 4 元,加工
时间 12 为小时;每公斤 A 2 可深加工成 0.7 公斤 B 2 ,加工费
为 3 元,加工时间 10 为小时.
初级奶制品 A1 , A 2 的售价分别为每公斤 10 元和 9 元,

高级奶制品 B 1 , B 2 的售价分别为每公斤 30 元和 20 元.
37

2015年10月31日


Slide 38

1、问题的提出
工厂现有的加工能力每周总共 2000 小时.根据市
场状况,高级奶制品的需求量占全部奶制品需求量的
20%至 40%.试在供需平衡的条件下为该厂制订生产计
划,使利润最大,并进一步研究如下问题:

(1)工厂拟拨一笔资金用于技术革新,据估计可
实现下列革新中的某一项:总加工能力提高 10%;各项
加工费用均减少 10%;初级奶制品 A1 , A 2 的产量提高 10%,
高级奶制品 B 1 , B 2 的产量提高 10%.问将资金用于哪一项
革新,这笔资金的上限应为多少.
38

2015年10月31日


Slide 39

1、问题的提出
(2) 该厂的技术人员又提出一项技术革新,将原来
的每桶牛奶可加工成品 2 公斤 A 1 和 3 公斤 A 2 变为每桶
牛奶可加工成 4 公斤 A 1 或 6 公斤 A 2 .假设其他条件都
不变,问应否采用这项革新,若采用,生产计划如何.
(3) 根据市场经济规律,初级奶制品 A1 , A 2 的售价都
要随着它们二者销售量的增加而减少,同时,在深加工
过程中,单位成本会随着它们各自加工数量的增加而减
小.在高级奶制品的需求量占全部奶制品需求量 20%的情
况下,市场调查得到一批数据.试根据此市场实际情况
对该厂的生产计划进行修订.
39

2015年10月31日


Slide 40

2、问题的分析
由题意: A1 , B1 , A2 , B 2 的售价分别为 p1  10 , p 2

 30 , p 3  9 , p 4  20

(元/公斤).牛奶的购入和加工费用为 q1  10  5  15(元/桶),
深加工 A1 , A 2 的费用分别为 q 2  4 , q 3  3(元/公斤).每桶牛奶
可加工成 a  2 公斤 A1 和 b  3 公斤 A 2 ,每公斤 A1 可深加工成
c  0 . 8 公斤 B 1 ,每公斤 A 2 可深加工成 d  0 . 7 公斤 B 2 .
每桶牛奶的加工时间为 15 小时,每公斤 A1 , A 2 的深加工时
间分别为 12、10(小时),工厂的总加工能力为 S=2000 小时.B 1 ,
B 2 的销售量(即产量)占全部奶制品的比例为 20%至 40%.
40

2015年10月31日


Slide 41

2、问题的分析
记出售 A1 , B1 的数量分别为 x1 , x 2(公斤),出售 A2 , B 2 的数量分别为
x 3 , x 4 (公斤),生产的 A1 , A 2 的数量分别为 x 5 , x 6 (公斤),购入和加工

牛奶的数量为 x 7 桶,深加工的 A1 , A2 的数量分别为 x 8 , x 9 (公斤).
加工 1 公斤 A1 :4 元+12 小时
= 0.8 公斤 B1 :30 元/公斤
一桶牛奶
10 元+5 元
+15 小时

2 公斤 A1

出售 1 公斤 A1 :10 元
出售 1 公斤 A2 :9 元

3 公斤 A2

加工 1 公斤 A2:3 元+10 小时
= 0.7 公斤 B2:20 元/公斤

41

2015年10月31日


Slide 42

3、模型的建立与求解

具体的模型为一个线性规划模
型和非线性规划模型,用LINGO
求解可以得到相应的结果。
详细内容请教材!

42

2015年10月31日


Slide 43