天天看點

lingo程式基本架構和邏輯運算符

今天算是我暑假的第一天了,lingo學習也開始進行了。

一、程式基本架構

第一部分:集合段

sets:
num/../:f;
endsets
           

該部分在我看來等價于c++中的變量聲明,也可以在此初始化。

示例中聲明了一種集合(好似結構體)num,該集合有1,2,3,4,5,6共六個成員(類似于int之類的資料類型),而f是一個名為f的num類型集合。

第二部分:資料段

data:
f=     ;
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(),f(),f());
@bnd(,x,);
END
           

該部分就記載你要求解的函數與限制條件。

二、邏輯運算符

#not#等價于!,即取反

#eq# 等價于==,即判斷是否相等

#ne#等價于!=

#gt# 等價于>

#ge#等價于>=

#lt#等價于<=

#le#等價于<=

#and#等價于&,即與運算

#or#等價于||,即或運算