线性规划

首先一般所有的线性规划问题我们都可以转换成如下标准型

但是我们可以发现上面都是不等式,而我们计算中更希望是等式,所以我们引入这个新的概念:松弛型

很显然我们最后要求是所有的约束左边的变量都不小于0。而求解这类问题,我们又有一套十分便利的模型算法:单纯形

基变量:松弛型等式左边的所有变量

非基变量:松弛型等式右侧的所有变量

基本解:一组基变量和非基变量蕴含着一组基本解,即所有的非基变量都为0,基变量都为等式右侧的常数项(这里要求常数项为正,为负时我们后面讨论)

算法原理:

可证线性规划的解空间是一个凸形区域,也就是说全局最优解只有一个,或者同时有多个平行的最优解。由上性质我们可以知道,局部最优解一定时全局最优解,这就是单纯形的算法思想。

算法过程:

转轴操作:选择一个基变量和非基变量,将其互换

simplex操作:主过程,从一个基本解出发,经过一系列的转轴操作,找到最优解

举例:

求解如下问题:

第一步:互换x1与x6

第二步:互换x3与x5

第三步:互换x2与x3

此时我们得到的基本解:(x1, x2, x3, x4, x5, x6) = (8, 4, 0, 18, 0, 0),易验证就是最后的最优解

算法伪代码:

 def Simplex(A, b, c):
initialization(A, b, c)
while there is e that Ce > 0 do:
find the index l that Ale > 0 and minimizes bi/Ale
if all l, Ale <= 0 then:
return Unbounded
else:
pivot(A, b, c, l, e)

其中我们发现有一个“initialization”函数就是用于处理我们的bi<0的情况,它的做法是引入一个辅助的线性规划:

这样经过一次转轴操作以后,第l个约束变为:

其余的变为:

易知此时对于新的bi满足都不小于0

对偶问题

定义:

用矩阵表示更形象,而且也更利于我们后期的计算与理解:

因此我们在面对这类问题时可以考虑它们之间的相互转化。这里不加证明给出一下定理:

互为对偶问题的两组最优解相等

后续更新Simplex算法的python实现……

线性规划(Simplex单纯形)与对偶问题的更多相关文章

  1. matlab : Nelder mead simplex 单纯形直接搜索算法;

    function [ param ] = NeldSearch( param ) %NERDSEARCH 此处显示有关此函数的摘要 % nelder mead simplex 单纯形直接搜索算法: % ...

  2. BZOJ.1061.[NOI2008]志愿者招募(线性规划 对偶原理 单纯形 / 费用流SPFA)

    题目链接 线性规划 用\(A_{ij}=0/1\)表示第\(i\)天\(j\)类志愿者能否被招募,\(x_i\)为\(i\)类志愿者招募了多少人,\(need_i\)表示第\(i\)天需要多少人,\( ...

  3. 线性规划之单纯形算法矩阵描述与python实现

    声明 本文为本人原创,转载请注明出处.本文仅发表在博客园,作者LightningStar. 问题描述 所有的线性规划问题都可以归约到标准型的问题,规约过程比较简单且已经超出本文范围,不再描述,可以参考 ...

  4. 【UOJ179】线性规划(单纯形)

    题意: 思路:单纯形模板 ..,..]of double; idx,idy,q:..]of longint; c:..]of double; n,m,i,j,op,x,y:longint; eps,m ...

  5. 最优化理论-Simplex线性规划

     Sorry,各位,现在这里面啥也没,之所以开这篇文章,是防止以后用得到:现在研究这些,总感觉有些不合适,本人还不到那个层次:如果之后有机会继续研究simplex-线性规划问题,再回来参考下面的链接进 ...

  6. UOJ#179. 线性规划[模板]

    传送门 http://uoj.ac/problem/179 震惊,博主竟然还不会线性规划! 单纯形实在学不会啊……背个板子当黑盒用…… 学(chao)了NanoApe dalao的板子 #includ ...

  7. P3337-[ZJOI2013]防守战线【单纯形】

    正题 题目链接:https://www.luogu.com.cn/problem/P3337 题目大意 \(n\)个地方可以建立塔也可以不建立塔,第\(i\)个位置建立需要消耗\(C_i\)元 \(m ...

  8. 带约束优化问题 拉格朗日 对偶问题 KKT条件

    转自:七月算法社区http://ask.julyedu.com/question/276 咨询:带约束优化问题 拉格朗日 对偶问题 KKT条件 关注 | 22 ... 咨询下各位,在机器学习相关内容中 ...

  9. 干货 | 自适应大邻域搜索(Adaptive Large Neighborhood Search)入门到精通超详细解析-概念篇

    01 首先来区分几个概念 关于neighborhood serach,这里有好多种衍生和变种出来的胡里花俏的算法.大家在上网搜索的过程中可能看到什么Large Neighborhood Serach, ...

随机推荐

  1. indy idhttpserver有关下载的两个问题

    http://aawwmate.blog.163.com/blog/static/77528256201092733950315/ indy idhttpserver有关下载的两个问题 2010-10 ...

  2. C#联接序列

    1.  Concat() – 串联序列(有重复项) var healthFoods = new List<string> { "fruits", "veget ...

  3. PHP 是怎么接收到请求的?

    本篇文章主要描述一下几点 ● nginx 怎么转发请求 给 PHPFPM? ● CGI 和 FastCGI 到底是个什么玩意? ● PHPFPM 是什么?有什么作用? 简单场景描述 在浏览器上访问一个 ...

  4. JavaScript List

    function List() {    this.listSize = 0;    this.pos = 0;    this.dataSource = [];    this.clear = fu ...

  5. SqlServer 查看表注释

    SELECT DISTINCT d.name, f.value FROM syscolumns a LEFT JOIN systypes b ON a.xusertype= b.xusertype I ...

  6. jq鼠标移入移除

    ele.on({ mouseover : function(){ } , mouseout : function(){ } })

  7. 2019-1-25-WPF-ListBox-的选择

    title author date CreateTime categories WPF ListBox 的选择 lindexi 2019-01-25 21:43:17 +0800 2018-2-13 ...

  8. 如何为nginx配置https(免费证书)

    前言: 给http协议申请ssl免费证书,还是比较主流的一种方式,但是逐渐得一些浏览器不支持自签名的证书了.毕竟这是为了使用者及平台都变得安全的方式,所以无可厚非的,而且也有很多网站即使不使用商业付费 ...

  9. 微信小程序(5)--阅读器

    最近用微信小程序写了一个图书阅读器,可以实现左右滑动翻页,按钮翻页,上下滚动,切换背景,控制字体大小.以及记住设置好的状态,如页面再次进来保留上次的背景色和字体大小. 由于暂时没有真实的数据接口,所以 ...

  10. MySQL01---简介及安装

    目录 MySQL简介及安装 DBA工作内容 DBA的职业素养 MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 关系型数据库(RDMS)与非关系型数据库( ...