当前位置:文档之家› Lingo求解线性规划问题,Matlab与Excel数据交互

Lingo求解线性规划问题,Matlab与Excel数据交互

Lingo求解线性规划问题,Matlab与Excel数据交互
Lingo求解线性规划问题,Matlab与Excel数据交互

云南财经大学实验报告

系(院):

专业:

班级:

学号:

姓名:

课程名称:

实验时间:

指导教师:

云南财经大学教务处制

用MATLAB解线性规划

用MATLAB 优化工具箱解线性规划 命令:x=linprog (c ,A ,b ) 2、模型: beq AeqX b AX ..min =≤=t s cX z 命令:x=linprog (c ,A ,b ,Aeq,beq ) 注意:若没有不等式:b AX ≤存在,则令A=[ ],b=[ ]. 若没有等式约束, 则令Aeq=[ ], beq=[ ]. 3、模型: VUB X VLB beq AeqX b AX ..min ≤≤=≤=t s cX z 命令:[1] x=linprog (c ,A ,b ,Aeq,beq, VLB ,VUB ) [2] x=linprog (c ,A ,b ,Aeq,beq, VLB ,VUB, X0) 注意:[1] 若没有等式约束, 则令Aeq=[ ], beq=[ ]. [2]其中X0表示初始点 4、命令:[x,fval]=linprog(…) 返回最优解x及x处的目标函数值fval. 例1 max 6543216.064.072.032.028.04.0x x x x x x z +++++= 85003.003.003.001.001.001.0..654321≤+++++x x x x x x t s 70005.002.041≤+x x 10005.002.052≤+x x 90008.003.063≤+x x 6,2,10 =≥j x j 解 编写M 文件小xxgh1.m 如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900]; Aeq=[]; beq=[]; vlb=[0;0;0;0;0;0]; vub=[]; [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub) min z=cX b AX t s ≤..1、模型:

运筹学实例分析及lingo求解

运筹学实例分析及lingo 求解 一、线性规划 某公司有6个仓库,库存货物总数分别为60、55、51、43、41、52,现有8个客户各要一批货,数量分别为35,37,22,32,41,32,43,38。各供货仓库到8个客户处的单位货物运输价见表 试确定各仓库到各客户处的货物调运数量,使总的运输费用最小。 解:设 ij x 表示从第i 个仓库到第j 个客户的货物运量。ij c 表示从第i 个仓库到第 j 个客户的单位货物运价,i a 表示第i 个仓库的最大供货量,j d 表示第j 个客户的订货量。 目标函数是使总运输费用最少,约束条件有三个:1、各仓库运出的货物总量不超过其库存数2、各客户收到的货物总量等于其订货数量3、非负约束 数学模型为: ∑∑===6 18 1)(min i j ij ij x c x f ????? ??????≥===≤∑∑==08,,2,1,6,2,1,,. .6 1 8 1ij j i ij i j ij x j d x i a x t s 编程如下: model : Sets : Wh/w1..w6/:ai;

Vd/v1..v8/:dj; links(wh,vd):c,x; endsets Data: ai=60,55,51,43,41,52; dj=35,37,22,32,41,32,43,38; c=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,2,2,8,1,4,3; Enddata Min=@sum(links(i,j):c(i,j)*x(i,j)); @for(wh(i):@sum(vd(j):x(i,j))<=ai(i)); @for(vd(j):@sum(wh(i):x(i,j))=dj(j)); end Global optimal solution found. Objective value: Total solver iterations: 0 Variable Value Reduced Cost AI( W1) AI( W2) AI( W3) AI( W4) AI( W5) AI( W6) DJ( V1) DJ( V2) DJ( V3) DJ( V4) DJ( V5) DJ( V6) DJ( V7) DJ( V8) C( W1, V1) C( W1, V2) C( W1, V3) C( W1, V4) C( W1, V5) C( W1, V6)

使用Excel求解线性规划问题

1.7.使用Excel求解线性规划问题 例:Case Chemicals生产两种溶剂CS-01和CS-02。这些溶剂可以用来溶解某些有毒物质。Case Chemicals的生产工厂有两个部门—混合(blending)和净化(purification)。每个部门每周工作40个小时。混合部门有5个全职(full-time)的工人和2个兼职(part-time)的工人,这两个兼职的工人每人每周工作15个小时。这些工人操作7台机器来混合某些化学物质生产溶剂。每1000加仑的CS-01需要2个小时去混合,同样数量的CS-02只需要1个小时去混合。产品在混合部门混合后需要去净化部门净化。净化部门有7台净化机器,并且雇了6个全职的工人和1个兼职的工人,兼职的工人每周工作10个小时。60分钟可以净化1000加仑的CS-01或500加仑的CS-02。Case Chemicals原材料供应充足,市场对CS-01的需求是供不应求,但是市场对CS-02的需求每周最多120,000加仑。据估计,每加仑CS-01可以赚$0.30,每加仑的CS-02可以赚$0.50。生产经理想要决定最优的生产计划,即应该生产每种溶剂各多少才能最大化利润? 解:(1)决策变量 x1=每周生产CS-01的数量(千加仑) x2=每周生产CS-02的数量(千加仑) (2)目标函数 最大化每周生产CS-01和CS-02的利润 Maximize 利润=CS-01利润+CS-02的利润 =300x1+500x2 Max 300x1+500x2 (3)约束条件 混合部门的总工时的约束 2x1+1x2<=5*40+2*15=230 净化部门的总工时的约束 x1+2x2<=6*40+1*10=250

Lingo与线性规划

Lingo 与线性规划 线性规划的标准形式是 Min z c 1 x 1 c n x n a 11 x 1 a 1n x n b 1 s..t a m1 x 1 a mn x n (1) b m x i 0, i 1,2, , n 其中 z c 1 x 1 c n x n 称为目标函数, 自变量 x i 称为决策变量 ,不等式组 (1)称为约 束条件 . 满足不等式组 (1)的所有 ( x 1, , x n ) 的集合称为可行域,在可行域里面使得z 取最小值的 ( x 1* , , x n * ) 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有 Lingo 、Matlab 、Excel 等。其中 Lingo 是一款专 业求解优化模型的软件, 有其他软件不可替代的方便功能。 本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min= 函数解析式; 2、约束条件输入格式 利用: >、<、>=、<=等符号。但是 >与 >=没有区别。 Lingo 软件默认所以自变量都大于等于 0. 3、运算 加 (+), 减(-), 乘(*), 除(/), 乘方 (x^a) ,要注意乘号 (*) 不能省略。 4、变量名 不区分大小写字母,不超过 32 个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“ ; ”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata , end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入 MODEL :表示开始输入模型,以“ END ”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 @bin(变量名 ) ; @bnd(a, 变量名 ,b ) ; @free( 变量名 ) ; @gin(变量名 ) ; 例 1 求目标函数 z 2x 1 限制该变量为 0 或 1. 限制该变量介于 a,b 之间 . 允许该变量为负数 . 限制该变量为整数 . 3x 2 的最小值,约束条件为

运用Matlab进行线性规划求解(实例)

线性规划 线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。 8.2.1 基本数学原理 线性规划问题的标准形式是: ????? ??????≥=+++=+++=++++++=0,,,min 21221122222121112 121112211n m n mn m m n n n n n n x x x b x a x a x a b x a x a x a b x a x a x a x c x c x c z 或 ???? ?????=≥===∑∑==n j x m i b x a x c z j n j i j ij n j j j ,,2,1,0,,2,1,min 1 1 写成矩阵形式为: ?? ???≥==O X b AX CX z min 线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b 非负。不符合这几个条件的线性模型可以转化成标准形式。 MATLAB 采用投影法求解线性规划问题,该方法是单纯形法的变种。 8.2.2 有关函数介绍 在MATLAB 工具箱中,可用linprog 函数求解线性规划问题。 linprog 函数的调用格式如下: ●x=linprog(f,A,b):求解问题minf'*x ,约束条件为A*x<=b 。 ●x=linprog(f,A,b,Aeq,beq):求解上面的问题,但增加等式约束,即Aeq*x=beq 。若没有不等式约束,则令A=[ ],b=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub):定义设计x 的下界lb 和上界ub ,使得x 始终在该范围内。若没有等式约束,令Aeq=[ ],beq=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0):设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用options 指定的优化参数进行最小化。 ●[x,fval]=linprog(…):返回解x 处的目标函数值fval 。 ●[x,lambda,exitflag]=linprog(…):返回exitflag 值,描述函数计算的退出条件。 ●[x,lambda,exitflag,output]=linprog(…):返回包含优化信息的输出参数output 。 ●[x,fval,exitflag,output,lambda]=linprog(…):将解x 处的拉格朗日乘子返回到lambda 参数中。

怎么利用EXCEL求解线性规划

利用线性回归方法求解生产计划 方法一: 1、建立数学模型: ①设变量:设生产拉盖式书桌x台,普通式书桌y台,可得最大利润 ②确定目标函数及约束条件 目标函数:y = max+ 115 P90 x 约束条件:200 x .....................⑴ +y 10≤ 20 x .....................⑵ 4≤ +y 16 128 x .....................⑶ +y 10 15≤ 220 y x ..........................⑷ ,≥ 2、在Excel中求解线性规划 ①首先,如图1所示,在Excel工作表格输入目标函数的系数、约束方程的系数和右端常数项: 图1 ②将目标方程和约束条件的对应公式输入各单元格中 F2=MMULT(B6:C6,F6:F7); F3=MMULT(B3:C3,F6:F7); F2=MMULT(B4:C4,F6:F7); F2=MMULT(B5:C5,F6:F7);

出现图2样式: 图2 线性规划问题的电子表格模型建好后,即可利用“线性规划”功能进行求解。 选择“工具”→“规划求解”出现“规划求解参数”窗口,如图3所示: 图3 在该对话框中,目标单元格选择F2,问题类型选择“最大值”,可变单元格选择F6:F7,点击“添加”按钮,弹出“添加约束条件”窗口,如图4所示: 图4

根据所建模型,共有4个约束条件,针对约束(1):20 x, +y 20 10≤ 左端“单元格所引用位置”选择F3,右端“约束值”选择D3,符号类型选择“<=”,同理继续添加约束(2)(3)(4),完成后选择“确定”,回到“规划求解参数”对话框,如5图所示: 图5 ④点击“选项”按钮,弹出“规划求解选项”对话框,选择“采用线性模型”和“假定非负”两项,如图6所示: 图6 ⑤点击“确定”→“求解”,选择“运算结果报告”“敏感性报告”“极限值报告”三项,最后点击“确定”,输出结果: 运算结果报告:

试验1用LINGO求解线性规划问题

实验用LINDO或LINGO求解线性规划问题 实验目的 1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用LINDO或LINGO 求解; 2.掌握灵敏度分析以及资源的影子价格的相关分析方法. 问题1某工厂在计划期内要安排生产A、B两种产品,已知生产单位产品所需设备台时及对甲、乙两种原材料的消耗,有关数据如表1.1.问:应如何安排生产计划,使工厂获利最大? . LINDO输入语句: max 2x1+3x2 st x1+2x2<=8 4x1<=16 4x2<=12 end 在LINGO的MODEL窗口内输入如下模型: model: max=2*x1+3*x2; x1+2*x2<=8; 4*x1<=16; 4*x2<=12; end 选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO的Help).改正错误以后再求解,如果语法通过,LINGO用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close关闭窗口,屏幕上出现标题为“Solution Report”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函

数值、列出各变量的计算结果.求解结果: Global optimal solution found at iteration: 5 Objective value: 14.00000 Variable Value Reduced Cost X1 4.000000 0.000000 X2 2.000000 0.000000 Row Slack or Surplus Dual Price 1 14.00000 1.000000 2 0.000000 1.500000 3 0.000000 0.1250000 4 4.000000 0.000000 该报告说明:运行5步找到全局最优解,目标函数值为14,变量值分别为124,2==x x .“Reduced Cost ”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变量的Reduced Cost 值等于零).“Row ”是输入模型中的行号,目标函数是第一行;“Slack or Surplus ”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“≤”的不等式,右边减左边的差值为Slack (松弛),对于“≥”的不等式,左边减的右边差值为Surplus (剩余),当约束条件两边相等时,松弛或剩余的值等于零.“Dual Price ”的意思是对偶价格(或称为影子价格),上述报告中Row2的松弛值为0,表明生产甲产品4单位、乙产品2单位,所需设备8台时已经饱和,对偶价格1.5的含义是:如果设备增加1台时,能使目标函数值增加1.5.报告中Row4的松弛值为4,表明生产甲产品4单位、乙产品2单位,所需原材料乙8公斤还剩余4公斤,因此增加原材料乙不会使目标函数值增加,所以对偶价格为0. 对于目标函数系数和约束条件右端常数项的灵敏度分析,可以通过LINGO 软件求解的灵敏度分析给出.如果要看灵敏度分析结果,必须激活灵敏度计算功能才会在求解时给出灵敏度分析结果,默认情况下这项功能是关闭的.想要激活它,必须运行LINGO|Options …命令,选择Gengral Solver ,在Dual Computation 列表框中,选择Prices and Ranges 选项并确定. 法一:打开command window ,输入range ; 法二:LINGO ——options ——General Solver ——DualComputations ——Prices&Ranges , 运行一遍,然后关掉,然后lingo-----range 问题2 某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g ,矿物质3g ,维生素8mg ,该公司能买到5种不同的饲料,每种饲料1kg 所含各种营养成分和成本如表1.2所示,如果每个小动物每周食用饲料不超过52kg ,求既能满足动物生长需要,又使总成本最低的饲料配方.

用matlab求解线性规划问题

一、实验目的: 了解Matlab 的优化工具箱,能利用Matlab 求解线性规划问题。 二、实验内容: 线性规划的数学模型有各种不同的形式,其一般形式可以写为: 目标函数: n n x f x f x f z +++= 2211m in 约束条件: s n sn s s n n b x a x a x a b x a x a x a ≤+++≤+++ 221 11 1212111 s n tn t t n n d x c x c x c d x c x c x c =+++=+++ 221 11 1212111 0,,,21≥n x x x 这里 n n x f x f x f z +++= 2211称为目标函数,j f 称为价值系数,T n f f f f ),,,(21 =称为价值向量,j x 为求解的变量,由系数ij a 组成的矩阵 ??????????=mn m n a a a a A 1111 称为不等式约束矩阵,由系数ij c 组成的矩阵 ??????????=sn s n c c c c C 1111 称为等式约束矩阵,列向量 T n b b b b ),,,(21 =和T n d d d d ),,,(21 =为右端向量,条件0≥j x 称为非负约束。一个向量T n x x x x ),,,(21 =,满足约束条件,称为可行解或可行点,所有可行点的集合称为 可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。 我们这里介绍利用Matlab 来求解线性规划问题的求解。 在Matlab 中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求z 的极大就是求z -的极小,因此在Matlab 中以求极小为标准形式,函数linprog()的具体格式如下: X=linprog(f,A,b) [X,fval,exitflag,ouyput,lamnda]=linprog(f,A,b,Aeq,Beq,LB,UB,X0,options) 这里X 是问题的解向量,f 是由目标函数的系数构成的向量,A 是一个矩阵,b 是一个向量,A ,b 和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件,A ,b 是系数矩阵和右端向量。Aeq 和Beq 表示了线性规划中等式约束条件中的系数矩阵和右端向量。LB 和UB 是约束变量的下界和上界向量,X0是给定的变量的初始值,options 为控制规划过程的参数系列。返回值中fval 是优化结束后得到的目标函数值。exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数;exitflag>0表示优化过程中变量收敛于解X ,exitflag<0表示不收敛。output 有3个分量,iterations 表示优化过程的迭代次数,cgiterations 表示PCG 迭代次数,algorithm 表示优化所采用的运算规则。lambda 有4个分量,

matlab线性规划练习

第11次课 (1) 某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元 。 生产甲机床需用A 、B 机器加工,加工时间分别为每台 2 小时和 1 小时; 生产乙机床 需用A 、B 、C 三种机器加工,加工时间为每台各一小时。 若每天可用于加工的机器 时数分别为A 机器 10 小时、 B 机器 8 小时和 C 机器 7 小时,问该厂应生产甲、乙机床 各 几台,才能使总利润最大? (2)有两种农作物(大米和小麦),可用轮船和飞机两种方式运输,每天每艘轮船和每架飞机运输效果 如下:在一天内如何安排才能合理完成运输2000吨小麦和1500吨大米的任务? (3)设422+-=x y z ,式中变量y x ,满足条件?????≥-≤≤≤≤12201 0x y y x ,求z 的最小值和最大值. (4)某家俱公司生产甲、乙两种型号的 组合柜,每种柜的制造白坯时间、油漆时间及有关数据如下: 问该公司如何安排甲、乙二种柜的日产量可获最大利润,并且最大利润是多少? (5) 某运输公司接受了向抗洪抢险地区每天至少送180t 支援物资的任务.该公司有8辆载重为6t 的A 型 卡车与4辆载重为10t 的B 型卡车,有10名驾驶员;每辆卡车每天往返的次数为A 型卡车4次,B 型 卡车3次;每辆卡车每天往返的成本费A 型车为320元,B 型车为504元.请你们为该公司安排一下应该如何调配车辆,才能使公司所花的成本费最低?若只调配A 型或B 型卡车,所花的成本费分别是多少?

(6)一家玩具公司制造三种桌上高尔夫玩具,每一种要求不同的制造技术。高级的一种需要17小时加工装配劳动力,8小时检验,每台利润300元。中级的需要10小时劳动力,4小时检验,利润200元。低级的需要2小时劳动力,2小时检验,利润100元。可供利用的加工劳动力为1000小时,检验500小时。其次,有市场预测表明,对高级的需求量不超过50台,中级的不超过80台,低级的不超过150台。 问制造商如何决策才能得出使总利润为最大的最优生产计划。 (7)(任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。 假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低 (8)

使用Excel规划求解解 线性规划问题

使用Excel规划求解解线性规划问题 引言 最近,开始学习运筹学,期望通过学习后能够解决许多困扰自已的难题。 刚开始时,选了很多教材,最后以Hamdy A.Taha著的《Operations Research:An Introduction》开始学习。(该书已由人民邮电出版社出版,书名《运筹学导论-初级篇(第8版)》,不知为什么,下载链接中只有该书配套的部分习题解答,而书中所说的光盘文件找不到下载的地方,因为中译本没有配光盘,因此也就错过了许多示例文件。不知道哪位有配套光盘文件,可否共享???) 线性规划求解的基本知识 线性规划模型由3个基本部分组成: ?决策变量(variable) ?目标函数(objective) ?约束条件(constraint) 示例:营养配方问题 (问题)某农场每天至少使用800磅特殊饲料。这种特殊饲料由玉米和大豆粉配制而成,含有以下成份: 特殊饲料的营养要求是至少30%的蛋白质和至多5%的纤维。该农场希望确定每天最小成本的饲料配制。 (解答过程) 因为饲料由玉米和大豆粉配制而成,所以模型的决策变量定义为: x1=每天混合饲料中玉米的重量(磅) x2=每天混合饲料中大豆粉的重量(磅) 目标函数是使配制这种饲料的每天总成本最小,因此表示为: min z=0.3×x1+0.9×x2 模型的约束条件是饲料的日需求量和对营养成份的需求量,具体表示为: x1+x2≥800 0.09×1+0.6×2≥0.3(x1+x2) 0.02×1+0.06×2≤0.05(x1+x2) 将上述不等式化简后,完整的模型为:

min z=0.3×1+0.9×2 s.t.x1+x2≥800 0.21×1-0.3×2≤0 0.03×1-0.01×2≥0 x1,x2≥0 可以使用图解法确定最优解。下面,我们介绍使用Excel的规划求解加载项求解该模型。使用Excel规划求解解线性规划问题 步骤1安装Excel规划求解加载项 单击“Office按钮——Excel选项——加载项——(Excel加载项)转到”,出现“加载宏”对话框,如下图所示。选择“规划求解加载项”,单击“确定”。 此时,在“数据”选项卡中出现带有“规划求解”按钮的“分析”组,如下图所示。 步骤2设计电子表格 使用Excel求解线性规划问题时,电子表格是输入和输出的载体,因此设计良好的电子表格,更加易于阅读。本例的电子表格设计如下图所示:

多目标线性规划的若干解法及MATLAB实现

多目标线性规划的若干解法及MATLAB 实现 一.多目标线性规划模型 多目标线性规划有着两个和两个以上的目标函数,且目标函数和约束条件全是线性函 数,其数学模型表示为: 11111221221122221122max n n n n r r r rn n z c x c x c x z c x c x c x z c x c x c x =+++??=+++?? ??=+++? (1) 约束条件为: 1111221121122222112212,,,0 n n n n m m mn n m n a x a x a x b a x a x a x b a x a x a x b x x x +++≤??+++≤?? ??+++≤?≥?? (2) 若(1)式中只有一个1122i i i in n z c x c x c x =+++ ,则该问题为典型的单目标线性规划。我们记:()ij m n A a ?=,()ij r n C c ?=,12(,,,)T m b b b b = ,12(,,,)T n x x x x = , 12(,,,)T r Z Z Z Z = . 则上述多目标线性规划可用矩阵形式表示为: max Z Cx = 约束条件:0 Ax b x ≤?? ≥? (3) 二.MATLAB 优化工具箱常用函数[3] 在MA TLAB 软件中,有几个专门求解最优化问题的函数,如求线性规划问题的linprog 、求有约束非线性函数的fmincon 、求最大最小化问题的fminimax 、求多目标达到问题的fgoalattain 等,它们的调用形式分别为: ①.[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub) f 为目标函数系数,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下 限和上限, fval 求解的x 所对应的值。 算法原理:单纯形法的改进方法投影法 ②.[x,fval ]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub ) fun 为目标函数的M 函数, x0为初值,A,b 为不等式约束的系数, Aeq,beq 为等式约束

运用Matlab进行线性规划求解实例

8.2 线性规划 线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。 8.2.1 基本数学原理 线性规划问题的标准形式是: ????? ??????≥=+++=+++=++++++=0,,,min 21221122222121112 121112211n m n mn m m n n n n n n x x x b x a x a x a b x a x a x a b x a x a x a x c x c x c z ΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛ 或 ???? ?????=≥===∑∑==n j x m i b x a x c z j n j i j ij n j j j ,,2,1,0,,2,1,min 1 1ΛΛ 写成矩阵形式为: ?? ???≥==O X b AX CX z min 线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量b 非负。不符合这几个条件的线性模型可以转化成标准形式。 MATLAB 采用投影法求解线性规划问题,该方法是单纯形法的变种。 8.2.2 有关函数介绍 在MATLAB 工具箱中,可用linprog 函数求解线性规划问题。 linprog 函数的调用格式如下: ●x=linprog(f,A,b):求解问题minf'*x ,约束条件为A*x<=b 。 ●x=linprog(f,A,b,Aeq,beq):求解上面的问题,但增加等式约束,即Aeq*x=beq 。若没有不等式约束,则令A=[ ],b=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub):定义设计x 的下界lb 和上界ub ,使得x 始终在该范围内。若没有等式约束,令Aeq=[ ],beq=[ ]。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0):设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。 ●x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options):用options 指定的优化参数进行最小化。 ●[x,fval]=linprog(…):返回解x 处的目标函数值fval 。 ●[x,lambda,exitflag]=linpro g(…):返回exitflag 值,描述函数计算的退出条件。 ●[x,lambda,exitflag,output]=linprog(…):返回包含优化信息的输出参数output 。 ●[x,fval,exitflag,output,lambda]=linprog(…):将解x 处的拉格朗日乘子返回到

数学建模:运用Lindolingo软件求解线性规划

数学建模:运用Lindolingo软件求解线性规划 1、实验内容: 对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo对模型进行求解。 某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.名今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划. 数学建模论文 运用lindo/lingo软件求解线性规划 运用lindo/lingo软件求解线性规划 一、摘要 本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。 首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。 然后,对问题进行分析,根据题目的要求,建立合适的数学模型。 最后,运用lindo/lingo软件求出题目的解。 【关键词】最优解 lindo/lingo软件 第二、问题的重述 某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原

料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论: 1)若投资0.8万元可增加原料1千克,问应否作这项投资。 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。 第三、模型的基本假设 1、每一箱饮料消耗的人力、物力相同。 2、每个人的能力相等。 3、生产设备对生产没有影响。 第四、符号说明 1、x.....甲饮料 2、y.....乙饮料 3、z.....增加的原材料 第五、问题分析 根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。我们可以先建立数学模型,然后用lindo/lingo软件包求解模型的最大值。 第六、模型的建立及求解根据题目建立如下3个模型: 模型1: max=0.1*x+0.09*y; 0.06*x+0.05*y<=60; 0.1*x+0.2*y<=150; x+y<=800; 结果:x=800;y=0;max=80 模型2:

用MATLAB求解规划问题

§15. 利用Matlab求解线性规划问题 线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解: % min f'x % s.t .(约束条件):Ax<=b % (等式约束条件):Aeqx=beq % lb<=x<=ub linprog函数的调用格式如下: 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]=linprog(…) [x, fval, exitflag, output]=linprog(…) [x, fval, exitflag, output, lambda]=linprog(…) 其中: x=linprog(f,A,b)返回值x为最优解向量。 x=linprog(f,A,b,Aeq,beq) 作有等式约束的问题。若没有不等式约束,则令 111

A=[ ]、b=[ ] 。 x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub为变量x的下界和上界,x0为初值点,options为指定优化参数进行最小化。 Options的参数描述: Display显示水平。选择’off’ 不显示输出;选择’I ter’显示每一步迭代过程的输出;选择’final’ 显示最终结果。 MaxFunEvals 函数评价的最大允许次数 Maxiter 最大允许迭代次数 TolX x处的终止容限 [x,fval]=linprog(…) 左端fval 返回解x处的目标函数值。 [x,fval,exitflag,output,lambda]=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的输出部分: exitflag描述函数计算的退出条件:若为正值,表示目标函数收敛于解x 处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。 output 返回优化信息:output.iterations表示迭代次数;output.algorithm表示所采用的算法;outprt.funcCount表示函数评价次数。 lambda返回x处的拉格朗日乘子。它有以下属性: lambda.lower-lambda的下界; lambda.upper-lambda的上界; lambda.ineqlin-lambda的线性不等式; lambda.eqlin-lambda的线性等式。 112

lingo解决线性规划问题的程序

Lingo12软件培训教案 Lingo 主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。 例1 一个简单的线性规划问题 0 , 600 2 100 350 st. 3 2max >=<=+=<<=++=y x y x x y x y x z ! 源程序 max = 2*x+3*y; [st_1] x+y<350; [st_2] x<100; 2*x+y<600; !决策变量黙认为非负; <相当于<=; 大小写不区分 当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set) 下面定义下标集和对应数组的三种方法,效果相同::r1 = r2 = r3, a = b = c. sets : r1/1..3/:a; r2 : b; r3 : c; link2(r1,r2): x; link3(r1,r2,r3): y; endsets data : ALPHA = ; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata

例2 运输问题 解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8. 设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。 于是形成如下规划问题: n j m i x n j d x m i s x x c ij j n i ij i m j ij m i n j ij ij ,...,2,1,,...,2,1,0 ,...,2,1, ,...,2,1, st. z min 11 11==>=<==<==∑∑∑∑==== 把上述程序翻译成LINGO 语言,编制程序如下: ! 源程序

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- + 。因此目标规划模型的一般数学表达式为: min ∑∑=+ +-- =+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ - d d x x 14x 1633=-++ -d d

用matlab求解线性规划问题

实验四 用MATLAB 求解线性规划问题 一、实验目的: 了解Matlab 的优化工具箱,能利用Matlab 求解线性规划问题。 二、实验内容: 线性规划的数学模型有各种不同的形式,其一般形式可以写为: 目标函数: n n x f x f x f z +++= 2211mi n 约束条件: s n sn s s n n b x a x a x a b x a x a x a ≤+++≤+++ 221 11 1212111 s n tn t t n n d x c x c x c d x c x c x c =+++=+++ 221 11 1212111 0,,,21≥n x x x 这里 n n x f x f x f z +++= 2211称为目标函数,j f 称为价值系数,T n f f f f ),,,(21 =称为价值向量,j x 为求解的变量,由系数ij a 组成的矩阵 ??????????=mn m n a a a a A 1111 称为不等式约束矩阵,由系数ij c 组成的矩阵 ??????????=sn s n c c c c C 1111 称为等式约束矩阵,列向量 T n b b b b ),,,(21 =和T n d d d d ),,,(21 =为右端向量,条件0≥j x 称为非负约束。一个向量T n x x x x ),,,(21 =,满足约束条件,称为可行解或可行点,所有可行点的集合称为 可行区域,达到目标函数值最大的可行解称为该线性规划的最优解,相应的目标函数值称为最优目标函数值,简称最优值。 我们这里介绍利用Matlab 来求解线性规划问题的求解。 在Matlab 中有一个专门的函数linprog()来解决这类问题,我们知道,极值有最大和最小两种,但求z 的极大就是求z -的极小,因此在Matlab 中以求极小为标准形式,函数linprog()的具体格式如下: X=linprog(f,A,b) [X,fval,exitflag,ouyput,lamnda]=linprog(f,A,b,Aeq,Beq,LB,UB,X0,options) 这里X 是问题的解向量,f 是由目标函数的系数构成的向量,A 是一个矩阵,b 是一个向量,A ,b 和变量x={x1,x2,…,xn}一起,表示了线性规划中不等式约束条件,A ,b 是系数矩阵和右端向量。Aeq 和Beq 表示了线性规划中等式约束条件中的系数矩阵和右端向量。LB 和UB 是约束变量的下界和上界向量,X0是给定的变量的初始值,options 为控制规划过程的参数系列。返回值中fval 是优化结束后得到的目标函数值。exitflag=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数;exitflag>0表示优化过程中变量收敛于解X ,exitflag<0表示不收敛。output 有3个分量,iterations 表示优化过程的迭代次数,cgiterations 表示PCG 迭代次数,algorithm 表示优化所采用的运算规则。lambda 有4个分量,ineqlin 是线

相关主题
文本预览
相关文档 最新文档