考虑对称锥互补问题(SCCP),寻找x,y∈J,使得
本文考虑基于一个光滑函数,提出一个求解SCCP(1)的非精确光滑牛顿法, 数值实验表明,当维数变大非精确光滑牛顿法的效果好于光滑牛顿法.
简要介绍一下Euclidean-Jordan代数知识,详细的内容请参考文献[10].
欧几里德若当代数(J,∘,〈⋅,⋅〉)是指: (J,∘,〈⋅,⋅〉)是一个定义在实数域上的有限维内积空间, (J,∘,〈⋅,⋅〉)是一个满足下述条件的双线性映射
(i) x∘y=y∘x,x,y∈J;
(ii) x∘(x2∘y)=x2∘(x∘y),∀x,y∈J, 其中x2=x∘x;
(iii) 〈x∘y,z〉=〈y,x∘z〉,∀x,y,z∈J.
称x∘y为元素x和y的若当积.假设J总存在一个元素e满足∀x∈J, 有x∘e=e∘x=x,则将该元素称为单位元. 如果 e∘e=e≠0, 称元素e∈J为幂等元.如果幂等元e和e′满足e∘e′=0,称e和e′是正交的. 如果非零幂等元e不能分解为两个非零幂等元之和,称幂等元e为基本幂等元. 定义J的秩r:=max{deg(x):x∈J},,其中deg(x)为使得 {e,x,⋯,xm}为线性相关的最小正整数m.
如果e1,e2,⋯,er相互正交且e1+e2+⋯+er=e,则幂等元集合{e1,e2,⋯,er} 称为幂等元正交完备系.如果幂等元正交完备系中的所有幂等元都是基本幂等元, 则称此基本幂等元正交完备系为欧几里德若当代数 的一个若当基底.
定理1 (谱分解类型I [10])设J是一个秩为r的欧几里得若当代数, 则对于每一个元素X∈J,必存在一个若当基底{c1,c2,⋯,cr} 和一组实数λ1,λ2,⋯,λr,使得
平方集合K:={x2:x∈J}称为对称锥,即K是一个自对偶的非空凸集. 对任意两元素x,y∈K,存在一个可逆的线性变换Γ:J→J使得 Lx(y)=x∘y和Γ(x)→y.
定义 1 若当积是双线性的,对∀x∈J, 存在线性映射Lx:J→J, 使得: 对∀y∈J有 Lx(y)=x∘y, 称该线性映射为Lyapunov变换,Lx的逆记为L−1x.
定义 2 设变换F:J→J,任取x,y∈J有 〈x−y,F(x)−F(y)〉≥0,则称F在J上单调.
定义 3 对于非光滑函数g:Rn→Rm,含有参数μ的函数gμ:Rn→Rm有下列性质
(1) 对于任意的 μ>0,gμ是可微的;
(2) 对于任意的x∈Rn,limμ→0gμ(x)=g(x),则称函数gμ是g 的光滑函数.
文献[13]中证明了最小值函数ϕmin:J×J→J ϕmin:(x,y)=x+y−√(x−y)2 满足ϕmin(x,y)=0⇔x∈K,y∈K,x∘y=0, 而最小值函数是非光滑函数. 文献[2, 14]中光滑化极小值函数得到如下的光滑函数
引理1[2, 14] 设ϕ:R++×J×J→J 定义如式(3),则
(1) x∈K,y∈K,x∘y=0⇔x∈K,y∈K,〈x,y〉=0;
(2) ϕ(0,x,y)=ϕmin(x,y)=0⇔x∈K,y∈K,x∘y=0.
定理2 设ϕ:R++×J×J→J定义如式(1)则
(1) ϕ处处全局Lipschitz连续,强半光滑,并且ϕ在任意z=(μ,x,y)∈R++×J×J 处连续可微,且其雅克比矩阵为
(2) 对于任意(x,y)∈J×J, 有limμ→0ϕ(μ,x,y)=ϕmin(x,y)成立,因此,ϕmin(x,y) 是ϕ(μ,x,y) 的光滑逼近函数.
证 (1) 根据文献[11,定理3.2]的推论,可知ϕ处处全局Lipschitz连续,强半光滑, 且在任意z=(μ,x,y)∈R++×J×J处连续可微.下证式(4)成立,对于任意z=(μ,x,y)∈R++×J×J, 通过式(5)有 w∈intK,因此Lw可逆,由w的定义可以得到
(2) 由定理1,设x+y=r∑i=1aiui和(x−y)2=r∑i=1βivi因此得到ψ(0,x,y)=r∑i=1aiui−r∑i=1√βivi 所以 ϕ(μ,x,y)=r∑i=1((cosμ+sinμ)αi)ui−r∑i=1√(βi(cosμ−sinμ)2+2μ2)vi=r∑i=1ai(μ)ui−r∑i=1√βi(μ)vi. 由limμ→0αi(μ)=αi和limμ→0βi(μ)=βi得到 limμ→0ϕ(μ,x,y)=ψ(0,x,y)成立,因此, ψ(0,x,y)是ϕ(μ,x,y)的光滑逼近函数.
基于光滑函数(3),给出求解对称锥互补问题的非精确光滑牛顿法. 记z=(μ,x,y)∈R++×J×J,将对称锥互补问题的非光滑等价方程组光滑为如下光滑方程组
算法 3.1 (非精确光滑牛顿法)
初始步:任取{z^0} = \left( {{\mu ^0},{x^0},{y^0}} \right) \in {R_{ + + }} \times J \times J,选取常数\delta \in \left( {0,1} \right),\sigma \in \left( {0,1} \right)选取常数\gamma \in \left( {0,1} \right)使得\gamma {\mu ^0} < 1,另取序列 \left\{ {{\eta _k}} \right\}满足{\eta _k} \in \left[{0,\eta } \right], 这里\eta \in \left[{0{\rm{,1 - }}\gamma {\mu ^0}} \right]为一个常数, k: = 0.
步骤1\quad 若\left\| {H\left( {{z^k}} \right)} \right\| = 0,则终止.
步骤2\quad 由下列式子计算\Delta {z^k} = \left( {\Delta {\mu ^k},\Delta {x^k},\Delta {y^k}} \right)
步骤3\quad 让{\lambda _k}为1,\delta ,{\delta ^2},\cdots 中使得下式成立的最大值. \|H(z^k+\lambda_k\Delta {z^k})\|\leq [1-\sigma (1-\gamma \mu_0 -\eta_k)\lambda_k]\|H(z^k)\|.
步骤4\quad 置{z^{k + 1}}:= {z^k} + {\lambda _k}\Delta {z^k}, k=k+1,返回步骤1.
注 当{r^k} = 0时就成为精确的牛顿算法.
引理2[3] 对于任意的a \in K,b \in K,u \in {R^n},v \in {R^n}, 如果a \succ 0,b \succ 0,a \circ b \succ 0,〈 {u,v} 〉 \ge 0且a \circ u + b \circ v = 0成立,则u = v = 0.
定理3 令z = \left( {\mu ,x,y} \right) \in {R_{ ++ }} \times J \times J,由式(8)定义,则得到如下结果
(1) H在任意z = \left( {\mu ,x,y} \right) \in {R_{ ++ }} \times J \times J处连续可微,其雅克比矩阵为
(2) 如果函数F连续可微且单调,则\nabla H\left( z \right)在z = \left( {\mu ,x,y} \right) \in {R_{ ++ }} \times J \times J处可逆.
证 由定理2可以得到结论(1),下面证明结论(2),任取\mu>0,令\Delta z = \left( {\Delta \mu ,\Delta x,\Delta y} \right) \in R \times J \times J.
假设
由函数F的单调性和式(12)中第2式可以得到
由式(9)可以得到{\mu _{k + 1}} = \left( {1 - {\lambda _k}} \right) {\mu _k} + {\lambda _k}{\beta _k}{\mu _0} > 0,{\mu _0} > 0, 在由定理3知\nabla H\left( z \right)可逆,因此步骤2是适定的. 对于任意\alpha \in \left[{0,1} \right],令
由式(9),(14),(18)知,对于\alpha \in \left[{0,1} \right], {\eta _k} \in \left[{0{\rm{,1 - }}\gamma {\mu ^0}} \right]容易得出
引理3 设函数F 连续可微且单调,函数H如(10)式定义,则函数H在 z = \left( {\mu ,x,y} \right) \in {R_{ ++ }} \times J \times J处是强制的,即 \mathop {\lim }\limits_{\left\| {\left( {\mu ,x,y} \right)} \right\| \to \infty } \left\| {H\left( {\mu ,x,y} \right)} \right\|{\rm{ = + }}\infty . 其证明可参见文献[3].
算法3.1中,当迭代序列的的聚点满足一个非奇异假设时, 迭代序列全局线性收敛且局部二次收敛于该聚点. 由函数F单调连续可微, 则算法3.1生成的迭代点列满足
定理4 设函数F单调连续可微,且{z^ * } = \left( {{\mu ^ * },{x^ * },{y^ * }} \right)是算法3.1所生成的迭代点列 [\left\{ {{z^k}} \right\}的一个聚点,则
(1) {z^ * } = \left( {{\mu ^ * },{x^ * },{y^ * }} \right)是 H\left( {{z^k}} \right) = 0的一个解;
(2) 如果所有的V\in \partial H\left( {{z^ * }} \right)可逆,且\nabla F Lipchitz 连续,则\left\{ {{z^k}} \right\}局部二阶收敛于{z^ * }, 即\left\| {{z^{k + 1}} - {z^ * }} \right\| = O\left( {{{\left\| {{z^{k + 1}} - {z^ * }} \right\|}^2}} \right)且{\mu _{k + 1}} = O\left( {\mu _k^2} \right).
证 (1) 由定理3.1和算法3.1知{z^k} \in \Omega , \left\| {H\left( {{z^{k + 1}}} \right)} \right\| \le \left\| {H\left( {{z^k}} \right)} \right\| ,因此\left\| {H\left( {{z^k}} \right)} \right\|和 {\beta _k} = \beta \left( {{z^k}} \right)是单调递减的, 由于\left\| {{H_\tau }\left( {{z^k}} \right)} \right\| \ge 0, \beta \left( {{z^k}} \right) \ge 0,则当k \to \infty 时, 由连续性知\left\| {H\left( {{z^k}} \right)} \right\| \to \left\| {H\left( {{z^ * }} \right)} \right\| \ge 0 ,\beta \left( {{z^k}} \right) \to \beta \left( {{z^ * }} \right) \ge 0.
用反正法证明{H_\tau }\left( {{z^k}} \right) = 0,假设\left\| {H\left( {{z^ * }} \right)} \right\| > 0,且{z^ * } = \left( {{\mu ^ * },{x^ * },{y^ * }} \right) 是算法3.1所生成的迭代点列\left\{ {{z^k}} \right\}的聚点,由定理3,存在{z^ * } 的一个闭邻域N\left( {{z^ * }} \right),和一个正数\bar \alpha \in \left( {0,1} \right],使得z \in N\left( {{z^ * }} \right)和\alpha \in \left[{0,\bar \alpha } \right],有\left\| {H\left( {z + \alpha \Delta {z^k}} \right)} \right\| \le \left[{1 - \sigma \left( {1 - \gamma {\mu _0} - {\eta _k}} \right)\alpha } \right]\left\| {H\left( z \right)} \right\|成立. 对任意非负整数l满足{\delta ^l} \in \left( {0,\bar \alpha } \right], \left\| {H\left( {{z^k} + {\delta ^l}\Delta {z^k}} \right)} \right\| \le \left[{1 - \sigma \left( {1 - \gamma {\mu _0} - {\eta _k}} \right){\delta ^l}} \right]\left\| {H\left( {{z^k}} \right)} \right\|,对于充分大的k, 有{\delta ^l} \le {\lambda _k},从而对于充分大的k有
(2) 因为所有V \in \partial H\left( {{z^ * }} \right)可逆, {z^ * } = \left( {{\mu ^ * },{x^ * },{y^ * }} \right)是算法3.1所生成的迭代点列 \left\{ {{z^k}} \right\}的一个聚点,根据文献[12,定理3]可知, 对于充分靠近{z^ * } = \left( {{\mu ^ * },{x^ * },{y^ * }} \right)的{z^k}, 存在常数C > 0使得\left\| {\nabla H{{\left( {{z^k}} \right)}^{{\rm{ - }}1}}} \right\| < C,对于任意k \ge 0 成立. 由定理3 和\nabla F Lipchitz 连续知{H_\tau }\left( \cdot \right)在{z^ * } = \left( {{\mu ^ * }, {x^ * },{y^ * }} \right)处是强半光滑的,因此,在 {z^*} 的一个很小的邻域内存在{z^k},有
为了验证算法3.1的可行性和有效性,我们进行了对比实验,利用Matlab7.0编程, 在Intel(R),Pentium(R) Dual 1.73GHz,0.99GB的内存, Windows XP操作系统的hp笔记本上进行数学实验. 在测试中使用如下参数:
\gamma {\rm{ = 0}}.{\rm{01}}\min \left\{ {1,1 / \left\| {H\left( {{z^0}} \right)} \right\|} \right\},\eta = {{\rm{2}}^{ - k - 1}},\sigma = 0.001,\delta = 0, {r^k}取\left[{0,1} \right)的随机n维向量,停机标准是\left\| {H\left( {{z^k}} \right)} \right\| \le {10^{ - 6}},CPU时间单位为秒. 初始点{z^0} = \left( {{\mu ^0},{x^0},{y^0}} \right) 随机选取.
当r=0其他的参数不变,算法变为精确光滑牛顿法(记为: PSN),{r^k}取 \left[{0,1} \right)的随机n维向量,即不精确的光滑牛顿法 (记为:\!\!\!ISN),Iter,cpu分别表示500次数值实验平均的迭代次数和平均的cpu时间.
算例1 F(x) = Mx + q,其中 M \in {R^n} \times {R^n}为对称稀疏矩阵, 由库函数sprandsym(n,den,rc)随机生成,den表示矩阵的稀疏度, 条件数rc是由库函数unifrnd 随机生成的一个[0,1]中的数,它保证了矩阵M的半正定性. q \in {R^n}的每个元素从区间[-1,1]中Matlab的库函数rand随机生成.
算例2 F(x) = {(0.02x_1^3,0.05x_2^3,0.09x_3^3, 0.01x_4^3,\cdots,0.01x_n^3)^T}, 其中K = {K^n}且F:{R^n} \to {R^n}.由于 \nabla F(x) = \left( {\begin{array}{*{20}{c}} {0.06x_1^2} & {} & {} & {} & {} & {} \\ {} & {0.15x_2^2} & {} & {} & {} & {} \\ {} & {} & {0.27x_3^2} & {} & {} & {} \\ {} & {} & {} & {0.03x_4^2} & {} & {} \\ {} & {} & {} & {} & \cdots & {} \\ {} & {} & {} & {} & {} & {0.03x_n^2} \\ \end{array}} \right) 是半正定矩阵,因此F(x)单调.
从表 1与表 2的对比实验可以看出算法3.1是有效的, 在维数较大的情况下非精确光滑算法cpu时间相对较小. 非精确光滑牛顿法对处理对称锥上复杂大规模问题是一种较好的算法.