电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

lingo教程(pdf)

55页
  • 卖家[上传人]:小**
  • 文档编号:93290929
  • 上传时间:2019-07-19
  • 文档格式:PDF
  • 文档大小:439.07KB
  • / 55 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 LINGO 教程 共 53 页 1 LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优化模型 的语言,可以简便地表达大规模问题,利用 LINGO 高效的求解器可快速求解并分析结果。 1 1 1 1 LINGOLINGOLINGOLINGO 快速入门快速入门快速入门快速入门 当你在 windows 下开始运行 LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口, 包含了所有菜单命令和工具条, 其它所有的窗口将被包含在主窗口之下。 在主窗口内的标题为 LINGO Model LINGO1 的窗口是 LINGO 的默认模型窗口,建立的模型 都都要在该窗口内编码实现。下面举两个例子。 例例例例 1.11.11.11.1 如何在 LINGO 中求解如下的 LP 问题: 0, 6002 100 350 . . 32min 21 21 1 21 21 + + + xx xx x xx ts xx 在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2=350; x1=100; 2*x1+x2=”。LINGO 中还能用“”表示大于等于关系

      2、。LINGO 并不支持严格小于和严格大于关系运算符。然而, 如果需要严格小于和严格大于关系,比如让 A 严格小于 B: A= 4.2 4.2 4.2 4.2 数学函数数学函数数学函数数学函数 LINGO 提供了大量的标准数学函数: abs(x) 返回 x 的绝对值 sin(x) 返回 x 的正弦值,x 采用弧度制 cos(x) 返回 x 的余弦值 tan(x) 返回 x 的正切值 exp(x) 返回常数 e 的 x 次方 log(x) 返回 x 的自然对数 lgm(x) 返回 x 的 gamma 函数的自然对数 sign(x) 如果 x=0 时,返回不超过 x 的最大整数;当 x= required(J); end 计算的部分结果为 Global optimal solution found at iteration: 0 Objective value: 22.00000 Variable Value Reduced Cost REQUIRED( MON) 20.00000 0.000000 REQUIRED( TUE) 16.00000 0.000000 REQUIRED( WED

      3、) 13.00000 0.000000 REQUIRED( THU) 16.00000 0.000000 REQUIRED( FRI) 19.00000 0.000000 REQUIRED( SAT) 14.00000 0.000000 REQUIRED( SUN) 12.00000 0.000000 START( MON) 8.000000 0.000000 START( TUE) 2.000000 0.000000 START( WED) 0.000000 0.3333333 START( THU) 6.000000 0.000000 START( FRI) 3.000000 0.000000 START( SAT) 3.000000 0.000000 START( SUN) 0.000000 0.000000 从而解决方案是:每周最少需要 22 个职员,周一安排 8 人,周二安排 2 人,周三无需安排 人,周四安排 6 人,周五和周六都安排 3 人,周日无需安排人。 4.8 4.8 4.8 4.8 输入和输出函数输入和输出函数输入和输出函数输入和输出函数 输入和输出函数可以把模型

      4、和外部数据比如文本文件、数据库和电子表格等连接起来。 1 1 1 1filefilefilefile 函数函数函数函数 该函数用从外部文件中输入数据,可以放在模型中任何地方。该函数的语法格式为 LINGO 教程 共 53 页 16 file(filename)。 这里 filename 是文件名, 可以采用相对路径和绝对路径两种表示方 式。file 函数对同一文件的两种表示方式的处理和对两个不同的文件处理是一样的,这一 点必须注意。 例例例例 4.144.144.144.14 以例 1.2 来讲解file 函数的用法。 注意到在例 1.2 的编码中有两处涉及到数据。第一个地方是集部分的 6 个 warehouses 集成员和 8 个 vendors 集成员;第二个地方是数据部分的 capacity,demand 和 cost 数据。 为了使数据和我们的模型完全分开, 我们把它们移到外部的文本文件中。 修改模型代码 以便于用file 函数把数据从文本文件中拖到模型中来。修改后(修改处代码黑体加粗)的 模型代码如下: model: !6 发点 8 收点运输问题; sets: warehou

      5、ses/ filefilefilefile(1_2.txt)(1_2.txt)(1_2.txt)(1_2.txt) /: capacity; vendors/ filefilefilefile(1_2.txt)(1_2.txt)(1_2.txt)(1_2.txt) /: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=sum(links: cost*volume); !需求约束; for(vendors(J): sum(warehouses(I): volume(I,J)=demand(J); !产量约束; for(warehouses(I): sum(vendors(J): volume(I,J)= required(J); end 3 3 3 3oleoleoleole 函数函数函数函数 OLE 是从 EXCEL 中引入或输出数据的接口函数, 它是基于传输的 OLE 技术。 OLE 传输直 接在内存中传输数据,并不借助于中间文件。当使用OLE 时,LINGO 先装载 EXCEL,再通知 EXCE

      6、L 装载指定的电子数据表,最后从电子数据表中获得 Ranges。为了使用 OLE 函数,必须 有 EXCEL5 及其以上版本。OLE 函数可在数据部分和初始部分引入数据。 OLE 可以同时读集成员和集属性,集成员最好用文本格式,集属性最好用数值格式。 原始集每个集成员需要一个单元(cell), 而对于 n 元的派生集每个集成员需要 n 个单元, 这 里第一行的 n 个单元对应派生集的第一个集成员, 第二行的 n 个单元对应派生集的第二个集 成员,依此类推。 OLE 只能读一维或二维的 Ranges(在单个的 EXCEL 工作表(sheet)中) ,但不能读间断 的或三维的 Ranges。Ranges 是自左而右、自上而下来读。 例例例例 4.164.164.164.16 sets: LINGO 教程 共 53 页 18 PRODUCT; !产品; MACHINE; !机器; WEEK; !周; ALLOWED(PRODUCT,MACHINE,WEEK):x,y; !允许组合及属性; endsets data: rate=0.01; PRODUCT,MACHINE,WEEK,ALLOWE

      7、D,x,y=OLE(D:IMPORT.XLS); OLE(D:IMPORT.XLS)=rate; enddata 代替在代码文本的数据部分显式输入形式, 我们把相关数据全部放在如下电子数据表中 来输入。下面是 D:IMPORT.XLS 的图表。 除了输入数据之外,我们也必须定义 Ranges 名:PRODUCT,MACHINE,WEEK,ALLOWED, x,y. 明确的,我们需要定义如下的 Ranges 名: Name RangeName RangeName RangeName Range PRODUCT B3:B4 MACHINE C3:C4 WEEK D3:D5 ALLOWED B8:D10 X F8:F10 Y G8:G10 rate C13 为了在 EXCEL 中定义 Ranges 名: 按鼠标左键拖曳选择 Range, 释放鼠标按钮, 选择“插入|名称|定义”, 输入希望的名字, 点击“确定”按钮。 我们在模型的数据部分用如下代码从 EXECL 中引入数据: PRODUCT,MACHINE,WEEK,ALLOWED,x,y=OLE(D:IMPORT.XLS); OLE(D:

      8、IMPORT.XLS)=rate; 等价的描述为 PRODUCT,MACHINE,WEEK,ALLOWED,x,y =OLE(D:IMPORT.XLS, PRODUCT,MACHINE,WEEK,ALLOWED,x,y); OLE(D:IMPORT.XLS,rate)=rate; 这一等价描述使得变量名和 Ranges 不同亦可。 LINGO 教程 共 53 页 19 4 4 4 4ranged(variable_or_row_name)ranged(variable_or_row_name)ranged(variable_or_row_name)ranged(variable_or_row_name) 为了保持最优基不变,变量的费用系数或约束行的右端项允许减少的量。 5 5 5 5rangeu(variable_or_row_name)rangeu(variable_or_row_name)rangeu(variable_or_row_name)rangeu(variable_or_row_name) 为了保持最优基不变,变量的费用系数或约束行的右端项允许增加的量。 6 6 6 6s

      9、tatus()status()status()status() 返回 LINGO 求解模型结束后的状态: 0 Global Optimum(全局最优) 1 Infeasible(不可行) 2 Unbounded(无界) 3 Undetermined(不确定) 4 Feasible(可行) 5 Infeasible or Unbounded(通常需要关闭“预处理”选项后重新求解模型,以确 定模型究竟是不可行还是无界) 6 Local Optimum(局部最优) 7 Locally Infeasible(局部不可行,尽管可行解可能存在,但是 LINGO 并没有找到 一个) 8 Cutoff(目标函数的截断值被达到) 9 Numeric Error(求解器因在某约束中遇到无定义的算术运算而停止) 通常,如果返回值不是 0、4 或 6 时,那么解将不可信,几乎不能用。该函数仅被用在 模型的数据部分来输出数据。 例例例例 4.174.174.174.17 model: min=sin(x); data: text()=status(); enddata end 部分计算结果为: Local optimal solution found at iteration: 33 Obje

      《lingo教程(pdf)》由会员小**分享,可在线阅读,更多相关《lingo教程(pdf)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.