原始目标函数(有约束条件)
对于任意一个带约束的优化都可以写成这样的形式:
新构造的目标函数(没有约束条件)
因为我们要求解的是最小化问题,所以一个直观的想法是如果我能够构造一个函数,使得该函数在可行解区域内与原目标函数完全一致,而在可行解区域外的数值非常大,甚至是无穷大,那么这个没有约束条件的新目标函数的优化问题就与原来有约束条件的原始目标函数的优化是等价的问题。
通过给每一个约束条件加上一个拉格朗日乘子,我们组成拉格朗日方程:
接下来我们构造一个基于广义拉格朗日函数的原始问题,记为:
可行解区域外:当其中任何一个约束条件不满足时,令,则有:
可行解区域内:由于且系数,则有:
所以最大值只能在它们都取的时候得到
所以有:
因此,最小化的解就等价于式子解。
对偶问题
对偶函数,原始函数
到这里,我们成功把带约束问题转化为了无约束问题。但是存在这两组参数,我们没办法通过对求导的方法得到最优解。
新构造原始问题的一种表达:
这里用表示原始问题的最优值。现在我们来把最小和最大的位置交换一下:
当然,交换以后的问题不再等价于原始问题,这个新问题的最优值用来表示。
所以我们就把称作是的对偶问题。如果我们能够想办法证明和存在相同的解,那我们就可以在对偶问题中选择比较简单的一个来求解。
对偶问题同解的证明
需要注意的是,无论原始问题是什么形式,对偶问题总是一个凸优化的问题——它的极值是唯一的。
弱对偶(对于所有的优化问题都成立):
对于最优解(可行解区域内),总是满足式子:
则有:
强对偶(并不是所有的优化问题都成立):
假设和 分别是原始问题和对偶问题的最优解,相应的极值为 p∗ 和 d∗ ,首先 p∗=d∗ ,此时我们可以得到:
则有:
强对偶成立的情况下,我们可以通过求解对偶问题来优化原始问题,这里我们就来提一下强对偶成立的条件。
这里我们就简要地介绍一下Slater条件和KKT条件。
Slater条件是指存在严格满足约束条件的点,这里的“严格”是指中的“小于或等于号”要严格取到“小于号”,亦即,存在满足:
如果原始问题是凸问题并且满足Slater条件的话,那么强对偶成立。需要注意的是,这里只是指出了强对偶成立的一种情况,而并不是唯一情况。例如,对于某些非凸优化的问题,强对偶也成立。
凸优化 217~219
234~236
总之,对目标函数和约束函数可微的任意凸优化问题,任意满足KKT条件的点分别是原、对偶最优解,对偶间隙为零。
网友评论