单纯形法的基本原理及实践案例分析应用
摘 要
单纯形法是解决线性规划问题的一个有效算法。同时无约束优化的单纯形法可利用对简单几何图形各顶点的目标函数值进行比较,逐步以目标函数值较小的顶点取代目标数值最大的顶点,从而进行求优。本文将从线性规划的数学模型开始,接着介绍单纯形法解决线性规划问题的过程,再介绍无约束优化的单纯形法的原理及步骤,最后利用python、matlab基于实例对单纯形法进行实现。
关键词:线性规划;可行基;无约束最优化;
目录
第四章 单纯形法求解线性规划问题的matlab及python实现
第一章 线性规划的一般形式
1.1 线性规划的数学模型
满足以下三个条件的数学模型称为线性规划数学模型:
(1)每一个问题都用一组决策变量表示某一方案;每一组值就代表一个具体方案。
(2)有一个目标函数,可用决策变量的线性函数来表示,按问题的不同,要求目标函数实现最大化或最小化。
(3)有一组约束条件,可用一组线性等式或不等式来表示。
线性规划问题的一般形式为
这里目标函数中的系数叫做目标函数系数或价值系数,约束条件中的常数叫做资源系数,约束条件中的系数叫做约束系数或技术系数。
1.2 线性规划问题的标准形式
所谓线性规划问题的标准形式,是指目标函数的要求最小,所有约束条件都是等式约束,且所有决策定量都是非负的,即
或简写为
线性规划问题的矩阵表示为
其中,。任意的线性规划模型都可以转化为标准形式。
第二章 单纯形法求解线性规划问题
2.1单纯形法的计算步骤
单纯形法是求解线性规划问题的迭代算法。
单纯形法的基本思路是:从可行域中某个基可行解(一个顶点)开始,转换到另一个基可行解(顶点),直到目标函数达到最优时,基可行解即为最优解。单纯形法基本过程如图:
为方便计算,通常借助于单纯形表来计算。单纯形表中列中填入基变量;列填入基变量的价值系数;b列中填入约束方程组右端的常数;θj列的数字是在确定换入变量后,按规则计算填入;最后一行称为检验数行,对应各非基变量的检验数是。
单纯形法的计算步骤:
(1)找出初始可行基,确定初始基可行解,建立初始单纯形表。
(2)检验各非基变量的检验数。若所有的,则已得到最优解,停止计算。否则转入下一步。
(3)在中,若所有,则此问题无最优解,停止计算。否则转入下一步。
(4)以为主元素进行迭代(用高斯消元法),把所对应的列向量
将列中的换成得到新的单纯形表,重复步骤(2)——步骤(5),直到终止。
若目标函数要求实现最大化,一方面可将最大化转换为最小化,另一方面也可在上述计算步骤中将判定最优解的改为,将换入变量的条件改为。