工作生活运筹学

LP问题进阶 Part 1 | 单纯形法

2019-07-03  本文已影响0人  StRygwyr

这一部分对应书上第四章(P16-P26),其难度比前三章大得多。个人建议先粗读了解这个方法的思路,再精读把握具体技巧。建议学习时间为2个小时。单纯形法是求解线性规划问题的通用方法,百度百科中有十分详细的说明,可以对照地阅读学习。

为方便查阅,再link一下教材


基本概念

假设我们讨论的LP问题有n_0个变量与m个限制条件。

基本概念部分大概就是这些。第一次看不用要求自己完全理解,不妨先继续往下学习再慢慢理解这些概念。


思路简介

单纯形方法的示意图如下:

单纯形方法示意图
简单地说就是先找到一个可行解(假如存在的话),之后再不断地优化这个解。
具体地,为了对可行解进行优化,书上提到了一种操作。由于书上没有为这个操作命名,为方便起见,在此我们管这种操作叫“优化操作”。优化操作是单纯形方法的核心步骤,单纯形法说白了就是对一个基本解实施若干次优化操作后得到最优解的过程。下面我们来讨论什么是优化操作。

优化操作

我们先从一下四点直观的认识入手。

由于书上根本就没有优化操作的概念,所以在此我自己给出其定义:

定义 优化操作
优化操作给某一个非基本变量一非负增量,使得目标函数增加且使一个基本变量变为0。除此之外,不存在比该增量更小的增量使得该非基本变量加上此增量后存在一个基本变量为0。

我们称增加的这个非基本变量为输入变量,变为0的这个基本变量为输出变量。因为输入变量取代了输出变量成为新的基。(基的定义可以在前面找到。)
通俗一点地说就是选择一个非基本变量,让其不断增加,要求:

回到主题。之前提到单纯形法即对一个基本解实施若干次优化操作后得到最优解的过程。我们先不考虑最优解的存在性,且断言:任意非基本变量增加不使得目标函数增加等价于目标函数取得最大值。这是因为由于符号的限制,非基本变量只能增加,而所有的变量都可以被非基本变量表示。因此非基本变量的增加包含了所有变量的各种变化。

当无法再进行优化操作时有两种可能。一种是任意非基本变量的增加不使得目标函数增加。此时目标函数取最大值。另外一种情况是任意非基本变量的增加不使得某一基本变量变为0。注意,LP问题的标准形式中对于变量的所有限制最终都会归结于符号限制,因此若基本变量不会变为0,则非基本变量可以无限地增加。此时LP问题无界。

还有一点需要注意的是优化操作一定会在有限步后结束,之后会讲到这一点。

经过上述讨论我们对单纯形算法的核心步骤应该有一个大致的了解了。

单纯形算法:实施步骤

下面是一个小小的总结

1. 准备工作

2. 优化操作

单纯形算法到此结束

习题(P20)

  1. 要挑选哪个变量作为输入变量,哪个作为输出变量?
    满足定义就行。
  2. 优化操作是否会在有限步后结束?
    是。因为优化操作本质上是对可行域顶点的枚举,而顶点只有有限个,且不重复取到。不重复的原因是每一个顶点唯一地对应着目标函数的一个值,而优化算法使得目标函数增加。
  3. 如何将其他LP问题形式转化为标准形式?
    这在第二章中讲过。
  4. 如何找到初始字典?
    见书上第23页。
上一篇 下一篇

猜你喜欢

热点阅读