不等式约束条件下求极值2| 学习笔记

简介: 快速学习不等式约束条件下求极值2。

开发者学堂课程【机器学习算法 :不等式约束条件下求极值2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7265


不等式约束条件下求极值2

 

内容介绍

一、不等式约束条件求极值

二、KKT 条件

三、不等式约束条件下求极值详细过程

 

一、不等式约束条件求极值

对拉格朗日乘子法进行推广,使得其不但能对等式约束进行求极值,还能对小于等于的不等式求极值(如果是大于等于要想办法将其转化成小于等于),即 KKT 条件(Karush-Kuhn-Tucker)。简单讲,只要满足 KKT 条件,就可以构造对应的拉格朗日函数L,求出极值所在的位置。

image.png

hi(x)其中的i存在意义是有可能有多个约束条件。同理k也是相同意义,可以有多个不等值约束条件。若满足 KKT

条件就可以构造拉格朗日函数。

 

二、KKT 条件

KKT 条件(Karush-Kuhn-Tucker):用来判断一个解是否属于一个非线性优化问题的最优解,主要是用于带有不等式约束条件求最优解的情况,利用 KKT 条件,把不等式约束转化为等式约束,然后再把约束条件想办法加到目标函数中,利用求导的方法求出极值。

KKT 条件主要包括:

image.png

1. l 对 x 求偏导,如果 x 所在的值,就是所求的最优值,那么这个式子等于0,对拉格朗日函数取极值时候带来的一个必要条件.

2. 求出满足极值的 x,他的等式约束为0,原有约束

3. g(x)≤0,原有约束

4. image.png≠0,等式约束系数

5. image.png≥0,不等式约束系数

6. image.pngg(x)=0,互补松弛条件,意思为二者结合在一起,会比单独要求其中一个条件松弛一些,只要其中一个等于0就可以了。

 

三、不等式约束条件下求极值详细过程

当全局极值落在不等式约束内时,实际上不等式约束等于没有效果,和无约束求极值是一样的。如果全局极值不满足不等式约束时,则符合条件的极值会出现在不等式约束的边界上。

image.png

1. 若中间黑色点是我们想要的极值点,白色部分是满足约束条件的区域,如果实际全局极值就落在约束条件中,就不会对求极值产生任何影响,极值满足约束条件。

2. 如果真正的极值不满足约束条件,那么要求的极值就是一个新的值,这个新的值肯定不如原来极值好,不是全局来看最优,但是是在满足约束条件下的最有值了。通常极值会出现在不等式约束的边界上。

本例中不等式约束的条件图示如下:

image.png

1. 本例不等式约束 x4<C,当 c 值较大时,极值有可能本来就满足约束条件,没影响。

2. 当 C 值较小时,白色区域变小了,有可能原来全局极值不在约束范围内,这时就对求极值有影响,需要求边界上满足当前约束条件的极值 。

回归本例:

image.png

KKT 条件为:

image.png

接下来只需要解 KKT 条件组成的方程组即可:

image.png

由①得到:2x1+image.png=0、2x2+image.png=0、2x3+image.png=0、2x4+image.png+image.png=0,由于 x4 多了一项不等式约束条件,所以多加一个image.png。整理得到⑦。

代入到②后,再带到⑦中,再带到③

得到结果并整理得到

image.png

C 取值不同,极值的求法不同,所以需要对 C 进行判断,首先将 c 分成三段。

image.png

第一种情况会得出-C-image.png<0,利用 KKT 条件求解。

image.png

第二种情况会得出-C-image.png=0,利用 KKT 条件求解。

image.png

第三种情况会得出-C-image.png>0,利用 KKT 条件求解。

相关文章
|
存储 编译器 C++
C++初阶之一篇文章让你掌握string类(了解和使用)
1.我们为什么要学习string类 学习 string 类是在 C++ 中非常重要的一步,string 类是 C++ 标准库提供的用于处理字符串的类,它相比 C 语言中的字符串处理函数更为高级、灵活和安全。以下是学习 string 类的一些重要理由:
|
9月前
|
人工智能 自然语言处理 算法
AI-Researcher:告别熬夜肝论文!港大开源AI科研神器,从选题到发表全自动
AI-Researcher 是香港大学数据科学实验室推出的开源自动化科研工具,基于大型语言模型(LLM)代理,支持从研究想法到论文发表的全流程自动化,涵盖文献综述、算法设计、实验验证和论文撰写等功能。
861 8
AI-Researcher:告别熬夜肝论文!港大开源AI科研神器,从选题到发表全自动
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
72241 5
详解HTTP四种请求:POST、GET、DELETE、PUT
【2024美国大学生数学建模竞赛】2024美赛E题 问题分析、数学模型、实现代码、完整论文
本文是关于2024美国大学生数学建模竞赛E题的预告,承诺在题目发布后提供问题分析、数学模型、实现代码和完整论文的逐步更新。
418 2
【2024美国大学生数学建模竞赛】2024美赛E题 问题分析、数学模型、实现代码、完整论文
|
机器学习/深度学习 监控 自动驾驶
基于深度学习的动态场景理解
基于深度学习的动态场景理解是一种通过计算机视觉技术自动分析和解释动态环境中物体、事件和交互的能力。该技术在自动驾驶、智能监控、机器人导航、增强现实等领域有着广泛应用。
389 1
|
机器学习/深度学习 人机交互 计算机视觉
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
|
算法 程序员 C语言
【C++ 模板和迭代器的交融】灵活多变:使用C++模板精准打造自定义迭代器
【C++ 模板和迭代器的交融】灵活多变:使用C++模板精准打造自定义迭代器
215 0
|
SQL 关系型数据库 MySQL
【MySQL】:分组查询、排序查询、分页查询、以及执行顺序
【MySQL】:分组查询、排序查询、分页查询、以及执行顺序
585 0
|
机器学习/深度学习 算法 双11
强化学习在阿里的技术演进与业务创新 | 免费资料库
强化学习是最接近于⾃然界动物学习的本质的⼀种学习范式。然⽽强化学习从提出到现在,也差不多有半个世纪左右,它的应⽤场景仍很有限,规模⼤⼀点的问题就会出现维数爆炸,难于计算,所以往往看到的例⼦都是相对简化的场景。
3166 0
强化学习在阿里的技术演进与业务创新 | 免费资料库
|
机器学习/深度学习 算法 开发者
不等式约束条件下求极值1| 学习笔记
快速学习不等式约束条件下求极值1。
不等式约束条件下求极值1| 学习笔记