LINGO是一种综合工具,旨在使线性、非线性(凸/非凸/全局)、二次、二次约束、二阶锥、半定、随机和整数优化模型的建立和求解更快、更容易和更高效。LINGO提供了一个完全集成的包,其中包括用于表示优化模型的强大语言、用于构建和编辑问题的全功能环境以及一组快速内置解决方案。
LINGO简介
LINGO版本区别介绍
LINGO 能方便地与 Excel、文本文件、数据库文件等其他软件交换数据;主要表达方式如下:
· 通过 Windows 剪贴板传递数据
· 通过文本文件读取数据,并把数据(计算结果)写入文本文件
· 通过 Excel 文件中导入数据,并将计算结果导出到 Excel 文件中
Lingo提供与Access数据库之间的数据传递,LINGO提供 ODBC(开放式数据库)接口,为数据库管理系统(DBMS)定义了一个标准化接口,其他软件可以通过这个接口访问任何 ODBC 支持的数据库,LINGO 为Access、DBase、Excel、FoxPro、Oracle、Paradox、SQL Sever、Text Files 安装了驱动程序,能与这些类型的数据库文件交换数据。
在LINGO模型求解时,系统会首先对模型进行编译(Compile),在 LINGO 对模型进行编译、求解或执行其他与模型相关的命令时,都可能会出现一些语法或运行错误。出现错误时,系统会弹出一个出错报告窗口,显示错误代码,并指出错误所在。这些错误报告信息能够提示用户发现原来模型中的错误,从而才能有可能尽快改正错误,得到正确的模型。Lingo 提供了完整详尽您的错误编码及含义对照表。LINGO 的动态链接库接口 (DLL)与对象链接与嵌入(OEL)的接口Lingo 可以随时调用的DLL(动态数据库),调用 DLL 的能力是所有 Windows 开发环境的标准特性 ( 例如: C#.NET, VB.NET, Visual Java, Visual Basic, Visual C++, 或者 Delphi. 等诸如之类的Windows 开发环境无缝地将 Lingo 的函数功能嵌入到您自己的应用程序中。)。LINGO 的 DLL 接口功能非常强大,您的应用程序可以充当优化问题的用户前端——处理数据输入和存储,以及准备将信息传递到内存中的 Lingo。还可以设置它来显示解决方案,并为用户生成定制的报告。Lingo 包括可调用的 DLL 和 OLE 接口,它可以让您访问所有的特性和命令。简言之, Lingo 支持接口广泛,例如常用的 C++、Java、Python、.Net、Matlab、Visual Basic、C#.NET、VB.NET、Delphi、DLL、OLE、ODBC等等。
您可能想要构建一个客户或同事使用的自定义优化应用程序,而不是单纯的使用 LINGO 的交互式环境。Lingo 给您提供了多种选择,将其功能整合到您自己的应用程序中。
所有Lingo解算器都包含预处理例程。线性和非线性解算器包括缩放和模型缩减技术。在困难复杂的数字模型中,扩展程序可以提高速度和稳定性。模型还原技术通常可以通过分析原始的公式,并将其简化为更小的问题,从而使模型更快地解决问题。整数解析器包括广泛的预处理和切割生成例程。
可以交互式地使用 LINGO,也可以从用户编写的应用程序(仅在 Windows 平台上)调用。它有一个标准的用户界面和一个模型编辑器。Windows 版本可以读取数据并将解决方案信息写入 Excel 和各种数据库应用程序。它有一种可用于矩阵代的建模语言。Lingo 的矩阵函数功能支持的操作包括:特征值和特征向量的计算、矩阵的行列式,矩阵的分解,矩阵的逆矩阵反矩阵,和矩阵的转置等功能。
Lingo的建模语言可以帮助您大幅度地缩短您的模型开发时间。在不到一个页面的情况下,使用Lingo可以有效地表达非常大的模型。建模语言与标准的数学符号的相似性使它很容易被阅读。对于开发人员来说,模型更容易维护,并且让同事能够阅读和理解。使用Lingo,您可以轻松地使您的模型“可伸缩”。这意味着您的模型的维度可以在不需要更改您的问题表达式的情况下进行更改。例如,假设您正在寻找从几个不同的仓库向几个不同的客户提供产品的便宜的方法。如果仓库或客户的数量发生了变化,那么许多建模包将需要对问题的制定进行重大的更改。然而,用 Lingo 来说,您的问题不需要修改。您可以简单地更改数据文件的大小,而 Lingo 则负责其余的内容。
LINGO包括一套全面的分析工具,用于调试不可行的线性、整数和非线性程序,使用高级技术将不可行性的来源隔离到原始约束的最小子集。它还具有执行敏感性分析的工具,以确定对某些数据组件(例如,目标向量和右导数值 e.g. objective vector and right-hand-size values)变化的最优基础的灵敏度。
Lingo内置的QP(国际上广泛认可的识别工具)识别工具是一个有用的代数预处理器,它可以自动判断任意的 NLP 是否实际上是一个凸二次模型。然后,更快的识别和模传递给二次方程解算器,这可以作为(barrier)屏障解决方案的一部分。当障碍求解器选项与全局选项结合时,LINGO 除了可以自动识别圆锥模型规划,还可以自动识别凸二次模型。
线性化是一种综合的重新制定工具,它可以自动转换许多不平滑的函数和操作符(例如:最大和绝对值) 为一系列线性的,数学上等价的表达式。许多不平滑的模型可能是完全线性化的。这使得线性求解程序能够快速找到一个全局的解决方案,否则将会是一个难以处理的非线性问题。
在NLP和混合整数NLP的解决方案空间中,多启动求解器可以智能地生成一系列候选起始点。一个传统的NLP解析器,每个起始点都被调用,以找到一个局部最优值。对于非凸型NLP模型,由多起点解算器所发现的最佳解的质量往往优于传统的非线性解算器的单一解。用户可调参数控制了多启动的最大数量。
Lingo的混合整数解析的能力扩展到线性、二次方和一般的非线性、整数规划模型。它包含了一些先进的解决方案技术,如切割生成、树重新排序以动态地减少树的生长,以及先进的启发式和预处理策略。
随机规划求解程序利用多阶段随机模型,在不确定的情况下支持决策。用户通过标识分布函数来描述这种不确定性,这些分布函数要么是内置的,要么是用户定义的,描述了每个随机动态变量。随机动态解算器将最优化模型,使初始阶段的成本最小化,并在计划周期范围内控制预期成本。先进的采样模式也可用于近似连续的分布。Lingo 的随机解算器也支持机会约束模型,根据特定的概率,允许一个或多个约束条件被违反。
The barrier 解算器是内生法优化的强大选项,主要用于线性优化中,解决大规模运算的问题,比常用的单纯形算法的运算速度要快得多;同时也可用于求解二次方、二次约束和圆锥规划的优化问题。对于大规模的、稀疏的模型,Lingo的先进的屏障解算方法提供了巨大的速度优势。
全局规划解析器结合了一系列的范围边界(例如:区间分析和凸分析)和范围缩小技术(例如:线性规划和约束传播)在一个分支和约束的框架内,以找到已被证明的非凸非线性程序的全局解决方案。传统的非线性解决方案有可能会被困在最优的局部解决方案中,但您在使用全局规划解析器时,情况不再是这样了。Global Solver 提供全局最优解的选项,不同于一般算法只能获得局部的最优解,它可以通过多起始点的方式,通过划分凸规划,调用分支定界管理程序,从多个局部最优解中确定全局最优解, 将非线性模型优化到全球最优解。
这个选项主要用于锥规划优化、解决了二阶锥(SOC)编程模型和单纯整数双层锥规划(PICONE),Conic 选项必须同时配合Barrier选项一起使用。
Bar、Bubble、Contour、Curve、Histogram、Line、Net arc、Net node、Pie、Radar、Scatter、Spacetime、Surface 、Tornado
Lingo 提供了快速启动和运行所需的所有工具。Lingo 使用者手册有详细的功能定义, 可使你迅速入门和上手,每个版本都包含了 Lingo 的优化建模的副本,这是一个全面的建模文本,讨论所有主要的线性、整数和非线性优化问题。此外,Lingo 还提供了数十个实用工作的案例,供您修改和扩展。
LINGO Super
LINGO Hyper
LINGO Industrial
LINGO Extended