LINGO基础知识

LINGO用于构建和求解线性、非线性及整数最优化模型,方便灵活,执行速度快,能与EXCEL等其他软件交换数据。
2.1 LINGO窗口介绍
2.1.1 LINGO文件菜单(File Menu)
2.1.2 LINGO编辑菜单(Edit Mene)
2.1.3 LINGO模型求解菜单
灵敏性分析:产生当前模型的灵敏度分析报告:研究当前目标函数的费用系数和约束右端项在什么范围(此时假定其他系数不变)时,最优基保持不变。
默认不激活,激活:LINGO | Options ->General Solver Tab -> Dual Computations -> Prices and Ranges
2.1.4 窗口菜单(Windows Menu)
(1) 命令行窗口(Open Command Window)
(2)状态窗口(Status Window)
2.1.5 LINGO的命令行命令
共有9类,可在命令行窗口中输入COM查询。
2.2 LINGO 中的集
集的内容是一群或多群相联系的对象
2.2.1 定义原始集
setname[/menber_list/] [: attribute_list]; 集成员可显式罗列或隐式罗列。
2.3 LINGO基本运算符
基本运算符包括算术运算符、逻辑运算符和关系运算符。
2.3.1 算术运算符
二元运算符:+、-、*、/、^
一元运算符:~(取反)
2.3.2 逻辑运算符
主要用于集循环函数的条件表达式中,来控制在函数中哪些集成员被包含,哪些被排斥。在创建稀疏集时用在成员资格过滤器中,共9种。
#not#:一元,否定该操作数的逻辑值。
#eq#:==
#ne#:!=
#gt#:>
#ge#:>=
#lt#:<
#le#:<=
#and#:&&
#or#:||
2.3.3 关系运算符
=, <=, >= 形成模型的一个约束条件
LINGO不支持严格小于或严格大于运算符,可用如下表达式实现:
A + ε <= B
2.4 数学函数
(1)@abs(x):返回x的绝对值
(2)@sin(x):返回x的正弦值,x采用弧度制
(3)@cos(x) (4)@tan(x)
(5)@exp(x):返回e的x次方
(6)@log(x):返回x 的自然对数
(7)@lgm(x): 返回x的gamma函数的自然对数
(8)@sign(x):若x < 0, 返回-1, 或者,返回1;
(9)@floor(x):返回x的整数部分,x > 0时,返回不低于x的最大整数,x < 0时,返回不超过x的最大整数。
(10)@smax(x1, x2,……xn):返回其中最大值
(11)@smin(x1,x2, ……xn):返回其中最小值
2.5 变量界定函数
LINGO默认变量非负, bnd和free可取消该约束,如下四种可对变量的取值范围加以限制。
@bin(x):限制x为0或1
@bnd(L, x, U):限制L <= x <= U;
@free(x):取消对变量x的默认下界为0的限制,即x可以取任意实数;
@gin(x):限制x为整数。
2.6 集操作函数
(1)@in(set_name, primitive_index_1, [, primitive_index_2, ...]);
如果元素在指定集中,返回1, 否则返回0;索引用"&1", "&2"或@INDEX函数等形似给出,“&1”表示对应于第一个父集合的所有元素的索引值。
(2)@index([set_name,]primitive_set_element)
返回集set_name中原始集成员primitive_set_element的索引。
2.7 集循环函数
集循环函数遍历整个集进行操作,其LINGO语法为:
@function(setname[(set_index_list)[ | conditional_qualifier]] : expression_list);
函数 要遍历的集 集索引列表 表达式列表,@for时,可有多个表达式,用逗号隔开,作为约束添加到模型中。
conditional_qualifier:限制function范围,当遍历每个成员时,LINGO都要评价,为真则执行函数,否则跳过。
(1)for
(2)text 用在数据部分,用来把解输出至文本文件中,位于语句左边,后边跟集名(输出所有成员名)或集属性名(输出该集属性的值)。
@text(['filename']),忽略文件名则输出至标准输出,大多为屏幕。
(3)@ole 从EXCEL中引入或输出数据的接口函数,可以在数据部分和初始部分引入数据。
@OLE('XLSDEVELOP.XLS') = BUILD, SQ_FEET; 将右端输出到相应的左端
x = @ole('D:cost.xls', f) x是你想要得到值得表达式,即名字,括号中的文件是数据,f是在EXCEL文件中选中并命名的部分。
命名:公式 -> 名称管理器 -> 新建
(4)@dual 返回对偶价格
Reduced cost:表示当变量有微小变动时,目标函数的变化率;
Dual Price:表示当对应约束有微小变动时,目标函数的变化率,为正表增,为负则减。
2.8 辅助函数
(1)@if(logical_condition, true_result, false_result)
@if函数将评价一个逻辑表达式logical_condition, 若为真,返回true_result, 否则,返回false_result.
(2)warn('text', logical_condition)
若logical_condition为真,则产生一个内容为'text'的信息框。
2.9 LINGO求解器设置
LINGO求解器是解决一切问题的关键。

原文地址:https://www.cnblogs.com/zyr001/p/11373075.html