线性规划(linprog).doc

上传人:工**** 文档编号:542823447 上传时间:2023-02-13 格式:DOC 页数:12 大小:453KB
返回 下载 相关 举报
线性规划(linprog).doc_第1页
第1页 / 共12页
线性规划(linprog).doc_第2页
第2页 / 共12页
线性规划(linprog).doc_第3页
第3页 / 共12页
线性规划(linprog).doc_第4页
第4页 / 共12页
线性规划(linprog).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《线性规划(linprog).doc》由会员分享,可在线阅读,更多相关《线性规划(linprog).doc(12页珍藏版)》请在金锄头文库上搜索。

1、线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解:%min fx %s.t .(约束条件):Ax=b%(等式约束条件):Aeqx=beq%lb=x=ublinprog函数的调用格式如下:x=linprog(f,A,b)x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beq,lb,ub)x=linprog(f,A,b,Aeq,beq,lb,ub,x0)x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)x,fval=linprog()x, fval, exitflag=linp

2、rog()x, fval, exitflag, output=linprog()x, fval, exitflag, output, lambda=linprog()其中:x=linprog(f,A,b)返回值x为最优解向量。x=linprog(f,A,b,Aeq,beq) 作有等式约束的问 题。若没有不等式约束,则令A= 、b= 。x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub为变量x的下界和上界,x0为初值点,options为指定优化参数进行最小化。Options的参数描述:Display显示水平。 选择off 不显示输出;选择Iter显

3、示每一 步迭代过程的输出;选择final 显示最终结果。MaxFunEvals 函数评价的最大允许 次数Maxiter 最大允许迭代次数TolXx处的终止容限x,fval=linprog() 左端 fval 返回解x处的目标函数值。x,fval,exitflag,output,lambda=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的输出部分: exitflag描述函数计算的退出条件:若为正值, 表示目标函数收敛于解x处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。output 返 回优化信息:output.iterations表示迭代

4、次数;output.algorithm表示所采用的算法;outprt.funcCount表示函数评价次数。lambda返回x处的拉格朗日乘子。它有以下属性:lambda.lower-lambda的下界;lambda.upper-lambda的上界;lambda.ineqlin-lambda的线性不等式;lambda.eqlin-lambda的线性等式。-1-第一章 线性规划1 线性规划在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支数学规划,而线性规划(Linear Programming 简记LP)则是数学规划的一个重要分

5、支。自从1947年G. B. Dantzig 提出求解线性规划的单纯形方法以来,线性规划在理论上趋向成熟,在实用中日益广泛与深入。特别是在计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了,已成为现代管理中经常采用的基本方法之一。1.1 线性规划的实例与定义例1 某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。生产甲机床需用机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为机器10小时、机器8小时和机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最

6、大?上述问题的数学模型:设该厂生产台甲机床和乙机床时总利润最大,则应满足(目标函数) (1)s.t.(约束条件) (2)这里变量称之为决策变量,(1)式被称为问题的目标函数,(2)中的几个不等式是问题的约束条件,记为s.t.(即subject to)。上述即为一规划问题数学模型的三个要素。由于上面的目标函数及约束条件均为线性函数,故被称为线性规划问题。总之,线性规划问题是在一组线性约束条件的限制下,求一线性目标函数最大或最小的问题。在解决实际问题时,把问题归结成一个线性规划数学模型是很重要的一步,但往往也是困难的一步,模型建立得是否恰当,直接影响到求解。而选取适当的决策变量,是我们建立有效模型

7、的关键之一。1.2 线性规划的Matlab标准形式线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab中规定线性规划的标准形式为其中和为维列向量,为维列向量,为矩阵。例如线性规划的Matlab标准型为 1.3 线性规划问题的解的概念一般线性规划问题的标准型为 (3) (4)可行解 满足约束条件(4)的解,称为线性规划问题的可行解,而使目标函数(3)达到最小值的可行解叫最优解。可行域 所有可行解构成的集合称为问题的可行域,记为。1.4 线性规划的图解法图解法简单直观,有助于了解线性规划问题求解的基本原理。我

8、们先应用图解法来求解例1。如上图所示,阴影区域即为LP问题的可行域R。对于每一固定的值,使目标函数值等于的点构成的直线称为目标函数等位线,当变动时,我们得到一族平行直线。让等位线沿目标函数值减小的方向移动,直到等位线与可行域有交点的最后位置,此时的交点(一个或多个)即为LP的最优解。对于例1,显然等位线越趋于右上方,其上的点具有越大的目标函数值。不难看出,本例的最优解为,最优目标值。从上面的图解过程可以看出并不难证明以下断言:(1)可行域可能会出现多种情况。可能是空集也可能是非空集合,当非空时,它必定是若干个半平面的交集(除非遇到空间维数的退化)。既可能是有界区域,也可能是无界区域。(2)在非

9、空时,线性规划既可以存在有限最优解,也可以不存在有限最优解(其目标函数值无界)。(3)R非空且LP有有限最优解时,最优解可以唯一或有无穷多个。(4)若线性规划存在有限最优解,则必可找到具有最优目标函数值的可行域的“顶点”。上述论断可以推广到一般的线性规划问题,区别只在于空间的维数。在一般的维空间中,满足一线性等式的点集被称为一个超平面,而满足一线性不等式(或)的点集被称为一个半空间(其中为一维行向量,为一实数)。有限个半空间的交集被称为多胞形,有界的多胞形又被称为多面体。易见,线性规划的可行域必为多胞形(为统一起见,空集也被视为多胞形)。在一般维空间中,要直接得出多胞形“顶点”概念还有一些困难

10、。二维空间中的顶点可以看成为边界直线的交点,但这一几何概念的推广在一般维空间中的几何意义并不十分直观。为此,我们将采用另一途径来定义它。定义1 称维空间中的区域为一凸集,若及,有。定义2 设为维空间中的一个凸集,中的点被称为的一个极点,若不存在及,使得。定义1 说明凸集中任意两点的连线必在此凸集中;而定义2 说明,若是凸集的一个极点,则不能位于中任意两点的连线上。不难证明,多胞形必为凸集。同样也不难证明,二维空间中可行域的顶点均为的极点(也没有其它的极点)。1.5 求解线性规划的Matlab解法单纯形法是求解线性规划问题的最常用、最有效的算法之一。单纯形法是首先由George Dantzig于

11、1947年提出的,近60年来,虽有许多变形体已被开发,但却保持着同样的基本观念。由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优解是可行区域的一个极点。基于此,单纯形法的基本思路是:先找出可行域的一个极点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更优;如此下去,直到找到某一最优解为止。这里我们不再详细介绍单纯形法,有兴趣的读者可以参看其它线性规划书籍。下面我们介绍线性规划的Matlab解法。Matlab5.3中线性规划的标准型为 基本函数形式为linprog(c,A,b),它的返回值是向量的值。还有其它的一些函数调用形式(在 Matlab 指令窗运

12、行 help linprog 可以看到所有的函数调用形式),如:x,fval=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)这里fval返回目标函数的值,Aeq和beq对应等式约束,LB和UB分别是变量的下界和上界,是的初始值,OPTIONS是控制参数。 例2 求解下列线性规划问题 解 (i)编写M文件c=2;3;-5;a=-2,5,-1; b=-10;aeq=1,1,1;beq=7;x=linprog(-c,a,b,aeq,beq,zeros(3,1)value=c*x(ii)将M文件存盘,并命名为example1.m。(iii)在Matlab指令窗运行exa

13、mple1即可得所求结果。例3 求解线性规划问题 解 编写Matlab程序如下:c=2;3;1;a=1,4,2;3,2,0;b=8;6;x,y=linprog(c,-a,-b,zeros(3,1)1.6 可以转化为线性规划的问题很多看起来不是线性规划的问题也可以通过变换变成线性规划问题来解决。如:例4 问题为其中,和为相应维数的矩阵和向量。要把上面的问题变换成线性规划问题,只要注意到事实:对任意的,存在满足 ,事实上,我们只要取,就可以满足上面的条件。这样,记,从而我们可以把上面的问题变成 2 运输问题(产销平衡)例5 某商品有个产地、个销地,各产地的产量分别为,各销地的需求量分别为。若该商品

14、由产地运到销地的单位运价为,问应该如何调运才能使总运费最省?解:引入变量,其取值为由产地运往销地的该商品数量,数学模型为 s.t. 显然是一个线性规划问题,当然可以用单纯形法求解。对产销平衡的运输问题,由于有以下关系式存在:其约束条件的系数矩阵相当特殊,可用比较简单的计算方法,习惯上称为表上作业法(由康托洛维奇和希奇柯克两人独立地提出,简称康希表上作业法)。 表上作业法是单纯形法在求解运输问题时的一种简化方法,其求解工作在运输表上进行逐步迭代如下:先按某一规则找出一个初始解(初始调运方案);再对现行解作最优性判断;若这个解不是最优的,就在运输表上对它进行调整改进,得一新解;再判断,再改进,直到得到最优解。3 指派问题(又称分配问题Assignment Problem)3.1 指派问题的数学模型例6 拟分配人去干项工作,每人干且仅干一项工作,若分配第人去干第项工作,需花费单位时间,问应如何分配工作才能使工人花费的总时间最少?容易看出,要给出一个指派问题的实例,只需给出矩阵,被称为指派问题的系数矩阵。引入变量,若分配干工作,则取,否则取。上述指派问题的数学模型为 s.t. (5)(5)的可行解既可以用一个矩阵(称为解矩阵)表示,其每行每列均有且只有一个元素为1,其余

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号