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

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 快速学习不等式约束条件下求极值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 条件求解。

相关文章
|
安全 算法 项目管理
GitLab权限级别介绍
GitLab权限级别介绍
2279 4
|
存储 编译器 C++
C++初阶之一篇文章让你掌握string类(了解和使用)
1.我们为什么要学习string类 学习 string 类是在 C++ 中非常重要的一步,string 类是 C++ 标准库提供的用于处理字符串的类,它相比 C 语言中的字符串处理函数更为高级、灵活和安全。以下是学习 string 类的一些重要理由:
|
数据可视化 数据挖掘
【数据分析与可视化】对图像进行SVD分解并重构图像实战(附源码)
【数据分析与可视化】对图像进行SVD分解并重构图像实战(附源码)
663 0
|
安全 固态存储 文件存储
Windows 7纯净版重装教程|附微软原版镜像下载+驱动安装避坑技巧
本文详细介绍如何安全、高效地重装电脑系统,解决蓝屏、崩溃等问题。基于10年经验,涵盖从官方镜像获取、启动盘制作、数据备份到系统部署的全流程,并针对老旧机型优化。提供驱动一键安装工具和系统激活指南,确保无后门风险。文中还列出常见问题解决方案及操作禁忌,帮助用户顺利完成系统重装,让电脑重获新生。建议收藏并转发给有需要的朋友,欢迎留言咨询疑难问题。
52867 3
|
数据安全/隐私保护
基于矢量控制器的PMSM永磁同步电机速度控制系统simulink建模与仿真
本课题基于MATLAB2022a,通过Simulink建模与仿真,实现PMSM永磁同步电机速度控制系统的矢量控制。系统采用PID控制器调节转速,输出包括电机转速跟踪曲线、PID控制器输出曲线及电磁转矩Te曲线。PMSM以其高效率和良好动态响应广泛应用于工业自动化和电动汽车领域。矢量控制利用Clarke和Park变换,将静止坐标系转换为旋转dq坐标系,实现电流解耦与精确控制,简化系统复杂度。仿真结果无水印,提供完整程序与模型。
|
存储 安全 IDE
电脑开机时报错No Bootable Device找不到索引的解决方法
【9月更文挑战第1天】当电脑开机时报错 “no bootable device”(找不到可引导设备),可能原因包括硬件连接问题、引导顺序设置错误、系统引导文件损坏及 BIOS 设置问题。解决方法有检查硬盘连接与状态、调整 BIOS 引导顺序、使用安装盘修复引导文件、检查硬盘模式设置及恢复 BIOS 默认设置等。若问题依旧,建议寻求专业维修帮助,并备份重要数据。
9811 9
|
机器学习/深度学习 人机交互 计算机视觉
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
基于YOLOv8深度学习的人脸面部表情识别系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
|
机器学习/深度学习 算法 双11
强化学习在阿里的技术演进与业务创新 | 免费资料库
强化学习是最接近于⾃然界动物学习的本质的⼀种学习范式。然⽽强化学习从提出到现在,也差不多有半个世纪左右,它的应⽤场景仍很有限,规模⼤⼀点的问题就会出现维数爆炸,难于计算,所以往往看到的例⼦都是相对简化的场景。
3426 0
强化学习在阿里的技术演进与业务创新 | 免费资料库
|
SQL 关系型数据库 MySQL
MySQL - IS NOT NULL 和 != NULL 的区别?
MySQL - IS NOT NULL 和 != NULL 的区别?
1225 0
|
机器学习/深度学习 人工智能 算法
【机器学习】深度神经网络(DNN):原理、应用与代码实践
【机器学习】深度神经网络(DNN):原理、应用与代码实践
3988 1

热门文章

最新文章