首页 > 其他分享 >线性规划和网络流的单纯形法

线性规划和网络流的单纯形法

时间:2024-02-07 20:11:23浏览次数:24  
标签:变量 单纯形法 线性规划 sum 网络 约束 标准型 入基

线性规划

线性规划问题

\[\max \sum _{i=1}^nc_jx_j\\ \text{s.t. :}\\ \sum _{t=1}^n a_{it}x_t\le b_i,i\in \Z\cap [1,m_1]\\ \sum _{t=1}^n a_{it}x_t=b_i,i\in \Z\cap (m_1,m_1+m_2]\\ \sum_{t=1}^n a_{it}x_t\ge b_i,i\in (m_1+m_2,m_1+m_2+m_3]\\ x_i\ge 0,\forall i \]

网络流是线性规划的特殊形式。

在 \(m=m_1+m_2+m_3\) 个的前三约束中至少有 \(n\) 个约束以等号满足的可行解称为基本可行解

线性规划基本定理:若线性规划存在最优解,则存在基本可行最优解。

上述定理的重要意义在于,它把一个最优化问题转化为一个组合问题。

若一个线性规划只有等号约束,称其具有标准形式。如果在每个等式中,至少有一个变量的系数为正,且变量只在此出现。这样的线性规划问题叫做约束标准型线性规划问题。

每个方程中找到一个这样的变量,称为基本变量,剩下的是非基本变量。

单纯形法

这样,问题被分成了两个部分:把线性规划转为约束标准型,求解约束标准型线性规划。

先解决约束标准型线性规划。

思路:求出一组解,经过调整(转轴)得到最优解。

先置所有非基本变量为 \(0\),求出基本变量的解。

有所谓单纯形表,自行体会,,,

image

第一步:选出其增加也使目标函数增加的,下标最小的非基本变量作为入基变量。找不到则目前就是最优解。此处 \(x_3\) 对应系数是正数,符合条件。\(x_3\) 是入基变量。

第二步:考察限制入基变量的变量中最要紧的限制,让其离基。

如果入基变量所在列的所有元素都是负值,则目标函数无界,已经得到了问题的无界解。

受限的增加量可以用正的入基变量所在列的元素(称为主元素)去除主元素所在行的“常数列”(最左边的列)中元素而得到。所得到数值越小说明受到限制越要紧。

例如此处 \(x_3\) 入基,即要求找到最小的常数除以正对应列值。如果此最大值是负数,即没有限制,那么解无界。比方说,这里 \(x_1\) 主元素是负值不予考虑,\(x_4\) 对应 \(12/4=3\),\(x_6\) 对应 \(10/3\),\(3\) 是最小的,取 \(x_4\) 离基。

第三步:转轴变换。目的是执行入基、离基过程并修正单纯形表。

image

这就是转轴变换后的单纯形表。

对于离基变量的那个方程表示入基变量:

\[x_3=3-\frac 12 x_2+\frac 14x_4 \]

在其他行和目标函数消去 \(x_3\),\(x_3\) 的位置变为 \(x_4\)。

第四步:返回第一步,递归知道得到无界或最优解。

转化方法

看起来,一般线性规划比约束标准型线性规划困难许多,但是我们现在声称这是等难的。

首先把不等式转为等式。每个不等式引入不影响答案的松弛变量即可:例如:

\[x_1+x_2\ge 3\rightarrow x_1+x_2-y_1=3 \]

引入人工变量 \(z_i\),把第 \(i\) 个等式约束加上 \(z_i\)。

然后分二阶段处理:先用 \(f=-\sum z_i\) 当作目标函数,得到的 \(z_i\) 应该全是 \(0\),否则无解。然后此时 \(z_i\) 应该全是非基本变量,划去 \(z_i\) 的列即可。

例题&代码 P3980

标签:变量,单纯形法,线性规划,sum,网络,约束,标准型,入基
From: https://www.cnblogs.com/british-union/p/18011245/simplex

相关文章

  • 【AutoML】AutoKeras 进行 RNN 循环神经网络训练
    由于最近这些天都在人工审查之前的哪些问答数据,所以迟迟都没有更新AutoKeras的训练结果。现在那部分数据都已经整理好了,20w+的数据最后能够使用的高质量数据只剩下2k+。这2k+的数据已经经过数据校验并且对部分问题的提问方式和答案内容进行了不改变原意的重构,相信用这部分数......
  • 神经网络包nn和优化器optm
    torch.nn是专门为神经网络设计的模块化接口。nn构建于Autograd之上,可用来定义和运行神经网络。这里我们主要介绍几个一些常用的类除了nn别名以外,我们还引用了nn.functional,这个包中包含了神经网络中使用的一些常用函数,这些函数的特点是,不具有可学习的参数(如ReLU,pool,DropOut等)......
  • 网络流
    当学习笔记用,持续更新。写给自己看的,图有点少。如果有人真想通过这篇博客学网络流的话也不是不行……因为更新极慢无比,所以这篇博客里的各份代码码风可能会出现巨大的差别。关于学习途径显然有无数人在自学网络流的时候因为网上大部分题解的姿势都过于抽象而被劝退,所以提一下......
  • 北极网络
    不知道这道题目跟最小\(k\)度生成树有什么关系,到时候可以想一下不要一看到特殊点就想虚点,这道题目我们这么建模假设我们的\(D\)已经定了,我们把边权小于等于\(D\)的全部加入,那么图就会形成一个若干个连通块显然\(D\)越大连通块个数越少这里当然启示我们用二分,然而也有更简单的......
  • 【面试突击】网络通信面试实战
    网络通信面试实战Socket工作原理Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口,其实就是一个门面模式,将底层复杂的通信操作给封装起来对外提供接口。简单来说就是Socket把TPC/IP协议给封装了起来,我们的程序进行网络通信都是通过Socket来完成的!也就是说当......
  • 华为配置访客接入WLAN网络示例(MAC优先的Portal认证)
    配置访客接入WLAN网络示例(MAC优先的Portal认证)组网图形图1 配置WLANMAC优先的Portal认证示例组网图业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件业务需求某企业为了提高WLAN网络的安全性,采用MAC优先的外置Portal认证方式,实现对用户的接入控制。组网需求AC组网......
  • 深度学习网络的感受野与卷积核
    https://www.bilibili.com/read/cv27451493/?jump_opus=1https://zhuanlan.zhihu.com/p/484653541?utm_id=0一般认为,网络越深,卷积核越大,感受野也就越大。同时,也会丢失一定的小尺度捕捉能力。在《Residualnetworksbehavelikeensemblesofrelativelyshallownetworks》中,说......
  • Delphi网络组件
    TIdTCPClient组件介绍TIdTCPClient组件实现了TCP的客户端部分,它封装了一个完整的TCP客户端,包括对套接字的支持。该组件可用来作为实现专门协议的组件父类,TIdDayTime、TIdEcho、TIdFinger、TIdFT、TIdGopher、TIdHTTP、TIdNNTP、TIdPOP3、TIdQUOTD、TidTelnet以及TIdWhois组件都是......
  • 计算机网络抓包实战
    介绍计算机网络作为一门计算机专业课,平时都是各种抽象的协议和各种发送接收,很难具体的去感受其含义,因此也是借助wireshark对发送的包进行一个分析。抓包分析三次握手验证在第一次访问到182.254.242.96这个ip时,首先是建立了TCP的三次握手。与书上写的一样:客户端发起握手请求......
  • Ubuntu配置网络
    Ubuntu配置网络如果安装系统遇到网络设置的时候选择跳过,则进入系统后需要把网络配置设置好,否则无法访问网络。首先使用命令lshw-classnetwork查看网络设备lshw命令介绍lshw(lshardware)是一个提取机器硬件配置详细信息的工具,它能为我们提供内存配置、固件版本、主板配置信......