二次优化问题的SDP松弛求解方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
=
rank(X ) 。
我们考虑如下问题: (SP1 ) Minimize M (q0 ) • X
Subject to
⎡− 1 ⎢⎣ 0
0⎤ I ⎥⎦
•
X
≤
0,
I 00 • X = 1,
X ≥ 0,
设 ( y0* , y1* , S ) 为 (SP1 ) 的对偶最优解,即拉格朗日函数相应的拉格朗日乘子,SZ 方法分
由于半正定矩阵的子集在 n×n 中构成一个锥,所以半正定规划可作为一种特殊的凸规划
求解,线性规划的内点法被成功地用来求解半定规划问题, Strum 等人在文献[16]中给出了一
个长步长路径跟随算法,该算法的迭代复杂性为 O(n log 1 ) ,其中, ε 为算法精度, Jiang 给出 ε
了一个长步长原始对偶路径跟随算法,该算法在至多 O(n ln ε ) 次迭代内可以找到一精度为
中国科技论文在线
二次优化问题的 SDP 松弛求解算法
范丽君,艾文宝
北京邮电大学运筹学与控制论系,北京(100876)
Email:fanlijun985@
摘 要:信赖域方法是求解非线性优化问题的一种十分有效的方法,而信赖域方法在每一步 迭代中的核心问题是求解一个信赖域子问题,信赖域子问题可以归结为一类二次优化问题。 Sturm 和 Zhang 通过一个秩一分解的方法最先将信赖域子问题和半正定规划联系了起来,证 明了无约束信赖域子问题的半正定松弛是紧的,原二次优化问题的最优解可以由松弛问题的 最优解得到。Sturm 和 Zhang 的证明虽然是构造性的,但是如何给出一个简单的分解并没有 涉及。本文的主要工作则是在 Sturm 和 Zhang 的工作基础上,给出了一个简单的矩阵分解 方法来获得原问题的精确解或近似解,并利用 Matlab 软件编程实现。我们给出了此方法的 有效性证明,初步的数值结果也表明该方法是有效的。进一步,我们利用同样的方法来求解 等式约束优化问题的信赖域子问题(常称为两球问题),初步的数值结果表明,该方法对 95% 以上的两球问题都是有效的。 关键词:信赖域方法;信赖域子问题;SDP 松弛;二次优化
1 引言
信赖域方法是非线性优化的一类重要的数值计算方法,它在近二十年受到非线性优化的 高度重视,一直是非线性优化的研究热点,关于信赖域方法的第一本专著由 Cohn,Gould 和 Toint[12] 给出。目前,信赖域方法已经和传统的线搜索方法并列为非线性规划的两类主要 的数值方法。
信赖域子问题的求解直接影响了信赖域方法的有效性,许多学者对信赖域子问题进行了 深入的研究。考虑到对于大规模问题,每次迭代精确求解信赖域子问题的计算量和不必要性, 许多学者对如何有效地近似求解信赖域子问题做了深入的研究,主要有 Powell[13]的折线法 及在此基础上 Dennis 和 Mei[14]的双折线方法等等。
2.3.1 SZ 方法
为了了解 SZ 方法我们首先给出如下定理(证明见[21]):
定理 2.3.1. 如果一个矩阵方程 A • X = b 存在一个半正定的解 X ;0 ,则存在 X 的一个
秩一分解: X
=
x1x1T
+ x2 x2T
+ " + xr xrT
,使得 A • xi xiT
=
b ,其中 r r
SeDuMi 代表 Self − Dual − Minimization :它在自对偶齐次锥上执行优化问题的自对
偶插入技术。这个技术是由Ye,Yodd 和 Mizuno 提出的,本质上它能够在一个单一的方向上
解决某一优化问题:或者得到一个最优解,或者证明原问题的不可行性。自对偶齐次锥上的
优化问题,或更准确的说,对称锥上的优化问题,最初是由 Nesterov 和Todd 研究的,现
-3-
中国科技论文在线
输入目标函数的系数矩阵的维数 n,通过以下程序语句: A = randn(n); for i=1:n
for j=i+1:n A(j,i)=A(i,j);
end end 将 产 生 一 个 随 机 对 称 矩 阵 A , 然 后 通 过 调 用 我 们 自 己 用 SeDuMi 编 写 的 函 数
在本文第二部分,我们将给出具体的二次优化问题的 SDP 求解算法;第三部分将给出 运行结果数值分析,阐述算法合理性和实用性,加以总结给出论文不足的地方以及还可以改 进的地方;第四部分将对文章做出总结和下一步可以做的工作。
2 二次优化问题的 SDP 松弛求解算法
2.1 半正定规划问题介绍
-1-
中国科技论文在线
Subject to x ≤ Δk .
gkT
x
+
1 2
xT
Bk
x
=ϕk
(x),x∈Rn
(2-2)
⎡0
M
(q0
)
:=
⎢⎣g
T k
gk Bk
⎤ ⎥, ⎦
M
(q1
)
:=
⎡− ⎢ ⎣
Δ 0
k
0⎤
I
⎥ ⎦
然后, (Q) 可以写成如下等价形式:
(Q) Minimize
M
(q0
)
•
⎡ ⎢ ⎣
t x
⎤ ⎥ ⎦
⎡t ⎤T
半正定规划问题是一大类圆锥凸规划问题。
定义 2.1 给定 C ∈ R n , Ai ∈ R n , i = 1,", m 和 b ∈ R m ,半正定规划问题是为优化问题
min C • X (SDP) s.t.Ai • X = bi ,i = 1,2,", m
ε 的最优解。其他参见相关文献[17-20],在此篇中用的是 JosF.Strum 所提出的 SeDuMi 算法。 SeDuMi 是 Matlab 的一个附加工具包,可以用来解线性规划,二次规划和半正定规划
问题。 SeDuMi 能够处理复值数据和变量。并且,大规模的优化问题都能够通过矩阵分解
的方法得到有效的解决。
在已经成为一个非常活跃的研究领域。半正定规划是对称锥上的规划的一类特殊情形。
Vandenberghe 和 Boyd 提出的著名的软件包 SP 是求解半正定规划的第一个软件工具。
2.2 无约束优化问题的信赖域子问题的松弛问题及算法实现 Strum , Zhang ,Ye 和 Ai 等已给出了二次优化问题的半正定松弛规划模型,详细内容请
xij yi y j (x11 = 1)
i=1 j=1
j=2
i=2 j=2
n
nn
n
∑ ∑∑ ∑ = (y1 + x1i y j )2 + (
xij yi y j − ( x1i y j )2 )
⎢ ⎣
x⎥⎦
=
gkT d
+
1 2
d T Bk d
Subject to
M(q1
)
•
⎡t ⎤ ⎢⎣x⎥⎦
⎡t ⎤T ⎢⎣x⎥⎦
=
xT
x
− Δk
≤ 0,
t2 =1
(Q) 等价于如下问题: Minimize M (q0 ) • X
Subject to
M (q1) • X ≤ 0 I00 • X = 1 X ;0,
法),但是在定理 2.3.1 中 X 的秩一分解是基于特征值分解的方法,我们都知道特征值分解
是一个比较困难的事情。 Sturm 和 Zhang 的证明虽然是构造性的,即 Sturm 和 Zhang 在
理论上证明了通过分解的方法可以得到原问题的精确解,但是如何给出一个简单的分解并没 有涉及。基于此种想法,我们构造了如下的由松弛问题的最优解求原问题的最优解的方法, 我们的算法实际上是一个更简便的改进型算法。
(SDP) 的对偶问题可以写成如下形式:
max bT y
(SDD)
s.t.
∑
m i
yi Ai
+
S
=
C
S;0
它 类 似 于 线 性 规 划 (LP) 的 对 偶 问 题 (LD) 。 其 中 y ∈ R m , S ∈ R n 。 如 果 一 个 点 ( y, S ; 0) 满足 (SDD) 中的所有方程,那么它称为一个对偶内点可行解。
Strum 和 Zhang 通过一个秩一分解的方法最先将信赖域子问题和半正定规划联系了起来 [15]。Strum 和 Zhang 的方法是基于特征值分解的,但我们知道特征值分解并不是一件容易的 事情。Strum 和 Zhang 的证明虽然是构造性的,即在理论上证明了通过分解可以得到原问题 的精确解,但是如何给出一个简单的分解并没有涉及。本文的主要目的就在于应用半正定规 划及其算法,构造一种基于无约束信赖域子问题的二次优化问题的改进型松弛求解方法,并 利用相关软件如 SeDuMi 来解答半正定规划问题,然后在此基础上利用求出的半正定的最优 解通过矩阵分解的方法来获得原问题的精确解或近似解,并编程实现,得到原二次优化问题 的最优解。数值结果表明此方法是有效的。同时作为本文的拓展我们还将处理等式约束优化 问题的信赖域子问题(常称为两球问题)的半正定松弛模型,用 SeDuMi 来编程求解,并验 证松弛最优解的第一列元素是否为原问题的最优解。
X ;0.
找到一个矩阵解 X ∈ R n . 其中运算 • 是矩阵的内积:A • B = trAT B ,Ai 是一个 m × m 的对称矩阵,X ;0 表示 X 是一个半正定矩阵, X ; 0 表示 X 是一个正定矩阵。如果一个点 X ; 0 并且满足 (SDP) 中
所有的方程,那么我们称它为一个(原始)严格可行解或内点可行解。
为方便后文讨论,我们首先给出如下引理。
引理 2.3.1. X * − x0 x0T 为半正定矩阵。 证明:由于 X * ≥ 0 ,所以对于任意的Y ∈ R n , Y T XY ≥ 0 ,
nn
n
nn
∑∑ ∑ ∑∑ YT XY =
xij yi y j = x11y12 + 2 x1i y1 y j +
rank(X ) = 1.
所以我们写出 (Q) 的松弛问题为:
Subject to
(SP)
M (q1) • X ≤ 0 I00 • X = 1 X ;0,
Minimize
M (q0 ) • X
其中
I 00
=
⎡1 ⎢⎣0
0⎤ 0⎥⎦
∈
S
(n+1)
。
不失一般性,我们可以假定 Δ k
= 1,即: M (q1 )
参考[15]。本文中我们主要考虑基于无约束信赖域子问题的二次优化问题和等式约束信赖域 子问题的二次优化问题的半正定松弛规划模型。 2.2.1 松弛问题模型
我们考虑无约束优化问题的信赖域子问题:
-2-
中国科技论文在线
(Q )
Minimize
(2-1)
我们应用如下记号:
SDP_sedumi( n )就会得到(SP)的一个最优解 X * 。
2.3 由松弛问题的最优解求原问题的解的方法及算法实现
在这一小节中我们先介绍 Strum 和 Zhang 给出的由松弛问题的最优解求原问题的最优解 的方法(简称 SZ 方法),然后给出我们构造的由松弛问题的最优解求原问题的最优解的方 法,我们认为此方法是 SZ 方法的一个更简便的改进型算法。
T
,令 xi*
:=
xi* xi*1
,则 xi*xi*T
是 (SP1 ) 的一个最优解, xi* 是原问题的一个最优解。
-4-
中国科技论文在线
证明参见文献[21]。
2.3.2 我们构造的改进型算法及程序实现
以上为 Sturm 和 Zhang 给出的由松弛问题的最优解求原问题的最优解的方法(SZ 方
=
⎡− 1
⎢ ⎣
0
0⎤
I
⎥ ⎦
,
所以 (Q) 的松弛问题为: (SP) Minimize M (q0 ) • X
Subject to
⎡−1
⎢ ⎣
0
0⎤
I
⎥ ⎦
•
X
≤
0
I00 • X = 1
X ≥0
通过求解此半正定规划 SeDuMi 得到的解记为 X ∗ = (x0 , x1,"xn ) 。
2.2.2 算法实现 求解问题(SP)的程序实现过程如下:
如下两种情形求原问题的最优解:
情形 1:若 y1* = 0 , 则 M (q0 ) • X * = M (q0 ) • (x1x1T + x2 x2T + " + xr xrT ) ≤ 0, 无 妨 设
M (q0 ) • x1 x1T ≤ 0,
则 x1x1T 是 (SP1 ) 的一个最优解, x1是原问题的一个最优解。
证明参见文献[21]。
情形 2:若 y1* > 0 ,由定理 2.2.1 可知存在 X * 的一个秩一分解:
X * = x1* x1*T + x2* x2*T + " + xr* xr*T ,
( ) 使得 M (q0 ) • xi* xi*T
= 0 成立,记 xi* =
xi*1
,
xi*2
,Байду номын сангаас,
x* in+1