1. 引言
极小极大问题(minmax problem)起源于博弈论中的基础数学问题,是最优化领域中一类典型的优化问题。随着计算机技术的飞速发展,约束最优化方法作为一种有效的最优化方法,在工业工程设计,优化管理等多方面的应用,越来越受到研究者的重视[1],以下是带约束的极小极大问题的常见形式:
(1)
其中
,
。
尽管(1)和无约束的极小极大问题似乎密切相关,但前者实际上更具挑战性。例如,若
关于
是凸的,关于
是凹的时,无约束的极小极大问题很容易解决,但问题(1)通常是NP-困难的,即使对于
是强凸强凹情况也是一样。此外,经典的极小极大不等式[2]不适用于这类问题。综上,为求解无约束的极小极大问题开发的现有算法不能直接应用于求解(1)。但另一方面,与无约束的极小极大问题相比,(1)可用于对更广泛的应用进行建模,所以研究其解法也有着极其重要的意义。
在本文关注以下带约束的极小极大问题:
(P)
,
其中
,函数
,
,
是连续可微的,
是一个闭凸集。
2. 预备知识
基于梯度方法是利用梯度信息来指导搜索方向,该方法已经在求解无约束双层优化问题中显示出成效[3]。求解约束极小极大问题的隐式梯度(GBAL)算法扩展了基于梯度方法用于处理约束极小极大问题。首先定义内层问题
:
假设函数
和
在某个
的邻域内是连续可微的,并且对变量
是二次连续可微的。用
表示问题
的可行集。问题
的拉格朗日函数定义如下:
其中
,且
是拉格朗日乘子。
定义集合
记
和
其中
且
假设2.1. a) 假设
和
是Lipschitz连续的,并且各自的常数为
和
。
b) 假设
和
是Lipschitz连续的,并且各自的常数为
和
。
假设2.2. a) 假设
和
在
上是Lipschitz连续的,各自的常数为
和
。
b) 假设
和
在
上是Lipschitz连续的,各自的常数为
和
。
假设2.3. 假设内层问题的雅可比唯一性条件成立。
在假设2.3成立的条件下,拉格朗日乘子是有界的,有如下假设成立。
假设2.4. 假设存在常数
,使得对于任何满足KKT条件的
,以下成立:
在假设2.3成立的条件下,使用标准的隐函数定理,可以得到如下结论,说明内层问题解的存在性与局部与唯一性:
引理2.1. 设
是一个点,在此点附近函数
和
都是二次连续可微的。设存在
使得问题
的雅可比唯一性条件在
处满足,则存在
和
,以及一个二次连续可微的映射
,使得当
时,问题
的雅可比唯一性条件在
处满足。
在假设内层问题具有唯一局部解的情况下,极小极大问题(P)可以简化为以下单层问题:
.
为了解决这个问题,GBAL算法的基本思路如下:首先在每次迭代中使用增广拉格朗日法得到
的值。然后,基于通过链式法则计算的
的梯度更新变量
,具体如下:
其中
在雅可比唯一性条件成立的前提下,可以使用隐函数定理获得。然而除非内层问题有闭式解,否则
不能被直接使用,这就限制了这仅适用于非常特定的问题。为了突破这一限制,GBAL算法提出通过隐函数定理来估计
的值,这需要用到以下引理。
引理2.2. 假设引理2.1中的条件成立。则对于任意
和在引理2.1中定义的
,以下结论成立。
a) 梯度函数
可以表示为:
(2)
b) 存在常数
和
,使得对于
,矩阵
是非奇异的,其中
是通过将
中的
和
替换为
和
来定义的。此外,存在
,使得
.
给出目标函数
的近似梯度如下:
(3)
其中,
是将(2)中的和
替换为和
来定义的。
下面是近似梯度与原始梯度之间的一些连续属性和误差界限。
引理2.3. 在假设2.1,2.2,2.3和2.4成立的情况下,以下陈述成立:
a) 假设存在,且
如引理2.1所给出,则:
(4)
其中
,
,
且
,
,
,
。
b) 对于,和
在
上是Lipschitz连续的,常数为
。
c) 对于,
在
上是Lipschitz连续的,常数为
,即对于任意给定的,有:
(5)
其中
,
,
。
以下是具体的GBAL算法:
算法1. 求解约束极小极大问题的隐式梯度(GBAL)算法
输入:
,
,
和非负序列
。
1:初始化
,
。
for
do
2:利用算法2求解内层问题
,得到和
;
3:如果
则停止,其中
的定义在(3)中给出;
4:更新
(6)
end for
其中使用的非精确增广拉格朗日算法[4]如下:
算法2. 非精确增广拉格朗日算法
输入:
和固定常数
,乘子
,非负序列
,参数
和整数
。
for
do
1:定义
;
2:找到
使得
;
3:更新
end for
其中
,
是问题
的增广拉格朗日函数:
以下是关于算法2收敛速率的结论。
引理2.4. [5]令
是问题
的解集,
是问题
的对偶问题的解集。假设
和
都是非空的,则以下结论成立。
a) 整个序列
收敛到问题
对偶问题的解。
b) 对于
和任意充分大的
,有:
(7)
因此
.
其中
是引用[5]中的一个误差界比例系数。
c) 如果额外满足
那么对于
和任意充分大的
,有:
(8)
其中
并且
.
3. 求解约束极小极大问题的隐式梯度加速算法
3.1节介绍了Nesterov加速梯度算法变体。3.2节将提到的Nesterov加速梯度算法变体应用到GBAL算法中,提出了求解约束极小极大问题的隐式梯度加速(aGBAL)算法,并对其进行了收敛性分析。最后的3.3节进行了数值实验的测试,验证了所提出的加速算法的加速性能。
3.1. Nesterov加速梯度算法变体
Nesterov加速梯度算法(Nesterov Accelerated Gradient, NAG)由Nesterov于1983年提出[1] [6],旨在解决传统梯度下降法在优化光滑凸函数时收敛速度不足的问题。为了更好地处理复杂目标函数,下面引入一个NAG变体[1] [7],这个算法通过引入动量权重和正则化项来增强稳定性,以更好地适应不同的优化问题。
定义动量权重如下,其中为了对目标函数的强凸性进行动态调节,引入了广义参数
:
则中间点
当
时,就退化为经典Nesterov形式,此时
,与NAG中
的参数设计相同。
迭代点的更新通过求解以下优化问题实现:
其目标函数可视为梯度项与复合二次正则项的组合。当
且
满足递推关系:
该问题等价于Nesterov的校正步骤,其解析解可显式写为:
3.2. 隐式梯度加速算法
结合上一节所提到的Nesterov加速梯度算法的变体,提出了下方求解约束极小极大问题的隐式梯度加速(aGBAL)算法。
算法3. 求解约束极小极大问题的隐式梯度加速(aGBAL)算法
输入:
以及非负序列
。
1:初始化
和
。
for
do
2:定义
(9)
3:利用算法2求解内层问题
,得到和
;
4:如果
,则停止,其中
的定义见(3);
5:更新
end for
注意到,如果
,则(9)和(10)构成的就是上述Nesterov加速梯度变体。以下,分析此算法的主要收敛特性。
定理3.1. 假设序列
是通过算法3生成的,并且满足假设2.1,2.2,2.3和2.4以及引理2.4的假设。取
,使得对于任意
,都有,其中
和
在引理2.2中给出了定义。步长选择满足:
(11)
且
(12)
a) 如果
是关于
是强凸函数,参数为
,且满足
(13)
选择
,则对于任意
,有:
(14)
其中
(15)
其中
的定义见(4),
和
的定义见(7)和(8)。
b) 如果
关于
是凸函数,
有界,且满足(13),则对于任意
,有:
(16)
其中在
中取
。
Proof. 首先证明a)。注意到子问题(10)的强凸性,对
,有:
(17)
并且对
,有:
(18)
令
,借助
的凸性,得出:
将(9)中
的表达式代入上式,有:
(19)
此外,由引理2.3 c)的光滑性,得到:
(20)
将(17)乘以
,并将其与(18)相加,有:
将(19)代入上式,注意到对于项
与
,可以合并同类项,即:
整理可以得到:
结合不等式(20),并定义,可以获得:
(21)
可以将上式末尾的内积表达式分解为三部分:
对每一部分内积
应用Cauchy-Schwarz不等式
,对于第一部分
,选择
,得到:
对于第二部分
,选择
,得到:
对于第三部分
,选择
,得到:
将上述三个不等式相加,合并同类项,最终得到不等式:
(22)
由函数
关于
的强凸性,可以得到:
将上式代入(21)并结合(22),可以得出:
将
代入上述不等式,再将两边减去
,可以得到:
结合
,并重新排列项后,可以得到:
(23)
其中
。由引理2.4有:
因此
联系(4)和(8)可以得到:
对不等式(23)两边除以
,并结合上式以及(13),(7)和(4),将它们求和后,得出(14)。
现在证明b)。如果
关于
是凸函数,将
代入(21)再进行放缩,可以得到:
(24)
对最后一个内积应用Cauchy-Schwarz不等式,有:
(25)
因为
是凸函数,根据凸函数的一阶条件,分别对变量
和
有:
将第一个不等式乘以
,第二个乘以
,然后相加:
(26)
将(25)和(26)代入(24),可以得到:
结合(13)以及
的有界性,与a)类似可以推导出(16)。
接下来的结果中,通过选择适当算法参数来分析算法3的收敛速率。
推论3.1. 假设序列
由算法3生成,并且满足定理3.1的条件。对于每个
将
和
固定为
和
。步长选择满足如下条件:
(27)
a) 如果
关于
是强凸的且参数为
,并且有:
(28)
其中,且选择
,则对于任意的
,有:
(29)
其中
(30)
且
。
b) 如果
关于
是凸函数,
有界且
,则对于任意
,有:
(31)
Proof. 首先,证明步长的定义是良好的。结合(15),(27),(28)和(30)可知:
,
这确保了条件(12)和(13)的满足。因为,且
,所以:
,
代入(28),得到,这表明:
,
并且有
。
定义
,和
,
,结合(15)和(30)有:
(32)
因此,可以从几何级数的求和公式和条件
中得到:
(33)
将(27)和(33)代入(14),注意到
可以得出(29)。
其次,结合(32),(33)和
,得到:
(34)
这些加上不等式(16),就可以推导出(31)。
可以看出,此算法在目标函数关于外层变量强凸的情况时具有R-线性局部收敛速率,同时在处理关于外层变量凸的目标函数时,算法随着目标值接近局部极小值也达到了R-线性局部收敛速率。
4. 数值实验
本节的数值实验均在一台配备12代Intel(R) Core(TM) i5-1240P1.70GHz处理器和16 GB RAM的笔记本电脑上使用MATLAB R2018a实现,操作系统为Windows 11。基于文献[8],采用以下自适应方法来控制
。初始
设置为0.99。如果在迭代到t步时,算法的起始点
已经满足误差标准,就将
更新为
。相反,如果内层循环未能在所需精度内找到子问题的解,就将
更新为
。
接下来,考虑如下含有非线性约束的极小极大问题
:
其中矩阵
的行是从高斯分布
中生成的。参数
和
被限制在区间
内随机选取。在后续实验中,设置
和
。
在这里,内层算法的迭代步长设置为0.4,外层迭代步长
,最大迭代数
。固定参数
,
是生成的从0.5到1均匀递增的1000点序列。这样选取的理由如下:若目标函数
的强凸系数未知时,通常可设
进行标准化,这样做既不影响算法收敛性分析且因为在增广拉格朗日框架下,
与
共同调节梯度下降和惩罚项的权重,设为1可简化参数调节。同时若问题约束较温和或初始点
接近可行域,固定
可避免动态调整的复杂性。初始
表示较弱动量,随着迭代逐步增至1,逐步增强加速效果,符合Nesterov加速梯度的理论框架,且均匀递增序列可避免突变导致的振荡,确保优化过程平稳收敛。
图1展示了aGBAL算法与GBAL算法相比解决问题
更优越的性能。
Figure 1. The variation trends of the errors of the GBAL algorithm and the aGBAL algorithm in solving problem (P1) with CPU time
图1. GBAL算法与aGBAL算法解决问题(P1)的误差随CPU时间的变化趋势
5. 结论
我们通过对GBAL算法的外层迭代进行加速,提出了求解约束极小极大问题的隐式梯度加速算法。理论分析表明,在目标函数关于外层变量为凸的情况下,加速算法达到了R-线性收敛速率。这一改进使得算法在处理相关优化问题时更具竞争力。