Skip to content

18.2.3 二次优化问题的解法 ​

18.2.3.1 沃尔夫方法 ​

1. 问题的提法和求解原理 ​

沃尔夫 (Wolfe) 方法用于求解如下特殊类型的二次问题:

(18.56)f(x―)=x―TCx―+p―Tx―=min!, 约束为 Ax―=b―,x―≥0―.

假定 C 是正定的. 基本思想是确定与问题 (18.56) 相关的库恩-塔克条件组成的系统

(18.57a)Ax―=b―(18.57b)2Cx―−v―+ATu―=−p―,(18.57c)x―≥0―,v―≥0―(18.58)x―Tv―=0

的解 (x―∗,u―∗,v―∗) . 关系式(18.57a,18.57b,18.57c)表示一个线性方程组,共有 m+n 个方程和 2n+m 个变量. 由于 (18.58),必然有 xi=0 或者 vi=0(i=1,⋯,n) . 因此 (18.57a,18.57b,18.57c) 和 (18.58) 的每个解至多有 n+m 个非零分量. 从而它必定是(18.57a,18.57b,18.57c)的基本解.

2. 求解过程 ​

首先,我们确定系统 Ax―=b― 的一个可行基本解 (顶点) x―― . 属于 x―― 的基变量的指标构成集合 IB . 为了找出系统(18.57a,18.57b,18.57c)的同时也满足(18.58)的解, 我们把问题表达成:

(18.59)−μ=min!(μ∈R);(18.60a)Ax―=b―,(18.60b)2Cx―−v―+ATu―−μq―=−p―,q―=2Cx¯―+p―,(18.60c)x―≥0―,v―≥0―,μ≥0(18.61)x―Tv―=0.

如果 (x―,v―,u―,μ) 是这个问题同时满足(19.57a,19.57b,19.57c)和(18.58)的解,那么 μ=0 . 向量 (x―,v―,u―,μ)=(x――,0―,0―,1) 是系统(18.60a,18.60b,18.60c)的已知可行解, 并且它也满足 (18.61). 与此基本解相关的基由系数矩阵

(18.62)(A000―2C−IAT−q―)

(这里 I,0,0― 分别表示相应维数的单位矩阵、零矩阵、零向量) 的某些列构成:

a) m 个列属于 xi,i∈IB ,

**b) n∗∗−m 个列属于 vi,i∉IB ,

c) 所有 m 个列都属于 ui ,

d) 先删最后一列, 然后删去 b) 或 c) 中一适当的列.

如果 q―=0― ,则根据 d) 互换是不可能的. 于是, x― 已经是解了. 现在第 1 张单纯形表就可以构建出来了. 目标函数的极小将通过单纯形法求解, 不过这里要加上一个附加的规则,即保证满足关系 x―Tv―=0 : 变量 xi 和 vi(i=1,⋯,n) 必须不能同时是基变量.

在系数矩阵 C 正定的情形下,考虑到此附加规则,单纯形法提供问题 (18.59), (18.60a,18.60b,18.60c),(18.61) 的一个满足 μ=0 的解. 在 C 为正半定矩阵情形下,由于限制了主元的选择,有可能发生: 尽管 μ>0 ,在无强加的附加规则下,不可能再有交换步骤. 在这种情形下, μ 再也无法进一步减少了.

f(x―)=x12+4x22−10x1−32x2=min!,x1+2x2+x3=7,2x1+x2+x4=8.A=(12102101),b―=(78),C=(1000040000000000),p―=(−10−3200).

在这种情形下, C 是半正定的. Ax―=b― 的一个可行基本解是 x――=(0,0,7,8)T , q―=2Cx――+p―=(−10,−32,0,0)T . 基向量的选择是: a) (A2C) 的第 3,4 列; b) (0−I) 的第 1,2 列; c) (0AT) 的列; d) 列 (0―−q―) 代替 (0−I) 的第 1 列. 基矩阵由这些列构成, 并计算基矩阵逆 (参见第 1179 页 18.1). 用基矩阵逆乘矩阵 (18.62) 和向量 (0―−p―) ,就得到第 1 个单纯形表 (表 18.9).

表 18.9

x1

x2

v1

v3

U4

x3

1

2

0

0

0

7

x4

2

1

0

0

0

8

v2

64 10

-8

−3210

1210

5410

0

u1

0

0

0

-1

0

0

u2

0

0

0

0

-1

0

μ

2 10

0

1 10

1 10

210

1

−210

0

110

−110

−210

-1

根据互补约束,只有 x1 可以与 v2 交换. 如此几步之后,我们就得到解 x―∗=(2,5/2 , 0,3/2)T.2Cx―−v―+ATu―−μq―=−p― 的后两个方程是: v3=u1,v4=u2 . 因此, 除去变量 u1,u2 之后,问题的维数可以降低.

18.2.3.2 希尔德雷思-戴索普 (Hildreth-d'Esopo) 方法 ​

1. 原理 ​

严格凸优化问题

(18.63)f(x―)=x―TCx―+p―Tx―=min!,Ax―≤b―

的对偶问题 (参见第 1202 页 1.) 是

(18.64a)ψ(u―)=u―TEu―+h―Tu―=min!,u―≥0,其中(18.64b)E=14AC−1AT,h―=12AC−1p―+b―.

矩阵 E 是正定的,并有正对角元 eii(i=1,⋯,m) . 变量 x― 和 u― 满足如下关系:

(18.65)x―=−12C−1(ATu―+p―).

2. 迭代求解 ​

对偶问题 (18.64a) 仅包含约束条件 u―≥0― ,可以通过如下简单的迭代方法求解:

a) 代入 u―1≥0― (例如, u1=0― ), k=1 .

b) 根据下列公式计算 uik+1,i=1,⋯,m :

(18.66a)wik+1=−1eii(∑j=1i−1⁡eijujk+1+hi2+∑j=i+1m⁡eijujk),(18.66b)uik+1=max{0,wik+1}.

c) 重复步骤 b),用 k+1 代替 k ,直至停止规则满足,例如 |ψ(u―k+1)−ψ(u―k)|< ε,ε>0 .

假定存在 x― 使得 Ax―<b― ,则序列 {ψ(u―k)} 收敛于极小值 ψmin ,而由 (18.65) 给出的序列 {x―k} 收敛于原问题的解 x―∗ . 序列 {u―k} 并不总是收敛的.

version 1.24.0