LINGO的基本用法.ppt_第1頁
LINGO的基本用法.ppt_第2頁
LINGO的基本用法.ppt_第3頁
LINGO的基本用法.ppt_第4頁
LINGO的基本用法.ppt_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、LINGO入門,LINGO的菜單,用LINGO編程語言建立模型,LINGO的運(yùn)算符和函數(shù),LINGO的基本用法,1.1 LINGO入門,第一章 LINGO的基本用法,1. LINGO的主要功能特色:,(1) 既能求解線性規(guī)劃問題,也有較強(qiáng)的求解非線性規(guī)劃 問題的能力;,(2) 輸入模型簡練直觀;,(3) 運(yùn)行速度快,計(jì)算能力強(qiáng);,(4) 內(nèi)置建模語言,提供幾十個(gè)內(nèi)部函數(shù),從而能以較少 語句,較直觀的方式描述較大規(guī)模的優(yōu)化模型;,(5) 將集合的概念引入編程語言,很容易將實(shí)際問題轉(zhuǎn)換 為LINGO模型;,(6) 能方便地與Excel、數(shù)據(jù)庫等其他軟件交換數(shù)據(jù);,建模時(shí)需要注意的幾個(gè)基本問題:,(

2、1) 盡量使用實(shí)數(shù)優(yōu)化模型,減少整數(shù)約束和整數(shù)變量的 個(gè)數(shù);,(2) 盡量使用光滑優(yōu)化模型,減少非光滑約束的個(gè)數(shù);,如:盡量少地使用絕對值函數(shù)、符號函數(shù)、多個(gè)變量求最大(或最小)值、四舍五入函數(shù)、取整函數(shù)等.,(3) 盡量使用線性優(yōu)化模型,減少非線性約束和非線性變量的個(gè)數(shù)(如x/y 5改為x 5y) ;,(4) 合理設(shè)定變量的上下界,盡可能給出變量的初始值;,(5) 模型中使用的單位的數(shù)量級要適當(dāng)(如小于103);,【約束條件】,2. LINGO的基本用法.,例1.,某工廠有兩條生產(chǎn)線,分別用來生產(chǎn)M和P兩種型號的產(chǎn)品,利潤分別為200元/個(gè)和300元/個(gè),生產(chǎn)線的最大生產(chǎn)能力分別為每日100

3、和120,生產(chǎn)線每生產(chǎn)一個(gè)M產(chǎn)品需要1個(gè)勞動(dòng)日(1個(gè)工人工作8小時(shí)為1個(gè)勞動(dòng)日)進(jìn)行調(diào)試、檢測等工作,而每個(gè)P產(chǎn)品需要2個(gè)勞動(dòng)日,該廠工人每天共計(jì)能提供160勞動(dòng)日,假如原材料等其他條件不受限制,問應(yīng)該如何安排生產(chǎn)計(jì)劃,才能使獲得的利潤最大?,解:,設(shè)兩種產(chǎn)品的生產(chǎn)量分別為x1和x2,則該數(shù)學(xué)模型為,【目標(biāo)函數(shù)】,再用LINGO處理,輸入LINGO如下:,LINGO處理結(jié)果:,LINGO的語法規(guī)定:,(1) 求目標(biāo)函數(shù)的最大值和最小值分別用MAX= 或MIN= 來表示;,(2) 每個(gè)語句必須以分號“;”結(jié)束,每行可以有多個(gè)語句,語句可以跨行;,(3) 變量名稱必須以字母(A-Z)開頭,由字母、

4、數(shù)字(0-9)和下劃線“_”組成,長度不超過32個(gè)字符,不區(qū)分大小寫;,(4) 可以給語句加上標(biāo)號,例如OBJ MAX= ;,(5) 以“!”開頭,以“;”結(jié)束的語句是注釋語句;,(6) 如果對變量的取值范圍沒有作特殊說明,則默認(rèn)所有決策變量都非負(fù);,(7) LINGO模型以語句“MODEL:”開頭,以“END”結(jié)束,對于比較簡單的模型,這兩句可以省略;,LINGO求解報(bào)告:,縮減成本系數(shù)(相差值),松弛或剩余,注: 最優(yōu)解中變量的縮減成本系數(shù)值自動(dòng)取零.,約束條件中, 對于“=”不等式, 稱之為剩余 (Surplus). 不等式左右兩邊值相等時(shí), 松弛和剩余的值為0; 如果約束條件無法滿足,

5、 則松弛和剩余的值為負(fù).,影子(對偶) 價(jià)格,含義: 如果該生產(chǎn)線最大生產(chǎn)能力增加1, 能使目標(biāo)函數(shù)值增加50.,1.2 了解LINGO的菜單,新建,打開,保存,打印,剪切,復(fù)制,粘貼,取消,重做,查找,定位,匹配 括號,求解,顯示 答案,模型 圖示,選項(xiàng) 設(shè)置,窗口 后置,關(guān)閉所 有窗口,平鋪 窗口,在線 幫助,上下文 相關(guān)幫助,文件菜單,編輯菜單,LINGO菜單,窗口菜單,幫助菜單,輸出特殊格式文件,MPS格式文件,MPI格式文件,IBM開發(fā)的數(shù)學(xué)規(guī)劃文件 標(biāo)準(zhǔn)格式,LINDO公司制定的數(shù)學(xué)規(guī)劃 文件格式,用戶基本信息,該命令彈出一個(gè)對話框,要求 輸入用戶名和密碼(這些信息 在用ODBC函

6、數(shù)訪問數(shù)據(jù)庫要用到),選擇性粘貼,該命令把Window剪貼板中的內(nèi)容插入到光標(biāo)所在位置.,插入新對象,鏈接,修改模型內(nèi)插入對象的鏈接性質(zhì).,對象的性質(zhì),在模型中選擇一個(gè)鏈接或嵌入對象,用本命令可以查看和修改這個(gè)對象的屬性.,靈敏度分析,該命令產(chǎn)生當(dāng)前模型的靈敏度分析報(bào)告:,(1)最優(yōu)解保持不變的情況下,目標(biāo) 函數(shù)的系數(shù)變化范圍; (2)在影子價(jià)格和縮減成本系數(shù)都 不變的前提下,約束條件右邊的 常數(shù)變化范圍;,例. 做下列模型的靈敏度分析,MAX=200*X1+300*X2; X1=100; X2=120; X1+2*X2=160;,注:,靈敏性分析耗費(fèi)相當(dāng)多的求解時(shí)間,因此當(dāng)速度很關(guān)鍵時(shí),就沒

7、有必要激活它,生成模型的展開形式,為當(dāng)前模型生成一個(gè)用代數(shù)表達(dá)式表示的完整形式,即LINGO將所有基于集合的表達(dá)式(目標(biāo)函數(shù)和約束條件)擴(kuò)展成為等價(jià)的完全展開的普通數(shù)學(xué)表達(dá)式模型.,生成圖形,由模型生成圖形,以矩陣形式顯示模型的系數(shù).,調(diào)試,模型統(tǒng)計(jì)資料,調(diào)試結(jié)果,找到充分行(Sufficient Rows)和必要行(Necessary Rows).,查看(以為本方式顯示模型內(nèi)容),命令行窗口,主要是為用戶交互地測試命令腳本而設(shè)計(jì).(通常不用),狀態(tài)窗口,變量,約束,非零系數(shù),內(nèi)存使用量,已運(yùn)行時(shí)間,求解器狀態(tài),擴(kuò)展求解器狀態(tài),1.3 用LINGO編程語言建立模型,一、 LINGO模型的基本組

8、成.,例2.,某公司有6個(gè)供貨棧, 庫存貨物總數(shù)分別為60, 55, 51, 43, 41, 52, 現(xiàn)有8個(gè)客戶各要一批貨, 數(shù)量分別為35, 37, 22, 32, 41, 32, 43, 38. 各供貨棧到8個(gè)客戶處的單位貨物運(yùn)輸價(jià)見下表,試確定各貨棧到各客戶處的貨物調(diào)運(yùn)數(shù)量, 使總的運(yùn)輸費(fèi)用最小,解:,設(shè)xij從第i個(gè)貨棧到第j個(gè)客戶的運(yùn)貨量, cij表示從第i個(gè)貨棧到第j個(gè)客戶的單位貨物運(yùn)價(jià), ai表示第i個(gè)貨棧的最大供貨量, dj表示第j個(gè)客戶的訂貨量,模型如下,1. 集合定義部分,集合是一組相關(guān)對象構(gòu)成的組合,集合在使用之前需要預(yù)先給出定義, 初始集合的定義三要素: 集合的名稱,

9、 集合的元素, 集合的屬性(可視為與該集合有關(guān)的變量或常量).,集合分為初始(基本原始)集合和衍生(派生)集合,初始集合的定義格式:,集合的名稱/集合的元素/:集合的屬性;,例. 定義例2的貨棧集合ai和dj,WH / W1.W6 /: AI;,VD / V1.V8 /: DJ;,衍生集合的定義四要素: 集合的名稱, 對應(yīng)的初始集合, 集合的元素(可以省略), 集合的屬性(可以沒有).,例.,定義集合,表示例3中從第i個(gè)貨棧到第j個(gè)客戶的運(yùn)貨量xij, 和第i個(gè)貨棧到第j個(gè)客戶的單位貨物運(yùn)價(jià)cij.,LINKS,(WH, VD),:C, X;,注: 如果集合的元素省略不寫, 則默認(rèn)衍生集合的元

10、素取它所 對應(yīng)初始集合的所有可能組合.,2. 數(shù)據(jù)初始化.,如何給例2中的集合AI, DJ, C, X賦值?,AI = 60, 55, 51, 43, 41, 52;,DJ = 35, 37, 22, 32, 41, 32, 43, 38;,C =,6, 2, 6, 7, 4, 2, 5, 9,4, 9, 5, 3, 8, 5, 8, 2,5, 2, 1, 9, 7, 4, 3, 3,7, 6, 7, 3, 9, 2, 7, 1,2, 3, 9, 5, 7, 2, 6, 5,5, 5, 2, 2, 8, 1, 4, 3;,DATA:,ENDDATA,注: 數(shù)據(jù)初始化部分以“DATA:” 開始,

11、 以ENDDATA結(jié)束, 這兩個(gè)語句必須單獨(dú)成一行; 數(shù)據(jù)之間的逗號和空格可以替換,3. 目標(biāo)函數(shù)和約束條件.,例2的目標(biāo)函數(shù):,用LINGO語句表示為:,MIN = SUM(LINKS(I, J): C(I, J)*X(I, J);,注: ,SUM是LINGO提供的內(nèi)部函數(shù),其作用是對某個(gè)集合的所有成員,求指定表達(dá)式的和.,SUM有兩個(gè)參數(shù):集合名稱和表達(dá)式, 如果表達(dá)式中參與運(yùn)算的屬性屬于同一個(gè)集合,則 SUM的索引可以省略. 即,MIN = SUM(LINKS: C*X);,例2的約束條件:,用LINGO語句表示為:,FOR(WH(I): SUM(VD(J): X(I, J)=AI(I)

12、;,注: ,FOR是LINGO提供的內(nèi)部函數(shù),其作用是對某個(gè)集合的所有成員分別生成一個(gè)約束表達(dá)式.,FOR有兩個(gè)參數(shù):集合名和約束表達(dá)式,這里的集合名表示對該集合所有成員生成對應(yīng)約束表達(dá)式,問: 語句中的I, J能不能省略?,用LINGO語句表示為:,FOR(VD(J): SUM(WH(I): X(I, J) =DJ(J);,1.4 LINGO的運(yùn)算符和函數(shù),一、 LINGO的常用運(yùn)算符.,1. 算術(shù)運(yùn)算符., * / + -,2. 邏輯運(yùn)算符.,邏輯運(yùn)算符優(yōu)先級別:#NOT#最高, #AND#和#OR#最低,3. 關(guān)系運(yùn)算符.,關(guān)系運(yùn)算符通常用在條件表達(dá)式中,用來指定約束條件表達(dá)式左邊與右邊

13、必須滿足的關(guān)系. 有以下三種:,= =,注:LINGO沒有單獨(dú)的“”關(guān)系,如果出現(xiàn)了單個(gè) “”,LINGO認(rèn)為是省略了“=”.,如果需要嚴(yán)格?。ù螅┯陉P(guān)系,如A嚴(yán)格小于B,可以表示成:,這里 是一個(gè)小的正數(shù),它的值依賴于模型中A小于B多少才算不等.,例. 計(jì)算 2 #GT# 3 #AND# 4 #GT# 2,結(jié)果為 0(FALSE),二、數(shù)學(xué)函數(shù).,三、概率函數(shù).,四、集合操作函數(shù).,上表中,前五個(gè)函數(shù)的表示形式為:,函數(shù)名(集合名|條件:表達(dá)式),例. “FOR(VD(J)|J#NE#5:表達(dá)式e);”表示什么含義?,五、變量定界函數(shù).,注:,BND函數(shù)可以用約束條件代替,但使用BND函數(shù)表

14、達(dá)變量的取值范圍比使用約束條件的求解速度快, 且不計(jì)入約束條件的數(shù)目中.,FREE(X)的作用是取消對變量X的默認(rèn)非負(fù)設(shè)置.,例. 求函數(shù) z = (x+2)2 + (y-2)2的最小值.,min=(x+2)2+(y-2)2; free(x);,【請大家上機(jī)驗(yàn)證一下有FREE和沒有的差別】,五、其他函數(shù).,例. 用IF表示下列函數(shù).,f = IF(x#LE#500,4*x,500+3*x);,或 f = IF(x#GT#500,500+3*x,4*x);,【思考:】,此外還有: 文件輸入輸出函數(shù),金融函數(shù),結(jié)果報(bào)告函數(shù),補(bǔ)充,一、 稠密集合與稀疏集合.,SETS: WH / W1.W6 /:

15、AI; VD/V1.V8/:DJ; LINKS(WH,VD):C,X; ENDSETS,省略了成員列表,只是指出它基于兩個(gè)初始集合的衍生集合 稱為稠密集合.,如果衍生集合的成員只是稠密集合中的一部分(子集),則 稱為稀疏集合.,稀疏集合的定義方法有兩種:,(1)直接列表法;,(2)元素過濾法.,例. 有如下工作流程.,SETS:,TASK/A B C D E F G H I J K/;,PRED(TASK,TASK),/A,B B,C C,F C,G F,J G,J J,K D,E,E,H E,I H,J I,J/;,ENDSETS,(1)直接列表法;,(2)元素過濾法.,例. 某公司8個(gè)職員

16、兩兩相容度如下表.,SETS:,REN/1.8/;,LINKS(REN,REN)|,ENDSETS,注: 這里 ENDSETS,例.給下列集合賦值,(法1) DATA: X=1,2,3; Y=4,5,6; ENDDATA,(法2) DATA: X,Y=1,4 2,5 3,6; ENDDATA,注: 同一集合的多個(gè)屬性一起賦值時(shí),LINGO用按列賦值方式進(jìn)行.,2. 通過鍵盤輸入數(shù)據(jù).,例. 當(dāng)A=125, A=265時(shí),下列模型的目標(biāo)函數(shù)值是多少?,Max=98*x1+A*x2-x12-0.3*x1*x2-2*x22; x1+x2100; x1=x2; GIN(x1); GIN(x2);,DATA: A=?; ENDDATA,MODEL:,END,3. 部分賦值.,SETS: WH / W1.W6 /: A; ENDSETS,例. 給下列集合的第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論