LINGO的介绍

2024-05-06 08:58

1. LINGO的介绍

LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。

LINGO的介绍

2. LINGO的LINGO13.0新功能

LINGO13.0包括扩大和加强管理能力优化模型的不确定性,一些求解性能增强,提高制图能力。 改进的“温暖的开始”在解决多级检疫。改进后的方法诱导随机参数之间的关系。 显着改善根节点的启发式快速找到好的解决方案,integer-feasible。改进识别特殊的结构在某些类别的模型,如多期模型,并能够利用这种结构实现大幅度减少复原时间。 改进的启发式寻找一个好的,可行解快。限制现在可以被标记为被凸,在情况下,约束的复杂性使得全局求解器自动确定凸。这加速了全局最优的证明。提高识别能力的限制,可以转化为圆锥曲线(即,二阶锥)约束从而解决更快的圆锥曲线求解。改进的能力,有效地处理多项式计算。改进的边界条件和特征值凸二次规划调整。 除了条形图,线和饼图图表,LINGO现在支持下列图表类型:泡沫,轮廓线,曲线,直方图,雷达,散射和表面。多属性可以显示在一个单一的图表,每个绘制在不同的颜色。图表可显示在两只或三尺寸。使用集从一个模型标签轴和/或传说。在图表上显示的脚本语言编程方式从术语使用“图表”命令。 术语应用编程接口支持新的函数调用检索变量值对飞的回调函数,以及一个多功能加载许可直接从一个字符串。改进的新型加密:在过去,LINGO允许数据加密模型使用隐藏命令。加密算法得到了显著加强,并加密模型片段也可以合并成一个单一的模型在运行时。 增强了单纯形线性规划算法实现的速度和鲁棒性。相比上一个版本,LINGO15.0的性能在原始单纯形法提升了90%,对偶单纯形法提高了45%。 背包问题相关的削减性改进,一些背包问题模型的求解速率明显增强。改进的默认节点选择规则增强了对大部分整数规划模型的性能。新的分支变量规则选项:最大系数和邻近分支,从而可以减少某些整数模型的分支数。由于视图再形成的能力,在二次投资组合模型与半连续变量方面的性能得到了提升,如最小购买量问题。 改进的默认设置使非线性规划平均求解速度提高了5%。拥有更长的非线性表达式的非线性规划模型现在能够得到更快的处理。 对于近凸二次规划(QP)功能的修正,使不太凸的QP问题上有了改进。其他多线程代码被添加到模型生成器用来减少大型模型的生成时间。

3. 什么是LINGO

LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”, 
   一般地,使用LINGO 求解运筹学问题可以分为以下两个步骤来完成:  
 1)根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型;  
 2)根据优化模型,利用LINGO 来求解模型。主要是根据LINGO 软件,把数学模型转译成计算机语言,借助于计算机来求解。

什么是LINGO

4. LINGO的软件综述

LINGO全称是Linear INteractive and General Optimizer的缩写---交互式的线性和通用优化求解器。它是一套设计用来帮助您快速,方便和有效的构建和求解线性,非线性,和整数最优化模型的功能全面的工具。包括功能强大的建模语言,建立和编辑问题的全功能环境,读取和写入Excel和数据库的功能,和一系列完全内置的求解程序.Lingo 是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。Lingo 提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。1. 简单的模型表示Lingo 可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。LINGO的建模语言允许您使用汇总和下标变量以一种易懂的直观的方式来表达模型,非常类似您在使用纸和笔。模型更加容易构建,更容易理解,因此也更容易维护。2. 方便的数据输入和输出选择Lingo 建立的模型可以直接从数据库或工作表获取资料。同样地,Lingo 可以将求解结果直接输出到数据库或工作表。使得您能够在您选择的应用程序中生成报告.3. 强大的求解器LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&;非球面的),二次的,二次约束的,和整数优化问题。您甚至不需要指定或启动特定的求解器,因为LINGO会读取您的方程式并自动选择合适的求解器。4. 交互式模型或创建Turn-key应用程序您能够在LINGO内创建和求解模型,或您能够从您自己编写的应用程序中直接调用LINGO。对于开发交互式模型,LINGO提供了一整套建模环境来构建,求解和分析您的模型.对于构建turn-key解决方案,LINGO提供的可调用的DLL和OLE界面能够从用户自己写的程序中被调用。LINGO也能够从Excel宏或数据库应用程序中被直接调用.广泛的文件和 HELP 功能

5. LINGO 10.0的LINGO综述

LINGO是一套设计用来使构建和求解线性,非线性和整数优化模型更快,更容易和更有效的功能强大的工具。LINGO提供了一套完成集成的软件包,包括用来表述优化模型的语言,用于构建和编辑问题的完全功能环境,和一套快速的内置求解器。最新版本LINGO 10.0包括了一些显著的增强和新特征。点击这里来获得有关新特征的更多的信息。LINGO关键特征方便的模型表达-LINGO将帮助您节省您的开发时间。它让您以一种高度的可读形式来快速公式化您的线性,非线性和整数问题。LINGO的建模语言允许您使用汇总和下标变量以一种易懂的直观的方式来表达模型,非常类似您在使用纸和笔。模型更加容易构建,更容易理解,因此也更容易维护。方便的数据选项-LINGO让您管理您的数据不再费时间和麻烦。它允许您直接从数据库和电子表格程序中提取数据来构建模型.同样的,LINGO能够直接输出解答信息到数据库或电子表格程序中,使得您能够在您选择的应用程序中生成报告.强大的求解器-LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&非球面的),二次的,二次约束的,和整数优化问题.您甚至不需要指定或启动特定的求解器,因为LINGO会读取您的方程式并自动选择合适的求解器.交互式模型或创建Turn-key应用程序-您能够在LINGO内创建和求解模型,或您能够从您自己编写的应用程序中直接调用LINGO.对于开发交互式模型,LINGO提供了一整套建模环境来构建,求解和分析您的模型.对于构建turn-key解决方案,LINGO提供的可调用的DLL和OLE界面能够从用户自己写的程序中被调用.LINGO也能够从Excel宏或数据库应用程序中被直接调用.详尽的文档和帮助LINGO提供了所有的您需要快速启动和运行的工具.您能得到一本LINGO User Manual(以打印的格式,可通过在线帮助获得),该手册详尽的描述了程序的命令和功能.同样高级版本带有一本更大的Optimization Modeling with LINGO手册,这是一本综合教科书,讨论了所有主要的线性,整数和非线性优化问题分类.LINGO同时还带有许多基于真实世界的案例可用来修改和扩展.

LINGO 10.0的LINGO综述

6. lingo怎么用?

1、根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型;
2、根据优化模型,利用LINGO 来求解模型。主要是根据LINGO软件,把数学模型转译成计算机语言,借助于计算机来求解。
在利用LINGO 求解线性规划时,如自变量都为非负的话,在LINGO 中输入的信息和模型基本相同;如自变量为自由变量,可以使用函数 @free来把系统默认的非负变量定义自由变量,如实例一中的 x3。

Lingo的特点:
Lingo中变量不区分大小写,以字母开头不超过32个字符;算术运算符是针对数值进行操作的;LINGO提供了5种二元运算符:^乘方 ﹡乘 /除 ﹢加 ﹣减;LINGO唯一的一元算术运算符是取反函数“﹣”。
LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&;非球面的),二次的,二次约束的,和整数优化问题。甚至不需要指定或启动特定的求解器,因为LINGO会读取您的方程式并自动选择合适的求解器。

7. lingo怎么运行

运行用法如下:
1、根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型。
2、根据优化模型,利用LINGO 来求解模型。主要是根据LINGO软件,把数学模型转译成计算机语言,借助于计算机来求解。
在利用LINGO 求解线性规划时,如自变量都为非负的话,在LINGO 中输入的信息和模型基本相同;如自变量为自由变量,可以使用函数 @free来把系统默认的非负变量定义自由变量,如实例一中的 x3。

Lingo的特点:
Lingo中变量不区分大小写,以字母开头不超过32个字符;算术运算符是针对数值进行操作的;LINGO提供了5种二元运算符:^乘方 ﹡乘 /除 ﹢加 ﹣减;LINGO唯一的一元算术运算符是取反函数“﹣”。
LINGO拥有一整套快速的,内建的求解器用来求解线性的,非线性的(球面&;非球面的),二次的,二次约束的,和整数优化问题。甚至不需要指定或启动特定的求解器,因为LINGO会读取您的方程式并自动选择合适的求解器。

lingo怎么运行

8. lingo的用法

Lingo基本用法总结(除集函数部分)
LINGO是用来求解线性和非线性优化问题的简易工具。Lingo免费版可以支持30个未知数,lingo破解版可以支持几万个未知数、几万个约束条件。
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:

外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 
例1.1 如何在LINGO中求解如下的LP问题: 

在模型窗口中输入如下代码: 
min=2*x1+3*x2; 
x1+x2>=350; 
x1>=100; 
2*x1+x2<=600; 
然后点击工具条上的按钮  即可。
得到如下结果:


所以当x1为250,x2为100时目标函数得到最大值。
? 算术运算符
Lingo中变量不区分大小写,以字母开头不超过32个字符
算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符:
^ 乘方 ﹡ 乘 / 除 ﹢ 加 ﹣ 减
LINGO唯一的一元算术运算符是取反函数“﹣”。
这些运算符的优先级由高到底为:
高 ﹣(取反)
    ^
  ﹡/
低 ﹢﹣
运算符的运算次序为从左到右按优先级高低来执行。运算的次序可以用圆括号“()”来改变。
例:在x1+x2>=350,x1>=100,2*x1+x2<=600的条件下求2*x1+3*x2的最小值
在代码窗口中编写
min=2*x1+3*x2;
x1+x2>=350;
x1>=100;
2*x1+x2<=600;
然后单击上面菜单lingo菜单下solve键即可。
? 数学函数
标准数学函数:
@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返回-1;否则,返回1
@floor(x)           返回x的整数部分。当x>=0时,返回不超过x的最大整数;当x<0时,返回不低于x的最大整数。
最大最小函数:
@smax(x1,x2,…,xn)  返回x1,x2,…,xn中的最大值
@smin(x1,x2,…,xn)  返回x1,x2,…,xn中的最小值
边界限定函数:
@bin(x)             限制x为0或1
@bnd(L,x,U)         限制L≤x≤U
@free(x)            取消对变量x的默认下界为0的限制,即x可以取任意实数
@gin(x)             限制x为整数
辅助函数
1.@if(logical_condition,true_result,false_result)
@if函数将评价一个逻辑表达式logical_condition,如果为真,返回true_ result,否则返回false_result
在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。@free取消了默认的下界为0的限制,使变量也可以取负值。@bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。
例:求x1^2+3*x2-x1*x2+e^x3在 x1+x2>=350;x1+x3<50;2*x1+x2+x3<=600;x1只能取0或1;x2为整数的条件下的最小值。
在代码窗口中编写
[email=min=x1^2+3*x2-x1*x2+@exp(x3]min=x1^2+3*x2-x1*x2+@exp(x3[/email]);
x1+x2>=350;
x1+x3<50;
2*x1+x2+x3<=600;
@bin(x1);@gin(x2);
以上是lingo最基本的用法

? 逻辑运算符
LINGO具有9种逻辑运算符:
#not#  否定该操作数的逻辑值,#not#是一个一元运算符
#eq#  若两个运算数相等,则为true;否则为flase
#ne#    若两个运算符不相等,则为true;否则为flase
#gt#    若左边的运算符严格大于右边的运算符,则为true;否则为flase
#ge#   若左边的运算符大于或等于右边的运算符,则为true;否则为flase
#lt#   若左边的运算符严格小于右边的运算符,则为true;否则为flase
#le#   若左边的运算符小于或等于右边的运算符,则为true;否则为flase
#and#  仅当两个参数都为true时,结果为true;否则为flase
#or#    仅当两个参数都为false时,结果为false;否则为true
这些运算符的优先级由高到低为:
高  #not#
    #eq#  #ne#  #gt#  #ge#  #lt#  #le#
低  #and#  #or#
例4.2 逻辑运算符示例
2 #gt# 3 #and# 4 #gt# 2,其结果为假(0)。
? 模型求解状态
@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时,那么解将不可信,几乎不能用。该函数仅被用在模型的数据部分来输出数据。