本文动机
本意是在论文阅读中反复遇到不等式约束条件的类似问题,不过可惜地是每次想用的时候,几乎总是卡壳,不能满意地解决此类问题,故在这汇总,加以整理,以期熟练掌握其中细节。
当然也有可能出现周志成老师博客指出的问题
在优化理论,Karush-Kuhn-Tucker (KKT)条件是非线性规划(nonlinear programming)最佳解的必要条件。KKT条件将Lagrange乘数法(Lagrange multipliers)所处理涉及束缚等式的约束优化问题推广至不等式。 在实际应用上,KKT条件(方程组)一般不存在代数解,许多优化算法可供数值计算选用。而我恰好每次试图追寻代数解,这或许是我失败的原因之一。
当然我们可以考虑软件求解,的确是有效策略之一,但是注意也不是万能的,大多数采用人工干预,有时候能化繁为简,反而得到最终求解结果。如果过分依赖反而求不出来,结果有时候也不能轻易相信,至少要适当检验。 否则内置算法出现bug造成的后果也不可估量。
注意:
- 由于是自学,本文很大部分依赖网络资源,如有读者,慎重阅读。如有错误,欢迎大佬指正。主要参考下面两篇文章:
十分感谢他们的工作。后面会结合自己体会慢慢写出更好的分析。
- 解此类不等式当然方法不止一种,比如碰巧可以用一些微调整法。
1.1 问题模型
在数学中, 卡罗需-库恩-塔克条件(英文原名:Karush-Kuhn-Tucker Conditions 常见别名:KKT条件,Kuhn-Tucker条件)是在满足一些有规则的条件下,一个 非线性规划(Nonlinear Programming)问题能有最优化解法的一个 必要条件。这是一个 广义化拉格朗日乘数的成果。
我们的问题的模型:考虑以下 非线式最优化问题:是需要最小化的函数,其中是不等式约束,是等式约束,和分别为不等式约束和等式约束的数量。
不等式约束问题的必要和充分条件初见于卡罗需(William Karush)的硕士论文,之后在一份由W.库恩(Harold W. Kuhn)及塔克(Albert W. Tucker)撰写的研讨生论文出现后受到重视。
1.2 必要条件
考虑标准约束优化问题(或称非线性规划):
定义Lagrangian 函数
其中
是对应
的Lagrange乘数,
$是对应
的Lagrange乘数(或称KKT乘数)。KKT条件包括
1.3 等式约束
1.3.1: 等式约束优化问题 (拉格朗日乘数定理)
给定一个目标函数
,我们希望找到
,在满足约束条件
的前提下,使得
有最小值。这个约束优化问题记为
为方便分析,假设