对偶问题和KKT条件

news2024/11/18 13:40:25

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.coloradmin.cn/o/492589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享5款轻量级的Win10神器,错过你会后悔的

今天我要为大家推荐五款小众而且小体积的WIN10小工具&#xff0c;它们可以让你的电脑使用更加方便和高效&#xff0c;而且不占用太多的空间和资源&#xff0c;非常适合轻量级的办公和娱乐。 1.窗口管理工具——TileIconifier TileIconifier可以将窗口最小化到托盘区域,从而更…

在Android应用中集成使用traceroute工具

背景知识 traceroute是一个常用于Linux系统的网络工具&#xff0c;它可显示数据包在IP网络中所经过路由的IP地址&#xff0c;理想状态下可探测本机和目标地址之间的所有路由节点。 其他操作系统中也有类似的替代品&#xff0c;实现都大同小异。一般用法如下&#xff1a; 终端…

【TCP为什么需要粘包和拆包】

如今&#xff0c;大半个互联网都建立在 TCP 协议之上&#xff0c;我们使用的 HTTP 协议、消息队列、存储、缓存&#xff0c;都需要用到 TCP 协议——这是因为 TCP 协议提供了可靠性。简单来说&#xff0c;可靠性就是让数据无损送达。但若是考虑到成本&#xff0c;就会变得非常复…

一文带你理解SpringBean

Bean定义 ​ Bean作为Spring框架面试中不可或缺的概念&#xff0c;其本质上是指代任何被Spring加载生成出来的对象。&#xff08;本质上区别于Java Bean&#xff0c;Java Bean是对于Java类的一种规范定义。&#xff09;Spring Bean代表着Spring中最小的执行单位&#xff0c;其…

如何用ApiFox自动生成接口文档?没有比这更详细的教程了

目录 前言 第一步&#xff1a;安装 Apifox IDEA 插件&#xff08;Apifox Helper&#xff09; 第二步&#xff1a;配置 Apifox 访问令牌 和项目 ID 第三步&#xff1a;自动生成文档&#xff01; 第四步&#xff1a;去 Apifox 项目中查看自动生成的文档 Apifox 更多好用的功能…

Addictive Multiplicative in NN

特征交叉是特征工程中的重要环节&#xff0c;在以表格型&#xff08;或结构化&#xff09;数据为输入的建模中起到了很关键的作用。 特征交互的作用&#xff0c;一是尽可能挖掘对目标有效的模式、特征&#xff0c;二是具有较好的可解释性&#xff0c;三是能够将对数据的洞见引…

一文教会你如何重装Windows10系统【过程+图解+说明】

前言 申请了一台台式机电脑&#xff0c;操作系统是windows11的&#xff0c;要windows10的系统。电脑不能连网&#xff0c;身为程序员&#xff0c;我竟然想着别人远程帮我安装&#xff0c;可恶呐。之前也没重装过系统。第一次重装遇到了一些坑。我甚至在拼夕夕上花了几块钱买个镜…

python-使用Qchart总结5-使用信号槽绘制动态曲线图

python-使用Qchart总结3-绘制曲线图在这篇文章基础上&#xff0c;来改造一下&#xff0c;绘制一下动态曲线图吧 一、明确需求 ①点击按钮&#xff0c;开始动态加载曲线&#xff0c;细节:一个一个点加载出来 二、实现 ①在UI上添加按钮&#xff0c;打开原先的untitled.ui文件…

【Linux】浅谈eloop机制

目录 1.eloop 机制 2.eloop结构体 2.1.eloop_data结构体 2.2 Socket事件结构体 2.3 Timeout事件结构体 2.4 Signal事件结构体 3.eloop_init 4.eloop_run 4.1 signal事件 4.2 socket事件 4.3 timeout事件 1.eloop 机制 主线程中启动事件监听机制&#xff0c;对不同的…

【Python入门】字符串的扩展

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于Python零基础入门系列&#xff0c;本专栏主要内容为Python基础语法、判断、循环语句、函…

Nginx介绍及安装

简介 Nginx 是一个高性能的 HTTP 和反向代理服务器。它最初由 Nigel Cook 开发&#xff0c;旨在解决 Apache 服务器在高并发环境下性能瓶颈的问题。Nginx 具有占用资源少、处理能力强等优点&#xff0c;在互联网应用中广泛应用于静态资源服务、反向代理、负载均衡、HTTP缓存、…

2023年web前端开发之JavaScript进阶(一)

接上篇博客进行学习,通俗易懂,详细 博客地址: 2023年web前端开发之JavaScript基础(五)基础完结_努力的小周同学的博客-CSDN博客 学习内容 学习 作用域、变量提升、 闭包等语言特征&#xff0c;加深对 JavaScript 的理解&#xff0c;掌握变量赋值、函数声明的简洁语法&#xff0…

rs485转tcp网关盒子怎么用(rs485协议转以太网tcp/ip)

随着工业自动化技术的不断发展&#xff0c;越来越多的工业设备在使用时需要进行数据通信。其中&#xff0c;RS485通信协议是一种常见的工业通信协议&#xff0c;而TCP/IP协议则是互联网通信的标准协议。为了实现RS485协议与TCP/IP协议之间的通信&#xff0c;可以使用RS485转TCP…

【Java】面试常问知识点(Java基础—2)

Java基础 多线程的状态 新建状态 当用new操作符创建一个线程时&#xff0c; 例如new Thread(r)&#xff0c;线程还没有开始运行&#xff0c;此时线程处在新建状态。 当一个线程处于新生状态时&#xff0c;程序还没有开始运行线程中的代码 就绪状态 一个新创建的线程并不自动…

ChatGLM-6B微调与部署

文章目录 基于ChatGLM-6B的推理与部署配置环境与准备配置环境模型文件准备 代码运行 Demo命令行 Demo基于 Gradio 的网页版 Demo基于 Streamlit 的网页版 Demo 基于peft框架的LoRA微调ChatGLM-6B配置环境与准备配置环境模型文件准备数据准备数据处理 微调过程 基于P-Tuning v2微…

stm32影子寄存器、预装载寄存器,TIM_OC1PreloadConfig和TIM_ARRPreloadConfig的作用

一直没搞清楚stm32定时器的TIM_OC1PreloadConfig、TIM_ARRPreloadConfig函数的作用&#xff0c;影子寄存器、预装载寄存器、重载寄存器的概念。今天来研究一下&#xff1a; 首先看定时器的框图&#xff1a; 图中有阴影的小方框&#xff0c;代表该功能对应的寄存器有影子寄存器&…

Canal实战使用(集群部署)和原理解析

1.mysql数据同步工作原理 MySQL master将数据变更写入二进制日志(binary log&#xff0c;其中记录叫做二进制日志事件binary log events&#xff0c;可以通过 show binlog events 进行查看) MySQL slave将master的binary log events拷贝到它的中继日志(relay log) MySQL slav…

Java基础(十八)网络编程

1. 网络编程概述 Java是 Internet 上的语言&#xff0c;它从语言级上提供了对网络应用程序的支持&#xff0c;程序员能够很容易开发常见的网络应用程序。 Java提供的网络类库&#xff0c;可以实现无痛的网络连接&#xff0c;联网的底层细节被隐藏在 Java 的本机安装系统里&am…

软件测试培训了几个月,找到工作了,面试经验分享给各位

面试问的一些基本问题 功能方面&#xff1a;问的最多的就是测试流程&#xff0c;测试计划包含哪些内容&#xff0c;公司人员配置&#xff0c;有bug开发认为不是 bug怎么处理&#xff0c;怎样才算是好的用例&#xff0c;测试用例设计方法&#xff08;等价类&#xff0c;边界值等…

无线之红外线技术的组网方式详解

红外线(Infrared rays)也是一种光线&#xff0c;由于它的波长比红色光750nm)还长&#xff0c;超出了人眼可以识别的可见光&#xff09;范围&#xff0c;所以我们看不见它&#xff0c;又称为红外热辐射(Infrared radiation)&#xff0c;通常把波长为0.75&#xff5e;1000μm的光…