《使用LINDO的一些注意事项 (2)》由会员分享,可在线阅读,更多相关《使用LINDO的一些注意事项 (2)(49页珍藏版)》请在金锄头文库上搜索。
1、使用LINDO的一些注意事项1.“”(或“=”(或“: 2 0 2, GUBS = 0 SINGLE COLS= 0 REDUNDANT COLS= 0LINDO行命令、命令脚本文件批处理:可以采用命令脚本(行命令序列)WINDOWS环境下行命令的意义不大Example 演示用FILE / TAKE COMMANDS (F11) 命令调入必须是以LINDO PACKED形式 (压缩)保存的文件FILE / SAVE命令SAVE行命令LINGO软件简介目标与约束段 集合段(SETS ENDSETS) 数据段(DATA ENDDATA) 初始段(INIT ENDINIT)LINGO模型的构成:4个
2、段LINGO模型的优点包含了LINDO的全部功能提供了灵活的编程语言(矩阵生成器)LINGO模型 例:选址问题某公司有6个建筑工地,位置坐标为(ai, bi) (单位:公里), 水泥日用量di (单位:吨)假设:料场 和工地之间 有直线道路用例中数 据计算, 最优解为总吨公里数为总吨公里数为136.2136.2线性规划模型决策变量:ci j ( 料场j到工地i的 运量)12维选址问题:NLP2)改建两个新料场,需要确定新料场位置(xj,yj)和 运量cij ,在其它条件不变下使总吨公里数最小。决策变量: ci j,(xj,yj)16维非线性规划模型LINGO模型的构成:4个段集合段(SETS
3、ENDSETS)数据段(DATA ENDDATA)初始段(INIT ENDINIT) 目标与约束段局部最优:89.8835(吨公里 )LP:移到数据段边界集合的类型集合派生集合 基本集合稀疏集合 稠密集合元素列表法 元素过滤法 直接列举法 隐式列举法setname /member_list/ : attribute_list;setname(parent_set_list ) /member_list/ : attribute_list;SETS:CITIES /A1,A2,A3,B1,B2/;ROADS(CITIES, CITIES)/ A1,B1 A1,B2 A2,B1 A3,B2/:D;
4、 ENDSETSSETS:STUDENTS /S1.S8/;PAIRS( STUDENTS, STUDENTS) | ENDSETS集合元素的隐式列举类类型隐隐式列举举格式示例示例集合的元素 数字型 1.n1.51, 2, 3, 4, 5 字符- 数字型stringM.stringNCar101.car208 Car101, car102, , car208 星期型 dayM.dayNMON.FRIMON, TUE, WED, THU, FRI 月份型 monthM.monthN OCT.JANOCT, NOV, DEC, JAN 年份- 月份型monthYearM.mo nthYearNOC
5、T2001.JAN 2002OCT2001, NOV2001, DEC2001, JAN2002运算符的优先级 优优先级级 运算符 最高#NOT# (负负号) * / + (减法) #EQ# #NE# #GT# #GE# #LT# #LE# #AND# #OR# 最低(=)三类运算符:算术运算符 逻辑运算符 关系运算符集合循环函数四个集合循环函数:FOR、SUM 、 MAX、MINfunction( setname ( set_index_list) | condition : expression_list);objective MAX = SUM( PAIRS( I, J): BENEFI
6、T( I, J) * MATCH( I, J);FOR(STUDENTS( I): constraintsSUM( PAIRS( J, K) | J #EQ# I #OR# K #EQ# I: MATCH( J, K) =1);FOR(PAIRS( I, J): BIN( MATCH( I, J);MAXB=MAX(PAIRS( I, J): BENEFIT( I, J);MINB=MIN(PAIRS( I, J): BENEFIT( I, J);Example:状态窗口Solver Type: B-and-B Global MultistartModel Class:LP, QP,ILP ,
7、 IQP,PILP, PIQP,NLP, INLP,PINLP State: Global Optimum Local Optimum Feasible Infeasible Unbounded Interrupted Undetermined7个选项卡(可设置80-90个控制参数)程序与数据分离文本文件使用外部数据文件 Cut (or Copy) Paste 方法 FILE 输入数据、TEXT输出数据(文本文件) OLE函数与电子表格软件(如EXCEL)连接 ODBC函数与数据库连接 LINGO命令脚本文件 LG4 (LONGO模型文件) LNG (LONGO模型文件) LTF (LONGO
8、脚本文件) LDT (LONGO数据文件) LRP (LONGO报告文件)常用文件后缀FILE和TEXT:文本文件输入输出MODEL: SETS:MYSET / FILE(myfile.txt) / : FILE(myfile.txt); ENDSETS MIN = SUM( MYSET( I):SHIP( I) * COST( I);FOR( MYSET( I): CON1 SHIP( I) NEED( I);CON2 SHIP( I) NEED( I);CON2 SHIP( I) SUPPLY( I); DATA:MYSET =OLE(D:JXIEBJ2004MCMmydata.xls,C
9、ITIES); COST,NEED,SUPPLY =OLE(mydata.xls); OLE(mydata.xls,SOLUTION)=SHIP; ENDDATA ENDmydata.xls文件中必 须有下列名称(及数 据):CITIES, COST, NEED,SUPPLY, SOLUTION 在EXCEL中还可以通过“宏”自动调用LINGO(略) 也可以将EXCEL表格嵌入到LINGO模型中(略)演示 MydataExample.lg4ODBC :与数据库连接输入基本集合元素: setname/ODBC(datasource , tablename , columnname)/ 输入派生集
10、合元素: setname/ODBC(source,table , column1, column2)/目前支持下列DBMS: (如为其他数据库,则需自行安装驱动) ACCESS, DBASE,EXCEL,FOXPRO,ORACLE, PARADOX,SQL SERVER, TEXE FILES使用数据库之前,数据源需要在ODBC管理器注册输入数据: Attr_list=ODBC(source,table , column1, column2) 输出数据: ODBC(source,table , column1, column2)= Attr_list具体例子略建模实例与求解最短路问题下料问题露
11、天矿的运输问题钢管运输问题最短路问题求各点到T的最短路56774968658336C1B1C2B2A1A2A3TS6shortestPath.lg4问题1. 如何下料最节省 ? 例 钢管下料 问题2. 客户增加需求:原料钢管:每根19米 4米50根 6米20根 8米15根 客户需求节省的标准是什么?由于采用不同切割模式太多,会增加生产和管理成本 ,规定切割模式不能超过3种。如何下料最节省?5米10根 按照客户需要在一根原料钢管上安排切割的一种组合。 切割模式余料1米 4米1根 6米1根 8米1根 余料3米 4米1根 6米1根 6米1根 合理切割模式的余料应小于客户需要钢管的最小尺寸余料3米 8
12、米1根 8米1根 钢管下料 为满足客户需要,按照哪些种合理模式,每种模式 切割多少根原料钢管,最为节省?合理切割模式2. 所用原料钢管总根数最少 模式 4米钢管根数6米钢管根数8米钢管根数余料(米) 14003 23101 32013 41203 51111 60301 70023钢管下料问题1 两种 标准1. 原料钢管剩余总余量最小xi 按第i 种模式切割的原料钢管根数(i=1,2,7) 约束满足需求 决策变量 目标1(总余量)按模式2切割12根,按模式5切割15根,余料27米 模 式4米 根数6米 根数8米 根数余 料 14003 23101 32013 41203 51111 60301
13、 70023需 求502015最优解:x2=12, x5=15, 其余为0; 最优值:27整数约束: xi 为整数当余料没有用处时,通常以总根数最少为目标 目标2(总根数)钢管下料问题1 约束条 件不变 最优解:x2=15, x5=5, x7=5, 其余为0; 最优值:25。xi 为整数按模式2切割15根, 按模式5切割5根, 按模式7切割5根, 共25根,余料35米 虽余料增加8米,但减少了2根 与目标1的结果“共切割 27根,余料27米” 相比 钢管下料问题2对大规模问题,用模型的约束条件界定合理模式增加一种需求:5米10根;切割模式不超过3种。现有4种需求:4米50根,5米10根,6米2
14、0根,8米 15根,用枚举法确定合理切割模式,过于复杂。决策变量 xi 按第i 种模式切割的原料钢管根数(i=1,2,3) r1i, r2i, r3i, r4i 第i 种切割模式下,每根原料钢管 生产4米、5米、6米和8米长的钢管的数量满足需求模式合理:每根 余料不超过3米整数非线性规划模型钢管下料问题2目标函数(总根数)约束 条件整数约束: xi ,r1i, r2i, r3i, r4i (i=1,2,3)为整数增加约束,缩小可行域,便于求解原料钢管总根数下界: 特殊生产计划:对每根原料钢管 模式1:切割成4根4米钢管,需13根; 模式2:切割成1根5米和2根6米钢管,需10根; 模式3:切割
15、成2根8米钢管,需8根。 原料钢管总根数上界:31 模式排列顺序可任定 钢管下料问题2需求:4米50根,5米10 根,6米20根,8米15根每根原料钢管长19米LINGO求解整数非线性规划模型 Local optimal solution found at iteration: 12211Objective value: 28.00000 Variable Value Reduced Cost X1 10.00000 0.000000 X2 10.00000 2.000000 X3 8.000000 1.000000 R11 3.000000 0.000000 R12 2.000000 0.000000 R13 0.000000 0.000000 R21