数学建模中lingo的使用_第1页
数学建模中lingo的使用_第2页
数学建模中lingo的使用_第3页
数学建模中lingo的使用_第4页
数学建模中lingo的使用_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学规划与数学规划与lingo软件软件 首页首页上页上页返回返回下页下页数学规划 表达式:mixgtsxxxxfzMaxMiniTn, 2 , 1, 0)(. .),(),()(1或x决策变量f(x)目标函数gi(x)0约束条件决策变量个数n和约束条件个数m较大 数学规划线性规划非线性规划首页首页上页上页返回返回下页下页一个简单的例子(感受一个简单的例子(感受lingo):):0,2107201649523.57max212212121xxxxxxxstxxz首页首页上页上页返回返回下页下页怎么求解呢?方法一:作图;方法二:单纯形法;方法三:lingo软件;其他方法:matlab软件等等;首页

2、首页上页上页返回返回下页下页Lingo程序代码:max=7*x1+5*x2;3*x1+2*x2=95;4*x1+6*x2=201;7*x2=210;首页首页上页上页返回返回下页下页Lingo求解结果: Global optimal solution found. Objective value: 229.1000 Infeasibilities: 0.000000 Total solver iterations: 2 Variable Value Reduced Cost X1 16.80000 0.000000 X2 22.30000 0.000000 Row Slack or Surplu

3、s Dual Price 1 229.1000 1.000000 2 0.000000 2.200000 3 0.000000 0.1000000 4 53.90000 0.000000首页首页上页上页返回返回下页下页Matlab程序代码:f=-7;-5;A=3 2;4 6;0 7;b=90;200;210;lb=zeros(2,1);x,fval,exitflag,output,lambda=linprog(f,A,b,lb)首页首页上页上页返回返回下页下页附加整数约束(怎么处理呢?)附加整数约束(怎么处理呢?),取整数0,2107201649523.57max212212121xxxxxx

4、xstxxz首页首页上页上页返回返回下页下页Lingo程序代码:max=7*x1+5*x2;3*x1+2*x2=95;4*x1+6*x2=201;7*x2=210;gin(x1);gin(x2);首页首页上页上页返回返回下页下页例1 加工奶制品的生产计划1桶桶牛奶牛奶 3公斤公斤A1 12小时小时 8小时小时 4公斤公斤A2 或或获利获利24元元/公斤公斤 获利获利16元元/公斤公斤 50桶牛奶 时间480小时 至多加工100公斤A1 制订生产计划,使每天获利最大 35元可买到1桶牛奶,买吗?若买,每天最多买多少?可聘用临时工人,付出的工资最多是每小时几元? A1的获利增加到 30元/公斤,应

5、否改变生产计划? 每天:首页首页上页上页返回返回下页下页1桶桶牛奶牛奶 3公斤公斤A1 12小时小时 8小时小时 4公斤公斤A2 或或获利获利24元元/公斤公斤 获利获利16元元/公斤公斤 x1桶牛奶生产A1 x2桶牛奶生产A2 获利 243x1 获利 164 x2 原料供应 5021 xx劳动时间 48081221 xx加工能力 10031x决策变量 目标函数 216472xxzMax每天获利约束条件非负约束 0,21xx线性规划模型(LP)时间480小时 至多加工100公斤A1 50桶牛奶 每天首页首页上页上页返回返回下页下页模型求解 图解法 x1x20ABCDl1l2l3l4l55021

6、 xx48081221 xx10031x0,21xx约束条件50:211 xxl480812:212 xxl1003:13xl0:, 0:2514xlxl216472xxzMax目标函数 Z=0Z=2400Z=3360z=c (常数) 等值线c在B(20,30)点得到最优解目标函数和约束条件是线性函数 可行域为直线段围成的凸多边形 目标函数的等值线为直线 最优解一定在凸多边形的某个顶点取得。 首页首页上页上页返回返回下页下页模型求解 软件实现 LINDG 11.0 max=72*x1+64*x2;x1+x2=50;12*x1+8*x2=480;3*x1=100; OBJECTIVE FUNCT

7、ION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2DO RANGE (SENSITIVITY) ANALYSIS? No20桶牛奶生产A1, 30桶生产A2,利润3360元。 首页首页上页上页返回返回下页下页结果解释结果解释 OBJ

8、ECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2原料无剩余原料无剩余时间无剩余时间无剩余加工能力剩余加工能力剩余40三三种种资资源源“资源资源” 剩余为零的约束为紧约束(有效约束剩余为零的约束为紧约束(有效

9、约束) max=72*x1+64*x2;x1+x2=50;12*x1+8*x2=480;3*x1=100;首页首页上页上页返回返回下页下页结果解释结果解释 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS=

10、 2最优解下最优解下“资源资源”增加增加1单位时单位时“效益效益”的增的增量量 原料增加原料增加1单位单位, 利润增长利润增长48 时间增加时间增加1单位单位, 利润增长利润增长2 加工能力增长不影响利润加工能力增长不影响利润影子价格影子价格 35元可买到元可买到1桶牛奶,要买吗?桶牛奶,要买吗?35 48, 应该买!应该买!聘用临时工人付出的工资最多每小时几元?聘用临时工人付出的工资最多每小时几元? 2元!元!首页首页上页上页返回返回下页下页RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURR

11、ENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 X2 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 50.000000 10.000000 6.666667 3 480.000000 53.333332 80.000000 4 100.000000 INFINITY 40.000000最优解不变时目标函最优解不变时目标函

12、数系数允许变化范围数系数允许变化范围 DO RANGE(SENSITIVITY) ANALYSIS? Yesx1系数范围系数范围(64,96) x2系数范围系数范围(48,72) A1获利增加到获利增加到 30元元/千克,应否改变生产计划千克,应否改变生产计划 x1系数由系数由24 3=72增加增加为为30 3=90,在在允许范围内允许范围内 不变!不变!(约束条件不变约束条件不变)首页首页上页上页返回返回下页下页RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE A

13、LLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 X2 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 50.000000 10.000000 6.666667 3 480.000000 53.333332 80.000000 4 100.000000 INFINITY 40.000000影子价格有意义影子价格有意义时约束右端的允时约束右端的允许变化范围

14、许变化范围 原料最多增加原料最多增加10 时间最多增加时间最多增加53 35元可买到元可买到1桶牛奶,每天最多买多少?桶牛奶,每天最多买多少?最多买最多买10桶桶!(目标函数不变目标函数不变)结结 果果 解解 释释首页首页上页上页返回返回下页下页例2:复杂一点的例子: 假设某公司有6个货栈向8个销售商供应小装饰品,每一个货栈的供应量都是有限的,每一个销售商的需求量必须得到满足。该公司要决定如何调运货栈的装饰品满足销售商以使总运输成本最少。首页首页上页上页返回返回下页下页数据:货栈: 1 2 3 4 5 6可供量: 60 55 51 43 41 52销售商 1 2 3 4 5 6 7 8需求量

15、35 37 22 32 41 32 43 38运输成本: 1 2 3 4 5 6 7 8 1 6 2 6 7 4 2 5 9 2 4 9 5 3 8 5 8 2 3 5 2 1 9 7 4 3 3 4 7 6 7 3 9 2 7 1 5 2 3 9 5 7 2 6 5 6 5 5 2 2 8 1 4 3;首页首页上页上页返回返回下页下页模 型6811minijijijc xst8161( )1,26( )1,28ijjijixa iixb jj:ijxijijij运量 c单位运费a(i):第i个货栈的供应量b(j):第j个销售商的需求量首页首页上页上页返回返回下页下页利用lingo编程求解?:

16、在lingo中怎么输入?!如果按初等的输入方法,怎么样?烦!有必要引进新的方法:Lingo 的特点:集语言!首页首页上页上页返回返回下页下页 在lingo中引进集的概念及定义的主要目的是为了实现程序的循环功能。 集:集:由一些对象组成的全体。 集成员的属性:属性:集成员可能有一个或多个与之有关联的特征,我们把这些特征称为属性属性。例如雇员集中的每位雇员可以有一个薪水属性,也可以有一个生日属性等等。Lingo中的集中的集首页首页上页上页返回返回下页下页Lingo中集的定义语法:setname/member_list/:attribute_list;setname/member_list/:att

17、ribute_list; 说明: setnamesetname为集的名称;为集的名称; /member_list/member_list/为成员列表;为成员列表; attribute_listattribute_list为属性列表。为属性列表。Lingo中的集中的集首页首页上页上页返回返回下页下页集定义的例子:sets: students/John Jill, Rose Mike/: sex, age;endsets 注意:集部分以关键字集部分以关键字“sets:”sets:”开始,以开始,以“endsets”endsets”结束。结束。一个集及其属性在模型约束中被引用之前必须定义了它们。Li

18、ngo中的集中的集首页首页上页上页返回返回下页下页把上面的代码在lingo中运行,可得到下面的结果: Variable Value SEX( JOHN) 1.234568 SEX( JILL) 1.234568 SEX( ROSE) 1.234568 SEX( MIKE) 1.234568 AGE( JOHN) 1.234568 AGE( JILL) 1.234568 AGE( ROSE) 1.234568 AGE( MIKE) 1.234568首页首页上页上页返回返回下页下页sets:w/1.6/:capacity;endsets 也定义了一个集。注意该集合成员列表时所使用方法。Lingo中

19、的集中的集首页首页上页上页返回返回下页下页把上面的代码在lingo中运行,可得到下面的结果: Variable Value CAPACITY( 1) 1.234568 CAPACITY( 2) 1.234568 CAPACITY( 3) 1.234568 CAPACITY( 4) 1.234568 CAPACITY( 5) 1.234568 CAPACITY( 6) 1.234568首页首页上页上页返回返回下页下页派生集(高维数组)的定义方法:setname(parent_set_list)/member_list/:attributsetname(parent_set_list)/membe

20、r_list/:attribute_list;e_list; 例如:sets: product/A B/; machine/M N/; week/1.2/; allowed(product,machine,week):x;endsets Lingo中的集中的集首页首页上页上页返回返回下页下页把上面的代码在lingo中运行,可得到下面的结果: Variable Value X( A, M, 1) 1.234568 X( A, M, 2) 1.234568 X( A, N, 1) 1.234568 X( A, N, 2) 1.234568 X( B, M, 1) 1.234568 X( B, M,

21、 2) 1.234568 X( B, N, 1) 1.234568 X( B, N, 2) 1.234568首页首页上页上页返回返回下页下页 集合中对象的每一个属性都是一个变量,lingo程序运行完毕后所有的变量都会有一个值,变量取值的确定有两种方法:第一,对变量进行赋值(数据部分就是解决这个问题)。 第二,没有赋值的变量,就是决策变量。数据部分数据部分首页首页上页上页返回返回下页下页 数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,可以指定集成员、集的属性。其语法如下: object_list = value_list; 数据部分的定义方法数据部分的定义方法首页首

22、页上页上页返回返回下页下页sets: set1/A,B,C/: X,Y;endsetsdata: X=1,2,3; Y=4,5,6;enddata 首页首页上页上页返回返回下页下页也可以写成下面的形式:sets: set1/A,B,C/: X,Y;endsetsdata: X,Y=1 4 2 5 3 6;enddata 注意:注意:LINGO在为对象指定值时,首先在n个对象的第1个索引处依次分配数值列中的前n个对象,然后在n个对象的第2个索引处依次分配数值列中紧接着的n个对象,以此类推。首页首页上页上页返回返回下页下页把上面的代码在lingo中运行,可得到下面的结果: Variable Val

23、ue X( A) 1.000000 X( B) 2.000000 X( C) 3.000000 Y( A) 4.000000 Y( B) 5.000000 Y( C) 6.000000首页首页上页上页返回返回下页下页 在初始部分中,可以输入初始声明初始声明(initialization statement),和数据部分中的数据声明相同。对实际问题的建模时,初始部分并不起到描述模型的作用,在初始部分输入的值仅被LINGO求解器当作初始点来用,并且仅仅对非线性模型有用。和数据部分指定变量的值不同,LINGO求解器可以自由改变初始部分初始化的变量的值。初始部分初始部分首页首页上页上页返回返回下页下页

24、初始部分的定义方法: 一个初始部分以“init:”开始,以“endinit”结束。初始部分的初始声明规则和数据部分的数据声明规则相同。例如(在lingo中所有变量是不分大小写的): init: X, Y = 2,0.1;endinitmax=x+y;Y=log(X);X2+Y2=1; 首页首页上页上页返回返回下页下页函数:函数: 函数运算前必须加函数运算前必须加号号abs(x) sin(x) cos(x)tan(x)exp(x)绝对值绝对值正弦正弦余弦余弦正切正切e为底指数为底指数log(x)sign(x)smaxsminfloop(x)e为底对为底对数数符号函数符号函数最大数最大数最小数最小

25、数取整取整 循环: FOR(集名 (循环字母) | 循环条件: 表达式列表) 最大: MAX(集名 (循环字母) | 循环条件: 表达式) 最小: MIN(集名 (循环字母) | 循环条件: 表达式) 取和: SUM(集名 (循环字母) | 循环条件: 表达式)首页首页上页上页返回返回下页下页运输问题的lingo程序sets: w/1.6/:capacity; v/1.8/:demand; links(w,v):c,x;endsetsdata: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; c=6 2 6 7 4 2 5

26、 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;enddatamin=sum(links(i,j):c(i,j)*x(i,j);for(w(i):sum(v(j):x(i,j)=capacity(i);for(v(j):sum(w(i):x(i,j)=demand(j);6811minijijijc xst8161( )1,26( )1,28ijjijixa iixb jj首页首页上页上页返回返回下页下页Matlab求解此线性规划(代码):f=6;2;6;7;4;2;5;9;4

27、;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;A=1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0

28、,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论