




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、lingo 大規(guī)模規(guī)劃求解首先,讓我們先看看一個非常簡單的規(guī)劃例子在LINGO軟件中實現(xiàn)過程:目標(biāo)函數(shù):y(min)=2*x1+x2-3*x3+5約束條件:x1+x2-3*x310x1-2*x25x1,x2,x3N求解上面目標(biāo)函數(shù)的最小值,我們在lingo中可編寫如下代碼:model:MIN=2*X1+X2-3*X3+5;X1+X2-3*X3=5GIN(X1);!整數(shù)約束;GIN(X2);GIN(X3);END可以看出,LINGO語言和數(shù)學(xué)專業(yè)語言很接近,很容易表示約束條件和目標(biāo)函數(shù)??墒菍τ谝?guī)模很大的約束條件,難道我們也必須這樣一條一條的輸入嗎,顯然這樣做是一件非常困難和繁瑣的事,lingo
2、語言又是如何表示約束條件規(guī)模巨大的規(guī)劃問題呢,帶著這樣的疑問,讓我們一步一步得看下面的內(nèi)容:一、集合域在數(shù)學(xué)中集合的定義如下:集合:具有某種相同屬性的對象放在一起,就形成了一個集合,集合中的每一個對象稱作該集合的元素。在大規(guī)模的優(yōu)化問題中,集合是必然存在的,比如在平板車建模中,各種規(guī)格集裝箱就可以看成一個集合,在貨物配送問題中154個城市可以看成一個集合。在lingo語言中,將某些對象看成一個集合便可以很方便地對集合中的每一個元素進(jìn)行統(tǒng)一處理。集合域必須在模型的約束引用集合之前定義。集合域用關(guān)鍵字“sets”開始,“endsets”結(jié)束。集合分類:基本集合定義統(tǒng)一語法格式:setname/me
3、mber-list/:attribute-list; 集合名/對象名1 對象名2 對象名n/:對象屬性;集合定義的幾種方法:setsrow/1.20/:d1,d2,dn; !集合名/對象名/:對象屬性;end sets派生集合定義方法:setsrow/1.20/;col/1.100/;page/1.50/;link(row.col):k1,k2kn;trd/(row.col.page):t1,t2,tn;end setsK1可以表示某個省的某個城市的人口。t1可以表示某個省的某個城市某個人的收入。二、數(shù)據(jù)域:數(shù)據(jù)域是優(yōu)化問題中已知得對象的屬性值,例如:人的身高,體重;車輛的載重,行駛速度。數(shù)據(jù)
4、域以關(guān)鍵字“data”開頭,“enddata”結(jié)束。數(shù)據(jù)域可以出現(xiàn)在模型中的任何地方。data:d1=;k1=;t1=;enddata數(shù)據(jù)域的未知數(shù)值有時只想為一個集的部分成員的某個屬性指定值,而讓其余成員的該屬性保持未知,以便讓LINGO去求出它們的最優(yōu)值。在數(shù)據(jù)聲明中輸入兩個相連的逗號表示該位置對應(yīng)的集成員的屬性值未知。兩個逗號間可以有空格。例3.8sets: years/1.5/: capacity;endsetsdata: capacity = ,34,20,;enddata屬性capacity的第2個和第3個值分別為34和20,其余的未知。實時數(shù)據(jù)處理在某些情況,對于模型中的某些數(shù)據(jù)
5、并不是定值。譬如模型中有一個通貨膨脹率的參數(shù),我們想在2%至6%范圍內(nèi),對不同的值求解模型,來觀察模型的結(jié)果對通貨膨脹的依賴有多么敏感。我們把這種情況稱為實時數(shù)據(jù)處理(what if analysis)。LINGO有一個特征可方便地做到這件事。 在本該放數(shù)的地方輸入一個問號(?)。data: interest_rate,inflation_rate = .085 ?;enddata每一次求解模型時,LINGO都會提示為參數(shù)inflation_rate輸入一個值。在WINDOWS操作系統(tǒng)下,將會接收到一個類似下面的對話框: 直接輸入一個值再點(diǎn)擊OK按鈕,LINGO就會把輸入的值指定給inflat
6、ion_rate,然后繼續(xù)求解模型。除了參數(shù)之外,也可以實時輸入集的屬性值,但不允許實時輸入集成員名。三、初始域初始域是專門為初始化決策變量而定義的一塊區(qū)域。初始部分是LINGO提供的另一個可選部分。在初始部分中,可以輸入初始聲明(initialization statement),和數(shù)據(jù)部分中的數(shù)據(jù)聲明相同。對實際問題的建模時,初始部分并不起到描述模型的作用,在初始部分輸入的值僅被LINGO求解器當(dāng)作初始點(diǎn)來用,并且僅僅對非線性模型有用。和數(shù)據(jù)部分指定變量的值不同,LINGO求解器可以自由改變初始部分初始化的變量的值。一個初始部分以“init:”開始,以“endinit”結(jié)束。初始部分的初始
7、聲明規(guī)則和數(shù)據(jù)部分的數(shù)據(jù)聲明規(guī)則相同。也就是說,我們可以在聲明的左邊同時初始化多個集屬性,可以把集屬性初始化為一個值,可以用問號實現(xiàn)實時數(shù)據(jù)處理,還可以用逗號指定未知數(shù)值。init: X, Y = 0, .1;endinitY=log(X);X2+Y2=1;好的初始點(diǎn)會減少模型的求解時間。四、集合循環(huán)函數(shù)統(tǒng)一語法格式:function(setname(set_index_list)| condition:expression_list); 其中: function是集合函數(shù)名,是FOR,MAX,MIN,PROD,SUM五種之一; setname是集合名; set_index_list是集合索引
8、列表(不需使用索引時可以省略); condition是邏輯表達(dá)式描述的過慮條件(通常含有索引,無條件時可省略); expression_list是一個表達(dá)式(對FOR函數(shù),可以是一組表達(dá)式)。 五個集合函數(shù)名的含義如下: FOR(集合元素循環(huán)函數(shù)):對集合setname 的每個元素獨(dú)立地生成表達(dá)式,表達(dá)式由expression_list描述(通常是優(yōu)化問題的約束)。 MAX(集合屬性的最大值函數(shù)):返回集合setname上的表達(dá)式的最大值。 MIN(集合屬性的最小值函數(shù)):返回集合setname上的表達(dá)式的最小值。 PROD(集合屬性的乘積函數(shù)):返回集合setname上的表達(dá)式的積。 SUM
9、(集合屬性的求和函數(shù)):返回集合setname上的表達(dá)式的和。對應(yīng)數(shù)學(xué)表達(dá)式與LINGO命令:數(shù)學(xué)表達(dá)式lingo命令i=1nxi (一維數(shù)組和)sum(row(i):x(i);i=1mj=1nxij (二維維數(shù)組和)sum(links(i,j):x(i,j);i=1mj=1nxijYij (矩陣點(diǎn)乘和)sum(links(i,j):x(i,j)*Y(i,j);i=1nxi (求數(shù)組的積)prod(row(i):x(i);i=1nxiji=1nyij(j=1,2,m) (比較m個一維數(shù)組的和)for(col(j):sum(row(i):x(i)=5)sum(links(i,j)|j#GE#5:
10、x(i,j);i=1mj=1nxijYij (xij0)sum(links(i,j)|x(i,j)#NE#0:x(i,j)*Y(i,j);i=1nxi(xi0) prod(row(i)|x(i)#NE#0:x(i);七、基本的數(shù)學(xué)函數(shù) 在LINGO中建立優(yōu)化模型時引用大量的內(nèi)部函數(shù)這些函數(shù)以、。號打頭. LINGO中包括相當(dāng)豐富的數(shù)學(xué)函數(shù),這些函數(shù)的用法非常簡單,我們直接在下一一列出 ABS(X);絕對值函數(shù),返回X的絕對值 COS(X);余弦函數(shù),返回X 的余弦值(X 的單位是弧度) EXP(X)指數(shù)函數(shù),返回x e的值(其中 e為自然對數(shù)值的底,即2.718281) FLOOR(X);取整
11、函數(shù),返回X的整數(shù)部分(向最靠近0的方向取整). LGM(X):返回X的伽馬(Gamma)函數(shù)的自然對數(shù)值(當(dāng)X為整數(shù)時LGM(X)=LOG(X-1)!;當(dāng)X不為整數(shù)時,采用線性插值得到結(jié)果) LOG(X):自然對數(shù)函數(shù),返回自然對數(shù)值 MOD(X,Y): 模函數(shù),返回X對Y 的取模的結(jié)果,即X 除以Y的余數(shù),這里X余Y 應(yīng)是整數(shù) POW(X,Y):指數(shù)函數(shù),返回yX的值. SIGN(X):符號函數(shù),返回X 的符號值(X=0時返回+1) SIN(X):正弦函數(shù),返回X 的正弦值(X 的單位是弧度) 95 SMAX(list):最大值函數(shù),返回一列數(shù)(list)的:最大值 SMIN.(list)
12、:最小值函數(shù),返回一列數(shù)(list)的:最小值 SQR(X) :平方函數(shù),返回X 的 平方即(X*X)的值 SQRT(X):平方根函數(shù),返回X 的 平方根的值 TAN(X);正切函數(shù),返回X的正切值(X的單位是弧度)。八、lingo中其他常用命令WRAP(I,N) 當(dāng)I為于區(qū)間I,N內(nèi)時直接返回I;一般地,返回J=I-K*N,其中J位于區(qū)間1,N,K為函數(shù)??梢娺@個函數(shù)相當(dāng)于數(shù)學(xué)上用I 對N取模函數(shù)的值+1,即WRAP(I,N)=MOD(I,N)+1.此函數(shù)對N1無定義。 SIZE(set_name) 返回數(shù)據(jù)集set_name中包含元素的個數(shù)。IF (logical _condition,
13、true _result, false _result) 當(dāng)邏輯表達(dá)式logical _condition的結(jié)果為真時,返回true _result,否則返回false _result。例如if(x # LT # 100,20,15)語句,當(dāng)X100時,返回20,否則返回15。 WARN (text, logical _condition) 如果邏輯表達(dá)式“l(fā)ogical _condition”的結(jié)果為真,顯示 text信息. USER (user _determined _arguments) 該函數(shù)是允許用戶自己編寫的函數(shù)( dl或0bj文件),該用戶函數(shù)可能當(dāng)用C或FORTRAN等其他語
14、言編寫并編譯,返回值為用戶函數(shù)計算的結(jié)果.從編程角度來看,USER 函數(shù)包含兩個參數(shù):第一個用于指定參數(shù)個數(shù),第二個用于指定參數(shù)向量:而在LINGO中調(diào)用USER時則直接指定對應(yīng)的參數(shù)“user _determined_”(類似于C語言中的main ( argc , argv ) 的編程和運(yùn)行方式).更多細(xì)節(jié)請參考LINGO使用手冊. 九、文件讀寫1. 復(fù)制和粘貼功能對于數(shù)據(jù)量不是很大的集合而言,復(fù)制粘貼是最快捷最簡單的方法,和其他軟件操作一樣,LINGO軟件,支持從網(wǎng)頁,文本文檔,電子表格中復(fù)制數(shù)據(jù)。同樣對其LINGO運(yùn)行的結(jié)果,我們可以將求解報告窗口中的結(jié)果復(fù)制到其他地方。2. OLE函數(shù),它可以從Excel中讀取數(shù)據(jù)或?qū)⒔Y(jié)果寫入到Excel中。輸入數(shù)據(jù):統(tǒng)一語法格式:variable_list=OLE(spreadsheet-file,range_name_list);其中 spreadsheet_file是電子表格文件名稱,應(yīng)當(dāng)包括擴(kuò)展
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 毛織造企業(yè)組織結(jié)構(gòu)與人力資源管理考核試卷
- 紙容器生產(chǎn)過程中的能耗監(jiān)測與優(yōu)化考核試卷
- 2025年印刷品、記錄媒介復(fù)制品項目合作計劃書
- 空調(diào)器智能濕度控制系統(tǒng)考核試卷
- 《秋天的落葉》課件
- 網(wǎng)絡(luò)安全防護(hù)在智慧城市的智能垃圾分類系統(tǒng)中評估考核試卷
- 提案改善培訓(xùn)教材最終版
- 葡萄種植園的冷鏈物流與市場拓展考核試卷
- 疾病預(yù)防控制與公共衛(wèi)生風(fēng)險溝通考核試卷
- 配電工程安全文明施工方案
- 心臟康復(fù)指南完整版
- 國開電大土木工程本科《工程地質(zhì)》在線形考形考(作業(yè)1至4)試題及答案
- 售后維修服務(wù)單
- 《實數(shù)》單元作業(yè)設(shè)計
- GB/T 9128.2-2023鋼制管法蘭用金屬環(huán)墊第2部分:Class系列
- 北師大版八年級數(shù)學(xué)下冊 (一元一次不等式)一元一次不等式和一元一次不等式組課件(第2課時)
- 干濕法脫硫運(yùn)行經(jīng)濟(jì)成本對比(自動計算)
- 運(yùn)輸與配送管理選擇題復(fù)習(xí)題庫
- 清華大學(xué)工商管理專業(yè)課程設(shè)置
- 兒科護(hù)理學(xué)智慧樹知到答案章節(jié)測試2023年石河子大學(xué)
- MT 285-1992縫管錨桿
評論
0/150
提交評論