首页 > 其他分享 >不动点迭代法

不动点迭代法

时间:2024-07-16 18:07:31浏览次数:18  
标签:mathbb Vert text 不动点 alpha theta 迭代法

不动点迭代(Fixed-point iteration)

(不动点)
$x$为单值算子$\mathbb{T}$的不动点,如果$$\mathbb{T} x =x$$
记$\text{Fix} \mathbb{T}=\{x|x=\mathbb{T}x\}=(\mathbb{I}-\mathbb{T})^{-1}(0)$为单值算子$\mathbb{T}$的不动点集合。


如果单值算子$\mathbb{T}$是非扩张的且$\text{dom} {\mathbb{T}}=\mathbb{R}^n$,则$\text{Fix} \mathbb{T}$是闭凸集。

不动点迭代(FPI)的格式为:$$x^{k+1}=\mathbb{T}x^k(k=0,1,2,\dots)$$
如果$\mathbb{T}$是一个收缩算子,则可以利用$Banach$不动点定理得到收敛性,且收敛到不动点。但是对于优化问题,收缩的条件不易满足,下面我们来考虑对平均算子使用不动点迭代。

注意到,对于任意的非扩张算子$\mathbb{T}$,则有平均算子$(1-\theta)\mathbb{I}+\theta\mathbb{T}$的不动点集合与$\mathbb{T}$是相同的,于是只要对平均算子$(1-\theta)\mathbb{I}+\theta\mathbb{T}$运用不动点迭代就可以得到非扩张算子$\mathbb{T}$的不动点。


假设$\{V^k\},\{S^k\}$是非负数列,且$V^{K+1}\leq V^k-S^k(k=0,1,2,\dots)$,则$\{V^k\}$单调递减,且$S^K\rightarrow 0$\\
又若$\{S^k\}$单调递减,则$S^K\leq \frac{V^0}{N+1}$

(平均算子不动点迭代的收敛性)
有平均算子$\mathbb{I}=(1-\theta)\mathbb{I}+\theta\mathbb{S}$,其中$\mathbb{S}$为非扩张算子,且$\text{Fix}\mathbb{T}$,令:$$x^{k+1}=\mathbb{T}x^k(k=0,1,2,\dots)$$
则$\{x^k\}$收敛于$\text{Fix}\mathbb{T}$中的一点,且$\{\Vert x^{k+1}-x^k \Vert\}$单调递减且满足
$$\Vert x^{k+1}-x^k \Vert^2\leq\frac{\theta}{(k+1)(1-\theta)}dist^2(x^0,\text{Fix}\mathbb{T})$$

\begin{proof}
\begin{align*}
\Vert x^{k+1}-x^* \Vert^2&=\Vert (1-\theta)x^k+\theta\mathbb{S}x^k-x^* \Vert^2\\
&=\Vert (1-\theta)x^k+\theta\mathbb{S}x^k-(1-\theta)x^*+\theta\mathbb{S}x^* \Vert^2\\
&=\Vert (1-\theta)(x^k-x^*)+\theta(\mathbb{S}x^k-\mathbb{S}x^*)\Vert^2\\
&=(1-\theta)\Vert x^k-x^*\Vert ^2 +\theta\Vert\mathbb{S}x^k-\mathbb{S}x^*\Vert^2-\theta(1-\theta)\Vert\mathbb{S}x^k-x^k\Vert^2\\
&\leq (1-\theta)\Vert x^k-x^*\Vert ^2 +\theta\Vert x^k-x^*\Vert^2-\theta(1-\theta)\Vert\mathbb{S}x^k-x^k\Vert^2\\
&=\Vert x^k-x^*\Vert^2-\theta(1-\theta)\Vert\mathbb{S}x^k-x^k\Vert^2\\
&=\Vert x^k-x^*\Vert^2-\frac{(1-\theta)}{\theta}\Vert x^{k+1}-x^k\Vert^2\\
\end{align*}
则根据引理4.1得到$\{\Vert x^k-x^*\Vert \}$单调递减,到$\{\Vert x^{k+1}-x^k\Vert \}$收敛于0。\\
又因为$\mathbb{T}$是非扩张算子,则有$\{\Vert x^{k+1}-x^k\Vert \}$单调递减。于是根据引理4.1,得到:
$$\Vert x^{k+1}-x^k\Vert^2\leq\frac{\theta}{(k+1)(1-\theta)}\Vert x^0-x^*\Vert^2$$
则:
$$\Vert x^{k+1}-x^k\Vert^2\leq\frac{\theta}{(k+1)(1-\theta)}\text{dist}^2(x^0,\text{Fix}\mathbb{T})$$

下面证明点列$\{x^k\}$收敛于$\text{Fix}\mathbb{T}$中一点:\\
由上述证明可知,点列$\{x^k\}$有界,取其中一个聚点$y^*$,则有$\{x^{k_i}\}$使得$x^{k_i}\rightarrow y^*(i\rightarrow+\infty)$\\
由于$\Vert x^{k+1}-x^k\Vert\rightarrow 0$,则$(\mathbb{T}-\mathbb{I})(x^k)\rightarrow 0$,则$(\mathbb{T}-\mathbb{I})(x^{k_i})\rightarrow 0$,则由海涅定理得到$$(\mathbb{T}-\mathbb{I})(y^*)=0$$,则$y^*\in\text{Fix}\mathbb{T} $\\
将前半部分的$x^*$替换成$y^*$,则有$\{\Vert x^k-y^*\Vert \}$单调递减有下界,则存在极限,又因为子列$\{\Vert x^{k_i}-y^*\Vert \}$有极限$0$,则$\{\Vert x^k-y^*\Vert \}$有极限$0$,于是$$x^k\rightarrow y^*$$,即点列$\{x^k\}$收敛于$\text{Fix}\mathbb{T}$中一点。
\end{proof}

(Forward Step method)

问题:找到$x\in \mathbb{R}^n$使得$0 = \mathbb{F}(x)$等价于求解$ \text{Fix}(\mathbb{I}-\alpha\mathbb{F})$
则FPI为$$x^{k+1}=x^k-\alpha\mathbb{F}x^k:=\mathbb{T}(x^k)$$

如果$\mathbb{F}$是$\beta-$余强制的,即$\left\langle \mathbb{F}x-\mathbb{F}y,x-y \right\rangle\geq \beta \Vert \mathbb{F}x-\mathbb{F}y \Vert^2 ,\forall x,y\in dom{F}$\\

\begin{align*}
\Vert \mathbb{T}x-\mathbb{T}y \Vert^2 &=\Vert (\mathbb{I}-\alpha\mathbb{F})x-(\mathbb{I}-\alpha\mathbb{F})y \Vert^2\\
&=\Vert x-y-\alpha(\mathbb{F}x-\mathbb{F}y) \Vert^2\\
&=\Vert x-y\Vert^2-2\alpha\left\langle \mathbb{F}x-\mathbb{F}y,x-y \right\rangle+\alpha^2\Vert \mathbb{F}x-\mathbb{F}y \Vert^2\\
&\leq\Vert x-y\Vert^2-2\alpha\beta\Vert \mathbb{F}x-\mathbb{F}y \Vert^2+\alpha^2\Vert \mathbb{F}x-\mathbb{F}y \Vert^2
\end{align*}
由此可以得到,当$\alpha^2-2\alpha\beta \leq 0(\text{即}0<\alpha \leq 2\beta)$时,$\mathbb{T}$为非扩张算子,则$\mathbb{T}_0=\mathbb{I}-2\beta\mathbb{F}$是非扩张算子。\\
而$\mathbb{T}=\mathbb{I}-2\alpha\mathbb{F}=(1-\theta)\mathbb{I}+\theta(\mathbb{I}-2\beta\mathbb{F})=\mathbb{I}-2\theta\alpha\mathbb{F}$,其中$\theta=\frac{\alpha}{2\beta}$,则$\mathbb{T}$是$\frac{\alpha}{2\beta}-$平均算子,所以FPI收敛(当$0<\alpha < 2\beta$)。\\

又若$\mathbb{F}$是$\mu-$强单调的,即$\left\langle \mathbb{F}x-\mathbb{F}y,x-y \right\rangle\geq \mu \Vert x-y \Vert^2 ,\forall x,y\in dom{F}$\\

\begin{align*}
\Vert \mathbb{T}x-\mathbb{T}y \Vert^2 &=\Vert (\mathbb{I}-\alpha\mathbb{F})x-(\mathbb{I}-\alpha\mathbb{F})y \Vert^2\\
&=\Vert x-y-\alpha(\mathbb{F}x-\mathbb{F}y) \Vert^2\\
&=\Vert x-y\Vert^2-2\alpha\left\langle \mathbb{F}x-\mathbb{F}y,x-y \right\rangle+\alpha^2\Vert \mathbb{F}x-\mathbb{F}y \Vert^2\\
&\leq\Vert x-y\Vert^2-2\alpha\mu\Vert x-y \Vert^2+\frac{\alpha^2}{\beta^2}\Vert x-y \Vert^2(\beta-\text{余强制}\Rightarrow \frac{1}{\beta}-\text{Lipschitz})\\
&=(1-2\alpha\mu +\frac{\alpha^2}{\beta^2})\Vert x-y \Vert^2
\end{align*}
则当$0<\alpha<2\mu\beta^2$时,$\mathbb{T}$是收缩算子,所以收敛。


根据上述分析,当$\mathbb{F}=\nabla f$时,可以推出梯度下降法的收敛性。

标签:mathbb,Vert,text,不动点,alpha,theta,迭代法
From: https://www.cnblogs.com/wjma2719/p/18305831

相关文章

  • Day11(二叉树) | 二叉树的递归遍历 二叉树的迭代遍历 二叉树的统一迭代法 二
    二叉树的递归遍历终于来到了递归!!!递归是进入动态规划的第一步,有部分的递归完全可以写成动态规划!这里可以移步到左程云的视频观看.递归的步骤:确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数,并且还要明确每次递归的返......
  • PCL 拟合二维椭圆(迭代法)
    文章目录一、简介二、实现代码三、实现效果参考资料一、简介一般情况,我们会用椭圆拟合二维点,用椭球拟合三维点。在n维中,这些对象被称为超椭球体,由二次方程隐式定义超椭球的中心是n×1向量C,n×n矩阵S是正定的,n×1向量X是超椭球上的任意点。矩阵S可以用特......
  • (十)计算机数值方法之Gauss_Seidel迭代法
    数学问题:用Gauss_Seidel迭代法求解方程组:初始迭代向量均设为零向量,二范数误差小于1e-4。解决代码:#include<iostream>#include<math.h>#include<iomanip>usingnamespacestd;#definesize10voidGauss_Seidel(doubleA[size][size],doubleB[size],intn,dou......
  • 二叉树 | 迭代法 102.二叉树的层序遍历 429. N 叉树的层序遍历 226.翻转二叉树
    leetcode102.二叉树的层序遍历题目102.二叉树的层序遍历给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。解题思路实现代码classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valse......
  • 二叉树前中后序遍历 迭代法 只需一招!
    核心思想以中序遍历为例在迭代法中我们拿到1节点由于有左孩子我们就会推入2节点,2节点又有左孩子,所以我们推入4,然后弹出2节点,由于这是第二次访问2节点,也就意味着左子树已经去过了,所以推入5节点。那么我们模拟一下栈的变化假设左边为栈顶。1->21->4......
  • 【二叉树的前中后序遍历】迭代法
    三种遍历都是用栈维护二叉树前序遍历节点顺序前序遍历模拟前序遍历即可,记录顺序和入栈顺序一致classSolution{publicList<Integer>preorderTraversal(TreeNoderoot){List<Integer>ans=newArrayList<>();if(root==null)returnans;......
  • 不动点法
    概述在编译原理中,不动点法通常用于计算属性文法中的属性值,其中属性之间可能存在循环依赖关系文法规则举个例子,假设我们有以下的EBNF文法:expr::=term("+"term)*term::=factor(""factor)factor::=number|"("expr")"规则执行我们想要使用LL算法来实......
  • 二叉树-统一迭代法
    迭代法实现的前中后序遍历,除了前序和后序相互关联,中序则是另一种风格。我们需要针对三种遍历方式实现统一风格的代码。如何统一风格:解决访问节点(遍历节点)和处理节点(将元素放进结果集)不一致的情况。将访问的节点放入栈中,把要处理的节点放入栈中但是做标记(紧接着放入一个空指针)......
  • C语言实现牛顿迭代法(Newton-Raphson Method)
    目录前言A.建议B.简介一代码实现二时空复杂度A.时间复杂度B.空间复杂度C.总结三优缺点A.优点:B.缺点:C.总结:四现实中的应用前言A.建议1.学习算法最重要的是理解算法的每一步,而不是记住算法。2.建议读者学习算法的时候,自己手动一步一步地运行算法。B.......
  • 代码随想录算法训练营DAY14|C++二叉树Part.1|二叉树的递归遍历、二叉树的迭代遍历、二
    文章目录二叉树的递归遍历思路CPP代码二叉树的迭代遍历思路前序遍历后序遍历后序遍历二叉树的统一迭代法二叉树的递归遍历144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历文章讲解:二叉树的递归遍历视频讲解:每次写递归都要靠直觉?这次带你学......