1. 引言
最优控制是指在给定的约束条件下,寻求一个控制,使给定的系统性能指标达到极大值(或极小值)。这类问题广泛存在于社会问题或技术领域中。由于在绝大多数情况下,不能通过解析的方式求解最优控制问题,因此构造有效的数值计算方法成为必要。通常有两种不同的方法来处理偏微分方程约束的最优控制问题。一种是先优化后离散法,另一种是先离散后优化法,参见 [1] [2] [3] [4] 。本文选择先优化后离散的方法,来求解偏微分方程最优控制问题。
对于包含时间项的偏微分方程最优控制问题,状态方程随时间正向发展,伴随方程随时间反向发展。这意味着需要一次性求解正倒向两个方程耦合的大型代数方程组,因此导致计算成本很高。求解这类问题经常用到的方法是一种所谓的ParaDiag算法。该算法的核心步骤通常是将时间离散矩阵近似对角化,得到预处理子,然后进行分解,使得系统可以被一次性求解,以达到提高计算效率的目的,近年来该领域有许多相关的文献。这些文献中,ParaDiag算法大致被分为两类:① ParaDiag-I:使用直接法进行求解。这类方法最早由Maday [5] 等人提出,为了保证得到时间离散化矩阵可以很好地对角化,该方法会采取变化的时间步长或是使用混合的时间离散格式 [6] 。② ParaDiag-II:使用迭代法进行求解。该类方法允许通过强制修改系数矩阵来使得它可以对角化,近年来被许多文献所研究 [7] [8] [9] [10] 。
本文结构如下:第2节引入研究的抛物型方程约束的最优控制问题,对该问题进行时空间方向的离散。然后提出一种预处理子,用于加速计算大型稀疏线性方程组;第3节是数值实验,说明提出的预处理子的良好性能;第4节为全文的总结。
2. 离散格式与预处理
2.1. 全离散格式
考虑如下跟踪型分布式控制问题:
(1)
使得
(2)
其中L为空间算子,一般由拉普拉斯算子给出。y是状态变量,g为目标函数,u为控制变量,
为正则化参数。
利用一阶最优性条件,消去控制变量u,得到如下简化的KKT系统 [11]
(3)
其中
(4)
为了求解系统(3),对于空间离散化,采用有限差分格式(或有限元法,有限体积法等)。本文更加关注对时间方向离散化后的矩阵进行预处理,因此不论使用上述的何种方法对空间进行离散化,都可以利用空间离散矩阵
代替具体的格式。即
时间上采用二阶精度的Crank-Nicolson离散格式,于是得到离散KKT系统
(5)
其中
其中
是
的单位矩阵,
为
的单位矩阵,
表示空间离散剖分的网格数。“
”表示克罗内克积,是张量积的特殊形式。
2.2. 预处理
本节使用ParaDiag-II方法处理大型代数系统(5),通过对矩阵
进行修改,使得它们成为
-循环矩阵。众所周知,循环矩阵都可以进行相似对角化,具体步骤参见 [12] ,因此在这一类方法中,基于对角化的预处理子被引入,以达到加速计算的目的。
-循环矩阵结构如下:
(6)
是一个常数。有关
-循环矩阵的介绍可以参见 [8] ,
-循环矩阵可以进行对角化分解
其中
,
为离散傅立叶变换矩阵,两个对角矩阵
的特征值分别为
(7)
其中
,容易知道
是一个酉矩阵,即
,这意味着
的逆矩阵与其共轭转置矩阵是相等的,观察(7)可知
。利用 [7] 的结论,可以得到
的分解
(8)
其中
由 [13] 的分析可以知道,要成功地执行类似 [9] 的对角化分解,矩阵
必须同时都可以对角化,即
该等式和
是等价的,这个限制条件使得
的形式有很大的局限性。和 [13] 中的选择类似,在本文后续的讨论中,取
,此时
又被称为负循环矩阵。
下面的步骤(1)~(3)给出了求解式(8)的方法。
为计算
,有
(9)
其中r表示任意的输入向量,
表示对角矩阵
的第n行元素。式(9)一般被称为三步对角化技巧 [6] 。该方法的好处在于:得益于矩阵V的特殊结构,步骤(a)和步骤(c)可以通过快速傅立叶变换进行高效计算;步骤(b)由2N个独立的线性系统构成,可以用高度并行的方式求解 [14] 。
根据 [15] 的分析,对角化步骤(a)和(c)会产生较大的舍入误差,定理2.1给出了适用于本文研究问题的舍入误差分析。
定理2.1令
为空间离散矩阵
的任意特征值,假设(8)的步骤(b)是通过直接法求解的(例如,LU分解法)。设机器精度为
,那么舍入误差为
(10)
其中
为如下方程(11)中对任一输入向量
的精确解,
为方程(11)的数值近似解。
(11)
证明:对于方程(11),根据 [7] 的向后误差分析,通过对角化技巧(2.4)得到的解满足如下的扰动系统:
其中
,
和
表示矩阵V,
和
的微小扰动。由 [7] ,可得
(12)
最后一个不等式成立的原因是
是一个对角矩阵。注意到通过对角化解方程(11)等价于精确求解
,这里
表示一个合适的扰动。实际上,有
(13)
结合(12)式和(13)可以对
做出如下的估计:
(14)
根据 [16] ,下列不等式成立
结合(14)可以得到:
由于
,且
,结合
是酉矩阵,可以得到
同样地,有
于是
以及
综合上述讨论,便得到了不等式(10)。 ∎
上述定理表明,由(9)带来的舍入误差主要与三个因素有关,即时间离散的节点数
,矩阵S的条件数以及不可避免的,对角矩阵
的条件数。而(10)中
的条件数这一因素无法进一步改进。于是本文考虑对
进行修改,以使得矩阵S的条件数尽可能接近于或是等于一个网格无关的常数。
容易知道,消除
等价于令下列矩阵为零,
用特征值来表征矩阵
和
,即
(15)
取
于是有
. (16)
因此,可以用矩阵
代替
,类似地,用矩阵
代替
。如此一来,就可以得到
(17)
于是
矩阵
的条件数为
这样一来,便消除了和舍入误差有关的
这一因素,导出了预处理子
:
令
预处理子
可以表示为
(18)
值得注意的是,在消去舍入误差中
这一项时,
同样会受到一定的影响。令
因为
是实对称矩阵的特征值,故
,可以使用矩阵的奇异值来估计
以及
的条件数,即
同样有
其中
分别表示最大奇异值和最小奇异值。
观察
可知,它也是一个对角矩阵,因此特征值可以被对角线元素表征。考虑矩阵
的前
行,有
表示第n个特征值,
。
令
若
则有如下的不等式估计
经过一系列冗杂但简单的运算可以得到
(19)
其中
是一个与
和
有关的正数。于是可以知道,修改
确实会增加
,但当时间方向的网格步长的平方
和正则化参数
保持在同一数量级时,
会有一个比较稳定的上界。
3. 数值算例
本节将使用带预处理子的GMRES方法来求解给定的抛物型方程最优控制问题。设置停机标准为
,采用的是右预处理GMRES方法,迭代的最大步数设置为IterMax = 400。空间离散算子
由二阶中心差分格式导出,它是一个实对称矩阵。本节的实验目的是,针对具体的问题,在不同的正则化参数
以及时空间网格大小的选取下,获得程序输出的结果。输出的结果包括了GMRES求解器完成计算所需要的迭代次数,记为Iter、求解过程中计算机耗费的时间(单位为s),记为CPU、状态变量的误差估计范数
。此外,作为对比,将直接使用GMRES求解器而非使用预处理子来计算同样的算例。
例1给出了一维情况下抛物型PDE最优控制问题,数值结果如 表1 所示。
时真解和数值解的对比图如图1和图2所示。
例1令空间域
,时间域
,方程组的解析解等已知条件如下:
(20)
通过表1,可以看到,对于GMRES方法所需的迭代次数,无论正则化参数
取到何值,预处理过程都会大大减少迭代次数,使得GMRES求解过程的迭代次数保持在一个很少的范围。对于计算时间,如果正则化参数
的取值不过分的小,即
时,不使用预处理方法的GMRES求解器所耗费的计算成本都远远大于经过预处理后的GMRES求解器,而在
以及
的情况下,使用预处理子与否对计算耗费的时间影响并没有显著差异,甚至网格较粗的情况下不使用预处理的GMRES方法在时间成本上稍显优势。对于此现象的解释是,正则化参数
与时空间网格步长的比
之间的数量级有差异。如果增加网格大小,以使得
和
尽量接近,那么上述现象便不会再发生。为尝试验证这一解释,在
和
的情况下使用了更加细化的网格,大小为500 × 500,作为追加的实验。如表1中Add1和Add2的两行数据所示,当
和
比较接近时,施加了预处理过程的GMRES方法的数值表现明显更为优秀,即Add1中的结果;而
和
不那么接近时,两者在计算时间上的差异变得较小,即Add2中的结果。由此可以得到实验结果一定程度上与上述解释相符合。
![](Images/Table_Tmp.jpg)
Table 1. The number of iterations of the GMRES method in Example 1, the CPU time, and the error before and after using the preconditioner
表1. 使用预处理子前后,例1的GMRES方法迭代所需的次数、CPU耗费时间以及误差
![](//html.hanspub.org/file/62-2623905x165_hanspub.png?20240606092822546)
Figure 1. Comparison of the real solution (left) and the numerical solution (right) of y
图1. y的真实解(左)和数值解(右)对比图
![](//html.hanspub.org/file/62-2623905x166_hanspub.png?20240606092822546)
Figure 2. Comparison of the real solution (left) and the numerical solution (right) of p
图2. p的真实解(左)和数值解(右)对比图
4. 总结
本文研究了一种应用于初值型抛物型方程最优控制问题的预处理子,用于快速求解给定的模型问题。首先,给出了受抛物型方程约束的控制问题及初值条件,得到KKT系统;然后在时间方向上采用Crank-Nicolson格式,空间方向上使用离散拉普拉斯算子表示空间离散后的格式,得到了一个大型线性方程组。对离散后得到的大型稀疏代数系统,利用三步对角化技巧快速求解。为了消除对角化步骤中矩阵S的条件数这一因素,提出了一个新的预处理子。本文采用ParaDiag-II方案时,使用了广义极小残量法(GMRES)来作为迭代求解器,并分析了应用预处理子时,GMRES方法的收敛性。最后的数值实验,给出了一维的具体数值算例,数值结果表明提出的新的预处理子确实有较为优秀的加速效果和稳定性。
致谢
作者非常感谢各位老师们给出的宝贵意见和建议。