数学建模讲座优化建模与LINGO优化软件ppt课件.ppt
《数学建模讲座优化建模与LINGO优化软件ppt课件.ppt》由会员分享,可在线阅读,更多相关《数学建模讲座优化建模与LINGO优化软件ppt课件.ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数学建模讲座数学建模讲座优化建模与优化建模与LINGO优化软件优化软件例例1 1 min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x22 -x1+2x22 x10, x20 Lingo 基 础nLingo 程序nMIN=-2*X1-6*X2+X1*X1-2*X1*X2+2*X1*X1;nX1+X2=2;n-X1+2*X2=2; Lingo 基 础n计算结果nObjective value: -9.777778nX1 = 0.6666667 X2 = 1.333333 Lingo 基 础n例例2) 12424()(22122211xxxxxexfx x1
2、+x2=0 s.t. 1.5+x1x2 - x1 - x2 0 -x1x2 10 0 Lingo 基 础nLingo程序nmin=exp(x1)*(4*x1*x1+2*x2*x2+4*x1*x2+2*x2+1);nx1+x2=0;n1.5+x1*x2-x1-x2=0;n-x1*x2-10=0;nfree(x1);nfree(x2); Lingo 基 础n计算结果nObjective value: 5.276848nX1 = 1.224745 nX2 = -1.224745n这是局部最优值 Lingo 基 础Lingo菜单中Options,选Global Solver ,在Use Global
3、Solver 中打钩,再次计算。Objective value: 1.156627X1=-3.162278 X2=3.162278 Lingo 基 础例三2,1,6,.,1,.)()(min612121612/122 jecidctsbyaxcjijiiijjjiijijijLingo 基 础n例三中,x,y ,e是一维数组,长度为2,a,b,d 也是一维数组,长度为6,c是二维数组(62矩阵)nLingo中如何定义它们? Lingo 基 础nLingo 程序 example3_2nsets:ndemand/1.6/:a,b,d;nsupply/1.2/:x,y,e;nlink(demand,
4、supply):c;nendsetsndata:na=1.25,8.75,0.5,5.75,3,7.25;nb=1.25,0.75,4.75,5,6.5,7.75;nd=3,5,4,7,6,11; e=20,20;nenddata Lingo 基 础ninit:nx,y=5,1,2,7;nendinit min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2) );for(demand(i): sum(supply(j):c(i,j) =d(i););for(supply(i): sum(demand(j):c(j,i) =e(i); );n
5、 f o r ( s u p p l y : b n d ( 0 . 5 , X , 8 . 7 5 ) ; bnd(0.75,Y,7.75); );nEND Lingo 基 础n计算结果为n Objective value:89.88349模型的集部分模型的集部分nL I N G O 有 两 种 类 型 的 集 : 原 始 集原 始 集(primitiveset)和派生集派生集(derived set)。n一个原始集是由一些最基本的对象组成的。n一个派生集是用一个或多个其它集来定义的,也就是说,它的成员来自于其它已存在的集。n定义一个原始集,用下面的语法:nsetname/member_li
6、st/:attribute_list;n注意:用“”表示该部分内容可选。 nMember_list是集成员列表。如果集成员放在集定义中,那么对它们可采取显式罗列和隐式罗列两种方式。如果集成员不放在集定义中,那么可以在随后的数据部分定义它们 模型的数据部分模型的数据部分 n数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,可以指定集成员、集的属性。 数据部分的未知数值数据部分的未知数值 n有时只想为一个集的部分成员的某个属性指定值,而让其余成员的该属性保持未知,以便让LINGO去求出它们的最优值。在数据声明中输入两个相连的逗号表示该位置对应的集成员的属性值未知。两个逗号
7、间可以有空格 数据部分的未知数值数据部分的未知数值nsets:n years/1.5/: capacity;nendsetsndata:n capacity = ,34,20,;nenddatan属性capacity的第2个和第3个值分别为34和20,其余的未知 模型的初始部分模型的初始部分n一个初始部分以“init:”开始,以“endinit”结束。初始部分的初始声明规则和数据部分的数据声明规则相同。 模型的初始部分模型的初始部分ninit:nx,y=5,1,2,7;nendinitLINGO函数函数 n基本运算符n数学函数n金融函数n概率函数n变量界定函数n集操作函数n集循环函数n数据输入
8、输出函数n辅助函数 算术运算符算术运算符 n乘方n乘n除n加n减逻辑运算符逻辑运算符 n#not#n#eq#n#ne#n#gt#n#ge#n#lt# n#le# #and# #or# 关系运算符关系运算符 nLINGO有三种关系运算符:“=”、“=”。 nLINGO并不支持严格小于和严格大于关系运算符。然而,如果需要严格小于和严格大于关系,比如让A严格小于B:AB,那么可以把它变成如下的小于等于表达式:A+=B, 数学函数数学函数 nabs(x) sin(x) cos(x) tan(x) exp(x)nlog(x) nlgm(x) 返回x的gamma函数的自然对数sign(x) 如果x0返回-
9、1;否则,返回1n f l o o r ( x ) 返 回 x 的 整 数 部 分 。smax(x1,x2,xn)n smin(x1,x2,xn) 变量界定函数变量界定函数 nbin(x) 限制x为0或1nbnd(L,x,U) 限制LxUnfree(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数ngin(x) 限制x为整数集操作函数集操作函数nindex(set_name,primitive_set_element)n该函数返回在集set_name中原始集成员primitive_set_element的索引。 集操作函数集操作函数nwrap(index,limit) 该函数为ind
10、ex模limit再加1 size(set_name)该函数返回集set_name的成员个数 集合循环函数集合循环函数n四个集合循环函数:四个集合循环函数:FOR、SUM 、 MAX、MINnfunction( setname ( set_index_list) | condition : expression_list); 例:PAIRSJIJIMATCHJIBENEFIT),(),(*),(SUM( PAIRS( I, J): BENEFIT( I, J) * MATCH( I, J);例:FOR(STUDENTS( I): SUM( pair( j, k) | j #EQ#i #OR# k
11、 #EQ# i: match( j, k) =1);.2 , 1, 1),(),(ikjmatchikijpairkj或FILEFILE和和TEXTTEXT:文本文件输入输出文本文件输入输出data:a=file(example3_3.ldt);b=file(example3_3.ldt);d=file(example3_3.ldt);e=file(example3_3.ldt);enddatainit:x,y=file(example3_3.ldt);endinit1.25,8.75,0.5,5.75,3,7.251.25,0.75,4.75,5,6.5,7.753,5,4,7,6,1120
12、,205,1,2,7Example3_3.ldt的格式格式FILEFILE和和TEXTTEXT:文本文件输入输出文本文件输入输出比较a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11; e=20,20;x,y=5,1,2,7;OLE OLE :与与EXCELEXCEL连接连接使用格式OLE(“filename” ,range_name_list) filename 为电子表 文件名 , range_name_list 为数据的单元范围。OLE 的使用例子Excel文件example3_4.xls 的内容a
13、bdexyresult1.251.25320518.750.75520270.54.7545.755736.567.257.7511注意 要将表格中的数据进行命名 :选中数据,选菜单“插入|名称|定义” 在这里分别命名为 a,b,d,e,x,y,result OLE 的使用例子Lingo文件example3_4.lg4 的内容data:a,b,d,e=OLE(d:数学建模EXAMPLE3_4.XLS);enddatainit:x,y=Ole(d:数学建模Example3_4.xls);endinitOLE 的使用例子如果在Lingo文件example3_4.lg4 加上以下内容其他不变data
14、:ole(d:数学建模EXAMPLE3_4.XLS,result)=c;ole(d:数学建模EXAMPLE3_4.XLS,x)=x;ole(d:数学建模EXAMPLE3_4.XLS,y)=y;enddataOLE 的使用例子则example3_4.xls 变为abdexyresult1.251.253205.69594 4.92852438.750.75520 7.2499977.7500.54.75455.7557036.5647.257.751107015011注意其中x,y ,result 的变化例例 加工奶制品的生产计划加工奶制品的生产计划1桶牛奶 3公斤A1 12小时 8小时 4公斤
15、A2 或获利24元/公斤 获利16元/公斤 50桶牛奶桶牛奶 时间时间480小时小时 至多加工至多加工100公斤公斤A1 制订生产计划,使每天获利最大制订生产计划,使每天获利最大 35元可买到元可买到1桶牛奶,买吗?若买,每天最多买多少桶牛奶,买吗?若买,每天最多买多少? 可聘用临时工人,付出的工资最多是每小时几元可聘用临时工人,付出的工资最多是每小时几元? A1的获利增加到的获利增加到 30元元/公斤,应否改变生产计划?公斤,应否改变生产计划? 每天:每天:1桶牛奶 3公斤A1 12小时 8小时 4公斤A2 或获利24元/公斤 获利16元/公斤 x1桶牛奶生产桶牛奶生产A1 x2桶牛奶生产桶
16、牛奶生产A2 获利获利 243x1 获利获利 164 x2 原料供应原料供应 5021 xx劳动时间劳动时间 48081221 xx加工能力加工能力 10031x决策变量决策变量 目标函数目标函数 216472xxzMax每天获利每天获利约束条件约束条件非负约束非负约束 0,21xx线性线性规划规划模型模型(LP)时间时间480小时小时 至多加工至多加工100公斤公斤A1 50桶牛奶桶牛奶 每天每天模型求解模型求解 max =72*x1+64*x2;x1+x250;12*x1+8*x2480;3*x1100; OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIA
17、BLE 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= 220桶牛奶生产桶牛奶生产A1, 30桶生产桶生产A2,利润利润3360元。元。 模型求解模型求解 reduced cost值表值表示当该非基变量示当该非基变量增加一个单位时增加一个单位时(其他非基变量(其他非基变量保持不变)目标保持不变
18、)目标函数减少的量函数减少的量(对对max型问题型问题) 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= 2也可理解为:也可理解为:为了使该非基变为了使该非基变量变成基变量,量变成基变量,目标函数中对应
19、目标函数中对应系数应增加的量系数应增加的量 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原料无剩余原料无剩余时间无剩余时间无剩余加工能力剩余加工能力剩余40max 72x1+64x2stx1+x25012x1+8x24803x110
20、0三三种种资资源源“资源资源” 剩余为零的约束为紧约束(有效约束)剩余为零的约束为紧约束(有效约束) 结果解释结果解释 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结果解释结果解释 最优解下最优解下“资源资源”增增加加1单位时单位时
21、“效益效益”的的增量增量 原料增原料增1单位单位, 利润增利润增48 时间加时间加1单位单位, 利润增利润增2 能力增减不影响利润能力增减不影响利润影子价格影子价格 35元可买到元可买到1桶牛奶,要买吗?桶牛奶,要买吗? 35 48, 应该买!应该买! 聘用临时工人付出的工资最多每小时几元?聘用临时工人付出的工资最多每小时几元? 2元!元!RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.
22、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最优解不变时目标最优解不变时目标系数允许变化范围系数允许变化范围 DO RANGE(SENSITIVITY) ANALYSIS? Yesx1系
23、数范围系数范围(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 ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000
24、000 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影子价格有意义影子价格有意义时约束右端的允时约束右端的允许变化范围许变化范围 原料最多增加原料最多增加10 时间最多增加时间最多增加53 35元可买到元可买到1桶牛奶,
25、每天最多买多少?桶牛奶,每天最多买多少?最多买最多买10桶?桶?(目标函数不变目标函数不变)注意注意: 充分但充分但可能不必要可能不必要LINGOLINGO模型例:选址问题模型例:选址问题某公司有某公司有6个建筑工地,位置坐标为个建筑工地,位置坐标为(ai, bi) (单位:公里单位:公里),水泥日用量水泥日用量di (单位:吨)单位:吨)ia1.258.750.55.7537.25b1.250.754.7556.57.75d35476111)现有 2 料场,位于 A (5, 1), B (2, 7),记(xj,yj),j=1,2, 日储量 ej各有 20 吨。假设:假设:料场料场和工地之间和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 讲座 优化 LINGO 软件 ppt 课件
限制150内