线性规划第一阶段入基变量和出基变量选择的细节讨论
1. 简单情况
第一阶段目标是找可行解。例如:
{x1=x3−1x2=x3+2\left\{ \begin{array}{} x_1& = &x_3-1\\ x_2& = &x_3+2 \end{array} \right. {x1x2==x3−1x3+2
显然非基变量 x3=0x_3=0x3=0 时,基变量 x1=−1x_1=-1x1=−1 不是可行解。于是,我们很自然想到让 x1x_1x1 与 x3x_3x3 旋转置换,即 x3=x1+1x_3 = x_1+1x3=x1+1。于是有:
{x3=x1+1x2=x1+3\left\{ \begin{array}{} x_3& = &x_1+1\\ x_2& = &x_1+3 \end{array} \right. {x3x2==x1+1x1+3
单纯形方法总是假定方程式右边的变量(非基变量)取值为零,于是我们得到一组可行解x3=1,x2=3,x1=0x_3=1,x_2=3,x_1=0x3=1,x2=3,x1=0。
上面这个变量的置换操作称为旋转,英文术语是 pivot。
我们观察 x1=x3−1x_1 = x_3-1x1=x3−1,旋转之前,变量潜在的取值为 x3=0,x1=−1x_3=0,x_1=-1x3=0,x1=−1。旋转之后,x3=x1+1x_3=x_1+1x3=x1+1,变量潜在的取值为 x1=0,x3=1x_1=0,x_3=1x1=0,x3=1。实际上,旋转操作的目的是增加变量潜在的取值下限,以便得到可行解。
2. 深入的思考
通过不断地置换基变量和非基变量,最终可以找到可行解。因为非基变量最终取值为零,所以这个置换过程实质上是把取值可能为负的基变量旋转到非基变量的位置,从而把方程组中变量的取值范围下限向正的方向提升。既然如此,我们可以采用一些策略加速这个过程。例如:
{x1=x3−1x2=x3−2\left\{ \begin{array}{} x_1& = &x_3-1\\ x_2& = &x_3-2 \end{array} \right. {x1x2==x3−1x3−2
如果 x1x_1x1 和 x3x_3x3 置换,x3=x1+1x_3=x_1+1x3=x1+1, 于是:
{x3=x1+1x2=x1−1\left\{ \begin{array}{} x_3& = &x_1+1\\ x_2& = &x_1-1 \end{array} \right. {x3x2==x1+1x1−1
显然,还需要旋转一次才能得到可行解。如果选择 x2x_2x2 和 x3x_3x3 置换,则可以一步到位。
3.更深入的思考
{x1=−x3+100x2=x3−1\left\{ \begin{array}{} x_1& = &-x_3+100\\ x_2& = &x_3-1 \end{array} \right. {x1x2==−x3+100x3−1
方案一,x1x_1x1出基,结果如下:
{x3=−x1+100x2=−x1+99\left\{ \begin{array}{} x_3& = &-x_1+100\\ x_2& = &-x_1+99 \end{array} \right. {x3x2==−x1+100−x1+99
方案二,x2x_2x2出基,结果如下:
{x1=−x2+99x3=x2+1\left\{ \begin{array}{} x_1& = &-x_2+99\\ x_3& = &x_2+1 \end{array} \right. {x1x3==−x2+99x2+1
方案一可能更有利于找到可行解,虽然 x1x_1x1 对应的常量为正,但该方案成功地解决x2x_2x2 小于零的问题,而且给出了x2=99x_2=99x2=99的潜在条件。这其中的理论原因,需要进一步讨论。
4.坏行——无解的情况
下面几种形式的方程,称为坏行,无论如何旋转,都找不到可行解,对应的规划问题无解:
x1=−x2−1x1+x2=−1x1+x2≤−1......\begin{array}{} x_1 = -x_2-1\\ x_1+x_2 = -1\\ x_1+x_2\le-1\\ ... ... \end{array} x1=−x2−1x1+x2=−1x1+x2≤−1......
在平面坐标系里画一下每个方程对应的图像,很容易理解其中的原因。
线性规划第一阶段入基变量和出基变量选择的细节讨论相关推荐
- 【运筹学】线性规划 单纯形法 案例二 ( 案例解析 | 标准形转化 | 查找初始基可行解 | 最优解判定 | 查找入基变量与出基变量 | 第一次迭代 )
文章目录 一.线性规划示例 二.转化成标准形式 三.初始基可行解 四.列出单纯形表 五.计算检验数 六.选择入基变量与出基变量 七.第一次迭代 : 列出单纯形表 一.线性规划示例 线性规划示例 : 使 ...
- 计算机第一阶段在线作业2020,《计算机应用基》第一阶段在线作业(自测).doc
<计算机应用基>第一阶段在线作业(自测) 1.第1题?? 单选题??计算机中用来保存程序和数据,以及运算的中间结果和最后结果的装置是____. A.RAM B.内存和外存 C.ROM D. ...
- 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第二次迭代 | 中心元变换 | 检验数计算 | 最优解判定 | 选择入基变量 | 选择出基变量 )
文章目录 一.第二次迭代 : 中心元变换 二.第二次迭代 : 单纯形表 三.第二次迭代 : 计算检验数 四.第二次迭代 : 最优解判定 五.第二次迭代 : 选择入基变量 六.第二次迭代 : 选择出基变 ...
- 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 第一次迭代 | 中心元变换 | 检验数计算 | 选择入基变量 | 选择出基变量 )
文章目录 一.第一次迭代 : 中心元变换 二.第一次迭代 : 单纯形表 三.第一次迭代 : 计算检验数 四.第一次迭代 : 最优解判定 五.第一次迭代 : 选择入基变量 六.第一次迭代 : 选择出基变 ...
- 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 初始单纯形表 | 检验数计算 | 入基变量 | 出基变量 )
文章目录 一.生成初始单纯形表 二.计算非基变量检验数 三.最优解判定 四.选择入基变量 五.选择出基变量 六.更新单纯形表 上一篇博客 [运筹学]线性规划 人工变量法 ( 单纯形法总结 | 人工变量 ...
- 【运筹学】线性规划 单纯形法 案例二 ( 第一次迭代 | 矩阵变换 | 检验数计算 | 最优解判定 | 入基变量 | 出基变量 )
文章目录 一.第一次迭代 : 进行行变换 二.第一次迭代 : 计算检验数 三.第一次迭代 : 最优解判定 四.第一次迭代 : 入基变量 五.第一次迭代 : 出基变量 [运筹学]线性规划 单纯形法 ( ...
- 【运筹学】线性规划数学模型 ( 单纯形法 | 第一次迭代 | 方程组同解变换 | 计算新单纯形表 | 计算检验数 | 入基变量选择 | 出基变量选择 )
文章目录 一.初始基可行解后第一次迭代 二.迭代后新的单纯形表 三.方程组同解变换 四.生成新的单纯形表 五.解出基可行解 六.计算检验数 σj\sigma_jσj 并选择入基变量 七.计算 θ\t ...
- 【运筹学】线性规划数学模型 ( 单纯形法 | 迭代原则 | 入基 | 出基 | 线性规划求解示例 )
文章目录 一.单纯形法计算示例 ( 上篇博客回顾总结 ) 二.迭代原则 三.最优解推导 四.出基与入基 五.出基与入基变量选择 一.单纯形法计算示例 ( 上篇博客回顾总结 ) 在上一篇博客 [运筹学] ...
- 【运筹学】人工变量法总结 ( 人工变量法解的分析 | 标准型变换 | 构造单位阵 | 目标函数引入 M | 计算检验数 | 选择入基变量 | 选择出基变量 | 中心元变换 | ) ★★
文章目录 一.人工变量法及解的分析 二.案例 三.线性规划标准型变换 四.人工变量法构造单位阵 五.初始单纯形表 六.初始单纯形表 : 计算非基变量检验数 七.初始单纯形表 : 最优解判定 八.初始单 ...
最新文章
- 用 Pyecharts 制作炫酷的可视化大屏
- about diigo
- Java NIO与IO的区别和比较
- 人工智能基础-机器学习任务之常规解决的六大问题
- 【数值分析】迭代法解方程:牛顿迭代法、Jacobi迭代法
- nginx(No such file or directory与invalid PID number)
- 思考ANDROID架构(4):HOW-TO, 如何从API洞悉软件的话语权
- [Visual Studio+TFS--强大的项目管理工具]
- springboot---整合redis
- 使用Open Liberty的开发模式最大程度地缩短周转时间
- mysql防止预约重号_mysql 防止重复插入唯一限制的数据
- 基准风险因子暴露度_具有性能基准SQL Server索引填充因子
- 拓端tecdat|R语言模拟保险模型中分类器的ROC曲线不良表现
- python编解码的字节与字符串相互转换
- 2020-12-04mscomm.ocx注册的问题
- 转载: Fisher精确检验概述
- h5页面生成图片分享到微信js_H5网页实现微信分享功能
- Android10.0应用图标隐藏方案(7.0-10.0)
- 跨境电商选品策略和思路—扬帆牧哲
- 使用腾讯轻量云搭建个人邮箱系统
热门文章
- 浅谈MySQL Binlog
- SCRDet:Towards More Robust Detection for Small, Cluttered and Rotated Objects(摇杆旋转目标检测方法)
- python ljust()、center() 、rjust() 字符串填充左中右对齐
- 怎么把计算机拉到桌面上,怎么把电脑游戏放到桌面
- 关于diskgenius删除所有分区后,电脑不能识别U盘的问题。
- OA协同办公系统 公共事务设置
- dopra linux 补全shell,HS8546V5光猫补全Shell 改华为原厂界面
- php aes 256 加解密,PHP完整的AES加解密算法使用及例子(256位)
- JAVA web中的一点东西
- golang中如何比较struct,slice,map是否相等以及几种对比方法的区别