最优化——单纯形法

一般性线性规划标准型为对象总结其基本步骤
max⁡zs.t. P1x1+P2x2+⋯+Pnxn=b⃗−−−(1)c1x1+c2x2+⋯+cnxn=z−−−(2)xj≥0,∀1≤j≤n\begin{array}{ll} \max & z \\ \text { s.t. } & P_{1} x_{1}+P_{2} x_{2}+\cdots+P_{n} x_{n}=\vec{b}---(1) \\ & c_{1} x_{1}+c_{2} x_{2}+\cdots+c_{n} x_{n}=z ---(2)\\ & x_{j} \geq 0, \forall 1 \leq j \leq n \end{array} max s.t. ​zP1​x1​+P2​x2​+⋯+Pn​xn​=b−−−(1)c1​x1​+c2​x2​+⋯+cn​xn​=z−−−(2)xj​≥0,∀1≤j≤n​

步骤一:求广义基本可行解

已知一个可逆方阵 B=(Pj(1),Pj(2),⋯,Pj(m))B=\left(P_{j(1)}, P_{j(2)}, \cdots, P_{j(m)}\right)B=(Pj(1)​,Pj(2)​,⋯,Pj(m)​) 满足
B−1b⃗≥0B^{-1} \vec{b} \geq 0 B−1b≥0
其中 1≤j(i)≤n,∀1≤i≤m,1 \leq j(i) \leq n, \forall 1 \leq i \leq m,1≤j(i)≤n,∀1≤i≤m, 即 BBB 是线性规划标准型 的可行基阵

由BBB可以把线性约束(1)P1x1+P2x2+⋯+Pnxn=b⃗P_{1} x_{1}+P_{2} x_{2}+\cdots+P_{n} x_{n}=\vec{b}P1​x1​+P2​x2​+⋯+Pn​xn​=b改写为
⇔(Pj(1),⋯,Pj(m))(xj(1)⋮xj(m))+Pj(m+1)xj(m+1)+⋯+Pj(n)xj(n)=b⃗⇔(xj(1)⋮xj(m))+(B−1Pj(m+1))xj(m+1)+⋯+(B−1Pj(n))xj(n)=B−1b⃗\begin{array}{l} \Leftrightarrow\left(P_{j(1)}, \cdots, P_{j(m)}\right)\left(\begin{array}{c} x_{j(1)} \\ \vdots \\ x_{j(m)} \end{array}\right)+P_{j(m+1)} x_{j(m+1)}+\cdots+P_{j(n)} x_{j(n)}=\vec{b} \\ \Leftrightarrow \quad\left(\begin{array}{c} x_{j(1)} \\ \vdots \\ x_{j(m)} \end{array}\right)+\left(B^{-1} P_{j(m+1)}\right) x_{j(m+1)}+\cdots+\left(B^{-1} P_{j(n)}\right) x_{j(n)}=B^{-1} \vec{b} \end{array} ⇔(Pj(1)​,⋯,Pj(m)​)⎝⎜⎛​xj(1)​⋮xj(m)​​⎠⎟⎞​+Pj(m+1)​xj(m+1)​+⋯+Pj(n)​xj(n)​=b⇔⎝⎜⎛​xj(1)​⋮xj(m)​​⎠⎟⎞​+(B−1Pj(m+1)​)xj(m+1)​+⋯+(B−1Pj(n)​)xj(n)​=B−1b​
可以得到一个基本可行解X=(x1...xn)TX=(x_1...x_n)^TX=(x1​...xn​)T的表达式:

XB=(xj(1)⋮xj(m)),(xj(m+1)...xj(n))=0X_{B}=\left(\begin{array}{c}x_{j(1)} \\ \vdots \\ x_{j(m)}\end{array}\right),(x_{j(m+1)}...x_{j(n)})=0XB​=⎝⎜⎛​xj(1)​⋮xj(m)​​⎠⎟⎞​,(xj(m+1)​...xj(n)​)=0

对应线性约束的表达式变为如下:
XB+P^j(m+1)xj(m+1)+⋯+P^j(n)xj(n)=P^n+1−−−(3)X_{B}+\hat{P}_{j(m+1)} x_{j(m+1)}+\cdots+\hat{P}_{j(n)} x_{j(n)}=\hat{P}_{n+1}---(3) XB​+P^j(m+1)​xj(m+1)​+⋯+P^j(n)​xj(n)​=P^n+1​−−−(3)
其中P^j=B−1Pj=(p^1j⋮p^mj),∀1≤j≤n,P^n+1=B−1b⃗\hat P_j=B^{-1}P_j=\left(\begin{array}{c}\hat{p}_{1 j} \\ \vdots \\ \hat{p}_{m j}\end{array}\right), \forall 1 \leq j \leq n,\hat{P}_{n+1}=B^{-1} \vec{b}P^j​=B−1Pj​=⎝⎜⎛​p^​1j​⋮p^​mj​​⎠⎟⎞​,∀1≤j≤n,P^n+1​=B−1b

步骤二:求检验数

记 CB=(cj(1),⋯,cj(m))T,C_{B}=\left(c_{j(1)}, \cdots, c_{j(m)}\right)^{T},CB​=(cj(1)​,⋯,cj(m)​)T,

用CBC_{B}CB​左乘(3) 得 CBTXB+CBTP^j(m+1)xj(m+1)+⋯+CBTP^j(n)xj(n)=CBTP^n+1−−−(4)C_{B}^{T} X_{B}+C_{B}^{T} \hat{P}_{j(m+1)} x_{j(m+1)}+\cdots+C_{B}^{T} \hat{P}_{j(n)} x_{j(n)}=C_{B}^{T} \hat{P}_{n+1}---(4)CBT​XB​+CBT​P^j(m+1)​xj(m+1)​+⋯+CBT​P^j(n)​xj(n)​=CBT​P^n+1​−−−(4)

目标函数(2)用CBC_{B}CB​可以写成: CBTXB+cj(m+1)xj(m+1)+⋯+cj(n)xj(n)=z−−−(5)C_{B}^{T} X_{B}+c_{j(m+1)} x_{j(m+1)}+\cdots+c_{j(n)} x_{j(n)}=z---(5)CBT​XB​+cj(m+1)​xj(m+1)​+⋯+cj(n)​xj(n)​=z−−−(5)

用(5)-(4)得:
z−CBTP^n+1=(cj(m+1)−CBTP^j(m+1))xj(m+1)+⋯+(cj(n)−CBTP^j(n))xj(n)−−−(6)z−z^=σj(m+1)xj(m+1)+⋯+σj(n)xj(n)−−−(7)\begin{array}{c} z-C_{B}^{T} \hat{P}_{n+1}=\left(c_{j(m+1)}-C_{B}^{T} \hat{P}_{j(m+1)}\right) x_{j(m+1)}+\cdots+\left(c_{j(n)}-C_{B}^{T} \hat{P}_{j(n)}\right) x_{j(n)}---(6) \\ z-\hat{z}=\sigma_{j(m+1)} x_{j(m+1)}+\cdots+\sigma_{j(n)} x_{j(n)}---(7) \end{array}z−CBT​P^n+1​=(cj(m+1)​−CBT​P^j(m+1)​)xj(m+1)​+⋯+(cj(n)​−CBT​P^j(n)​)xj(n)​−−−(6)z−z^=σj(m+1)​xj(m+1)​+⋯+σj(n)​xj(n)​−−−(7)​
CBTP^n+1C_{B}^{T} \hat{P}_{n+1}CBT​P^n+1​就是第一步中XXX所求得的一个可行基本解的目标函数值z^\hat{z}z^,这个可以把XB=(xj(1)⋮xj(m)),(xj(m+1)...xj(n))=0X_{B}=\left(\begin{array}{c}x_{j(1)} \\ \vdots \\ x_{j(m)}\end{array}\right),(x_{j(m+1)}...x_{j(n)})=0XB​=⎝⎜⎛​xj(1)​⋮xj(m)​​⎠⎟⎞​,(xj(m+1)​...xj(n)​)=0带入(4)和(5)就可以看出来。

步骤三:得到单纯形表

其中 (P^j(1),⋯,P^j(m))=Im,z^=CBTP^n+1=CBTB−1b⃗\left(\hat{P}_{j(1)}, \cdots, \hat{P}_{j(m)}\right)=I_{m}, \hat{z}=C_{B}^{T} \hat{P}_{n+1}=C_{B}^{T} B^{-1} \vec{b}(P^j(1)​,⋯,P^j(m)​)=Im​,z^=CBT​P^n+1​=CBT​B−1b

σj=cj−CBTP^j=cj−CBTB−1Pj,∀1≤j≤n\sigma_{j}=c_{j}-C_{B}^{T} \hat{P}_{j}=c_{j}-C_{B}^{T} B^{-1} P_{j}, \quad \forall 1 \leq j \leq nσj​=cj​−CBT​P^j​=cj​−CBT​B−1Pj​,∀1≤j≤n

称 σ1,⋯,σn\sigma_{1}, \cdots, \sigma_{n}σ1​,⋯,σn​ 为检验数,可看出基变量检验数等于0

最优化——单纯形法,单纯形表的求取相关推荐

  1. 单纯形法表格法例题详解_最优化单纯形法例题讲解.doc

    最优化单纯形法例题讲解.doc 例1 用单纯形法解下列问题: 解:将原问题化成标准形: x4与添加的松弛变量x,x在约束方程组中其系数正好构成一个3阶单位阵,它们可以作为初始基变量,初始基可行解为X= ...

  2. 图像Stride求取

    原文:图像Stride求取 做这个日志也许你会觉得多余,但是,如果只给你了图像的流文件,和图像的Width,让你还原原始图像,那么你会发现一个问题,就是Stride未知的问题,这时就需要根据图像的Wi ...

  3. 利用边缘灰度变化建模,来提高圆环直径求取精度

    简 介: 利用对所获得的圆环边缘亮度平均变化曲线,利用Sigmoid函数进行建模逼近,可以对原来经由HoughCircle所获得的半径进行补偿.对于利用扫描仪所获得的图片进行实际处理,可以看到它可以获 ...

  4. 使用SVD求取矩阵的伪逆

    ➤01 矩阵的SVD分解 对于矩阵A∈Rn×mA \in R_{n \times m}A∈Rn×m​,可以通过奇异值分解(Singular Vector Decomposite)分解成如下形式:A=U ...

  5. python中Scipy模块求取积分

    python中Scipy模块求取积分的方法: SciPy下实现求函数的积分的函数的基本使用,积分,高等数学里有大量的讲述,基本意思就是求曲线下面积之和. 其中rn可认为是偏差,一般可以忽略不计,wi可 ...

  6. 求列表最大元素不用max_python3实现从一个无序列表中求取连续元素之和中最大的和...

    介绍 今天遇到一个需求,要求从一个无序列表中求取连续元素之和中最大的和.使用python做了实现,后来想着可以作为一个小知识点分享出来,或许能在某时某刻给某位同学一些帮助.下面就直接上代码(图片和文字 ...

  7. oracle 当前年到指定年的年度范围求取

    如下面公式所示,求取2015到当前年(2018)的年度范围,当前年是由系统获取的,用到了sysdate和函数to_char,to_date. 当然,当前年也可以换成指定年份 SELECT TO_CHA ...

  8. 算法学习:后缀数组 height的求取

    [前置知识] 后缀数组 [定义] [LCP]全名最长公共前缀,两个后缀之间的最长前缀,以下我们定义 lcp ( i , j ) 的意义是后缀 i 和 j 的最长前缀 [z函数] 函数z [ i ] 表 ...

  9. MATLAB点云处理:读取、展示、最近邻、ICP算法求取转移矩阵、旋转

    MATLAB中关于点云的几个函数的简单应用.作者使用的是MATLAB R2015b,这几个函数应该是在Computer Vison包里. 全文都是作者自己结合MATLAB文档的理解,欢迎指教. 1. ...

最新文章

  1. python求圆柱表面积_python基础知识-字典
  2. ssh无法登录,提示Connection closing...Socket close.
  3. Centos普通用户提权至ROOT
  4. Winsock Error Codes
  5. ajax_异步交互-get/post方式
  6. Flink中MapFunction以及其他各种xxxFunction在intellij中的用法和规律
  7. C++ 内存管理机制
  8. 演练 青春不常在 0915
  9. C#LeetCode刷题之#345-反转字符串中的元音字母​​​​​​​(Reverse Vowels of a String)
  10. Android四大组件之 --- Service入门
  11. 你想要的宏基因组-微生物组知识全在这(2022.2)
  12. windows10未安装任何音频输出设备(1903、1909)
  13. PMSG孕马血清促性腺激素适用的应用方案
  14. 电影:张嘉佳《从你的全世界路过》:如果是路过,我就在终点等你?
  15. 亚马逊黑五哑火,中国跨境电商高歌猛进!
  16. 快递企业如何完成运单订阅消息的推送
  17. 计算机组成与结构数据通路实验
  18. 初识C语言:多组输入的用法
  19. 在小程序中显示地图并添加标注的教程
  20. 一个学员去了互联网大厂一个笔试题分享

热门文章

  1. Selenium 获取文本信息方法+select(定位)
  2. 前端知识点总结——JS高级(持续更新中)
  3. 百度编辑器 UEditor setContent()
  4. tomcat开启SSL8443端口的方法
  5. iptables与tomcat
  6. 机器学习中有哪些距离度量方式
  7. 【IDEA】干掉注释自动在行首
  8. 初始Spring boot和一个入门SpringBoot工程
  9. reactjs组件的三大属性之props基本使用及props属性值检验
  10. 【网址收藏】Centos7.3离线(rpm方式)安装mysql服务