线性规划

1 线性规划问题 以及可行域与基本可行解
(1)一般形式 :
minZminZminZ =C1C_1C1​X1X_1X1​+ C2C_2C2​X2X_2X2​+C3C_3C3​X3X_3X3​+…+CnC_nCn​XnX_nXn​
a11a_{11}a11​x1x_1x1​+a12a_{12}a12​x2x_2x2​+a13a_{13}a13​x3x_3x3​+…+a1na_{1n}a1n​xnx_nxn​=b1b1b1

am1a_{m1}am1​x1x_1x1​+am2a_{m2}am2​x2x_2x2​+…+amna_{mn}amn​xnx_nxn​>=bmbmbm
xjx_{j}xj​>=0 ,jjj=1,2,3…qqq,xjx_{j}xj​无限制 ,jjj=qqq…n

(2)标准型是约束方程为等号,所有的变量取非负数。对于非负的约束可以通 过引入剩余变量或者松弛变量变为等式,对于无限制的变量可以转化为两个正的变量相减的形式。将目标函数转化为minminmin 的形式。

(3) 可行解:满足所有的约束条件的向量(x1x2...xnx_{1} x_{2}...x_{n}x1​x2​...xn​)T^TT
可行域 :可行解的集合
最优解 可行域中目标函数最优的可行解
(4)基本可行解与基本定理
分块 ,分为满秩矩阵B ,以及矩阵N ,由AX =b 得到BxBx_{B}xB​+NxNx_{N}xN​=b
xBx_{B}xB​=B−1b−B^{-1}b-B−1b−B−1NxNB^{-1}Nx_{N}B−1NxN​
令xN=0x_{N}=0xN​=0 ,得到了一组解。
基与基向量:设B是秩为m的约束矩阵的A的一个m阶满秩子方阵,B中的列向量称为基向量
基变量 基向量对应的变量称为基变量,同理称为非基变量
基本可行解 当xBx_{B}xB​>=0 时为基本可行解
(最优解一定是可行解,但不一定是基本可行解,也不一定是基本解)
总结
如果基本可行解的个数有限,可以在基本可行解中寻找最优解

2单纯形表法
主要的思路: 先寻找一个基本可行解,判断是不是最优解,如果不是就寻找一个更好的可行解,如此迭代直到找到最优解或者是问题无界。
首先寻找一个基本可行解:
xBx_{B}xB​+B−1NxN=B−1bB^{-1}Nx_{N}=B^{-1}bB−1NxN​=B−1b
cTx=cBTxB+cNTxNc^{T}x=c^{T}_{B}x_{B}+c^{T}_{N}x_{N}cTx=cBT​xB​+cNT​xN​ (1)
令B对应的检验数为0,对应的目标函数可以写为cBTB−1b−γTc_{B}^{T}B^{-1}b-\gamma^{T}cBT​B−1b−γT
其中γT=(γBT,γNT)\gamma^{T}=(\gamma^{T}_{B},\gamma_{N}^{T})γT=(γBT​,γNT​)
从以上的式子中看出当γNT\gamma^{T}_{N}γNT​中的系数是小于0 是最优的。
所以根据第一个知识点的回顾,首先将问题转化为标准型的问题,将目标函数中基变量的系数变为0,找到一个基本可行解之后判断是不是最优的,方法很简单看目标函数中的非基变量的系数是不是负的,如果不是那么进行迭代。最终得到最优解,或者是无界。
上述的证明中其实就包含了主要的思路。

3两阶段法
当转化为典式后,基变量不好确定时候可以使用添加人工变量的方式找到这个秩。
引入辅助问题 minminmin g=∑i=n+1n+mxig=\sum_{i=n+1}^{n+m}x_{i}g=∑i=n+1n+m​xi​
s.t.{Ax+xa=bx≥0xa≥0(1)s.t.\begin{cases} Ax+x_{a}=b \\ x \geq 0 \quad x_{a}\geq0 \end{cases}\tag{1} s.t.{Ax+xa​=bx≥0xa​≥0​(1)
对于辅助问题也是有要求最优值的,先给出辅助问题与原问题之间的关系
给出
如果原问题是最优解的话,辅助问题是的最优值是0,反之也是成立的。
求解辅助问题lplplp会得到以下的情况:
(1)问题ggg的最优解是0,并且人工变量是 非基变量,那么对应到原问题就是有最优解的。
(2)辅助问题的最优解>0 原问题是没有基本可行解的,
(3)辅助问题Lp的最优解等于0,但是存在人工变量是基变量,这种需要进一步的判断。
此时假设人工变量xrx_{r}xr​是基变量(n+1<r<n+mn+1<r<n+mn+1<r<n+m),只需要考察前n个元素即可。对应的这一行中的元素要么是都是0,要么不全是0, 如果全部是0,那么前n 元素对应的秩不再是m,是m-1,此时可以直接去掉这一行的约束,(系数都是0,这个方程是没有原问题的约束的),如果是不全为0 ,只能是在n 个元素中找个变量成为基变量,此时在对应的行找到一个元素,记为arsa_{rs}ars​ ,这个元素是可以小于0的,是因为对应的brb_{r}br​是必然的为0,现在arsa_{rs}ars​作为基变量出现也会是0,综上使用这两种方法终于会找到基本可行解。但是对于原问题不一定是最优解,可能需要使用单纯形表法进一步求解。

4对偶性以及对偶单纯形法
个人还是比较喜欢对偶性法的,根据线性代数的知识对于一个n*m阶的矩阵是可以找到满秩方阵的,但是由于bbb是具有限制的,引入了两阶段法,在这个部分中又引入了对偶形法。
首先引入对偶问题的形式,
mincTxminc^{T}xmincTx

s.t.{Ax=bx≥0(1)s.t.\begin{cases} Ax=b \\ x \geq 0 \quad \end{cases}\tag{1} s.t.{Ax=bx≥0​(1)

maxwTbmax\quad w^{T}bmaxwTb
s.t.{wTb≤cTw无限制(2)s.t.\begin{cases} w^{T}b\leq c^{T} \\ w 无限制 \end{cases}\tag{2} s.t.{wTb≤cTw无限制​(2)
直接给出结论:通过一个问题的最优解可以得到另一个问题的最优解。
给定一个原问题,可以得到对偶问题。
(1)由约束看变量,约束的符号是≥\geq≥ 对偶问题的符号是≤\leq≤ ,约束的符号是≤\leq≤ ,对偶问题 的符号是≥\geq≥,是等于的话是严格的无限制。
(2)由变量看约束,符号相反
(3)bbb变ccc ,ccc变bbb
原问题与对偶问题的互补松紧性:
(1)如果一个问题的非负变量是正的,那么另外一个的约束 是===
(2) 一个问题的约束是严格的不等式,那么是另一个的变量是等于0
类比单纯形表的方法,得到对偶形法。
对偶单纯形表法是保证检验数为负,bbb由负到正的过程迭代,在选择出基的向量时候,如果brb_{r}br​对应的arja_{rj}arj​都是≥0\geq0≥0 ,那么没有可行解。

5灵敏度分析
这里这是考虑改变c,bc,bc,b 。
改变c 需要考虑是不是基变量
对于非基的情况较为简单,因为不会涉及到最优解,检验数是变为原来的-新的,之后继续求解。
当是基变量时候: 将单纯形表中对应的第lll个约束乘以c,c^,c,-ccc 加到目标函数中,再令对应的元素为0,就可以得到新的单纯形表,再进一步求解。
改变右端向量bbb的时候,那么最优解要变了。需要先求解以下BBB 的逆矩阵,由上面的内容可以看出是和检验数没有关系的。计算B−1b′B^{-1}b^{'}B−1b′,cBTB−1b′c_{B}^{T}B^{-1}b^{'}cBT​B−1b′ ,此时可以使用对偶形法求解问题。

整数规划

引言:
整数规划是对线性规划的特殊的情况,顾名思义,是要求基本可行解都为正整数。有两种方法是合适的。
(1)Gomory 割平面法(以下简称割平面法)
可以这样说整数规划的最优值是小于等于线性规划最优值的,如果线性规划是有最优值的。同理如果线性规划是没有可行解的,那么整数规划是没有可行解的。因此完全可以先求对应的线性规划。
假设bjb_{j}bj​不是整数 对应的约束是XB(l)+∑aijxj=bjX_{B(l)}+\sum a_{ij}x_{j}=b_{j}XB(l)​+∑aij​xj​=bj​
通过分离整数部分与小数部分得到新的约束,使用对偶单纯形法求解。

(2)分枝定界法
这种方法在求解混整数规划尤为好用。先找最优解,根据是整数将可行域进行划分。假设是p1,p2 求解p1,p2的最优解,重复上面的操作。

小结:
最简单还是图解法,如果直接的图解法困难,尝试对偶的,如果还不行就老老实实计算就可以了。

线性规划与整数规划小结相关推荐

  1. matlab 线性规划求最大值,MATLAB求解线性规划(含整数规划和01规划)问题.pdf

    MATLAB求解线性规划(含整数规划和01规划)问题 MATLAB 求解线性规划(含整数规划和0-1 规划)问题 线性规划是数学规划中的一类最简单规划问题,常见的线性规划是一个有约 束的,变量范围为有 ...

  2. 线性规划和整数规划求解(lingo\matlab)

    注意点 1.Lingo 默认所有变量不为负数,故应先进行定义域自由化. 2.Lingo 只有三种关系运算符:"=".">="以及"<=&q ...

  3. 第一周:线性规划、整数规划、非线性规划、二次规划

    线性规划函数:linprog() 线性规划的标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号.为了避免这种形式多样性带来的不方便,matlab规 ...

  4. java 整数规划_线性规划与整数规划求解速度对比

    文章发表于微信公众号[数据魔术师]:线性规划&整数规划求解速度PK线性规划&整数规划求解速度PK​mp.weixin.qq.com 相信大家对线性规划和整数规划应该不陌生,在开始今天的 ...

  5. 数学建模线性规划(整数规划)

    线性规划(整数规划) 文章目录 线性规划(整数规划) 概述 数学模型 分类 与松弛线性规划的联系 模型求解方法 分枝定界法 求解步骤 求解细节 对分支定界法的理解 割平面法 求解步骤 0-1变量的使用 ...

  6. 数模笔记(一):线性规划、整数规划及非线性规划1.0

    数模笔记目录 数模笔记(一):线性规划.整数规划及非线性规划 数模笔记(二):层次分析法 数模笔记(三):灰色系统分析方法 数模笔记(四):插值与拟合 数模笔记(五):变异系数法 数模笔记(六):两变 ...

  7. 【数学建模】(十):Lingo使用:线性规划+非线性规划+整数规划

    [数学建模](十):Lingo使用:线性规划+非线性规划+整数规划 线性规划 运输问题 整数规划 非线性规划 线性规划 设x1x_1x1​桶牛奶生产A1A_1A1​, x2x_2x2​桶牛奶生产A2A ...

  8. matlab中用于离散系统求解的命令,MATLAB求解规划问题(线性规划, 整数规划, 非线性规划)...

    文章目录 基础知识 规划问题的数学模型的三个要素 解 线性规划Linear Programing 理论 示例 整数规划 理论 示例 非线性规划 理论 示例 生产实践中,经常会遇到很多资源分配的问题,如 ...

  9. 数学建模算法与应用学习day1——线性规划问题整数规划问题

    以下内容来自司守奎编写的数学建模算法与应用学习,主要是记录自己的学习历程,转载还请标明出处! 一.线性规划 知识点 1.1线性规划问题 1.1.2线性规划解的概念 f = [-2 ; -3 ; 5]; ...

  10. 运筹学之线性规划与整数规划

    1.线性规划 参考<Operations Research>第三章Introduction to Linear Programming 1.1线性规划定义 线性规划问题(LP)包括三个部分 ...

最新文章

  1. hdu5062 简单题
  2. Linux 中使用 KVM
  3. 2018多校1 hdu6298 6300 6308
  4. 自定义路由匹配和生成
  5. php ajax 增删改查 分页,Jquery之Ajax_分页及增删改查
  6. Spring Boot 启动类真的是XXApplication?
  7. logback的日志文件中出现大量的ESC符号
  8. 基于C语言的个人信息管理系统
  9. 20个经典模拟电路(详细图文)
  10. 转调小程序(练口琴时用的)
  11. 百度DNS/阿里DNS/114DNS/谷歌DNS/OpenDNS 对比评测
  12. php soap 加符号报错,php soap错误获取http标头
  13. linux设置rtc默认时间,RTCTime 设置和使用 详解
  14. 什么是拓扑结构、拓扑结构图
  15. 4款黑科技级别的宝藏APP,能够轻松满足你的多种需求,请低调收藏
  16. 鸡米过河matlab程序,万能解题套路——人,狗,鸡,米过河问题为例
  17. css3新增动画属性(过度动画 变形动画 关键帧动画)
  18. codeforces 1328 C. Ternary XOR(贪心)
  19. 用turtle画一个边长是100的五角星
  20. 中国银行网上银行新增B2B电子商务功能

热门文章

  1. #python 颜色聚类处理
  2. Eclipse导入MySQL驱动包
  3. C语言经典例题(菜鸟教程100例)
  4. 在几何画板中如何制作圆柱的侧面展开动画_几何画板制作圆柱展开图过程详解...
  5. c语言习题集(含答案)
  6. 73种网页常用js代码
  7. PMP考试教材有哪些?
  8. Markdown语法014:浏览器兼容
  9. ajax和jquery教程pdf,jquery ajax教程pdf
  10. 河北省应用计算机模拟考试,河北省职称计算机考试模拟系统