Lingo软件的基本语法
引用《数学建模算法与应用》
1.集合
集合部分的语法为:
sets:
集合名称1/成员列表1/:属性1-1,属性1-2,…,属性1-n1;
集合名称2/成员列表2/:属性2-1,属性2-2,…,属性2-n2;
派生集合名称(集合名称1,集合名称2):属性3-1,…,属性3-n3;
endsets
例:
sets:
product/AB/;
machine/MN/;
week/1…2/;
allowed(product,machine,week):x;
endsets
2.数据
数据部分的语法为
data:
属性1=数据列表;
属性2=数据列表;
enddata
数据计算段
数据计算段部分不能含有变量,必须是已知数据的运算。
calc:
b=0;
a=a+1;
endcalc
变量的初始化
变量初始化主要用于非线性问题赋初始值。
例
init:
X,Y=0,.1;
endinit
Y=@log(x);
X^2 + Y^2 < =1;
好的初始点会减少模型的求解时间。
实时数据处理
例
data:
interest_rate,inflation_rate=.085 ?;
enddata
注:
(1)Lingo中是不区分大小写字符的。
(2)Lingo中数据部分不能使用分式,例如数据库部分不能1/3。
(3)Lingo中的注释是使用"!"引导的。
(4)Lingo中默认所有的变量都是非负的。
(5)Lingo中矩阵数据是逐行存储的,Matlab中数据是逐列存储的。