目录
0. 简介
单纯形算法(simplex method)是求解线性规划模型的一种通用方法。
线性规划模型具有三个要素:
- 决策变量
- 目标函数
- 约束条件
线性规划模型具有这样的特点:
- 决策变量相互独立且连续变化
- 目标函数是线性函数
- 约束条件是线性不等式组
例: 一个企业“生产计划”的线性规划模型如下
是指目标函数极大化,maximum的缩写,如果目标函数极小化则用
, minimize的缩写。
是subject to的缩写,表示受限制于,其后跟约束条件。上述模型中约束条件前两条表示资源约束,最后一条表示决策变量的非负约束。
一般来说,对于生产计划这类问题,可用如下线性规划模型近似表示
当然线性规划模型可以远比以上模型复杂,需要根据具体问题特征进行建模。下面介绍求解线性规划模型的单纯形算法。
1. 单纯形算法解析
单纯形算法遵循“初始点——判优——改进”的优化模式。我们首先讨论“判优”,然后讨论“改进”,最后讨论“初始点”。
1.1 基本概念及原理解析
为了方便后续的讨论,需要先了解一些线性规划的表示形式、可行域、以及线性规划可行解的刻画等内容
1.1.1 线性规划标准形式
定义1: 线性规划的标准形式(standard form)是指满足如下四个条件的线性规划模型:
(1)所有决策变量的取值是非负的;
(2)除决策变量非负约束外的其他约束是等式约束;
(3)模型中目标函数需要极大化(也可以要求极小化);
(4)等式约束中常数项位于等号的右端(称为右端项,right hand side)
例:一个线性规划模型的标准形式
线性规划模型标准形式的一般表达为
线性规划模型标准形式的矩阵表达为
1.1.2 线性规划典范形式
定义2: 线性规划的典范形式(canonical form)是指满足如下四个条件的线性规划模型:
(1)所有决策变量的取值是非负的;
(2)除决策变量非负约束外的其他约束是等式约束,并且右端项是非负的;
(3)模型中目标函数需要极大化(也可以要求极小化);
(4)在等式约束中存在一组与等式约束个数相等的决策变量,它们的系数构成系数矩阵的一个单位子矩阵。
例:一个线性规划模型的典范形式
线性规划模型典范形式的一般表达为
1.1.3 凸组合和凸锥组合
定义3: 给定个向量
以及满足
的非负实数
我们将向量
称为
的凸组合(convex combination),如果仅仅要求组合系数
那么向量
称为
的凸锥组合(convex conical combination),也称为非负线性组合。
这里回顾一下线性规划的标准形式的矩阵表达式(这里我们要求目标函数极小化)
其中系数矩阵,右端项
,目标函数的梯度向量
,决策变量
。线性规划的可行域实际上是由右端项
相对于系数矩阵
的列向量的凸锥组合系数
构成的。
定义4:设集合,若
和
,有
,则称
为一个凸集(convex set)。
集合的凸包(convex hull)是指包含
的凸集的交集,即包含
的最小凸集,记为
其中为凸集。
一个有限点集