@bin(x) 限制 x 为 0 或 1
@bnd(L, x, U) 限制 L≤x≤U
@free(x) 取消对变量 x 的默认下界为 0 的限制, 即 x 可以取任意实数
@gin(x) 限制 x 为整数
LINGO 提供了大量的标准数学函数:
@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 中的最小值
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
^ 乘方
﹡ 乘
/ 除
﹢ 加
﹣ 减
LINGO 唯一的一元算术运算符是取反函数“﹣ ” 。
这些运算符的优先级由高到底为:
高 ﹣ (取反)
^
﹡ /
低 ﹢ ﹣
运算符的运算次序为从左到右按优先级高低来执行。 运算的次序可以用圆括号“()” 来
改变。
@file 函数
该函数用从外部文件中输入数据, 可以放在模型中任何地方。 该函数的语法格式为
@file(’ filename’ ) 。 这里 filename 是文件名, 可以采用相对路径和绝对路径两种表示方
式。 @file 函数对同一文件的两种表示方式的处理和对两个不同的文件处理是一样的, 这一
点必须注意。
注意:
1. 软件中已经假设所以的变量是非负的, 所以非负约束不必输入;
2. 可以用 FREE 变量 来取消变量的非负限制;
3. 不区分大小写;
4. 约束条件“<=”、“>=” 可以用“<”、“>” 代替;
5. 变量名不能超过 8 个字符;
6. 变量与系数间可以有空格, 但不能有任何运算符号(如*等) ;
7. 不允许变量出现在一个约束条件的右端;
8. 输入中不能有“()” 和“, ”; 比如 4(x1+x2)应写成 4x1+4x2 等;
9. 在一个式中同一变量不能出现一次以上, 比如 2x1+3x2-x1 应简化为 x1+3x2;
10. int 变量 变量为 0/1 整数变量
@FOR(集合名: 约束表达式) 对集合的每个元素独立按约束表达式生成约束
逻辑运算符:
逻辑运算符 | #AND# | #OR# | #NOT# |
---|---|---|---|
意义 | 与 | 或 | 非 |
关系运算符:
关系运算符 | #EQ# | #NE# | #GT# | #GE# | #LT# | #LE# |
---|---|---|---|---|---|---|
意义 | 等于 | 不等于 | 大于 | 大于等于 | 小于 | 小于等于 |
@ole函数可以和excel文件交互
data = @ole(“filename”,“data”) --> 从excel中读数据
@ole(“filename”,“data”) = data -->往excel中写数据
filename为相对地址时,excel文件必须打开是才能使用,否则会报错
filename为绝对地址时,excel文件不必要处于打开状态