拉格朗日松弛与拉格朗日分解 lagrangian relaxation

news2025/1/13 13:09:47

首先介绍下拉格朗日松弛的出发点,以及该方法所属的门类;再介绍下拉格朗日松弛法需要处理的难点和注意事项。

目录

1.拉格朗日松弛出发点

2.拉格朗日松弛所属分类

3.拉格朗日松弛

3.1 拉格朗日松弛(松弛全部,转化为无约束问题)

3.2 拉格朗日分解(只松弛部分约束)

3.2.1 简单可分离问题——满足可分离性

3.2.2 非可分离性问题——需要上拉格朗日分解(松弛部分约束)


1.拉格朗日松弛出发点

对于min问题而言,众所周知线性松弛可以提供一个下界,线性松弛很简单,即把决策变量的整数约束松弛为连续约束,这个界并不好。

因此我们期望找到一个更好的下界,这样上下界之间差距gap小,后续使用分支定界就可以剪去更多分支,求解效率就可以提升了。同样提升下界的方法,还有添加割平面,有效不等式,这些方法本质也是通过添加约束,砍掉外围的部分,通过缩小可行域,来让解提到提升(下界变大)。

所以综上:

(1)拉格朗日松弛得到的下界会比线性松弛得到的下界要好。

(2)每一个拉格朗日乘子对应着一个界,我们期望找到最好的下界,这句话等同于找到最好的拉格朗日乘子

这是我们的出发点。

2.拉格朗日松弛所属分类

张老师提到ARRD的方法,是求解优化问题的四条路径:

A:approximate,近似算法

R:reformulation,重写模型,像DW分解,列生成,就属于这个脉络;

R:relaxation,松弛,线性松弛,拉格朗日松弛属于这个脉络;

D:decomposition,分解算法,本质是降维,benders分解,拉格朗日分解属于这一脉络。

换句话说拉格朗日算法还挺牛的,横跨拉格朗日松弛和拉格朗日分解两条路径。

3.拉格朗日松弛

拉格朗日松弛的思路和做法是,对于约束引入拉格朗日乘子,然后构造拉格朗日函数。注意,拉格朗日函数会比原问题的解更好,因为原目标函数中引入的拉格朗日项让原目标函数min问题更小,让原目标函数max问题更大了。因此我们对于min问题而言,在所有的拉格朗日乘子构造的拉格朗日函数中取max,往上拉大下界,从而可以得到拉格朗日松弛所能得到的最好的下界;对于max问题而言,在所有拉格朗日函数中取min,往下拉低上界。

拉格朗日松弛后的拉格朗日函数的形式,可以分为两种类型,(此处默认是松弛所有约束):

(1)一种是经过分析后不再含有原变量,只含有拉格朗日乘子,也叫作只含有拉格朗日乘子的显示表达。此时,直接求解,就可以得到最好的拉格朗日乘子,也就是我们说的对偶变量。——线性规划的对偶规划就是这么得到的。详见3.1。

(2)同时含有原函数的变量和拉格朗日乘子,也叫作非显示表达。有两种处理途径:一种是外逼近法,或者是只松弛部分约束即拉格朗日分解法。详见3.1种注意点(2)及3.2。

3.1 拉格朗日松弛(松弛全部,转化为无约束问题)

经过合并同类项,以及分析(各种场景,这一步是核心,可见注意点1里的分析),这样就能够使得拉格朗日函数得到的下界最好,最好的下界对应的乘子就是最好的乘子,也是我们说的对偶变量。(以下全部以min问题为例,只要不提,默认就是min问题。)

线性规划的对偶规划就是通过拉格朗日松弛推理分析得到的。

注意点:

(1)拉格朗日松弛得到的最好下界即使是可行解,也不一定是原问题的最优解。

因为新目标函数中还存在拉格朗日乘子项,除非拉格朗日乘子项=0(下图中的μ(b-Ax)=0,此时L(μ)=mincx也就是原来的目标函数),即被松弛约束的互补松弛性成立,再具体点说:要么乘子为0,要么被松弛的约束等式成立,(这就是KKT条件的3个条件之一)。

 (2)拉格朗日松弛后的拉格朗日函数有两种类型:

a)一种是经过分析后不再含有原变量,只含有拉格朗日乘子,比如我们上面介绍的拉格朗日松弛得到对偶。

b)还有一种是无法分析,此时拉格朗日函数中同时含有原变量和拉格朗日乘子两类变量。那么我们的方式是先固定原变量,此时拉格朗日函数中只含有拉格朗日乘子一类变量了。具体的方法是我们通过列举原变量取值的可能,或者列举部分可能,这样拉格朗日函数中仅含有拉格朗日乘子一类变量,然后求解,得到乘子;再得到新的原变量取值,再求解继续得到新乘子......这是外逼近法的思路。在非线性规划问题中用的多。

3.2 拉格朗日分解(只松弛部分约束)

由于非显示表示的拉格朗日函数不好处理,我们通常采用只松弛部分约束的方式。也就是拉格朗日分解这条路。

分解的本质是降维。按照问题的难易(是否满足分离性),可以将所有的优化问题分为两类:

3.2.1 简单可分离问题——满足可分离性

对于一个优化问题而言,如果
• (1) 约束条件彼此之间互相独立(约束中只含有某类变量,不会有多类变量混合的情况。混合的也被叫做耦合/链接约束),
• (2) 目标函数可以写成对应元素的和的形式

我们称这样的问题为可分离问题。对于可分离问题,我们可以对其进行分解,分解成一个个的独立子问题,子问题往往是容易求解的。求解完独立子问题之后,再求和就可以得到原问题的解,原问题的最优解就等于子问题的最优解之和。

总之,对于满足可分类的问题而言,子问题之间是互相独立的,目标函数也是互相独立的,那么原问题可以拆成若干个子问题,原问题的目标函数也是这若干个子问题的累加。

3.2.2 非可分离性问题——需要上拉格朗日分解(松弛部分约束)

如果约束条件不具备上述可分离性,那么需要上拉格朗日分解了!拉格朗日分解的本质还是拉格朗日松弛。先进行拉格朗日松弛处理,通过拉格朗日松弛的方式把一些复杂的约束条件放到目标函数上进行处理,之后再对问题进行分解。

这种处理方法的难点在于:

(1)松弛哪些约束——直接决定着子问题好不好解,常见的思路是看处理后的子问题是否具有特殊结构,比如形如背包约束的等等;

(2)解出来的好不好——间接决定着得到的下界怎么样,也是需要注意的一个问题。

总结:

1.拉格朗日松弛其实是想找最好的下界,这等同于找最好的乘子。一个拉格朗日乘子对应着一个下界。

2.假如拉格朗日函数可以写出显示表达,那么就可以直接得到原问题的对偶,直接找到最好的拉格朗日乘子。

3.拉格朗日得到的下界即使是原问题的可行解,也不一定是原问题的最优解,因为存在着拉格朗日乘子项,除非该项为0。

4.拉格朗日松弛掉部分约束的时候,这部分约束应该怎么选,直接决定着子问题求解的难易,以及求解结果的好坏。基本的出发点是处理那些子问题具有特殊结构的约束松弛掉;或者是耦合约束。

运筹优化课程 013-Lagrangian relaxation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/577450.html

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

相关文章

【秒懂·云原生】微服务篇 —— Spring Cloud Commons:公共抽象

🔎这里是【秒懂云原生】,关注我学习云原生不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【秒懂云原生】 目前主要更新微服务,…

ClickHouse安装部署

—仅供学习 如有侵权 请联系删除– 一、下载 选择Tgz安装包安装 下载地址:Index of /clickhouse/tgz/ 选择stable目录下的安装包,采用21.9.4.35版本,分别是: [roothadoop08 resources]# ll 总用量 1023548 -rw-r--r--. 1 root …

JavaEE HTTP应用层协议

HTTP应用层协议 文章目录 JavaEE & HTTP应用层协议1. HTTP的报文协议格式1.1 fiddler介绍1.2 HTTP请求1.3 HTTP响应 2. HTTP请求与响应2.1 首行2.1.1 http方法2.1.2 URL2.1.3 版本号 2.2 header与空行2.2.1 Host2.2.2 Content-Type 与 Content-Length2.2.3 User-Agent&…

基于JavaWeb的事业单位公务员招考信息发布平台-考务考试报名系统

本文介绍了使用Java技术开发公务员招考信息发布平台的设计与实现过程,首先对实现该系统的技术进行分析,说明选择Java和MySQL数据库的必要性,然后对公务员招考信息发布平台的需求进行分析。并接着对系统进行设计,包括架构设计、功能…

用Python实现问卷星自动填写(超详细!!!)

用Python实现问卷星自动填写(超详细!!!) 前言一、配置环境1.1安装依赖1.2安装驱动 二、实战处理2.1、引入库函数2.2、程序所需函数详解(1)自定义单选函数(2)自定义多选函…

基于STM32的DHT11温湿度测量

目录 1.简介 2.主要参数 3.引脚说明 4.注意事项 5.单总线协议 6.数据格式 7.工作时序 8.分模块编写程序 1.简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠…

【数据分类】PNN数据分类 概率神经网络数据分类【Matlab代码#31】

文章目录 【可更换其他算法,获取资源请见文章第6节:资源获取】1. 模式识别之数据分类2. 概率神经网络(PNN)3. 基于PNN的数据分类步骤4. 部分代码展示5. 仿真结果展示6. 资源获取说明 【可更换其他算法,获取资源请见文章…

web基础与HTTP服务

web基础与HTTP服务 一、web基础1、域名1.域名概述2.域名的结构3.域名注册 2、网页与HTML1.网页概述网页分类动态网页语言编程语言如下 2.HTML概述HTML 基本标签Web概述 二、HTTP服务1、HTTP版本2、HTTP请求方法3、GET 和 POST 区别4、HTTP状态码1.HTTP常见状态码 5、HTTP 请求流…

关于安卓以及微软用户chatgpt上一篇文章如今第五点无法正常进入更新解决方法以及附加本地部署

目录 一、问题出现: 1、问题: 原因: 二、解决办法(本地部署chatgpt) 1、解决(国内网络使用真的chatgpt并非镜像)一次部署终生使用 第一步: ​编辑第二步: 三、实现结…

S32K144开发板

目录 一.S32K144开发板概述 二.产品技术和功能规格 三.开发环境 1.S32K144的开发环境主流是这么三种: 2.开发板Demo工程 四.S32K144开发板实物图 五、汽车大灯硬件架构 一.S32K144开发板概述 S32K14…

Linux (centos)中文乱码问题解决 及说明

首先要区别3个概 :编码集、字符集、字体 是完全不同的东西,我们要解决的是字符集问题。 当一个系统初始化完毕后,会生成一个 /usr/lib/locale/locale-archive 文件,这个是字符集二进制文件,是系统不同语言运行的核心&…

计算机网络四 网络层

网络层的作用 网络层是计算机网络中的一个重要层次,它的主要作用是实现不同网络之间的通信和数据传输。网络层通过将数据分组并添加路由信息,使得数据可以在不同的网络之间传输。 网络层功能 异构网络互连 异构网络互连是指将不同类型的网络连接起来…

C++ 学习 ::【基础篇:07】:C++ C11 标准中 关键字 auto 的基本介绍与使用

本系列 C 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C 学习系列将分为三个阶段:基础篇、STL 篇、高阶数据结构与算法篇,相关重点内容如下: 基础篇:类与对象(涉及C的三大特性等&#…

redis 五种数据类型简介

redis的五种数据类型是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sort set (有序集合…

【初识 Docker | 中级篇】 Docker 安装 MySQL

文章目录 前言一、安装 docker1、安装docker2、安装docker-compose 二、mysql 单机安装1.创建mysql配置1.1.创建目录1.2.创建docker-compose.yml 2.启动mysql容器 三、mysql 主从复制安装1.主服务器容器配置1.1.修改my.cnf配置文件1.2.重启容器实例,创建同步用户 2.…

【 TensorFlow】URLError: <urlopen error no host given> 错误的 有效的解决方法

URLError: 错误的 有效的解决方法😎 前言🙌错误运行截图:解决方案流程图:运行成功截图 总结撒花💞 😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!&a…

opencv_c++学习(二十六)

一、ORB特征点 ORB特征点计算步骤: Step1:选择某个像素点作为中心点P,其像素值为I。 Step2:设置判定FAST角点(其方法比较两个像素之间的差值)的像素阈值,例如 T p 20 % ∗ I p T_p 20\%*I_p Tp​20%∗Ip​ Step3:比较中心点的像素值与半径为3的圆周上…

传统加密技术(恺撒+仿射)

1.Caesar cipher恺撒密码 是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 加密对象:英文字母 密钥格式:k&#…

哈希表、unordered_map和unordered_set模拟

目录 哈希表 闭散列 开散列 unordered_map和unordered_set模拟 对开散列的哈希表改造 unordered_set模拟 unordered_map模拟 哈希表 哈希概念:通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该…

当下的程序员该如何面对复杂的就业坏境

已经2023年了,我们都知道现在开发趋向于年轻化,大部分都是90后、95后,毕竟,软件开发不像硬件开发一样,年限越高,相对来说越吃香。 31岁,前端工程师,工作经历8年,7年左右都在外包公司…