> 文章列表 > 数学建模第三天:数学建模算法篇之线性规划及matlab的实现

数学建模第三天:数学建模算法篇之线性规划及matlab的实现

数学建模第三天:数学建模算法篇之线性规划及matlab的实现

目录

 一、前言

二、线性规划简介

1、线性规划模型介绍与特征

2、线性规划模型的一般形式

三、单纯形法

1、标准化

2、单纯形法解题

四、matlab解决问题1、matlab线性规划函数

2、解题代码


 一、前言

        数学建模,本意就是用来解决生活中的问题,我们今天想讲一讲装修的相关问题。没错,我们的伍老师通过自己赚的钱,斥巨资买了一套单身公寓。买完单身公寓后,伍老师发现,装修有杂七杂八的一系列问题,太麻烦了!此时伍老师的男朋友小李站出来了,对伍老师特别man的说:“别担心,这不是还有我吗,我来处理这些事情好了!”但是小李是一个四肢发达,头脑简单的人,对装修更是一窍不通。但是牛皮已经吹出去了,话再收回来就要被啪啪打脸了。所以,为了维护小李作为男人的尊严,我们今天就需要帮一下小李。

        引例:伍老师刚拿到毛坯房,觉得房子里面空气质量太差了,于是决定买一些花朵来改善一下房子里的空气。已知伍老师看中了满天星、向日葵、洋桔梗以及红玫瑰四个品种。其单价、功效与装饰效果如下:

A.洋桔梗:每平方米75元,一天能净化0.8千克空气,装饰效果评分为2颗星

B.满天星:每平方米130元,一天能净化0.72千克空气,装饰效果评分为7颗星

C.向日葵:每平方米105元,一天能净化0.75千克空气,装饰效果评分为6颗星

D.红玫瑰:每平方米200元,一天能净化0.65千克空气,装饰效果评分为10颗星

        已知,伍老师打算拿出一千块买花,预计拿出20平方米的空间放绿植,且希望装饰效果评分不低于45颗星,那么如何购买能使空气质量净化效果最佳?

二、线性规划简介

1、线性规划模型介绍与特征

         线性规划(Linear Programming,缩写为LP)通常研究资源的最优利用、设备最佳运行等问题。例如,当任务或目标确定后,如何统筹兼顾,合理安排,用最少的资源(如资金、设备、原标材料、人工、时间等)去完成确定的任务或目标;企业在一定的资源条件限制下,如何组织安排生 产获得最好的经济效益(如产品量最多 、利润最大)。

        线性规划的数学模型由决策变量 Decision variables 、目标函数Objective function 与约束条件Constraints 构成。称为线性规划三要素。

线性规划模型的特征是:

1.解决问题的目标函数是多个决策变量的线性函数,通常是求最大值或最小值;

2.解决问题的约束条件是一组多个决策变量的线性不等式或等式。

2、线性规划模型的一般形式

        一般地,假设线性规划数学模型中,有m个约束,有n个决策变量xj, j=1,2…,n,目标函数的变量系数用cj表示, cj称为价值系数。约束条件的变量系数用aij表示,aij称为工艺系数。约束条件右端的 常数用bi表示,bi称为资源限量。则线性规划数学模型的一般表达式可写成:

        由此,引例的线性规划模型可以写为:

        xjj=1,24)分别代表洋桔梗、满天星、向日葵以及红玫瑰所占面积(平方米),得到下列线性规划模型:

max\\, \\, z=0.8x_{1}+0.72x_{2}+0.75x_{3}+0.65x_{4}

\\left\\{\\begin{matrix} 75x_{1}+130x_{2}+105x_{3}+200x_{4}\\leq 1000 & \\\\ 2x_{1}+7x_{2}+6x_{3}+10x_{4}\\geq 45& \\\\ x_{j}\\geq 0 \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, j=1,2,3,4 \\end{matrix}\\right.

     

三、单纯形法

        如何解出线性规划问题的解?很简单,学过高中数学的同学们应该知道:画图嘛,画二维平面图可以解决两个变量的线性规划问题,画空间涂可以解决三个变量的线性规划问题。那么四个变量、五个变量的呢?大家是想让自己变为高纬度生物,再解出题目呢,还是用其他方法解出来?诶嘿,还真有一种方法解决线性规划问题,叫做单纯形法,请听小编娓娓道来。

1、标准化

        在用单纯法求解线性规划问题时,为了讨论问题方便,需将线性规划模型化为统一的标准形式。 线性规划问题的标准型为:

        1.目标函数求最大值

        2.约束条件都为等式方程

        3.变量xj非负

        4.常数bi非负

        5.在≤左端加入松驰变量 (slack variable);在≥号左端减去剩余变量(Surplus variable)

        6.目标函数是最小值,为了化为求最大值,令Z′ =-Z,得到 max Z′ =-Z

        那么,例题的标准化模型为:

max\\, \\, z=0.8x_{1}+0.72x_{2}+0.75x_{3}+0.65x_{4}

\\left\\{\\begin{matrix} 75x_{1}+130x_{2}+105x_{3}+200x_{4}+x_{5}= 1000 & \\\\ 2x_{1}+7x_{2}+6x_{3}+10x_{4}-x_{6} =45& \\\\ x_{j}\\geq 0 \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, \\, j=1,2,3,4,5,6 \\end{matrix}\\right.

2、单纯形法解题

计算步骤:

1.求初始基可行解,列出初始单纯形表,求出检验数。其中

基变量的检验数必为零;

2.判断:

a)若λj0(j=1,2,n)得到最优解;

b)某个λk>0aik0(i=12,…,m)则线性规划具有无界解(见例1-18)

c)若存在λk>0aik (i=1,…,m)不全非正,则进行换基;

3.换基:

a)选进基变量 :设λk=maxλj | λj >0,xk为进基变量

b)选出基变量 ,求最小比值:

个比值最小 ,选最小比值对应行的基变量为出基变量, 若有相同最小比值,则任选一个。aLk为主元素。

(c)求新的基可行解:用初等行变换方法将aLk 化为1,k列其它元素化为零(包括检验数行)得到新的可行基及基本可行解,再判断是否得到最优解。

四、matlab解决问题
1、matlab线性规划函数

        其实单纯形法在数学建模里面只作为了解即可,因为我们更偏重于动手编程能力。在MATLAB里面,有一个专门解决线性规划的函数,叫做linprog,其函数与参数含义如下:

①x=linprog(c, A, b)

min Z=cX

s.t. AX\\leq b

注意:A与b均为矩阵的形式

②x=linprog(c,A,b,Aeq,beq)

min Z=cX

s.t. \\, \\, \\, \\, \\, \\begin{matrix}AX\\leq b\\\\ Aeq X=beq \\end{matrix}

注意:1.若没有不等式:AX\\leq b 存在,则令A=[ ],b=[ ]

        2.A、Aeq、b、beq均为矩阵的形式

③x=linprog(c,A,b,Aeq,beq, VLB,VUB)

min Z=cX

s.t. \\, \\, \\, \\, \\, \\begin{matrix}AX\\leq b\\\\ Aeq X=beq \\end{matrix}

VLB\\leq X\\leq VUB

注意:1.若没有等式约束: Aeq X=beq , 则令Aeq=[ ], beq=[ ]

        2. A、Aeq、b、beq、VLB、VUB均为矩阵的形式

2、解题代码

    c=[-0.8 -0.72 -0.75 -0.65];A=[-2 -7 -6 -10;75 130 105 200];b=[-45 ; 1000];Aeq=[];beq=[];vlb=[0,0,0,0];vub=[];             [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub);-fval,x

结果为:

        由此可见,洋桔梗买5.3125平方米,向日葵买5.7292平方米时,既能保证在预算之内,又能让房子更加温馨有氛围,同时也能净化最多的空气!看得出来,伍老师还有小李与向日葵以及洋桔梗是绝配,更可能是因为,伍老师就是小李的太阳,给予小李足够多的温暖,就和向日葵一样!

        好的,本期的算法课就到这里结束啦,感兴趣的小伙伴们给小编点一个小心心可好?