线性规划==约束最优化问题
线性规划的简介和举例
概述
- 线性规划就是一个线性函数在线性等式或不等式约束条件下的极值问题,是最简单的约束优化问题;
- 理论最为成熟、应用最为广泛的一种数学规划方法;
- 运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支;
- 广泛应用于军事作战、经济分析、经营管理和工程技术等方面;
- 为合理地利用有限的人力、物力、财力等资源作出最优决策,提供科学的依据。
发展
- 法国数学家傅里叶和瓦莱-普森分别于1832和1911年独立地提出线性规划的想法,但未引起注意。
- 1939年苏联数学家康托罗维奇在《生产组织与计划中的数学方法》一书中提出线性规划问题,也未引起重视。
- 1947年美国数学家G.B.丹齐格提出线性规划的一般数学模型和求解线性规划问题的通用方法–单纯形法,为这门学科奠定了基础。
- 1947年美国数学家J.von诺伊曼提出对偶理论,开创了线性规划的许多新的研究领域,扩大了它的应用范围和解题能力。
- 1951年美国经济学家T.C.库普曼斯把线性规划应用到经济领域,为此与康托罗维奇一起获1975年诺贝尔经济学奖。
- 1954年,C.莱姆基提出对偶单纯形法;
- 1954年,S.加斯和T.萨迪等人解决了线性规划的灵敏度分析和参数规划问题;
- 1956年,A.塔克提出互补松弛定理;
- 1960年G.B.丹齐格和P.沃尔夫提出分解算法等
- 1979年苏联数学家哈奇扬提出解线性规划问题的椭球算法,并证明它是多项式时间算法。
- 1984年美国贝尔电话实验室的印度数学家卡马卡提出解线性规划问题的新的多项式时间算法。
问题的数学模型
- 当任务或目标确定后,如何统筹兼顾,合理安排,用最少的资源 (如资金、设备、原标材料、人工、时间等)去完成确定的任务或目标
- 在一定的资源条件限制下,如何组织安排生产获得最好的经济效益(如产品量最多 、利润最大)
线性规划的数学模型及图解法
数学模型的一般形式
数学模型的三要素:
- 决策变量 Decision variables
- 目标函数 Objective function
- 约束条件 Constraints
数学模型的标准式
标准型的矩阵形式
标准型的列向量形式
标准型的行向量形式
标准型的特点
- 目标函数求最小值;
- 决策变量非负;
- 约束条件都是等式;
- 常数项(右端向量)非负
如何转化成标准型
目标函数的转换
约束方程的转换:由不等式转换为等式
变量的转换
变量无约束即属于实数域R
基本概念
可行解(Feasible Solution)----任一满足约束条件的一组决策变量的数值;
可行域(Feasible Region)----所有可行解组成的集合,也称为可行解集;
目标函数等值线(Objective function line)----位于同一直线上的点,具有相同的目标函数值。
图解法
由图解法可以看到
- 线性规划的所有可行解构成的可行域一般是凸多边形,有些可行域是无界的
- 若存在最优解,则一定在可行域的某顶点得到;
- 若在两个顶点上同时得到最优解,则在这两点的连线上的任一点都是最优解
- 若可行域无界,则可能发生最优解无界的情况;
- 若可行域是空集,此时无最优解。
图解法特点
- 直观、简便等优点
- 在变量多的情况下,即在多维的情况下,它就无能为力了
线性规划的基本概念和基本性质
基本概念
基本可行解是同时满足约束方程和变量非负约束的解。
记住约束条件除了基本的(等式或不等式)约束还有对变量的约束。变量一般要求都是非负的,所以基本可行解的要求非0变量也是要非负的。
基本解是对于部分约束等式的解,几何意义为图上的一个顶点。
基本可行解是对于在满足所有约束等式的解,几何意义为图上的可行的顶点。
基本性质
解释
- 如果有可行解,在线性规划的情况下在图上一定会有交点,所以一定会有基本解,也就一定会有基本可行解。(可行域不可能是没有任何顶点的)
- 如果有最优解,那么一定是在可行域的顶点处,而顶点为基本解,且可行,则一直是基本可行解。 (基本可行解<==>R(可行域)的顶点)
- 当所有基本解都可行时,即所有顶点都在可行域中,那么基本可行解的数量为Cnm个。
解释:存在多个最优解,说明是可行域的一条边上的点都是最优解,所有这条边上的两个顶点都是最优解。
当m、n的数目相当大时,枚举法行不通。下面介绍单纯形法,通过逐步迭代保证能逐步改进求出最优解。
单纯形法
历史: 1947年, 美国学者George Dantzig(丹齐格) 提出了求解线性规划的单纯形法, 为线性规划的推广奠定了基础。
基本思想
从可行域的一个顶点(基本可行解)开始, 转移到另一个顶点(另一个基本可行解);(因为如果有最优解则必在顶点处可以取到)
转移的条件是使目标函数值得到改善(逐步变优)
当目标函数达到最优值时, 问题也就得到了最优解
单纯形法公式推导
如果有多个j∈RN,则选择zk-ck最大的那个;
确定进基变量
(进基变量的推导是从目标函数f开始推导)
确定离基变量
(离基变量的推导是从约束条件的基本可行解xB的相关公式开始推导)
要确保新得到的点时基本可行解,要满足约束条件。已经确定了进基变量,取进基变量的值判断那个是离基变量。最重要的是要有一个离基变量,如果原本的那个点有一个x是0或者说是退化的基本解,则原则上是可以不需要再个离基变量的。
当xk取到最小的bi/yik时,此时正好有一个xi为0。如果取的bi/yik不是最小值,那么一定会存在一个x是小于0的,不符合线性规划决策变量都非负的特性。
如果zj-cj>0且yk<=0,即说明xk虽然是进基变量,但是xk往任何方向都可以得到可行解,但是取不到顶点,或者说没有可以离基的变量,所以是无解的。
总结
- 通过判断zj-cj那个最大,即那个让f减少的最多那个就是进基变量
- 取bi/yik最小,即正好让一个原基变量变为0,那个变为0的基变量即为离基变量。
最优解的判别定理
当所有的zj-cj<=0则说明取任何其他顶点都会增加函数值,因此此时所取到的点为最优解。
单纯形基本法
单纯形法计算步骤
注: 对于极大化问题,可以给出类似的步骤,只需要把确定进基和离基变量的准则相反即可。如zj-cj取最小。
单纯形法的收敛性
如果基本解有退化情况,可以在迭代的时候进行一些调整。
单纯形表法
(必考)
算法步骤
构造单纯形表
其中xk是进基变量,xBr是离基变量;xk个xBr的位置对换,xk所对应的列向量pk编程xBr所对于的列向量,即单位向量。
高斯主元消去法
解释(最好自己算几个)
- 对r行的每个元素操作,r行每个元素除以yrk
- 对所有i行操作(i = 1, ··· , m , i ≠ r),通过r行的每个元素乘以-yik/yrk加到每个对应的i行元素中 (-yik/yrk的意思是按第k列的i与r行元素之间的比例进行相减)
- 对最后一行即校验数行进行操作
- 计算对应的目标函数值
新的基本可行解
新基B1
使用单纯形法需要给定一个初始基本可行解,以便从这个基本可行解出发,求改进的基本可行解。
但那是初始基本可行解怎么找?
- 如果A约束矩阵中包含m阶的单位矩阵,则基本可行解容易找到。
- 若A中不包含m阶单位矩阵,则把每个等式增加一个非负变量xa(人工变量);如果还是不存在m阶单位阵,则继续加;(当xa=0时相当于原约束问题)
如何排除人工变量,求出原线性规划的最优解?
- 两阶段法
- 大M法
两阶段法
第一阶段
直接用单纯形法消去人工变量(直接把人工变量变换成非基变量,求原问题的基本可行解)
解出(6)的最优基本可行解为(x*,x*a)T
- 如果x*a≠0,则标准的线性规划(LP)没有可行解;
- 若x*a=0,且xa的分量都是非基变量,则此时x*是(LP)的一个基本可行解;
- 若x*a=0,且xa的某些分量是基变量。使用高斯主元消去法把原来变量中的非基变量进基替换人工变量中的基变量。由于最优值一直保持为0,所以此时就成了第(2)中情况,得到(LP)的一个基本可行解。
第一阶段结束后得到了原来LP的一个基本可行解。
第二阶段
从上一阶段得到的基本可行解出发使用单纯形法求解LP的最优解。
大M法
基本思想
大M法最优解判别
单纯形法小结
线性规划的对偶理论与对偶单纯形法
(可能也会考,没有看的很懂,后面还需要继续研究)
对偶问题
任何一个求极大化的线性规划问题都有一个求极小化的线性规划问题与之对应,反之亦然,如果我们把其中一个叫原问题,则另一个就叫做它的对偶问题,并称这一对互相联系的两个问题为一对对偶问题。
对称形式(特点)
- 目标函数求极小值,约束条件“≥”,变量非负;
- 目标函数求极大值,约束条件“≤”,变量非负;
非对称形式
对偶问题的基本定理
- 定理1(对称性) 对偶问题的对偶是原问题
- 定理2(弱对偶定理) 若x*,y分别是原问题和对偶问题的可行解,则cTx>=bTy*——原问题任一可行解对应的目标函数值不小于其对偶问题的任一可行解对应目标函数值。(推荐看PPT)
- 定理3(最优性定理)若x*,y分别是原问题和对偶问题的可行解,若cTx=bTy*,则x*,y*是他们的最优解。
- 定理4(强对偶定理)若原问题有最优解,则其对偶问题一定有最优解,且他们的目标函数值相等。
定理2的推论
- 原问题任一可行解的目标函数值是其对偶问题目标函数值的上界;反之,对偶问题任一可行解的目标函数值是其原问题目标函数的下界。
- 数值的下界。 在一对对偶问题(P)和(D)中,若其中一个问题可行但目标函数无界,则另一个问题无可行解;反之不成立。(对偶问题的无界性)
- 在一对对偶问题(P)和(D)中,若一个可行(如P),而另一个不可行(如D),则该可行的问题的目标函数值无界。
对偶可行的基本解
如果x对应的y是对偶问题的可行解,且x是原问题的基本解,则称x是原问题P的对偶可行的基本解。如果x在原问题P上也是可行的,那么x是原问题P的最优解。
单纯形法的基本思想(联系对偶问题)
从( P )的一个基本可行解出发,迭代到另一个基本可行解,并使目标函数减小,同时使它对应的对偶规划的解的不可行性逐步消失(即检验数逐步变成非正),直到对偶问题的解是可行解为止,这时就找到了原问题的最优解。
y*是P的对偶问题的可行解<===>问题P的所有验证数σj<=0
对偶单纯形法的基本思想
从( P )的一个对偶可行的基本解出发,在保证对偶可行性的条件下,逐步使原问题的基本解的不可行性消失(即x非负),直到获得原问题的一个基本可行解为止,而它就是原问题的最优解。
对偶可行的基本解 x* 是可行解===>x*是最优解
最优解判定
如果对偶可行的基本解x=(xB ,xN)T=(b*,0)T 非负,即b*>=0,则这时的x是最优解。
确定离基变量
如果对偶可行的基本解存在小于0的分量,选择b*中最小的负值对应的变量作为离基变量xBr
确定进基变量
(保证新的点还是对偶可行的基本解)
对偶单纯形法计算步骤
对偶单纯形法应注意的问题
- 对偶单纯形法是求解线性规划的一种方法,不是求解其对偶问题的最优解;
- 初始表中一定要满足对偶问题可行,也就是说检验数都是小于等于0的;
- 对偶单纯形法与普通单纯形法的换基顺序不一样,普通单纯形法是先确定进基变量后确定出基变量,对偶单纯形法是先确定出基变量后确定进基变量;
- 普通单纯形法的最小比值是min{bi*/yik,yik>0},其目的是保证新点是原问题的基本可行解;对偶单纯形法的最小比值是min{(zj-cj)/yrj,yrj<0},其目的是保证新点是对偶问题的基本可行解;
- 对偶单纯形法确定离基变量时,若不遵循bBr*=min{bi *,bi *<0}规则,任选一个bi *<0对应的基变量出基,不影响计算结果,只是迭代次数可能不一样。
对偶单纯形法的应用前提
有一个基本解,其对应的基满足:
①单纯形表的检验数行全部非正(对偶可行);
②变量取值有负数(非可行解)。
注: 通过矩阵行变换运算,使所有相应变量取值均为非负数即得到最优单纯形表。