对偶问题和KKT条件

news/2024/10/31 5:27:49/

KKT条件

对于不等式约束优化问题

min ⁡ f ( x ) s . t . g ( x ) ≤ 0 \min\quad f(x)\\ {\rm s.t.}\quad g(x)\leq 0 minf(x)s.t.g(x)0

拉格朗日函数为 L ( x , λ ) = f ( x ) + λ g ( x ) L(x,\lambda)=f(x)+\lambda g(x) L(x,λ)=f(x)+λg(x)

KKT条件包括

  • 拉格朗日函数的定常方程式: ∇ x L = ∇ f + λ ∇ g = 0 \nabla_x L = \nabla f+\lambda\nabla g=0 xL=f+λg=0
  • 原始可行性: g ( x ) ≤ 0 g(x)\leq 0 g(x)0
  • 对偶可行性: λ ≥ 0 \lambda\geq 0 λ0
  • 互补松弛性: λ g ( x ) = 0 \lambda g(x)=0 λg(x)=0

假设 x ∗ x^* x 为满足约束条件的最佳解

  • g ( x ∗ ) < 0 g(x^*)<0 g(x)<0:最佳解在可行域的内部,称为内部解,此时约束条件无效 x ∗ x^* x 满足 ∇ f = 0 , λ = 0 \nabla f = 0, \lambda = 0 f=0,λ=0
  • g ( x ∗ ) = 0 g(x^*)=0 g(x)=0:最佳解在可行域的边界,称为边界解,此时约束条件有效,约束不等式变成约束等式 g ( x ) = 0 g(x)=0 g(x)=0 。并且,此时 ∇ f \nabla f f 一定指向可行域内部,而 ∇ g \nabla g g 一定指向可行域外部,而 ∇ f + λ ∇ g = 0 \nabla f+\lambda\nabla g=0 f+λg=0 ,得到 λ ≥ 0 \lambda\geq 0 λ0

在这里插入图片描述

因此,不论是内部解还是边界解, λ g ( x ) = 0 \lambda g(x)=0 λg(x)=0 恒成立,也就是互补松弛条件

原始问题和对偶问题

min ⁡ x f ( x ) s . t . c i ( x ) ≤ 0 , i = 1 , 2 , ⋯ , K h j ( x ) = 0 , j = 1 , 2 , ⋯ , L \min_x\quad f(x)\\ {\rm s.t.} \begin{aligned} \quad &c_i(x)\leq 0, \quad i=1,2,\cdots, K\\ &h_j(x)=0, \quad j=1,2,\cdots, L \end{aligned} xminf(x)s.t.ci(x)0,i=1,2,,Khj(x)=0,j=1,2,,L

拉格朗日函数

L ( x , α , β ) = f ( x ) + ∑ i = 1 K α i c i ( x ) + ∑ j = 1 L β j h j ( x ) L(x,\alpha,\beta) = f(x)+\sum_{i=1}^K \alpha_ic_i(x)+\sum_{j=1}^L \beta_j h_j(x) L(x,α,β)=f(x)+i=1Kαici(x)+j=1Lβjhj(x)

原始问题

是先取关于拉格朗日乘子 α , β \alpha,\beta α,β max ⁡ \max max ,再取关于参数的 min ⁡ \min min

因为 α ≥ 0 \alpha\geq 0 α0 ,因此在可行域外( c i ( x ) ≤ 0 c_i(x)\leq 0 ci(x)0),如果取 α \alpha α 接近于正无穷,那么 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 也会趋近于正无穷,只有在可行域内,才存在max,也就是 f ( x ) f(x) f(x)

对偶问题

先取关于参数的 min ⁡ \min min ,再取关于拉格朗日乘子 α , β \alpha,\beta α,β max ⁡ \max max

显然,对偶问题的最小值一定小于等于原始问题的最小值。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考

Karush-Kuhn-Tucker (KKT)条件
统计学习方法 李航


http://www.ppmy.cn/news/62542.html

相关文章

Mysql安装5分钟解决

文章目录 1.下载安装包&#xff1a;2.MySQL的初始配置3.安装mysql的服务&#xff1a;4.初始化MySQL命令&#xff1a;5.开启mysql服务命令&#xff1a;6.登录验证&#xff1a;7.修改密码&#xff1a; 1.下载安装包&#xff1a; 直接通过这里安装MYSQL5.7下载链接 或者进入MySQL…

Qt音视频开发45-音视频类结构体参数的设计

一、前言 视频监控内核组件重构和完善花了一年多时间&#xff0c;整个组件个人认为设计的最好的部分就是各种结构体参数的设计&#xff0c;而且分门别类&#xff0c;有枚举值&#xff0c;也有窗体相关的结构体参数&#xff0c;解码相关的结构体参数&#xff0c;同时将部分常用…

深入理解Java虚拟机——垃圾回收算法

1.前言 垃圾回收需要完成的三件事 首先我们需要明白垃圾回收需要完成的三件事&#xff1a; 哪些内存需要回收 堆内存中的对象所使用的内存方法区中的废弃的常量以及不再使用的类型 什么时候回收 当对象死亡方法区中某些内容&#xff08;常量和类型&#xff09;不再被使用 如…

谈谈 地下水数值模拟Visual modflow Flex

Visual MODFLOW Flex是行业标准规范软件&#xff0c;将地下水流和污染物运移、基本分析和校准工具&#xff0c;以及强大的三维可视化功能集成在一个单一的&#xff0c;易于使用的软件环境中。 使用Visual MODFLOW Flex&#xff0c;用户将拥有所有的工具&#xff0c;可用来解决…

CentOS7下Oracle12.2c静默安装

CentOS7下Oracle12.2c静默安装 1、环境版本 操作系统&#xff1a; [rootbigdata oracle]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 数据库版本&#xff1a; Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production PL/SQL Re…

操作系统 | readline库的用处与安装方法

文章目录 一、关于readline库二、安装readline库 这里我们来讨论一下readline库的用处与安装方法 代码以shell为例&#xff0c;readline实现上下键操作选择用户最近输入的 30 个命令 一、关于readline库 简介&#xff1a;GNU Readline是一个跨平台开源程序库&#xff0c;提供交…

基于logback 实现springboot的日志配置

目录 一、前言 二、使用详解 2.1、打印到文件中 2.2、打印级别控制 2.3、logback 详细配置 2.4、logback 配置文件的组成 2.4.1、<root>标签 2.4.2、<contextName>标签 2.4.3、<property>标签 2.4.4、<appender>标签 2.4.5、<logger&g…

#include<fstream>

#include <fstream> 是C程序中常用的预处理指令&#xff0c;它包含了fstream库。这个库提供了用于处理文件输入/输出的类。fstream库主要包括以下几个类&#xff1a; std::ifstream&#xff1a;用于从文件读取数据的输入文件流类。std::ofstream&#xff1a;用于向文件写…