美赛利器中,除了较为通用的MATLAB和SPSS,还有一款软件不容错过。众所周知,优化类问题是美赛中的常见考点,而其模型构建、计算是个不小的挑战,手工计算不现实、编程计算困难又耗时,那,专门针对优化问题而生的LINGO便是不二之选了。

01
LINGO的基本介绍
LINGO是美国LINDO系统公司(LindoSystemInc)开发的求解数学规划系列软件中的一个,是交互式的线性和通用优化求解器,主要功能是快速、方便和有效的构建和求解大型线性、非线性和整数规划问题。Lingo提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。
LINGO目前分为Demo、SolveSuite、Super、Hyper、IndustrialExtended等六类不同版本(并有单机版和教学网络版的区分),只有Demo版是免费的,其他版本需要购买,LINGO的不同版本对模型的变量总数、非线性变量数目、整型变量数目和约束条件的数量作出不同的限制(其中Extended版本无限制)。

02
LINGO在美赛中的强大之处
是不是许多小伙伴有这样的想法:“MATLAB有着一手走遍美赛的强大功能,那我们为什么还要学习LINGO呢?”
在美赛中,优化问题是常考题型。我们遇到的许多优化问题都可以归结为规划问题,如线性规划、非线性规划、二次规划、整数规划、动态规划、多目标规划等。
当遇到变量比较多或者约束条件表达式比较复杂的情况时,想用手工计算来求解之类问题几乎是不可能的。
MATLAB等编程计算虽然可行,但工作量大,程序长而繁琐,稍不小心就会出错;还可能需要花费大量的时间和精力。
可行的办法是用现成的软件求解,LINGO是专门用来求解各种规划问题的软件包,其功能十分强大,是求解优化模型的最佳选择。
LINGO的主要功能特色为:
(1)既能求解线性规划问题,也有较强的求解非线性规划问题的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强;(4)内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;(6)能方便地与Excel、数据库等其他软件交换数据。

03
LINGO学习建议
学习LINGO需要有运筹学的基础。如果没有学过运筹学,那么可以按照如下路线来学习。
1.学习线性规划:掌握目标函数、约束条件的表达。对于具体的计算方法可以完全忽略,因为后面就要用LINGO来求解,也就是把学习重点放在建立模型上,而不要在求解算法(如单纯型法)花太长时间。对于一个个具体问题,如何表达目标函数和约束条件,应当反复揣摩,仔细体会,因为这是建立模型最基本也是最常用的技巧。
2.学习LINGO的基本使用:尝试用LINGO解决一些相对比较简单的线性规划问题。掌握LINGO中的函数的用法,掌握原始集合和派生集合的使用。
3.学习整数规划:包括纯整数规划、混合整数规划。了解分支定界算法的基本思想就可以了,对于大规模的问题,手工肯定是算不出来的,一定要用LINGO来算。这一块也要学习如何用数学中的等式和不等式来表达目标函数和约束条件。
4.学习用LINGO求解经典整数规划问题:例如背包问题、指派问题和其他整数问题。学习如何表达决策变量的整数约束、0-1整数约束,当然重点还是学习整数规划建模的思想方法。
5.学习LINGO中稀疏集合的表示方法,并用LINGO求解一些图论中的问题,比如最短路问题。
6.学习通过剪贴板、文本文件、EXCEL和LINGO交换数据的方法。

04
LINGO基本用法
考虑到有些小伙伴对LINGO接触尚浅,小竞在这里用通用简单的知识点和例子为大家介绍一下LINGO的常见用法。
(一)LINGO输入模型的语法规范
通常,一个优化模型由以下三部分所组成:(1)目标函数,一般表示成求某个数学表达式的最大值或最小值;(2)决策变量,目标函数值取决于哪些变量;(3)约束条件,对变量附加一些条件限制(常用等式或不等式表示)。
LINGO的语法规定:(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;
(2)每个语句必须以分号“;”结束,每行可以有多个语句,语句可以跨行;
(3)变量名称必须以字母(A~Z)开头,由字母、数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写;
(4)可以给语句加上标号,例如[OBJ]MAX=200*X1+300*X2;
(5)以!开头,以“;”号结束的语句是注释语句;
(6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;
(7)LINGO模型以语句“MODEL:”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略。
(二)LINGO实现约束条件下的最值问题
以上就是运用LINGO输入模型的基本知识。下面我们举个例子具体感受一下:
美赛资料 | LINGO科普与安装步骤
如何在LINGO中输入数学式进行计算呢?
我们在Model窗口内输入如下模型即可:
MAX=200*X1+300*X2;
X1<=100;
X2<=120;
X1+2*X2<=160;

到此模型就输入完毕了。选菜单Lingo|Solve,或按Ctrl+S,或用鼠标点击“求解”按钮,LINGO便可自动用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGOSolver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、非零变量个数耗费内存、所花时间等信息。

(三)其他用途
除了上面所介绍的条件约束下的最值问题,LINGO还可以求解许多类型的优化、最值问题。
比如美赛中一个常见又让诸多小伙伴望而却步的考点便是微分方程模型了,构建微分方程组已是不易,求解其最优解更是一大难题。小竞训练的时候,隔壁小伙伴不知是编了什么代码计算微分方程组,电脑呼呼呼从午饭时间跑到午休结束,终于是出了一个结果。那可以用LINGO软件包自带程序方便快速地求解微分方程组时,一定不要错过。

05
安装步骤与界面介绍
经过上面的介绍,是不是有很多小伙伴想下载LINGO好好学习一下了?小竞贴心的为大家整理了安装步骤和界面介绍。技不压身,快快GET同款学起来吧~

(一)下载链接
链接:
https://pan.baidu.com/s/1x-1hy51M8UBdpAStHyXnlg
提取码:s2fj

(二)安装步骤
1、解压压缩包,得到安装包以及破解补丁,双击“LINGO-WINDOWS-64x86-18.0.exe”,单击“next”。
美赛资料 | LINGO科普与安装步骤
2、选择我接受,单击“next”。
美赛资料 | LINGO科普与安装步骤
3、单击“next”。
美赛资料 | LINGO科普与安装步骤
4、单击“instll”。
美赛资料 | LINGO科普与安装步骤
5、等待安装。
美赛资料 | LINGO科普与安装步骤
6、单击“finish”。
美赛资料 | LINGO科普与安装步骤
7、将破解文件“Lingo_v18_x64_patcher.exe”复制到安装目录下,然后运行“Lingo_v18_x64_patcher.exe”。
美赛资料 | LINGO科普与安装步骤
8、将注册码“DJqo-DTBK-Bg82-oH8R-FWnT-hRyF-u%9v-tUVQ-JeBc-CTaQ-96k3-N92F-6hD2-c&&N-2E3B-gqZQ-f8Pd-5EJK-i2hK-8yus-ZoaJ-Gah7-yNF8-*%MY-YQUM-$Khz-UPd9-qw4z-U88R-fAJs-W2oJ-Cm?C-%@mE-K59n-Qtdk-Q$?a-?tVs-$qSH-d*U@-@xJo-?A5L-AmXX-zuxv-Q36P-UJhD-U3LR-CA6M-V&#X-iT%t-zdws-ps98-YiFQ-*iuL-w3Ue-pfx@-JCvb-25e$-hq8a-w*C5-up?d-YuEZ-xL4i-*EGZ-bwds-XYYE-4#2*-y%X4-q?Mf-FcV2-gN7X-aEML-bBb9-o*2s-AXNm-a@GT-ZQ%r-@2Vi-bLSV-zng?-rPXG-rcSc-XXrN-ZnRs-Xw*a-o2Yx-APR”复制框中,单击“ok”。
美赛资料 | LINGO科普与安装步骤
9、弹出来的对话框中,选择ok。
美赛资料 | LINGO科普与安装步骤
10.破解完成。
美赛资料 | LINGO科普与安装步骤
(三)界面介绍
1.主界面
LINGO的主界面上方位置有一个工具条,其上有一些按钮,如图所示,自左至右,按钮的功能依次为:新建、打开、保存、打印、剪切、复制、粘贴、取消(Undo)、重做(Redo)、查找、定位、匹配括号、求解、显示解答、模型图示、选项设置(Options)、窗口后置、关闭所有窗口、平铺窗口、在线帮助和上下文相关帮助。单击某个按钮能执行相应的命令。

美赛资料 | LINGO科普与安装步骤2.运行状态窗口
美赛资料 | LINGO科普与安装步骤
美赛资料 | LINGO科普与安装步骤美赛资料 | LINGO科普与安装步骤3.结果窗口
美赛资料 | LINGO科普与安装步骤
关于LINGO的科普和安装步骤介绍就到这里啦,是不是觉得LINGO对优化、规划类问题非常有用呢?