线性规划——单纯形法

线性规划(Linear Programming)

概念

目标函数是线性的,约束条件是线性等式或不等式,每个变量都取实数值.

标准形式

 minimize  c T x  subject to  A x = b x ≥ 0 \begin{array}{ll} \text { minimize } & c^{\mathrm{T}} x \\ \text { subject to } & A x=b \\ & x \geq 0 \end{array}  minimize  subject to cTxAx=bx0
其中 b ∈ R m , A ∈ R m × n , c ∈ R n , x ∈ R n b \in \mathbb{R}^{m}, A \in \mathbb{R}^{m \times n}, c \in \mathbb{R}^{n}, x \in \mathbb{R}^{n} bRm,ARm×n,cRn,xRn.

  1. 线性标准型的一般形式化为标准型的方法:添加松弛变量;有自由变量的时候,使用消元或者变量替换的形式.
  2. 标准型是为了便于理论分析和算法设计,任何满足线性规划要求的均可转换成标准型,如极小化绝对值的和、极小化逐段线性凸函数等特殊线性形式.

单纯形法(Simplex Method)

高中数学教材已经介绍过简单线性规划的解法了:图解法。但是在变量大于二维时,图解法就很不直观。
单纯形法利用了线性规划的基本定理,即只要穷举多个基本可行解,就一定能找到最优解。它是一种搜索机制,即从一个初始可行解出发,不断迭代到相邻的可行解,同时让目标函数下降。

单纯形法的思路总结

整体过程

迭代求解,不断下降目标值。在几何上可以看成从一个顶点开始,沿着多面体的边行走到下一个使目标函数下降的另一个顶点。

约化问题

标准形式
 minimize  c T x  subject to  A x = b x ≥ 0 \begin{array}{ll} \text { minimize } & c^{\mathrm{T}} x \\ \text { subject to } & A x=b \\ & x \geq 0 \end{array}  minimize  subject to cTxAx=bx0
用非基变量代替基变量,可以将原始问题约化到

在这里插入图片描述
二者是等价问题,其中r被称作费用系数.
该等价问题被化为,以非基变量作为目标函数,约束为基变量的不等式组及非零约束。原来的 A x = b Ax=b Ax=b已经隐含到目标函数中了.

最优解判定

由约化问题可以看出,只要费用系数r均大于0,可以轻易看出最优解就是非基变量全取0的形式.

迭代过程

若费用系数r有小于0的,那说明对应的非基变量可以不断上升使目标函数下降。但是因为约束的存在,非基变量又不能无限地增加。所以我们可以贪婪地使x增加到约束的边界 x q ⩽ min ⁡ { y i 0 y i q : y i q > 0 , i = 1 , 2 , ⋯   , m } x_{q} \leqslant \min \left\{\frac{y_{i 0}}{y_{i q}}: y_{i q}>0, i=1,2, \cdots, m\right\} xqmin{yiqyi0:yiq>0,i=1,2,,m},到达边界后,肯定会有非零的基变量会变成0(因为非基变量和基变量有个表达式关系),这时候就会发生进基出基的操作, y p q y_{pq} ypq就是转轴元.

其它情况

退化解

如果采用最小费用系数进基的情况,可能会产生循环的情况,意味着迭代若干步后又回到了最初的解。这时解决方案可以有摄动法、Bland法则. 一般程序中会专门写对付循环机制的代码.

没有初始可行解的情况

对于 A x ⩽ b , x ⩾ 0 A x \leqslant b, x \geqslant 0 Axb,x0且其中 b ⩾ 0 b \geqslant 0 b0的情况,可以直接构造可行解。但是一般情况,难以看出可行解,这时使用两阶段法.
先构造 A x = b , x ⩾ 0 A x=b, \quad x \geqslant 0 Ax=b,x0 b ⩾ 0 b \geqslant 0 b0,然后考虑辅助问题:
在这里插入图片描述
y是人工变量. x = 0 , y = b x=0, y=b x=0,y=b自动构成基本可行解。第一阶段同样使用单纯形法构造出基本可行解,转轴时不用考虑费用系数,且当基变量的系数均为0时可以去除冗余方程。

修正单纯形法

寻优过程中仅一小部分列发生转轴,没有显式用到的列很多,对这些列的计算有些浪费. 当m比n小得多时,修正单纯形法可以节省开销。

修正单纯形表如下:
在这里插入图片描述
执行以 y p q y_{pq} ypq为主轴的转轴运算,即可得与新基对应的数据。

单纯形法的计算复杂度

由Klee-Minty定理,单纯形法的时间复杂度是指数级的.

参考文献

数学规划基础——刘红英

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值