數(shù)學(xué)規(guī)劃求解軟件Lingo使用簡(jiǎn)介
一、規(guī)劃軟件LINDO
美國(guó)Chicago大學(xué):Linus Schrage教授于1980年前后開(kāi)發(fā),后來(lái)成立了LINDO系統(tǒng)公司。(LINDO Systems Inc.)
網(wǎng)址:www.lindo.com
?
二、數(shù)學(xué)規(guī)劃模型
決策變量 x=(x1,x2,…,xn)
目標(biāo)函數(shù) min Z=f(x)
約束條件 s.t. x屬于A

求解:?jiǎn)渭冃畏?/p>
?
三、Lingo菜單及對(duì)話框

Lingo的工具欄:

Lingo菜單欄:

Lingo的運(yùn)行狀態(tài)窗口:



Options7個(gè)選項(xiàng)卡:

四、Lingo基本語(yǔ)法
1、定義目標(biāo)函數(shù)為MIN=,MAX=.
2、以一個(gè)分號(hào)“;”結(jié)尾。除SETS,ENDSETS,DATA,ENDDATA,END之外。
3、可以放在約束條件的右端,同時(shí)數(shù)字也可放在約束條件的左端。
4、假定各變量非負(fù)。
5、注釋:“!”
6、<\>為≤、≥






建模時(shí)需要的幾個(gè)基本問(wèn)題:
1、盡量使用實(shí)數(shù)優(yōu)化,減少整數(shù)約束和整數(shù)變量
2、盡量使用光滑優(yōu)化,減少非光滑約束的個(gè)數(shù)
如:盡量少使用絕對(duì)值、符號(hào)函數(shù)、多個(gè)變量求最大/最小值、四舍五入、取整函數(shù)等
3、盡量使用線性模型,減少非線性約束和非線性變量的個(gè)數(shù)
如:x/y<5改為x<5y
4、合理設(shè)定變量上下界,盡可能給出變量初始值
5、模型中使用的參數(shù)數(shù)量級(jí)要適當(dāng)。如小于十的三次方。
五、Lingo運(yùn)算符和函數(shù)
1、運(yùn)算符及其優(yōu)先級(jí)


2、Lingo基本數(shù)學(xué)函數(shù)

3、Lingo變量定界函數(shù)

4、Lingo條件判斷函數(shù)
@IF(logical_condition,true_result,false_result)
分段函數(shù)
5、Lingo集合循環(huán)函數(shù)
難點(diǎn)、重點(diǎn)

六、Lingo建模語(yǔ)言
構(gòu)成:四個(gè)段
目標(biāo)與約束段
集合段
數(shù)據(jù)段
初始段
(計(jì)算段)









集合SET:
格式:集合名 元素列表 屬性列表
??????Setname[/member_list/][:attribute_list];
??????[……] 表示可選項(xiàng)
元素列表:
顯式列舉法:列出全部元素,用逗號(hào)或空格分開(kāi)
隱式列舉法:1..n
屬性列表缺省:集合可在程序中作為一循環(huán)變量使用,構(gòu)造更復(fù)雜的派生集合
元素列表缺?。罕仨氃跀?shù)據(jù)段給出元素列表賦值
派生集合:
基于其他集合而派生出來(lái)的二維或多維集合
格式:集合名 父集合列表 元素列表 屬性列表
??Setname(parent_set_list)[/member_list/][:attribute_list];
元素列表缺?。核薪M合——稠密集合,或數(shù)據(jù)段列表賦值
元素列表——稀疏集合:元素列表法——枚舉;元素過(guò)濾法——利用過(guò)濾條件
Setname(parent_set_list)[|filtrate_condition][:attribute_list];

七、Lingo集合循環(huán)函數(shù)
難點(diǎn)!重點(diǎn)!
循環(huán)操作函數(shù)——集合上的元素——下標(biāo):
集合名 集合索引列表 過(guò)濾條件 表達(dá)式
@function(setname{(set_index_list)[|condition]]:expression_list);
集合函數(shù)名:for max min sum prod