lingo程序基本框架和逻辑运算符

今天算是我暑假的第一天了,lingo学习也开始进行了。
一、程序基本框架
第一部分:集合段

sets:
num/1..6/:f;
endsets

该部分在我看来等价于c++中的变量声明,也可以在此初始化。
示例中声明了一种集合(好似结构体)num,该集合有1,2,3,4,5,6共六个成员(类似于int之类的数据类型),而f是一个名为f的num类型集合。
第二部分:数据段

data:
f=5 1 3 4 6 10;
enddata

这部分在我看来相当于c++中的复制,但不同的是,lingo中在这里赋值后不能在之后的内容中更改。
示例中给f集合的六个成员分别赋值为5,1,3,4,6,10。
也可以为a,b=3,4; 那么a,b为整数变量
第三部分:初始段
该部分不是必须的,而且我也了解不详细,以后再更新。

init:
f=5,1,2,3,4,5;
endinit

第四部分:目标与约束段
示例一:

minv=@min(num(i)|i#le#5:x);
maxv=@max(num(i)|i#gt#3:x);
END

示例二:

min=@smax(f(1),f(2),f(3));
@bnd(0,x,1.57);
END

该部分就记载你要求解的函数与约束条件。

二、逻辑运算符
#not#等价于!,即取反
#eq# 等价于==,即判断是否相等
#ne#等价于!=
#gt# 等价于>
#ge#等价于>=
#lt#等价于<=
#le#等价于<=
#and#等价于&,即与运算
#or#等价于||,即或运算

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章