好文档 - 专业文书写作范文服务资料分享网站

线性规划

天下 分享 时间: 加入收藏 我要投稿 点赞

数学建模培训——线性规划

在生产和经营管理中经常提出如何合理安排,使人力,物力等各种资源得到充分利用,获得最大效益,这类问题称为数学规划(优化)问题.

1.如果统筹兼顾,合理安排,用最少的资源(如资金,设备,原材料,人工,时间)去完成确定的目标和任务;

2.在一定的资源条件限制下,如何组织安排生产以获得最大的经济效益(如产量最多,利润最大).

一、线性规划的基本概念 1.实例 利润最大化问题

某工厂用3种原料P1,P2,P3生产3种产品Q1,Q2,Q3.已知的生产条件如下表所示,试制订出总利润最大的生产计划.

表 单位产品所需原材料的数量

原料 P1 P2 P3 单位产品的利润/万元 解:maxz?3x1?5x2?4x3

产品 Q1 2 0 3 3 Q2 3 2 2 5 Q3 0 4 5 4 原材料可用量/(千克·日-1) 1500 800 2000 s.t. 2x1?3x2?1500, 2x2?4x3?800, 3x1?2x2?5x3?2000, xj?0,j?1,2,3.2.概念 (1)线性规划问题(linear programming ,简记为LP):求多变量线性函数在线性约束条件下的最优值

(2)线性规划问题的一般形式:

max(min) z?c1x1?c2x2?s.t. a11x1?a12x2? a21x1?a22x2? am1x1?am2x2? x1,x2,其中x?(x1,x2,?cnxn?a1nxn?(?,?)b1,?a2nxn?(?,?)b2,?amnxn?(?,?)bm,

,xn?0.,xn)称为决策变量(decision variable),z称为目标函数

(objective function).约束条件所确定的x的范围称为可行域,满足约束条件的解x称为可行解,同时满足目标函数和约束条件的解x称为最优解(optimal solution),整个可行域上的最优解称为全局最优解(global optimal solution),可行域中某个邻域上的最优解称为局部最优解

?(local optimal solution).最优解所对应的目标函数值称为最优值(optimum).

若令

?a11?aA??21???am1a12a22am2a1n??a2n? ,x?(x1,x2,??amn?,xn)T ,c?(c1,c2,,cn)T,

b?(b1,b2,,bm)T,则

min cTxAx?b, x?0.(3)线性规划的规范形式为:

(4)线性规划的标准形式为:

min cTxAx?b, x?0.(5)决策变量为整数时,称为整数线性规划;决策变量取0或1时,称为0-1线性规划. (6)规划问题的三要素:决策变量,目标函数,约束条件 (7)线性规划模型的求解步骤 二、线性规划问题的求解 1.单纯形法

(1)线性规划问题的解的性质

线性规划问题的可行域是一个凸多边形.

线性规划问题如果存在最优解,则最优解必在可行域的顶点处达到.

(2)单纯形法: 从可行域的一个顶点(基本可行解)出发,转换到另一个顶点,并且使目标函数值逐步减小,有限步后可得到最优解.

2.软件求解——借助于Lingo和Matlab可以求解规划问题. 3.Lingo求解线性规划模型 LINGO的基本语法:

(1)以model:开始,以end结束(可省略); (2)目标函数直接记作“max=”、“min=”; (3)约束条件符号“s.t.”不出现;

(4)每一语句必须以英文状态下的分号“;”结尾;

(5)变量名称不区分大小写,以字母开头,可含数字和下划线; (6)所有变量都假定是非负的,不必再另外输入非负变量约束条件; (7)“>”代替“>=”,“<”代替“<=”; (8)注释语句以感叹号“!”开始,以分号“;”结束; (9)每行可有多个语句,语句可以断行. 实例的求解程序: model:

max=3*x1+5*x2+4*x3;

2*x1+3*x2<1500; 2*x2+4*x3<800;

3*x1+2*x2+5*x3<2000; end

Lingo的求解器运行状态窗口

求解器状态

变量数量

变量总数 非线性变量数 整数变量数 约束总数

非线性约束个数 总数

非线性系数个数 内存的使用量 求解花费的时间

当前模型类型

当前解的状态 当前目标函数值

当前约束不满足的总量

目前为止迭代次数 使用的特殊求解程序 目前可行解的最佳目标函数值

目标函数值的界

特殊求解程序当前运行步数

有效步数

约束数量 非零系数数量

扩展求解器状态

图 Lingo的求解器状态窗口

注:1.Model Class(当前模型类型)包括:LP 线性规划;QP 二次规划;ILP 整数线性规

划,IQP 整数二次规划;PILP 纯整数线性规划;NLP 非线性规划;MIP 混合整数规划,INLP整数非线性规划,PINLP纯整数非线性规划.

2.State(解的状态)包括:Global Optimum全局最优解;Local Optimum局部最优解;Feasible 可行解;Infeasible不可行解;Unbounded无界解;Interrupted中断;Undetermined 未确定. 三、经典的线性规划模型 1.下料问题

现有一批长度为7.4m的钢管,由于生产的需要,要求截出规格为2.9m,2.1m和1.5m的钢管.数量分别为1000根,2000根和1000根.请问应该如何下料(即截取原材料钢管),才能既满足生产的需求,又使得消耗原材料钢管的数量或浪费的材料最少?

表 钢管下料数据计算表 钢管规格/m 2.9 2.1 1.5 残料长度/m 下料方式 B1 2 0 1 0.1 B2 1 0 3 0 B3 1 2 0 0.3 B4 1 1 1 0.9 B5 0 2 2 0.2 B6 0 1 3 0.8 B7 0 3 0 1.1 B8 0 0 4 1.4 需求量/根 1000 2000 1000 min z?x1?x2?x3?x4?x5?x6?x7?x8 2x1?x2?x3?x4?1000, 2x3?x4?2x5?x6?3x7?2000, x1?3x2?x4?2x5?3x6?4x8?1000.model:

min=x1+x2+x3+x4+x5+x6+x7+x8; 2*x1+x2+x3+x4>1000;

2*x3+x4+2*x5+x6+3*x7>2000; x1+3*x2+x4+2*x5+3*x6+4*x8>1000; end

2.运输问题

某部门有3个生产同类产品的工厂(产地),生产的产品由4个销售点(销地)出售,各工厂的生产量、各销售点的销售量(假定单位均为吨)以及各工厂到各销售点的单位运价(元/吨)示于下表中.问产品如何调运才能使总运费最小.

表 单位运价表 销地 产地 A1 A2 A3 销量 B1 2 1 8 3 B2 9 3 4 8 B3 10 4 2 4 B4 2 2 5 6 产量 9 5 7 解:设第i产地运往第j销地的产品数量为xij,单位运费为cij,第i产地的产量为ai,第j销地销售量为bj,其中i?1,2,3;j?1,2,3,4.

min z???cijxiji?1j?134?xj?134ij?ai,i?1,2,3,?bj,j?1,2,3,4,

?xi?1ijxij?0.model: sets:

chandi/1..3/:a; xiaodi/1..4/:b;

feiyong(chandi,xiaodi):c,x; endsets

min=@sum(feiyong(i,j):c(i,j)*x(i,j));

@for(chandi(i):@sum(xiaodi(j):x(i,j))=a(i)); @for(xiaodi(j):@sum(chandi(i):x(i,j))=b(j)); data: a=9,5,7; b=3,8,4,6; c=2,9,10,2 1,3,4,2 8,4,2,5; enddata end

四、Lingo 1.集合

定义集合需要明确三方面内容:集合的名称、集合内的成员(组成集合的个体,即元素)、集合的属性(可以看成是与该集合有关的变量和常量).

集合定义语法:集合名称/成员列表/:属性1,属性2,…,属性n;

其中成员列表可采用显式罗列(成员之间用逗号或空格隔开)或隐式罗列(首末两个成员之间用“..”省略号连接) 派生集合的定义语句有以下要素组成:集合的名称、对应的初始集合、集合的成员(可以省略不写)、集合的属性(可以省略).

派生集合定义语法:派生集合名称(集合名称1,集合名称2):属性1,…,属性n; 集合的定义部分以语句sets:开始,endsets结束.即:

83jzy91uyy4qfr01784a35m4y31ezc015a1
领取福利

微信扫码领取福利

微信扫码分享