如何判断模式搜索是否有效? 以y为起点进行下一轮轴向搜索,所得的点仍记为y+t 如果∫(y+)<f(x2),表明此次模式搜索成功令 仿上继续进行迭代。 如果∫(y+)≥f(x2),表明此次 模式搜索失败,返回基点x2, 进行下一轮轴向搜索 O
如何判断模式搜索是否有效? 以 y 1为起点进行下一轮轴向搜索,所得的点仍记为 y n+1 。 如 果 f ( y n+1 ) f (x 2 ),表明此次模式搜索成功, 令 x 3 = y n+1 。 仿上继续进行迭代。 如果 f ( y n+1 ) f (x 2 ),表明此次 进行下一轮轴向搜索。 模式搜索失败,返回基点x 2 , O 1 e 2 e (1) (1) x = y (2) y (3) y (2) = x (1) y (2) y (3) = y
x 1 x 2 x 3 x 4 x 5 x 6 x
模式搜索法: (1)给定初始点x1∈R",初始步长δ,加速因子a≥1,缩减率 B∈(0,1),精度ε>0。令y2=x2,k=1,=1 (2)轴向搜索: 如果∫(y+e)<f(y),则令y=y+6e,转(3); 如果∫(y-0:1)<f(y),则令y=y1-6e1,转(3); 否则,令y+1=y。 (3)若j<n,则令j:=j+1,转(2) 如果∫(y+)<f(x),转(4);否则,转(5) (4)模式搜索:令x4+ cP+ ,y=x l+a(x k+1二x 令k:=k+1,=1,转(2) (5)如果δ≤E,停止,得到点x();否则,令8:=B6, k,k+1 k J≡X",x 令k:=k+1,=1,转(2)
模式搜索法: (1) 给定初始点x 1 R n ,初始步长 ,加速因子 1,缩减率 (0,1), 精度 0。 令 y 1 = x 1 ,k = 1, j = 1。 (2) 轴向搜索: 如 果 f ( y j + e j ) f ( y j ),则 令 y j+1 = y j + e j ,转(3) ; 如 果 f ( y j − e j ) f ( y j ),则 令 y j+1 = y j − e j ,转(3) ; 否则,令 y j+1 = y j 。 (3) 若 j n ,则令 j := j + 1,转(2)。 如果 f ( y n+1 ) f (x k ),转(4);否则,转(5)。 (4) 模式搜索:令 x k +1 = y n+1 , y 1 = x k +1 + ( x k +1 − x k )。 令 k := k + 1, j = 1,转(2)。 (5) 如果 ,停止,得到点x (k);否则,令 := , y 1 = x k , x k +1 = x k 。 令 k := k + 1, j = 1,转(2)
注将轴向搜索和模式搜索中的固定步长改为用—维搜索确定步长, 算法仍然收敛。 例1.用模式搜索法求解问题 min f(x)=xi+x2 取初始点x=(1,1),初始步长δ=0.25,加速因子a=1,缩减 率B=02。 解:第1轮迭代: 令y=x2=(1,1),则f(y)=2。 f∫(y+e1)=25625>f(y3), ∫(y-oe1)=15625<∫(y), ∴y2=y1-8e1=(0.75,1)
注 将轴向搜索和模式搜索中的固定步长改为用一维搜索确定步长, 算法仍然收敛。 例1. 用模式搜索法求解问题 min f (x) = x1 2 + x2 2 。 (1,1) , 0.25 1, 1 取初始点 = 初始步长 = ,加速因子 = T x 缩减 率 = 0.2。 解: 第1轮迭代: 令 y 1 = x 1 = (1,1) T , 则 f ( y 1 ) = 2。 ( ) 2.5625 ( ), 1 1 1 f y + e = f y ( ) 1.5625 ( ), 1 1 1 f y − e = f y y 2 = y 1 − e1 = (0.75,1) T