中国科学软件网-首页
LinGo 17.0——运筹学软件

LINGO是一款创建和求解线性、非线性(凸/非凸/全局)、二次方程、二次约束、二阶锥、半定、随机和整数优化模型的综合性软件。集成了一个强大的表达优化模型语言包,功能全面的创建和编辑问题的环境以及一组快速内置求解器。

LINGO的主要优势

简单的模型表达

LINGO可以帮助用户减少开发的时间,以可读的格式快速地解决线性、非线性和整数问题。LINGO建模语言允许您使用求和和下标变量简单直观的来建模,就像使用纸和铅笔一样。建模会变的更容易并且易于理解,同时也很容易掌握。LINGO可以同时利用多个CPU内核来进行快速建模。
LINGO最强大的功能之一是数学建模语言,让您以非常接近标准数学符号的方式来自然的表达您的问题。您还可以在一个紧凑的语句中快速表达一系列相似约束,模型紧凑易于理解。
当您建模时,通常会发现一组或多组相关对象(如工程、客户、车辆或雇员)。通常情况下,如果一个约束条件适用于一组对象中的一个成员时,那么这个约束条件也适用于这个组的其他成员,并不需要对一组中的所有成员都单设约束条件。LINGO可以用一个简洁的语句表达整个组的约束条件。利用组群优势是LINGO建模语言的一个基本功能,也是LINGO最强大功能的基本构建块。LINGO甚至还支持隐式地表达共同集,如星期的天数或年份的月数。LINGO的建模语言可以帮助您大幅度的减少模型开发时间,即使是大型的模型,不到一页的内容就能高效的表达结果。这种建模语言和标准数学符号的相似度使它便于阅读,开发者可以更简单的建模并方便同事阅读和理解。
使用LINGO,轻松让您的模型具有“可扩展性”。这意味着您可以改变模型的维度而不需要去改变对问题的描述。假设您正在寻找最便宜的方法从不同的仓库将产品销售给不同的客户。如果仓库或客户的数量改变了,很多建模工具都需要对问题描述进行大量的修改。而使用LINGO,您的问题描述不需要做任何修改,您只需要修改数据文件然后LINGO就可以完成接下来的一切工作。
LINGO的建模语言包括一个广泛的数学、概率和金融功能库。您可以创建用户自定义功能来供LINGO使用。LINGO支持右侧括号和变量的广义表达,允许有意义的变量名的字符数多达32个。

便利的数据选项

LINGO花时间管理数据,它可以让您直接从数据库和表格中导入数据并建模。同样的,LINGO也可以直接将结果信息直接导出到数据库和表格中,这样更容易在您选择的应用中生成报告。 收集模型数据并以适当的格式获得它是非常麻烦和耗时的工作,但是使用LINGO您可以用各种方便的格式管理数据,LINGO会帮您保存数据。比如将数据放在:
  • Excel或Lotus表格文件中;
  • Access, Oracle, DB/2, Paradox, SQL Server等数据库中;
  • 一个单独的文本文件列表或表格中;
  • 用模型表达来储存;
  • 模型运行时由用户来导入;
LINGO提供了广泛的数据选项,非常灵活和便利。LINGO允许用户从数据中分离出有问题的表达,模型可以轻松阅读并修改,这样出错的几率就会非常小。使原型问题能在一个小数据集中被解决。 一旦您对模型满意了,就可以轻松的在较大的数据或几个不同的数据集中交换,以调用不同的方案。
LINGO的灵活性甚至可以帮助用户更简单的生成报告。除了可以从表格和数据库中读取数据外,LINGO还可以针对这些数据格式给出解决方案。这就意味着,您可以简单的导出并分析您的解决方案,LINGO不会强迫您学习内置报告生成器。

强大的求解器

LINGO内置了一套全面、快速的求解器:线性、非线性(convex & nonconvex/Global)、二次、二次限制、二阶锥、随机和整数优化。您完全不需要单独指定或加载一个求解器,因为LINGO会自动帮您选择合适的求解器。
LINGO内置了一系列求解器用于解决各种各样的问题。跟很多建模软件不一样的是,LINGO的所有求解器都直接关联到建模环境。这种无缝的集成使得LINGO可以直接将出现的问题交给合适的求解器来处理,而不用通过一些缓慢的中间文件转换。这种直接的联系可以最大的减小建模语言组件和求解器组件中可能出现的兼容问题。

线性求解器

LINGO有三种支持线性模型的求解器。

Primal和Dual Simplex求解器

Base版本包含Primal和Dual Simplex求解器,它极大的增加了运行速度和稳定性。价格选项包含部分价格和Devex。求解器会根据问题的特点自动选择最好的价格选项。

Barrier求解器

Barrier求解器给用户提供了另一种解决线性模型的方法。Barrier选项利用一个障碍或内点法来求解线性模型。与Simplex求解器沿着可行区域外部移动不同的是,Barrier求解器可以在区域内部寻找最优方法。根据模型的大小和结构,Barrier求解器可以在速度上远远超过Simplex求解器并且为大型线性模型提供超凡的速度,特别是超过5000个约束条件的sparse模型或高度退化模型。使用Barrier求解器需要购买Barrier许可。

整数求解器

对于一般以及二进制整数约束的模型,LINGO的整数求解器,结合线性、非线性以及二次求解器一起使用。对于线性模型,整数求解器包含了预处理和几十个约束"cut"例程,可以极大的提高整数模型求解时间。

非线性模型

LINGO包含了一系列针对局部或全局非线性模型的最优解决方案。

一般非线性求解器

对于非线性规划模型,LINGO的非线性求解器主要使用的基础技术是基于广义简约梯度 (GRG) 算法。然而要快速得到一个可行的解决方案,LINGO还可采用连续线性规划(SLP)。这个非线性求解器利用sparsity来提高速度和内存使用率。求解非线性模型需要非线性模型许可包。

Global求解器

局部搜索求解器通常是设计用来搜索,直到确定局部最优求解方案。如果模型是non-convex,可能存在其他局部最优解决方案,Global求解器不会在找到第一个局部最优解决方案时就停止工作,而是会继续搜索直到全局最优化方案被确认。Global求解器将原始的non-convex非线性问题转换成多个convex和线性子问题。然后使用branch-and-bound技术来详细的搜索这些子问题的综合解决方案。全局优化功能需要非线性和global模块许可包。

Multistart求解器

用户需要在有限的时间内找到全局最优方案时,Multistart求解器这个强大的工具就可以快速的找到这个方案。它会智能的生成一系列候选解决方案,通用非线性求解器智能选择其中的一个子集初始化一系列局部优化。对non-convex非线性模型来说,multistart求解器得出的解决方案会优于通用非线性求解器的。使用Multistart功能需要非线性和global模块许可包。

二次求解器

除了求解线性和混合整数模型外,LINGO的Barrier选项还可以自动检测和处理目标函数和某些约束条件包含二次项的模型。利用二次结构,LINGO比通用非线性求解器能更快地处理这些模型。LINGO甚至还可以用二元和一般整数约束处理二次模型。这些二次功能使LINGO适用于如投资组合优化问题,约束回归问题和某些类型的物流问题(如布局问题、二次目标固定费用网络问题)。二次求解器已经包含在了Barrier模块许可包中。

Conic求解器

Conic求解器可有效地求解二阶锥问题(SOCP)。通过表达一定的非线性模型如SOCPs,Conic求解器比一般非线性求解器能更快的得到求解结果。使用Conic求解器需要有Barrier和Conic选项。

随机规划求解器

在多级优化模型中加入一定风险把预期利润最大化,并用直方图显示可能利润分配的结果。通过多级随机线性、非线性和整数随机规划(SP),这个新选项允许建模和优化模型时出现不确定因素。Benders分解法用于求解大型线性随机规划模型,支持20几种分布类型(离散或连续)。随机规划求解器包含在随机规划选项中。

预处理

预处理例程包含在所有求解器中。线性和非线性求解器包含缩放和模型降阶技术。缩放程序可以提高复杂模型的处理速度和稳定性。模型降阶技术可以通过分析原始的公式和数学方法将问题难度减小,快速求解出结果。整数求解器中包含了广泛的预处理和切割生成例程。 LINGO的设计理念是为了让用户在处理模型时尽可能少的输入指令。当求解命令开始时,LINGO分析问题,可能的话,会减少问题甚至替代变量。根据模型的结构,LINGO会自动选择合适的求解器并智能的调整内部参数。

线性化

LINGO的线性功能可以极大的提高常见的非光滑函数的性能。这个功能可以自动将许多非光滑函数和运算符(@IF, @MAX 以及 @ABS)转换成一系列线性和数学等价表达式。同样的,产品的连续性和二进制变量也可以线性化。许多非光滑模型也可以完全线性化。这使得线性求解器可以快速的找到一个全局解决方案以免成为一个棘手问题。

交互模型或创建turn-key应用程序

在LINGO内部,您可以创建和求解模型,也可以在您自己写的应用程序里直接调用LINGO。为了交互式开发模型,LINGO提供了一个完整的建模环境来创建、求解以及分析您的模型。为创建turn-key解决方案,LINGO提供了DLL和OLE接口方便从用户写的应用程序中调用。Excel宏或数据库应用中也可以直接调用LINGO.

模型交互

LINGO允许用户交互式创建和求解模型,或在另一个程序中嵌入求解器。

交互式建模

LINGO提供了一个创建和求解优化问题的交互式环境。多窗口编辑器方便简单问题的输入、预览和修改。为了方便模型创建,"syntax aware"编辑器将LINGO的关键词标蓝、评论标绿,其它模型文字都是黑色。还提供了一个工具栏便于快速访问经常使用的命令。解决方案信息可以在窗口、图表、电子表格、数据库或文本文件中浏览。模型求解过程中,用户可以监控求解状态并随时终止进程。

创建Turn-key应用

您可能需要为客户或同事创建一个自定义优化程序,而不是交互式运行LINGO。LINGO提供多个选择并将它的功能合并到您的应用中。其他应用调用LINGO求解器需要用到单独的许可包。

可调用的DLL和OLE接口

通过一些Windows开发环境无缝的将LINGO嵌入到您自己的应用中,如C#.NET, VB.NET, Visual Java, Visual Basic, Visual C++,或 Delphi。您的应用可以作为优化问题的用户前端——处理数据输入和存储以及准备将信息传递到LINGO的内存中。它也可以被设置为显示解决方案并为用户生成定制的报表。LINGO包括了可调用的DLL和OLE接口,可以让用户交互式访问所有的功能和命令。

从电子表格和数据库中调用LINGO

创建一个简单的应用,直接从电子表格如Excel和数据库如Access中调用LINGO。创建自己的“Solve”按钮就跟调用LINGO和运行一系列指定命令一样简单。

An Overview of LINGO

LINGO is a comprehensive tool designed to make building and solving Linear, Nonlinear (convex & nonconvex/Global), Quadratic, Quadratically Constrained, Second Order Cone, Semi-Definite, Stochastic, and Integer optimization models faster, easier and more efficient. LINGO provides a completely integrated package that includes a powerful language for expressing optimization models, a full featured environment for building and editing problems, and a set of fast built-in solvers. The recently released LINGO 16.0 includes a number of significant enhancements and new features.

Key Benefits of LINGO

Easy Model Expression

- LINGO will help you cut your development time. It lets you formulate your linear, nonlinear and integer problems quickly in a highly readable form. LINGO's modeling language allows you to express models in a straightforward intuitive manner using summations and subscripted variables -- much like you would with pencil and paper. Models are easier to build, easier to understand, and, therefore, easier to maintain. LINGO can exploit multiple CPU cores for faster model generation.
  • 中国区典型用户

    • 中国林业科学院研究院资源信息研究所
    • 中国民用航空总局第二研究所
    • 安徽朗讯科技有限公司
    • 江南大学
    • 天津商业大学
    • 武汉大学
    • 西北工业大学
    • 南京理工大学
    • 北京工业大学
    • 集美大学
    • 北京理工大学
    • 中国石油大学(北京)
    • 嘉兴学院
    • 东北大学
    • 杭州电子科技大学
    • 山西农业大学
    • 南京信息工程大学
    • 内蒙古大学
    • 石河子大学
    • 聊城大学
    • 中国地质大学
    • 西安建筑科技大学
    • 四川师范大学
    • 华北理工大学
    • 南昌大学
    • 安徽建筑大学