米游社 · 大别野

【lingo系列教程】第一课 了解lingo

来自版块: 校园
2
15
1
文章发表:2023-09-19

1.学习目标

了解lingo软件的基本功能和简单线性规划模型的求解;会对简单线性规划模型参数作灵敏度分析。


2.lingo基础介绍

LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。能方便与EXCEL,数据库等其他软件交换数据。目前LINGO18.0为最新版本。(源自百度)


简单来说,它是一套设计用来快速,方便和有效的构建和求解线性,非线性,和整数最优化模型的功能全面的工具。


3.基本学习任务

(1)熟悉Lingo软件操作界面以及相关功能,学习案例编程;

(2)求解合理利用线材问题,记录模型的程序代码,并将求解结果作相关记录,重点记录最优解和最优值;

(3)自选一个简单的线性规划模型,对已知参数作灵敏度分析,要求记录作灵敏度分析的步骤,并给出某一个参数的灵敏度区间。


4.基础知识

LINGO 的数学规划模型包含目标函数、决策变量、约束条件三个要素。

在LINGO 程序中,每一个语句都必须要用一个英文状态下的分号结束,一个语句可以分几行输入。

LINGO 的注释以英文状态的!开始,必须以英文状态下的分号结束。

LINGO 的变量不区分字母的大小写,必须以字母开头,可以包含数字和下划线,不超过32 个字符。

LINGO 程序中,只要定义好集合后,其他语句的顺序是任意的。

LINGO 中的函数以“@”开头。

LINGO 程序默认所有的变量都是非负的。

LINGO 程序中"<"或">"号与 "<="或 ">=" 号功能相同。


5.初步使用

(1)算术运算符是针对数值进行操作的。LINGO提供了5种二元运算符:


^ 乘方


﹡ 乘


/ 除


﹢ 加


﹣ 减


LINGO唯一的一元算术运算符是取反函数“﹣”。


这些运算符的优先级由高到底为:


高 ﹣(取反)


 ^


  ﹡/


低 ﹢﹣


运算符的运算次序为从左到右按优先级高低来执行。运算的次序可以用圆括号“()”来改变。


例1,算术运算符示例。

2﹣5/3,(2﹢4)/5等等。


(2) 变量界定函数

变量界定函数实现对变量取值范围的附加限制,共4种:


@bin(x) 限制x为0或1


@bnd(L,x,U) 限制L≤x≤U


@free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数


@gin(x) 限制x为整数


在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。@free取消了默认的下界为0的限制,使变量也可以取负值。@bnd用于设定一个变量的上下界,它也可以取消默认下界为0的约束。


(3)目标函数或约束条件的每个表达式都可以跨多行,但结束要用”;”来表示,而且要用英文输入模式下的半角模式”;”,而非中文模式下的全解模式。


(4)解的报告窗口中,reduced cost列出最优单纯形表中各变量的检验数的绝对值,表示当变量有微小变动时,目标函数的变化率;slack or surplus 给出松弛变量或剩余变量的值,第一行松弛变量表示目标函数,第二行对应第一个约束.dual price 表示对偶价格,当对应的约束有微小变动时,目标函数的变化率。


(5)在Lingo运行时,作灵敏度分析,须先打开分析按钮,具体步骤如下:单击Solver|Options菜单,选择General Solver 选项卡,在Dual Computations 列表框中,选择Price and Ranges 选项,点击应用即可,然后再对线性规划问题求解,注意不要关闭解的报告窗口,并把光标放在模型窗口,再单击Solver|Range即可弹出分析报告窗口。

已开启创作声明,允许规范转载
15
1
看帖是喜欢,评论才是真爱:
0 / 1000
  • 全部评论
  • 只看楼主
排序:最早
2
1
15
扫码下载
米游社App