版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用 LINDO、LINGO 和 WHATS BEST!解运筹学问题优化模型介绍实际问题中的优化模型z=f(x), x=(x1,.,xn)TMaxs.t.g i(x)0,i=1,2,.,m x1,.,xn0其中 x决策变量, f(x)目标函数,gi(x) 0约束条件数学规划分类:线性规划(LP)二次规划(QP)非线性规划(NLP)连续规划整数规划(IP):0-1 整数规划、一般整数规划、纯整数规划(PIP)、混合整数规划(MIP)LINDO 公司软件产品简要介绍芝加哥(Chicago)大学的 Linus Schrage 教授于1980 年前后开发, 后来成立 LINDO 系统公司(LINDO S
2、ystems Inc.),:htLINDO: LinearLINGO: Lineareractive and Discrete Optimizereractive General Optimizer(V6.1)(V8.0)(V2.0)(V7.0)LINDO API: LINDO Application ProgrammingerfaceWhats Best!:(SpreadSheet e.g. EXCEL)演示(试用)版、学生版、高级版、超级版、工业版、扩展版 (求解问题规模和选件不同)LINDO 和 LINGO 软件能求解的优化模型LINDO:线性规划(LP)、二次规划(QP)LINGO:线
3、性规划(LP)、二次规划(QP)、非线性规划(NLP)建模时需要注意的几个问题1、尽量使用实数优化,减少整数约束和整数变量2、尽量使用光滑优化,减少非光滑约束的个数如:尽量少使用绝对值、符号函数、多个变量求最大/最小值、四舍五入、取整函数等3、尽量使用线性模型,减少非线性约束和非线性变量的个数(如 x/y 5 改为 x5y)4、合理设定变量上下界,尽可能给出变量初始值5、模型中使用的参数数量级要适当(如小于 103)LINDO 使用简介例加工奶制品的生产计划1 桶牛奶( 经过 12 小时) 产生 3 公斤奶制品A ,可获利 24 元/公斤或1 桶牛奶( 经过 8 小时) 产生 4 公斤奶制品
4、B ,可获利 16 元/公斤某天约束:50 桶牛奶 、时间 480 小时 、至多加工 100 公斤 A如何制定生产计划,使这一天获利最大?一些小问题如下:问 1、35 元可买到 1 桶牛奶,买吗?若买,这一天最多买多少?问 2、可聘用临时工人,付出的工资最多是每小时几元?问 3、奶制品 A 的获利增加到 30 元/公斤,是否应改变生产计划?解:决策变量 用 x 桶牛奶生产 A用 y 桶牛奶生产 B目标函数约束条件Max z=72 x + 64 yx + y 50(原料供应 )12 x+ 8 y 480(劳动时间 )(加工能力,产量约束3 x 100)x, y0(非负约束 )在 LINDO 输入
5、窗中输入如下代码:max72 x+64 yst2) x+y503) 12x+8y4804) 3x3408,20,30=18,33)时间加 1, 利润增 2能力增减不影响利润35 元可买到 1 桶牛奶,要买吗?35 72 x+8y64end250.00000010.0000006.666667原料最多增加 103480.00000053.33333280.000000时间最多增加 534100.000000INFINITY40.00000035 元可买到 1 桶牛奶,每天最多买多少?最多买 10 桶?(多于 10 桶意味着基要发生改变,亦即生产计划要发生较大变化!)若在代码行“end”后定义整型
6、变量或 0/1 型变量,则可求解整数规划问题了。定义形式为:0/1 型整型gin gin 使用 LINDO 的一些注意事项1.“”(或“=”(或“=”)功能相同2.变量与系数间可有空格(甚至回车), 但无运算符3.变量名以字母开头,过 8 个字符4.变量名不区分大小写(包括 LINDO 中的关键字)5.目标函数所在行是第一行,第二行起为约束条件6.行号(行名)自动产生或人为定义。行名以“)”结束7.行中注有“!”符号的后面部分为注释。如:!Its Comment.8.在模型的任何地方都可以用“TITLE” 对模型命名(最多 72 个字符),如:TITLE This Mis myExample9
7、.变量不能出现在一个约束条件的右端10.表达式中不接受括号“( )”和逗号“,”等任何符号,例: 400(X1+X2)需写为 400X1+400X211.表达式应化简,如 2X1+3X2- 4X1 应写成 -2X1+3X212.缺省假定所有变量非负;可在模型的“END”语句后用“FREE name”将变量 name 的非负假定取消13.可在 “END”后用“SUB” 或“SLB” 设定变量上下界例如: “sub x1 10”的作用等价于“x1=10”但用“SUB”和“SLB”表示的上下界约束不计入模型的约束,也不能给出其松紧判断和敏感性分析。14. “END”后对 0-1 变量说明:n 或na
8、me15. “END”后对整数变量说明:GIN n或 GIN nameLINGO 软件简介LINGO 模型的优点 包含了 LINDO 的全部功能 提供了灵活的编程语言(矩阵)LINGO 模型的 目标与约束段:4 个段 集合段(SETSENDSETS) 数据段(DATAENDDATA) 初始段(INIT阅读如下代码:代码 1:ENDINIT)m:!可省略;max=2*x1+3*x2; 4*x1+3*x2=10;3*x1+5*x2=12;end !可省略;代码 2:msets:xx/1.1/:x,y; !集合名称为xx; endsets max=sum(xx:2*x+3*y); for(xx(i)
9、:4*x(i)+3*y(i)=10);for(xx(i):3*x(i)+5*y(i)=12);end代码 3:msets:xx/1.2/ :x,c,d,e ; endsets max=sum(xx:c*x);sum(xx:d*x)=10; sum(xx:e*x)=12;data:c=2 3;d=4 3;e=3 5;enddata end代码 4:msets:xx/1.2/:x; endsetsmax=2*x(1)+3*x(2); 4*x(1)+3*x(2)=10;3*x(1)+5*x(2)= REQUIRED( J); END优化问题是:邮局一周中每天需要不同数目的雇员,设周一至少 20 人,
10、周二至少 16人,周日至少 12 人,又规定应聘者需连续工REQUIRED,START;作 5邮局每天聘多少雇员才能既满足需求,又使聘用总人数最少。五个基本的组成部分:1. 变量定义;2. 数据输入;3. 目标函数;4. 约束;5. 变量取值范围。常见内部函数:集合定义:setname/member list(or 1.n)/:attribute,attribute,etc.setname(set1,set2,etc.): attribute,attribute,etc.元素列表法派生集合稠密集合集合基本集合直接列举法隐式列举法min =s1+s2+s3+s4+s5+s6+s7; s1+s4+
11、s5+s6+s7=20; !周 1 雇员数; s1+s2+s5+s6+s7=16; !周 2 雇员数; s1+s2+s3+s6+s7=13; !周 3 雇员数; s1+s2+s3+s4+s7=16; !周 4 雇员数; s1+s2+s3+s4+s5=19; !周 5 雇员数; s2+s3+s4+s5+s6=14; !周 6 雇员数; s3+s4+s5+s6+s7=12; !周 7 雇员数;e.gSETS:CITIES /A1,A2,A3,B1,B2/;ROADS(CITIES, CITIES)/ A1,B1 A1,B2A2,B1A3,B2/:D; ENDSETSSETS:STUDENTS /S
12、1.S8/;PAIRS( STUDENTS, STUDENTS) | &2 #GT# &1: BENEFIT, MATCH; ENDSETS集合元素的隐式列举集合函数:set_operator(set_name|condition:expresset_operator:集合函数名 set_name:数据集合名)expres:表达式|condition:条件#AND#(与),#OR#(或),#NOT#(非)#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于)Max(set_name:expres Min(set_name:expre
13、s Sum(set_name:expresFor(set_name:constra) 返回集合上的表达式的最大值) 返回集合上的表达式的最小值) 返回集合上的表达式的和_expres)类型隐式列举格式示例示例集合的元素数字型1.n1.51, 2, 3, 4, 5字符-数字型stringM.stringNCar101.car208Car101, car102, , car208型dayM.dayNMON.FRIMON, TUE, WED, THU, FRI月份型monthM.monthNOCT.JANOCT, NOV, DEC, JAN年份-月份型monthYearM.monthYeOCT200
14、1.JAN20OCT2001,NOV2001,DEC2001,对集合(set_name)的每个元素独立地生成约束,约束由约束表达式(constra_expres变量界定函数:BND(L,X,U) 限制 L=X1.1x+y=1 y1.1;x+y=1; y0.7;end例:用 LINGO 解决非线性问题m:max=sin(x); x3.14;initx=2;endinit end值得注意的是:LINGO 8.0 提供了 LINGO.DLL 文件可在 VB 或VC+等集成开发环境中调用。且有示例参考,为同一模型不同数据而得出的不同结果进行比较这一类问题提供了解决方案。WhatsBest!介绍首先安装WhatsBest!,再打开 MS Excel 可看见多了菜单栏 “WB!”和模型求解上述例子在WhatsB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中政治课听评课记录
- 班队听评课记录
- 《瘫痪的类型及病因》课件
- 《语文总复习》课件
- 《消法质量法》课件
- 《病例讨论示例》课件
- 《储量计算》课件
- 【大学课件】劳动关系管理
- 《数控调频发射器》课件
- 2024五年级美术老师的工作计划
- 2024年新人教版三年级数学上册《第6单元第11课时 数字编码》教学课件
- (北师大版)五年级数学上册期末复习计划
- 西藏林芝地区一中2025届高二数学第一学期期末联考试题含解析
- 2024标准版劳务合同范本下载
- 数智增长新范式 - 2024产业带出海生态发展报告
- 《昼夜交替》(教学设计)-2023-2024学年五年级下册科学苏教版
- 赛迪顾问:中国安全大模型技术与应用研究报告2023
- DBJ04∕T 325-2024 城市电力电缆隧道工程技术标准
- 2024届九省联考高三新高考适应性测试英语试题及答案
- 13CJ06-2 开窗机(二)消防联动智能开窗机
- 互联网+大学生创新创业大赛解读
评论
0/150
提交评论