首页 > 编程知识 正文

kkt条件例题,kkt条件推导

时间:2023-05-06 13:39:49 阅读:47869 作者:2745

kt(karush-kuhn-tucker )条件作为带约束可微分优化问题的最优性条件,占有非常重要的地位。 目前,KKT条件介绍网上也有很多资料。 这篇文章的主要目的之一是把这些资料整理起来,构成一个比较清晰的上下文,另一个是在说明过程中加入自己的思考,以补充对KKT的认识。 同时,通过自己的思维发挥抛砖引玉的效果,让大家意识到,这样一般简单的KKT条件,其实并不是那么简单。 最后简述了最优条件为什么那么重要,以及KKT与凸优化的关系。 为了简单起见,在没有特别说明的情况下,本文中“最佳”、“最佳条件”都是指局部最佳。 想了解更多本论文中使用的物流优化领域相关概念的话可以作为参考

0. KKT条件的历史背景

kt条件的发现有历史性的插曲。 1951年Kuhn和Tucker发现了KKT条件,撰写论文正式发表[1],引起许多学者的关注。 自此,一些学者于1939年发现Karush在硕士学位论文[2]中已经提出了KKT条件,但当时并未引起研究者的关注。 因此,Kuhn、Tucker、Karush三人都是作为独立发现KKT条件的学者,这一最佳条件是以他们三人的名字命名的。

1 .无约束优化问题优化条件首先从无约束优化问题的优化条件开始。 存在以下无约束优化问题

如果可能的话,其最佳解的一次要件如下

这个条件的导出过程是通过朴素的密钥展开得到的[3,page 16],这里省略。

2约束优化问题考虑优化条件以下约束优化问题

其中微且一阶导数连续,存在非负实数和实数,若为局部最优解,则满足以下条件:

关于这一条件如何推导可以参考文末的参考文献[3,page 210]。 也可以将无约束优化问题的最优条件视为KKT的特殊情况。 一般认为KKT条件是约束优化问题的必要条件。 在这里,需要重申最后的条件。 也就是说,如果这两个约束之一为0,则该约束是起作用的约束,定义为起作用的约束的集合。 此约束是不起作用的约束,也就是说,它没有到达边界,因此移除此约束不会影响最优解的求解方式。

这似乎是众所周知的KKT条件,但实际上上述KKT条件并不完全正确,缺少一个regularity条件。

regularity条件(也成为正则条件或者制约规范)如下

考虑(1.1 )的优化问题。 其中,可微且一阶导数连续,可行解的充要是线性独立的。

也就是说,在使用KKT条件之前必须验证regularity条件。 否则,不能保证基于KKT条件的结论一定成立。

是否缺少regularity条件KKT? 还是最佳解的必要条件? 如果满足regularity条件,KKT是最佳解的必要条件。 必要条件是指满足KKT条件的未必是最佳解(例如鞍点满足KKT,鞍点不是最佳解),但如果不满足KKT条件则一定不是最佳解。 本章用具体的例子进行说明,但如果缺少regularity条件,KKT条件就不是最佳解的必要条件。 分析一下这一特殊情况

为此约束优化了问题的局部最优解,但不满足regularity条件。

因为是线性相关集。

在这个问题上,目标函数、同时也没有等式制约。 很明显,KKT的第一个等式不成立。

进一步分析,不满足KKT条件的原因是什么? 约束太严格了,整个可执行域只有一个点。 此时,其制约最优化问题的最优解,无论其目标函数是什么,其最优解都是。 也就是说,其最优解与目标函数没有任何关系。 这种非常罕见的退化状况使KKT条件无法适用。

学习了物流优化的同学应该还记得另一个接近KKT的定理。 那就是Fritz John条件。 考虑(1.1 )的优化问题。 在此,存在可微且一次导数连续、全部不是0的非负实数和实数,如果是局部最优解,则以下条件成立。

仔细比较KKT条件和Fritz John条件发现,两者的区别在于Fritz John conditions增加了目标函数的乘法因子,完全可以覆盖上述退化情况。 如下式所示。

对于上面的退化情况,只要让就行了。 实际上和的意义相似,表示目标函数不起作用,也就是说目标函数无论怎么变化都不会影响最优解。 相反,对照我们结构的特殊情况来看,确实印证了上述几点。 因此,对于我们列举的退化问题,得到了存在其最佳解,但不满足KKT条件的情况。 那么,去除了regularity条件的KKT条件为最佳解的必要条件实际上是不成立的。 实际上,Fritz John条件才是真正的必要条件,KKT是除不满足regularity条件外可以称为最优解的必要条件。 可以看出,同时分割Fritz John条件式的两边,可以得到KKT条件。

因此在应用KKT条件的时候,一定需要首先检验regularity条件。

4. KKT (最佳条件)为什么这么重要? 我们经常说最好的话

性条件,也经常会用到最优性条件,为啥它就那么重要呢?如果一个优化问题有最优性条件的话,那这个优化问题的性质实际上是比较好的。我目前能想到的是以下两个原因:

1 通过最优性条件可以比较容易的验证任意的一个解是不是最优解,例如KKT条件,它是最优解的必要条件,它就可以把可行域里边很多的不是最优解的解轻松的排除掉,让我们仅仅在满足必要条件(KKT条件)的解里边进一步寻找真正的最优解。混合整数规划问题比较困难的原因之一就是很难找到最优性条件,很多情况下即使验证一个解是不是最优解都比较困难。

2 最优性条件可以指导算法的设计。例如对于无约束可微分的优化问题,我们采用梯度法,ckdjj法,拟ckdjj法等,其收敛性的证明都是证明最终算法能收敛到导数等于0的地方。所以算法的设计都是考虑如何能够收敛到最优性条件去,这样在很多情况下比直接去求解极值要容易的多。

5. KKT和凸优化的关系是什么?

KKT主要是针对带约束的可微分的优化问题,凸优化研究的对象是目标函数为凸函数,约束为凸集的优化问题。因此这两者研究的对象,有交集,也各有不同。

第一类问题为两类问题的交集即带约束的可微分凸优化问题,这类问题目前已经被很好的解决了,它同时具备两类问题的性质,凸优化和可微分性,让原来KKT从局部最优解的必要条件变为全局最优解的充要条件。

第二类问题是凸优化但是不可微分,这类问题也较为常见,在拉格朗日松弛算法中,对偶问题一般都是不可微分的凸优化问题,因为不可微分,传统的基于梯度的方法就不适用了,一般采用次梯度的方法,主要难点在于次梯度如何确定,由于次梯度不唯一,如何确定一个简单有效的次梯度也是一个问题。

第三类问题是可微分的但不是凸优化的,这类问题也很多,一般这类问题都可以采用基于梯度的算法来求解,例如对神经网络的训练多数就属于这类问题。采用梯度法仅仅能保证收敛到局部最优的必要条件而已。因此该类问题的受困于陷入鞍点和全局最优的寻找是很困难的。

总结

1 去掉regularity条件的KKT条件严格来讲并非最优解的必要条件。

2 有最优性条件对优化问题而言是一个较好的性质。

参考文献

[1] Kuhn, H. W.; Tucker, A. W. (1951). "Nonlinear programming". Proceedings of 2nd Berkeley Symposium. Berkeley: University of California Press. pp. 481–492. MR 0047303.

[2] W. Karush (1939). "Minima of Functions of Several Variables with Inequalities as Side Constraints". M.Sc. Dissertation. Dept. of Mathematics, Univ. of Chicago, Chicago, Illinois.

[3] Amir Beck, Introduction to NLP: theory, algorithms, and applications with Matlab, 2014.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。