ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

线性规划学习笔记

2022-02-15 08:31:44  阅读:241  来源: 互联网

标签:线性规划 max sum cdots 笔记 学习 ge forall


线性规划

Introduction

线性规划,粗糙地看来就是对于线性的约束(等、不等)和线性的目标求极值。

可以写成以下形式:

  1. 标准形

    \[\forall i, \sum_{j} a_{i, j}x_{j} \le b_i \\ \forall i, x_i \ge 0 \\ \max \sum_{i} c_ix_i \]

    亦(向量形式)

    \[AX \le B \\ X \ge 0 \\ \max C^{T}X \]

  2. 松弛形

    \[AX=B \\ X \ge 0 \\ \max C^{T}X \]

    关于标准形与松弛形的转化:
    对于小于号,添加一个系数为负的自变量,
    大于号则系数为正。

    \[\sum_{j} a_{i, j}x_{j} \le b_i \\ \Leftrightarrow \sum_{j} a_{i, j}x_{j} + x_{new} = b_i x_{new} \ge 0 \]

  3. 单纯形

    \[\forall i \in [1, m], x_{n+i} = b_i-\sum_{j=1}^{n} a_{i, j}x_j \\ \forall i \in [1, n+m], x_i \ge 0 \\ \max \sum_{j=1}^{n}c_ix_i \]

    我们称\(x_{1}\)~\(x_{n}\)为非基本变量,\(x_{n+1}\)到\(x_{n+m}\)为基本变量
    事实上是松弛形的另一种写法

单纯形法

若\(\forall i,b_i>0\)
我们对于非基本变量全部取0是一个可行解,
当此时\(\forall i, c_i \le 0\)时达到最优,

如果并非最优,我们要更换一组基本变量,

\[x_{n+l} = b_l - \sum_{j=1, j \neq e}^{n}a_{l, j}x_j - a_{l, e}x_e \\ \Rightarrow x_e = \frac{1}{a_{l, e}}(b_l - \sum_{j=1, j \neq e}^{n} a_{l, j}x_j - x_{n+l}) \]

方法是选出\(c_e\)最大的非基变量\(x_{e}\),
用\(a_{l, e} > 0\)且\(\frac{b_l}{a_{l, e}}\)最小的\(x_{n+l}\)替换,
这样可以保证变化后\(b_i \ge 0\),
同时使目标变化最大(\(c_{e}\frac{b_l}{a_{l,e}}\))
上述操作成为转轴

若初始时\(b_i < 0\),找到一个负的\(a_{i, j}\)对其转轴,
不知道为什么一定会停下来。

对偶

我们有一组线性规划互为对偶:

\[AX \le B \\ X \ge 0 \\ \max C^{T}X \\ \]

\[A^{T}Y \ge C \\ Y \ge 0 \\ \min B^{T}Y \]

\[\max C^{T}X = \min B^{T}Y \]

大概长成这样:

\(x_{1}\) \(x_{2}\) \(\cdots\) \(x_{n}\)
\(y_1\) \(a_{1, 1}\) \(a_{1, 2}\) \(\cdots\) \(a_{1, n}\) \(b_{1}\)
\(y_2\) \(a_{2, 1}\) \(a_{2, 2}\) \(\cdots\) \(a_{2, n}\) \(b_{2}\)
\(\cdots\) \(\cdots\) \(\cdots\) \(\cdots\) \(\cdots\) \(\cdots\)
\(y_m\) \(a_{m, 1}\) \(a_{m, 2}\) \(\cdots\) \(a_{m, n}\) \(b_{m}\)
\(c_{1}\) \(c_{2}\) \(\cdots\) \(c_n\) \(z\)

网络流模型

网络流本质也是一类线性规划问题,有部分线性规划问题可以通过网络流解决

流量守恒

对于线性规划问题我们写成松弛形式,
再通过线性变换使得每个变量只出现两次,符号相反,
那么我们将这些变量视为弧,将限制视为点,根据流量守恒构图。

对于区间类问题来说通常有变量连续出现的情况,
那么我们将相邻两个限制相减,
最后新添一条最后限制取反的限制,开头限制不变,
通常可以得到美妙的结果。

对偶

对于费用流,流量为\(f_{u,v}\),最大流量为\(c_{u,v}\),代价为\(w_{u, v}\),每个点的流出减去流入\(\le b_{u}\),我们有:

\[\forall u, \sum_{v} f_{v, u} - \sum_{v}f_{u, v} \ge -b_{u} \\ \forall u, v, -f_{u, v} \ge -c_{u, v} \\ \forall u, v, f_{u, v} \ge 0 \\ \min \sum_{u, v} f_{u, v}w_{u, v} \]

令对于边的对偶变量为\(z_{u, v}\),对于点的为\(p_{u}\),对偶得到

\[\forall u, v, p_v - p_u - z_{u, v} \le w_{u, v} \\ \forall u, v, z_{u, v} \ge 0 \\ \forall u, p_u \ge 0 \\ \max \sum_{u} -p_{u}b_{u} - \sum_{u, v} z_{u, v}c_{u, v} \]

因为\(c_{u, v} \ge 0\),且\(z_{u, v}\)只有一条限制,我们令其取下界,得\(z_{u, v} = \max(0, p_v - p_u - w_{u, v})\)

\[\max \sum_{u} -p_u b_u - \sum_{u, v} c_{u, v} \max(0, p_v - p_u - w_{u, v}) \\ \Leftrightarrow -\min \sum_{u} p_u b_u + \sum{u, v} c_{u, v} \max(0, p_v - p_u - w_{u, v}) \]

对于一个线性规划问题,若能化为上述形式,则必定可以通过费用流解决(只是方案难搞...

我们可以通过在目标式中添加若干\(\infty\)的项来做到加入限制

参考资料

单纯形法学习笔记 by p_b_p_b
《再探线性规划对偶在信息学竞赛中的应用》 - 学习笔记 by p_b_p_b

2021国家集训队论文

标签:线性规划,max,sum,cdots,笔记,学习,ge,forall
来源: https://www.cnblogs.com/BunnyLutts/p/15894956.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有