基于自和谐的复杂度分析
利用 Newton 方法对自和谐函数的复杂度分析,可以对障碍方法进行复杂度分析。该分析适用于许多常见问题,并导出若干有趣的结论:它给出了用障碍方法求解问题所需 Newton 步总数的严格界,并解释了我们的观察——中心点问题并不随
自和谐性假设
我们做两个假设:
- 函数
对所有 都是闭的且自和谐的。 - 问题的下水平集有界。
第二个假设意味着中心点问题的下水平集有界,因此中心点问题可解;该假设还蕴含
自和谐性假设对很多问题成立,包括所有线性与二次问题:若
在其他情形,可以通过改写问题使自和谐假设成立。例如线性不等式约束的熵最大化问题(目标
对任意
一个更特别的例子是 GP:目标
其相应的对数障碍
是闭的且自和谐的;由于目标函数是线性的,
每个中心点步的 Newton 迭代次数
自和谐函数的 Newton 方法复杂度理论表明:极小化一个闭的严格凸自和谐函数
其中
常数
用该结果可以推导障碍方法一次外层迭代(即从
自和谐性假设意味着
是从
对推导的说明:从第一行到第二行利用
结论是
是障碍方法一次外层迭代所需 Newton 步数的上界。函数
该界表明:每个中心点步所需 Newton 步数由一个主要依赖于
Newton 迭代总次数
现在可以给出障碍方法 Newton 步总数的上界(不计初始中心点步,它将在阶段 I 分析中处理)。把每个外层迭代的界乘以所需外层步数,得
该式表明:当自和谐假设成立时,对任意
若固定
若
最后分析

上图由下面的 TikZ 代码编译而来:
\definecolor{cblue}{RGB}{31,119,180}
\definecolor{cred}{RGB}{214,39,40}
\definecolor{cgreen}{RGB}{44,160,44}
\definecolor{corange}{RGB}{255,127,14}
\definecolor{cpurple}{RGB}{148,103,189}
\definecolor{cbrown}{RGB}{140,86,75}
\definecolor{cpink}{RGB}{227,119,194}
\definecolor{cgray}{RGB}{127,127,127}
\begin{tikzpicture}[x=1cm,y=1cm,>=stealth,line cap=round,line join=round]
\draw[->,color=black!60] (0.98,0) -- (4.4,0) node[below] {$\mu$};
\draw[->,color=black!60] (1,0) -- (1,2.6) node[left] {};
\draw[cred,very thick,domain=1.02:4.3,samples=80] plot (\x,{\x-1-ln(\x-1)+0.0});
\draw[cblue,very thick,dashed,domain=1.02:4.3,samples=60] plot (\x,{0.5*(\x-1)*(\x-1)});
\node[font=\scriptsize,color=black!60] at (1.35,-0.28) {$1$};
\node[font=\scriptsize,color=black!60] at (2.35,-0.28) {$2$};
\node[font=\scriptsize,color=black!60] at (3.35,-0.28) {$3$};
\node[anchor=west,color=cred] at (3.3,2.15) {$\mu-1-\log\mu$};
\node[anchor=west,color=cblue] at (3.0,0.62) {$\frac{1}{2}(\mu-1)^2$};
\end{tikzpicture}
上图由下面的 TikZ 代码编译而来:
\definecolor{cblue}{RGB}{31,119,180}
\definecolor{cred}{RGB}{214,39,40}
\definecolor{cgreen}{RGB}{44,160,44}
\definecolor{corange}{RGB}{255,127,14}
\definecolor{cpurple}{RGB}{148,103,189}
\definecolor{cbrown}{RGB}{140,86,75}
\definecolor{cpink}{RGB}{227,119,194}
\definecolor{cgray}{RGB}{127,127,127}
\begin{tikzpicture}[x=1cm,y=1cm,>=stealth,line cap=round,line join=round]
\draw[color=black!12,very thin] (0.3414,0) -- (0.3414,4.6) (0.6807,0) -- (0.6807,4.6) (1.3155,0) -- (1.3155,4.6) (2.9434,0) -- (2.9434,4.6) (5.0421,0) -- (5.0421,4.6) (8.0000,0) -- (8.0000,4.6) (0,0.0000) -- (8,0.0000) (0,1.1500) -- (8,1.1500) (0,2.3000) -- (8,2.3000) (0,3.4500) -- (8,3.4500) (0,4.6000) -- (8,4.6000) ;
\draw[->,color=black!60] (0,0) -- (8.35,0) node[below] {$\mu$};
\draw[->,color=black!60] (0,0) -- (0,4.949999999999999) node[left] {$N$};
\draw[cblue,very thick] plot coordinates {(0.000,1.776) (0.067,1.076) (0.133,1.027) (0.200,1.085) (0.267,1.162) (0.333,1.238) (0.400,1.309) (0.467,1.374) (0.533,1.433) (0.600,1.485) (0.667,1.536) (0.733,1.582) (0.800,1.625) (0.867,1.663) (0.933,1.698) (1.000,1.732) (1.067,1.765) (1.133,1.799) (1.200,1.829) (1.267,1.854) (1.333,1.882) (1.400,1.907) (1.467,1.929) (1.533,1.956) (1.600,1.981) (1.667,1.994) (1.733,2.024) (1.800,2.042) (1.867,2.057) (1.933,2.082) (2.000,2.094) (2.067,2.116) (2.133,2.137) (2.200,2.143) (2.267,2.161) (2.333,2.178) (2.400,2.193) (2.467,2.207) (2.533,2.221) (2.600,2.248) (2.667,2.259) (2.733,2.269) (2.800,2.279) (2.867,2.304) (2.933,2.311) (3.000,2.317) (3.067,2.341) (3.133,2.346) (3.200,2.368) (3.267,2.371) (3.333,2.393) (3.400,2.395) (3.467,2.416) (3.533,2.416) (3.600,2.436) (3.667,2.435) (3.733,2.454) (3.800,2.474) (3.867,2.470) (3.933,2.489) (4.000,2.484) (4.067,2.502) (4.133,2.520) (4.200,2.513) (4.267,2.531) (4.333,2.548) (4.400,2.565) (4.467,2.556) (4.533,2.572) (4.600,2.588) (4.667,2.577) (4.733,2.593) (4.800,2.609) (4.867,2.624) (4.933,2.611) (5.000,2.626) (5.067,2.641) (5.133,2.656) (5.200,2.670) (5.267,2.654) (5.333,2.668) (5.400,2.683) (5.467,2.697) (5.533,2.710) (5.600,2.692) (5.667,2.705) (5.733,2.719) (5.800,2.732) (5.867,2.745) (5.933,2.758) (6.000,2.736) (6.067,2.749) (6.133,2.762) (6.200,2.774) (6.267,2.787) (6.333,2.799) (6.400,2.811) (6.467,2.786) (6.533,2.798) (6.600,2.810) (6.667,2.822) (6.733,2.834) (6.800,2.845) (6.867,2.857) (6.933,2.868) (7.000,2.839) (7.067,2.851) (7.133,2.862) (7.200,2.873) (7.267,2.884) (7.333,2.895) (7.400,2.905) (7.467,2.916) (7.533,2.927) (7.600,2.937) (7.667,2.904) (7.733,2.915) (7.800,2.925) (7.867,2.936) (7.933,2.946) (8.000,2.956)};
\node[below,color=black!60] at (0.3414,0) {1.05};
\node[below,color=black!60] at (0.6807,0) {1.1};
\node[below,color=black!60] at (1.3155,0) {1.2};
\node[below,color=black!60] at (2.9434,0) {1.5};
\node[below,color=black!60] at (5.0421,0) {2};
\node[below,color=black!60] at (8.0000,0) {3};
\node[left,color=black!60] at (0,0.0000) {$10^{3}$};
\node[left,color=black!60] at (0,1.1500) {$10^{4}$};
\node[left,color=black!60] at (0,2.3000) {$10^{5}$};
\node[left,color=black!60] at (0,3.4500) {$10^{6}$};
\node[left,color=black!60] at (0,4.6000) {$10^{7}$};
\fill[cred] (0.1333,1.0269) circle (2pt);
\node[anchor=west,color=cred] at (0.2833,1.0269) {$\mu\approx1.02$};
\node[anchor=south west,color=black!60] at (3.4142,2.6462) {$N = \lceil\log\frac{m}{t^{(0)}\epsilon}/\log\mu\rceil\,\left(\frac{m(\mu-1-\log\mu)}{\gamma}+c\right)$};
\end{tikzpicture}把 取为 的函数
当
利用
其中
这里
对固定的对偶间隙缩减要求,界随
实践中我们不会使用
可行性问题
本节分析基本阶段 I 方法的一个(小的)变体用于求解凸不等式组
的复杂度(
满足前述自和谐性条件。特别地,假设不等式组的可行集(当然可能为空)包含在半径为
可以把
为判定可行性,对阶段 I 问题做一个变体:增加一条冗余的线性不等式
选取
令对
令对
因此只需选取参数
由此
求解原不等式组需要确定
(这里取
带等式约束的可行性问题:可以通过消去等式约束把同样的分析应用于带等式约束的可行性问题。这不影响问题的自和谐性,但意味着
阶段 I 与阶段 II 的组合复杂度
本节给出用障碍方法求解问题
的端到端复杂度分析(含阶段 I 的变体)。先求解阶段 I 问题
假设它满足自和谐与有界下水平集假设。这里增加了两条冗余不等式:约束
要找到严格可行点或判定问题不可行,所需 Newton 步数不超过
其中
接下来进入阶段 II,再次使用障碍方法:把对偶间隙从初始值(不超过
次 Newton 步。因此总步数不超过
总结
本节给出的复杂度分析主要具有理论意义。特别要提醒读者:这里讨论的
这里分析得到的界远高于实际观察到的迭代次数;甚至界中的增长阶看起来也是保守的:最好的界按
尽管如此,知道以下事实是令人安心的:当自和谐条件成立时,可以对障碍方法的每个中心点步所需 Newton 步数给出一致上界。障碍方法一个潜在的缺陷是:随着
最后我们指出:把问题改写成使自和谐条件成立的形式是否具有实际好处,目前尚不清楚。我们所能说的是:当自和谐条件成立时,障碍方法在实践中工作良好,并且我们可以给出最坏情形复杂度界。