第十八章 最优化方法
实际问题中所提出的最优化问题大体有两类,一类是求函数的极值,另一类是求泛函的 极值。如果目标函数(函数或泛函)有明显的表达式,一般可以用微分法、变分法、最大(小) 值原理或动态规划方法等分析方法来求解(间接求优);如果目标函数的表达式过于复杂甚至 根本没有明显的表达式,则可用数值方法或“ 试验最优化” 等直接方法来求解(直接求优)。
第五章已经介绍了用微分法求函数极值的方法,本章介绍当目标函数无明显表达式时的单变 量和多变量函数的直接方法或试验最优化方法,多变量函数的无条件和条件极值问题的数值 方法,求泛函数极值的变分法,最大(小)值原理和动态规划(动态规划方法还可以用来求普通 函数的极值)。
求函数极值的数值方法或试验最优化方法有时称为数学规划。数学规划除了线性规划外 统称为非线性规划。数学规划所处理的一般是静态问题,变分法、最大(小)值原理和动态规 划所处理的一般是动态问题,但两者并无截然的界限。
§ 1 单变量函数极值问题解法(直接法)
本节讨论求目标函数
) (x f y
在区间
a,b 上的最优解的直接方法(或试验最优化方法),由于极小和极大只是目标函数相差 一符号,因此这里只讨论求) ( min f x
b x a
的最优解,即在
a,b 上求一点x*使得) ( min )
(x* f x
f axb
这时,x*称为最优解(最优点)。
[单峰函数] 如果函数y f(x)在区间
a,b 上只有一个极值点(因而就是最大点或最小 点),那末称y f(x)为单峰函数.单峰函数也可用分析方法定义如下:设x*是区间
a,b 上函 数 f(x)的最小点,则有), ( ) ( )
(x1 f x2 f x*
f 当x1 x2 x* ),
( ) ( )
(x* f x1 f x2
f 当x* x1 x2 同样可以定义当x*是区间
a,b 上函数 f(x)的最大点的情形。如果函数 y f(x)在区间
a,b 上有多个极值点,则称为多峰函数.只要适当划分区间
a,b ,可以使函数y f(x)在每一个子区间上都是单峰的,所以本节限于讨论单峰函数。[分数法] 由递推关系
1 , 1
) 0 (
1 0
1 2
F F
n F F
Fn n n
定义的费波那奇序列
Fn 产生分数序列: 21, ,13 13 , 8 8 ,5 5 ,3 3 ,2 2 1
如果要在函数y f(x)的定义区间
a,b 上限定做n次试验找出最优点,可以将
a,b 区间1
Fn 等分,第一个试验点取在 b a a F
F
n
n
) (
1
处,以后的试验点采用找对称点(关于区间
a,b 中 点对称)的方法(图18.1),共做n次试验,便可找到
a,b 中的Fn1 1个等分点中的最好点,其 精密度(即这个最好点与实际极小点的最大可能距 离)为 1 ( )1
a Fn b
。
分数法的框图如下(图18.2):
其中
ak,bk
为第k次搜索区间(a0 a,b0 b),n最小的上界可以由下式估计
) 1 (
1
a Fn b
式中 为预先给定的允许误差.
分数法是限定试验次数并且每次只做一个试验的最优方法.
[0.618法] 在分数法中可以证明
618 . 2 0
1 lim 5
1
n
n
n F
F
382 . 2 0
1 lim 5
2
1
1
n
n
n F
F
因此可以近似地取
k k k
k b a a
t 1 0.382( )
k k k
k b a a
t'1 0.618( ) 修改框图如下(图 18.3):
试验点的选取也可以用下列公式计算:
注意,这里 是指中间已经做过的试验点,而不是中点,缩短搜索区间的办法和分 数法一样。
0.618 法也称为黄金分割法,它是批数不限定,每批做一个试验的最优方法.
[抛物线法] 设在x1,x2,x3(x1 x2 x3)三点的试验结果分别为。通过xy平面上的三点 )
, ( ), , ( ), ,
(x1 y1 x2 y2 x3 y3 作二次抛物线(图18.4)
2 3 2 1 2
3 1
1 3 1 2 1
3 2
) )(
(
) )(
( )
)(
(
) )(
( y
x x x x
x x x y x
x x x x
x x x y x
3
2 3 1 3
2 1
) )(
(
) )(
( y
x x x x
x x x x
近似目标函数 f(x),再用抛物线的最小点
) (
) (
) (
) (
) (
) (
2 1
2 1 3 1 3 2 3 2 1
2 2 2 1 3 2 1 2 3 2 2 3 2 2 1
0 y x x y x x y x x
x x y x x y x x x y
第一个试验点:( - )0.618 其余试验点: + -
大 小 小
大 小 中
中
近似目标函数的最优点,对预先给定的目标函数的允许误差 0,若
0 1, 0 2 , 0 3
min y y y y y y
则取x0为近似解,否则,再用(x0,y0)和与它相近的两点构造新的二次抛物线,以其最小点近 似最优点。
这个方法在中间低、两头高的情形,即当x1 x2 x3而y2 y1,y2 y3时,效果较好.
若由上式算出的x0与x2相等,必须作些修改,例如当x0 x2且 ( ) 2
1
3 1
2 x x
x 时,取
) 2(
1
2 1
0 x x
x ,即取在较长一段的中点。
[分批试验法] 分批试验法根据要求有好几种方法,这里只介绍均分分批试验法。
例 如 一 批 做 n 次 试 验( n 为 正 整 数), 先 将 试 验 范 围 均 分 为 n+1份 , 在 n 个 分 点
n
i x
x x x
x1, 2, 3,, ,, 上做n次试验,将所得结果在同一条件下进行检验分析.如果xi最好(就是 这点的函数值最小),则保留(xi1,xi1)部分,丢去其余部分,然后仍将(xi1,xi1)均分为n+1份,
再按上述方法处理,这样继续做下去,就可以得到满意的结果。