lingo
定义
lingo 的全称是 Linear Interactive and General Optimizer,中文通常译为“交互式线性和通用优化求解器”,属于数学规划(优化)类软件[2]。它由美国LINDO 系统公司发行,与同公司的 LINDO、What'sBest! 属于同一产品系列[1]。
与只处理线性模型的早期软件不同,lingo 把建模语言与求解引擎集成在同一环境中,用户不必另行编写程序调用求解器,在同一个界面里即可完成模型编写、求解和结果分析[4]。软件读取和写出 Excel 数据及数据库文件的能力,也使它便于接入实际业务数据[4]。
原理
lingo 的工作方式可以概括为“建模—识别—求解”三步。用户以 lingo 建模语言书写目标函数与约束,其中可用求和符号和带下标的变量,表达式接近数学论文中的写法,不必逐个列出展开后的变量[1]。提交求解后,软件先分析模型结构,判断其属于线性、非线性还是整数模型,再自动选择合适的求解器,用户无需手动指定[1]。
求解器由若干部分组成:直接求解器负责化简等式约束,线性求解程序处理线性模型,非线性求解程序处理非线性模型,分支定界管理程序负责整数约束的处理[5]。以线性规划为例,模型可写为:
对含整数变量的模型,软件在分支定界框架下反复求解松弛问题并收紧界限,直至证明最优或达到设定的终止条件[5]。
求解流程可用下图表示:
Mermaid 图不便于文本呈现,其顺序为:输入模型 → 直接处理等式约束 → 判定问题类型 → 调用线性、非线性或分支定界求解程序 → 输出结果与分析报告[5]。
发展历程
lingo 的开发者是芝加哥大学的 Linus Schrage 与其学生 Kevin Cunningham。Schrage 于 1977 年完成线性规划软件 LINDO,1980 年创办 LINDO 系统公司,此后陆续推出 GINO、What'sBest! 等产品,lingo 是这一系列中的一员[6][7]。
1988 年,lingo 成为该公司第一款带有完整建模语言的产品,用户可以用求和与下标变量简洁地表达模型[1]。1993 年加入大规模非线性求解器,该求解器的特点是能够自动在线性与非线性算法之间切换,并支持一般整数与 0-1 整数约束;此后 lingo 基本取代 GINO,成为公司面向非线性优化的主力产品[1]。1994 年,它成为首个被收进管理学教科书的建模语言软件,1995 年发布首个 Windows 版本[1]。
1995 年,公司推出把 LINDO、lingo 与 What'sBest! 打包的 Solver Suite,同年开始提供价格较低的教育授权[1]。2000 年前后,内点法(又称障碍法)求解器与对偶单纯形求解器被引入产品线,lingo 6.0 将障碍法作为选件提供,并报告了大模型上求解速度的提升[1][8]。2012 年,Schrage 与 Cunningham 因 lingo 建模语言的工作获得国际运筹学与管理科学学会(INFORMS)影响力奖[7]。近年版本继续在整数求解、多起点搜索和外部求解器接口方面更新,已推出 21 及 22 等版本[9]。
应用
lingo 面向的是需要反复求解优化模型的决策场景。据其开发者归纳,软件自 20 世纪 90 年代起在主要行业中使用,典型用途包括石油行业的调和与勘探、财务规划、广告投放方案设计以及供应链管理[3]。运筹学教材也常以 lingo 作为建模练习工具,并随书提供学生版本[6]。
在教学与科研中,lingo 常被用来求解线性规划、非线性规划和整数规划三类模型,以及部分线性与非线性方程组问题[10]。软件附带的模型库提供 500 余个带文档的示例模型,可作为入门模板[3]。此外,也有研究者把 lingo 的随机优化功能用于生产计划类课题。
局限
lingo 面向的是数学规划模型,对目标函数与约束的表达形式有一定要求。建模时宜尽量采用实数变量、光滑函数,减少整数变量与非光滑函数的使用,因为绝对值、取整、四舍五入一类函数会增加求解难度[5]。对于规模过大的模型,求解时间与内存占用也会成为实际约束。
功能范围受版本限制是另一项局限。试用版、演示版与正式版在可求解的变量数、整数变量数、非线性变量数和约束数上设置了不同上限,学生版的规模限制更为明显,同一模型在低版本或演示版上可能无法求解[5][11]。
此外,lingo 属于通用的优化建模工具,并不直接提供特定行业的业务规则或统计建模功能;在新版本中,它与外部求解器的连接也会受第三方授权限制,调用外部求解器需要另行持有对应许可证[9]。
参见
参考资料
- Ongoing Solver Development: [引用日期2026-10-29]
- Lingo软件 [引用日期2026-10-29]
- The LINGO Algebraic Modeling System [引用日期2026-10-29]
- Lingo 14.0 [引用日期2026-10-29]
- Lingo优化软件初步 [引用日期2026-10-29]
- Optimization Modeling with LINGO - Skip to main content [引用日期2026-10-29]
- Linus Schrage [引用日期2026-10-29]
- Japanese Society of Computational Statistics [引用日期2026-10-29]
- LINGO 21 New Features [引用日期2026-10-29]
- 实践部建模角|规划类软件-Lingo-江西财经大学工商管理学院 [引用日期2026-10-29]
- 附录 LINDO 软件包介绍 [引用日期2026-10-29]