基本语法规则
- 求目标函数的最大值或最小值分别用MAX=…或MIN=…表示;
- 语句必须以分号;结束,每行可以有多个语句,语句可以跨行;
- 变量名称必须以字母(A~Z)开头,由字母、数字(0-9)和下划线组成,长度不超过32个字符,不区分大小写。
- !开头为注释,注释也需要;结尾。
- 可以给语句加标号,例如[OBJ] MAX=200X1+100X2;
- 若对变量取值范围没有特殊说明,则默认所有决策变量都为负。
- LINGO模型以语句“MODEL:”开头,以"END"结束。对于简单模型,可以省略。
关系运算符
=
<=
>=
【注】LINGO没有单独"<“或”>“关系,若出现”<“等价于”<="。如果需要严格要求大/小于关系,可以写成:A+α <=
B,α是一个小的正数,它的值依赖于模型A小于B多少才算不等。
逻辑运算符
- 运算对象为两个数
运算符 | 作用 |
---|---|
#EQ# | 两个运算对象相等为真,否则假 |
#NE# | 两个运算对象不等为真,否则假 |
#GT# | 左大于右为真,否则假 |
#GE# | 左大于或等于右为真,否则假 |
#LT# | 右小于左为真,否则假 |
#LE# | 右小于等于左为真,否则假 |
- 运算对象是逻辑值或逻辑表达式
运算符 | 作用 |
---|---|
#NOT# | 单目运算符,运算对象取反,真→假,假→真 |
#AND# | 两个运算对象都为真时为真,否则为假 |
#OR# | 两个运算对象都为假时为假,否则为真 |
优先级
单目>双目,算术>逻辑,逻辑>关系,平级左→右,括号改变次序。