线性规划学习
线性规划学习笔记
线性规划
定义
定义
线性规划的性质
定义 标准型
标准型线性规划要求满足如下形式:
所有线性规划问题都可以用标准型描述。
对于无限制的变量
标准型可以用矩阵表示。
为了方便地求解线性规划,需要所有约束都是等式。
定义 松弛型
松弛型线性规划要求满足如下形式
标准型转化为松弛型是容易的。
由于每一个线性不等式的解空间都是一个凸型区域,所以整个解空间也是一个凸型区域。
所以只有一个局部最优解,因此使用一个类似爬山的算法就不用担心停滞在局部最优解。
所以就引出了单纯形法。
单纯形
算法描述
其核心是转轴操作,即变量的代换。
首先有一些定义:
单纯形算法有两个主要的操作:转轴操作以及
而转轴操作的作用是选择一个基变量
具体地,一开始有
当然,在选择
即进行一次转轴后,我们也同步的将新的等式带入其他等式,然后带入我们最大化的式子,常数项显然就是我们当前维护的松弛型线性规划基本解对应的答案。
如目标函数有正的系数,那么就意味着目标函数有可能可以被进一步增大,所以我们就持续进行转轴操作直到所有系数为负。
而 转轴 操作对换入和换出变量的选取,每次选择一个在目标函数中系数为正的增大,令其为换入变量,然后考虑增大他,但增大往往有限制,我们在这些限制中选一个最紧的限制,令其基变量为换出变量,然后进行代换。
如果我们无法找到约束条件,说明这个线性规划是无界的。
关于初始化,有时候我们可能无法通过将所有非基变量赋为
我们可以通过引入一个辅助线性规划:
容易发现,这个线性规划的最优解中
我们不能通过全部赋为
之后,第
其余约束变为
操作之后,辅助线性规划就有一个将非基变量赋为
单纯形法的时间复杂度
不是多项式算法,但很快,不说了。
但一般线性规划问题可以在多项式复杂度解决。
对偶问题
论文的引入中给出了一个有意思的现象,我们尝试去用我们限制中的不等式去拟合我们的目标式子,然后可以将最小化转化为最大化的线性规划问题。
举个论文中的例子:
考虑下面的线性规划:
这个可以变换成如下样子:
然后我们的目标就是在满足相关限制的情况下最大化
我们称初始的线性规划为 原问题,新得到的线性规划为 对偶问题。我们对对偶问题再对偶一次其实就是原问题。也就是说一个最大问题可以对偶成最小问题,最小问题也可以对偶成最大问题。
下面给出形式化定义:
定义6.1 对偶问题
给定一个原始线性规划:
定义它的对偶线性规划为:
结合引子中的例子,这是容易理解的。
线性规划对偶性
哦,这一段论文阐述了这个对偶过程正确性。我知道它很正确啦!
互松弛定理: 若
对于所有
一些经典问题的对偶
网络流最大流
这个可以由线性规划对偶直接得到。
定理:网络流最大流等于最小割。
二分图最大权匹配问题
我确实会推导力!
定理 在一张带权二分图中,最大权匹配等于最小顶标和。
定理 二分图中,最大匹配数等于最小点覆盖数。
一般来说,我们倾向于将最小顶标和转化为最大权匹配。
例题
「SHOI2004」最小生成树
一条非树边的权值必须大于与其形成圈的树边的权值,以此形成做限制形成对偶。
这实际上就是一个二分图最小顶标和问题,可以转化成二分图最大权匹配。
这个与上道题很像,可以直接一样列出线性规划,然后就可以写出对偶式子,根据对偶式子可以直接建出最大费用可行流的模型了。
数据范围有点大,大概要使用势能
「ZJOI2013」防守战线
容易发现,这个题目直接就是一个线性规划的形式,对偶完之后好看了一些,直接可以拆点费用流处理。
「BZOJ1283」序列
感觉会是一个典题。
先写出一个线性规划的形式,然后就可以直接扫一遍贪心力!
为什么不对捏。哦,原始线性规划少条件了。
对偶完其实就和志愿者招募是一样的,你说的对,但我网络流建图不太会了。
去复习了一轮!
「ZJOI2020」序列
条件是恰好变成
先直接构造线性规划。首先会有
线性规划感觉还是用笔做着舒服。
对偶完只剩下
也不是那么抽象,因为一些特殊区间的限制,每个位置的取值变成了
考虑
线性规划是强大的。
「雅礼集训 2018 Day8」B
安装时间其实是这个有向无环图的一条最长路。这意味着所需时间其实很难描述。
这个最长路大概也可以用线性规划描述。就是按照边和每个软件包的结束时间描述,建立超源超汇即可表示答案。
于是我们就得到了一个有
考虑二分那个单独存在的不等式的系数,那是不是可以构造费用流?
特别扭曲的形式。换个办法,我们二分最小的时间,计算最小的代价。
然后给线性规划对偶一下就可以容易地进行费用流的构建。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix