欢迎来到天天文库
浏览记录
ID:8207311
大小:927.00 KB
页数:19页
时间:2018-03-10
《数学建模之线性规划》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第一章线性规划§1线性规划在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划,而线性规划(LinearProgramming简记LP)则是数学规划的一个重要分支。自从1947年G.B.Dantzig提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。1.1线性规划的实例与定义例1某机床厂生产
2、甲、乙两种机床,每台销售后的利润分别为4000元与3000元。生产甲机床需用机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为机器10小时、机器8小时和机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?上述问题的数学模型:设该厂生产台甲机床和乙机床时总利润最大,则应满足(目标函数)(1)s.t.(约束条件)(2)这里变量称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subjectto)。由于上面
3、的目标函数及约束条件均为线性函数,故被称为线性规划问题。总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。而选适当的决策变量,是我们建立有效模型的关键之一。1.2线性规划的Matlab标准形式线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab中规定线性规划的标准形式为其中和为维列向量,、为适
4、当维数的矩阵,、为适当维数的列向量。例如线性规划-19-的Matlab标准型为1.3线性规划问题的解的概念一般线性规划问题的标准型为(3)s.t.(4)可行解满足约束条件(4)的解,称为线性规划问题的可行解,而使目标函数(3)达到最小值的可行解叫最优解。可行域所有可行解构成的集合称为问题的可行域,记为。1.4线性规划的图解法图解法简单直观,有助于了解线性规划问题求解的基本原理。我们先应用图解法来求解例1。对于每一固定的值,使目标函数值等于的点构成的直线称为目标函数等位线,当变动时,我们得到一族平行直线。对于例1,显然等位线越趋于右上方
5、,其上的点具有越大的目标函数值。不难看出,本例的最优解为,最优目标值。从上面的图解过程可以看出并不难证明以下断言:(1)可行域可能会出现多种情况。可能是空集也可能是非空集合,当非空时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。既可能是有界区域,也可能是无界区域。(2)在非空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其目标函数值无界)。(3)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域的“顶点”。-19-上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。在一般的维空间中,满足一线性
6、等式的点集被称为一个超平面,而满足一线性不等式(或)的点集被称为一个半空间(其中为一维行向量,为一实数)。若干个半空间的交集被称为多胞形,有界的多胞形又被称为多面体。易见,线性规划的可行域必为多胞形(为统一起见,空集也被视为多胞形)。在一般维空间中,要直接得出多胞形“顶点”概念还有一些困难。二维空间中的顶点可以看成为边界直线的交点,但这一几何概念的推广在一般维空间中的几何意义并不十分直观。为此,我们将采用另一途径来定义它。定义1称维空间中的区域为一凸集,若及,有。定义2设为维空间中的一个凸集,中的点被称为的一个极点,若不存在及,使得。
7、定义1说明凸集中任意两点的连线必在此凸集中;而定义2说明,若是凸集的一个极点,则不能位于中任意两点的连线上。不难证明,多胞形必为凸集。同样也不难证明,二维空间中可行域的顶点均为的极点(也没有其它的极点)。1.5求解线性规划的Matlab解法单纯形法是求解线性规划问题的最常用、最有效的算法之一。这里我们就不介绍单纯形法,有兴趣的读者可以参看其它线性规划书籍。下面我们介绍线性规划的Matlab解法。Matlab中线性规划的标准型为基本函数形式为linprog(c,A,b),它的返回值是向量的值。还有其它的一些函数调用形式(在Matlab指
8、令窗运行helplinprog可以看到所有的函数调用形式),如:[x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)这里fval返回目标函数的值,LB和UB分别是变量的下界和上
此文档下载收益归作者所有