Lingo的那些坑

2021-10-12 16:29:17 字數 2280 閱讀 4164

僅僅是樓主的一點點小經驗,能幫到大家最好,但是主要是用來備忘。

lingo**模板:

model:

sets:

row/

1..9

/:c,x;

endsets

data:

c =10,30

,9,20

,0,0

,-15,

-4,-

3;enddata

[obj]max=@sum

(row

(i):

c(i)*x

(i));x

(5)=

2*x(

7);x

(6)=

3*x(

7);x

(2)=

0.8*x(

8);x

(4)=

0.7*x(

9);x

(5)=

x(1)

+x(8

);x(

6)=x

(3)+

x(9)

;15*x

(7)+

12*x(

8)+10

*x(9

)<=

2000

;@sum

(row

(i):

0.2*

x(i)

)<=x(

2)+x

(4);

@sum

(row

(i):

0.4*

x(i)

)>=x(

2)+x

(4);

@for

(row

(i):

x(i)

>=0;

);end

model:

sets:

row/

1..5/;

arrange/

1..4/;

link

(row,arrange)

:c,x;

endsets

data:

c =0,0

,0,0

,0,0

,1.40,0

,0,1.25,0

,0,1.15,0

,0,0

,0,0

,0,1.06

;enddata

[obj]max = @sum

(link

(i,j):c

(i,j)*x

(i,j));

x(1,

1)+x

(1,4

)=1000000;-

1.06*x

(1,4

)+x(

2,1)

+x(2

,3)+

x(2,

4)=0

;-1.15*x

(1,1

)-1.06*x

(2,4

)+x(

3,1)

+x(3

,2)+

x(3,

4)=0

;-1.15*x

(2,1

)-1.06*x

(3,4

)+x(

4,1)

+x(4

,4)=

0;-1.15*x

(3,1

)-1.06*x

(4,4

)+x(

5,4)

=0;x

(3,2

)<=

400000;x

(2,3

)<=

300000

;@for

(link

(i,j):x

(i,j)

>=0;

);end

model: 寫在開頭的話記得寫「:」,不然生成集合的時候會編譯錯誤;

集合的命名格式:setname/1…m/: ;冒號後面寫的是常量和變數的名字,這一步可以理解為給變數和常量預分配記憶體;沒有要分配記憶體的變數也要寫":";

@sum和@for後面的括號跟的是下標,可以理解為例項化乙個下標陣列。@for(setname(i): ****** ; );括號裡也要寫";",因為那是單步迭代的結束符;還可以篩選下標,用"|"符號開頭,見lingo用法總結。

lingo教材(非常適合作為數學建模運籌學部分的教材):韓中庚《運籌學及其工程應用》,比司守奎的優化部分寫的好,不過裡面有星星點點的小錯誤,不影響。

想到再說。

UITextView的那些坑

坑1 ios7及以上的版本上,uitextview出現這樣的問題 彈出鍵盤時,沒輸入任何文字,但是游標位置不是在最上方。解決方案 ios7以後新增了乙個屬性automaticallyadjustsscrollviewinsets,將其置為no即可。別忘了加版本判斷。if ios7 and later...

string的那些坑

坑一 typedef struct st st st test st malloc sizeof st st m1 hello 除錯這段 你會發現最後一句報段錯誤。為什麼呢?string本質是個類,而malloc不知道要呼叫string的建構函式去例項化m1,結果導致m1這個物件實際不存在,去用它當...

Flask SQLALCHEMY 的那些坑!!!

if request.method get 接收前段傳遞過來的使用者id uid request.args id 根據id將對應的使用者資訊讀取出來 user db.session.query users filter by id uid first print user user user1 db...