版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
LINGO入門LINGO的菜單用LINGO編程語言建立模型LINGO的運算符和函數(shù)LINGO的基本用法§1.1
LINGO入門第一章LINGO的基本用法1.LINGO的主要功能特色:(1)既能求解線性規(guī)劃問題,也有較強的求解非線性規(guī)劃
問題的能力;(2)輸入模型簡練直觀;(3)運行速度快,計算能力強;(4)內(nèi)置建模語言,提供幾十個內(nèi)部函數(shù),從而能以較少
語句,較直觀的方式描述較大規(guī)模的優(yōu)化模型;(5)將集合的概念引入編程語言,很容易將實際問題轉換
為LINGO模型;(6)能方便地與Excel、數(shù)據(jù)庫等其他軟件交換數(shù)據(jù);建模時需要注意的幾個基本問題:(1)盡量使用實數(shù)優(yōu)化模型,減少整數(shù)約束和整數(shù)變量的個數(shù);(2)盡量使用光滑優(yōu)化模型,減少非光滑約束的個數(shù);如:盡量少地使用絕對值函數(shù)、符號函數(shù)、多個變量求最大(或最小)值、四舍五入函數(shù)、取整函數(shù)等.(3)盡量使用線性優(yōu)化模型,減少非線性約束和非線性變量的個數(shù)(如x/y<5改為x<5y);(4)合理設定變量的上下界,盡可能給出變量的初始值;(5)模型中使用的單位的數(shù)量級要適當(如小于103);【約束條件】2.LINGO的基本用法.例1.某工廠有兩條生產(chǎn)線,分別用來生產(chǎn)M和P兩種型號的產(chǎn)品,利潤分別為200元/個和300元/個,生產(chǎn)線的最大生產(chǎn)能力分別為每日100和120,生產(chǎn)線每生產(chǎn)一個M產(chǎn)品需要1個勞動日(1個工人工作8小時為1個勞動日)進行調(diào)試、檢測等工作,而每個P產(chǎn)品需要2個勞動日,該廠工人每天共計能提供160勞動日,假如原材料等其他條件不受限制,問應該如何安排生產(chǎn)計劃,才能使獲得的利潤最大?解:設兩種產(chǎn)品的生產(chǎn)量分別為x1和x2,則該數(shù)學模型為【目標函數(shù)】再用LINGO處理……輸入LINGO如下:LINGO處理結果:LINGO的語法規(guī)定:(1)求目標函數(shù)的最大值和最小值分別用MAX=…或MIN=
…來表示;(2)每個語句必須以分號“;”結束,每行可以有多個語句,語句可以跨行;(3)變量名稱必須以字母(A-Z)開頭,由字母、數(shù)字(0-9)和下劃線“_”組成,長度不超過32個字符,不區(qū)分大小寫;(4)可以給語句加上標號,例如[OBJ]MAX=…
;(5)以“!”開頭,以“;”結束的語句是注釋語句;(6)如果對變量的取值范圍沒有作特殊說明,則默認所有決策變量都非負;(7)LINGO模型以語句“MODEL:”開頭,以“END”結束,對于比較簡單的模型,這兩句可以省略;LINGO求解報告:縮減成本系數(shù)
(相差值)松弛或剩余注:①最優(yōu)解中變量的縮減成本系數(shù)值自動取零.②約束條件中,對于“<=”不等式,稱之為松弛
(Slack).對于“>=”不等式,稱之為剩余(Surplus).不等式左右兩邊值相等時,松弛和剩余的值為0;如果約束條件無法滿足,則松弛和剩余的值為負.影子(對偶)價格含義:如果該生產(chǎn)線最大生產(chǎn)能力增加1,能使目標函數(shù)值增加50.§1.2
了解LINGO的菜單新建打開保存打印剪切復制粘貼取消重做查找定位匹配括號求解顯示答案模型圖示選項設置窗口后置關閉所有窗口平鋪窗口在線幫助上下文相關幫助文件菜單編輯菜單LINGO菜單窗口菜單幫助菜單◆輸出特殊格式文件MPS格式文件MPI格式文件IBM開發(fā)的數(shù)學規(guī)劃文件標準格式LINDO公司制定的數(shù)學規(guī)劃文件格式◆用戶基本信息該命令彈出一個對話框,要求輸入用戶名和密碼(這些信息在用@ODBC函數(shù)訪問數(shù)據(jù)庫要用到)◆選擇性粘貼該命令把Window剪貼板中的內(nèi)容插入到光標所在位置.◆插入新對象◆鏈接修改模型內(nèi)插入對象的鏈接性質(zhì).◆對象的性質(zhì)在模型中選擇一個鏈接或嵌入對象,用本命令可以查看和修改這個對象的屬性.◆靈敏度分析該命令產(chǎn)生當前模型的靈敏度分析報告:(1)最優(yōu)解保持不變的情況下,目標函數(shù)的系數(shù)變化范圍;(2)在影子價格和縮減成本系數(shù)都不變的前提下,約束條件右邊的常數(shù)變化范圍;例.
做下列模型的靈敏度分析MAX=200*X1+300*X2;X1<=100;X2<=120;X1+2*X2<=160;(不限)注:靈敏性分析耗費相當多的求解時間,因此當速度很關鍵時,就沒有必要激活它【目標函數(shù)系數(shù)變化范圍】【約束條件右邊常數(shù)的變化范圍】◆生成模型的展開形式為當前模型生成一個用代數(shù)表達式表示的完整形式,即LINGO將所有基于集合的表達式(目標函數(shù)和約束條件)擴展成為等價的完全展開的普通數(shù)學表達式模型.◆生成圖形由模型生成圖形,以矩陣形式顯示模型的系數(shù).◆調(diào)試◆模型統(tǒng)計資料調(diào)試結果,找到充分行(SufficientRows)和必要行(NecessaryRows).◆查看(以為本方式顯示模型內(nèi)容)◆命令行窗口主要是為用戶交互地測試命令腳本而設計.(通常不用)◆狀態(tài)窗口[變量][約束][非零系數(shù)][內(nèi)存使用量][已運行時間][求解器狀態(tài)][擴展求解器狀態(tài)]§1.3
用LINGO編程語言建立模型一、LINGO模型的基本組成.例2.某公司有6個供貨棧,庫存貨物總數(shù)分別為60,55,51,43,41,52,現(xiàn)有8個客戶各要一批貨,數(shù)量分別為35,37,22,32,41,32,43,38.各供貨棧到8個客戶處的單位貨物運輸價見下表34182255W656275932W517293767W433479125W328583594W295247626W1V8V7V6V5V4V3V2V1
客戶貨棧試確定各貨棧到各客戶處的貨物調(diào)運數(shù)量,使總的運輸費用最小解:設xij從第i個貨棧到第j個客戶的運貨量,cij表示從第i個貨棧到第j個客戶的單位貨物運價,ai表示第i個貨棧的最大供貨量,dj表示第j個客戶的訂貨量模型如下1.集合定義部分集合是一組相關對象構成的組合集合在使用之前需要預先給出定義,初始集合的定義三要素:集合的名稱,集合的元素,集合的屬性(可視為與該集合有關的變量或常量).集合分為初始(基本\原始)集合和衍生(派生)集合初始集合的定義格式:集合的名稱/集合的元素/:集合的屬性;例.定義例2的貨棧集合ai和djWH/W1..W6/:AI;VD/V1..V8/:DJ;衍生集合的定義四要素:集合的名稱,對應的初始集合,集合的元素(可以省略),集合的屬性(可以沒有).例.定義集合,表示例3中從第i個貨棧到第j個客戶的運貨量xij,和第i個貨棧到第j個客戶的單位貨物運價cij.LINKS(WH,VD):C,X;注:
如果集合的元素省略不寫,則默認衍生集合的元素取它所對應初始集合的所有可能組合.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:”開始,以ENDDATA結束,這兩個語句必須單獨成一行;②數(shù)據(jù)之間的逗號和空格可以替換3.目標函數(shù)和約束條件.例2的目標函數(shù):用LINGO語句表示為:MIN=@SUM(LINKS(I,J):C(I,J)*X(I,J));注:①@SUM是LINGO提供的內(nèi)部函數(shù),其作用是對某個集合的所有成員,求指定表達式的和.@SUM有兩個參數(shù):集合名稱和表達式②如果表達式中參與運算的屬性屬于同一個集合,則
@SUM的索引可以省略.即MIN=@SUM(LINKS:C*X);例2的約束條件:用LINGO語句表示為:@FOR(WH(I):@SUM(VD(J):X(I,J))<=AI(I));注:①@FOR是LINGO提供的內(nèi)部函數(shù),其作用是對某個集合的所有成員分別生成一個約束表達式.@FOR有兩個參數(shù):集合名和約束表達式這里的集合名表示對該集合所有成員生成對應約束表達式問:語句中的I,J能不能省略?用LINGO語句表示為:@FOR(VD(J):@SUM(WH(I):X(I,J))=DJ(J));§1.4
LINGO的運算符和函數(shù)一、LINGO的常用運算符.1.算術運算符.^*/+-2.邏輯運算符.分類運算符作用運算對象是兩個數(shù)#EQ#兩個運算對象相等時為真,否則為假#NE#兩個運算對象不相等時為真,否則為假#GT#左邊大于右邊時為真,否則為假#GE#左邊大于或等于右邊時為真,否則為假#LT#左邊小于右邊時為真,否則為假#LE#左邊小于或等于右邊時為真,否則為假預算對象是邏輯值或邏輯表達式#NOT#單目運算符,表示對運算對象取反(即真變假,假變真)#AND#兩個運算對象都真時為真,否則為假#OR#兩個運算對象都假時為假,否則為真邏輯運算符優(yōu)先級別:#NOT#最高,#AND#和#OR#最低3.關系運算符.關系運算符通常用在條件表達式中,用來指定約束條件表達式左邊與右邊必須滿足的關系.有以下三種:=<=>=注:①LINGO沒有單獨的“<”和“>”關系,如果出現(xiàn)了單個“<”和“>”,LINGO認為是省略了“=”.②如果需要嚴格?。ù螅┯陉P系,如A嚴格小于B,可以表示成:這里是一個小的正數(shù),它的值依賴于模型中A小于B多少才算不等.例.計算2#GT#3#AND#4#GT#2結果為0(FALSE)二、數(shù)學函數(shù).函數(shù)名返回值@ABS(X)返回X的絕對值@SIN(X)返回X的正弦值@COS(X)返回X的余弦值@TAN(X)返回X的正切值@LOG(X)返回X的自然對數(shù)值@EXP(X)返回eX的值(e為自然常數(shù),e=2.7182818……)@SIGN(X)返回X的符號值@SMAX(X1,X2,…,Xn)返回這一系列數(shù)中的最大值@SMIN(X1,X2,…,Xn)返回這一系列數(shù)中的最小值@FLOOR(X)返回X的整數(shù)部分(向最靠近0的方向取整)@LGM(X)返回X的gamma函數(shù)的自然對數(shù)值@MOD(X,Y)返回X除以Y的余數(shù)(X和Y都是整數(shù))@POW(X,Y)返回指數(shù)XY的值(該函數(shù)可用X^Y代替)@SQR(X)返回X的平方值(該函數(shù)可用X^2代替)@SQRT(X)返回X的正的平方根(該函數(shù)可用X^(1/2)代替)三、概率函數(shù).函數(shù)名返回值@PSN(X)返回標準正態(tài)分布的分布函數(shù)@PPS(A,X)返回參數(shù)為A的泊松分布函數(shù)值當X不是整數(shù)時,采用線性插值進行計算@PBN(P,N,X)返回參數(shù)為P,N的二項分布的分布函數(shù)值@PHG(POP,G,N,X)返回參數(shù)為POP,G,N的超幾何分布的分布函數(shù)值@PFD(N,D,X)返回參數(shù)自由度為N和D的F分布的分布函數(shù)值@PCX(N,X)返回自由度為N的x2分布分布函數(shù)值@PTD(N,X)返回自由度為N的t分布的分布函數(shù)值@RAND(SEED)返回0-1之間的偽隨機數(shù)SEED為種子@QRAND(SEED)返回0-1之間的多個擬均勻隨機數(shù)(只能用在數(shù)據(jù)段)@PEB(A,X)略@PEL(A,X)@PPL(A,X)@PFS(A,X,C)@PSL(X)四、集合操作函數(shù).函數(shù)名返回值@FOR(s:e)該函數(shù)常用在約束條件中,表示對集合s中的每個成員生成一個約束條件表達式e@SUM(s:e)對集合s中的每個成員,分別得到表達式e的值,然后返回所有這些值的和@MAX(s:e)然后返回所有這些值中的最大值@MIN(s:e)然后返回所有這些值中的最小值@PROD(s:e)然后返回所有這些值的乘積@IN(s:e1)如果成員e1在集合s中,則返返回1,否則返回0@SIZE(s)返回集合s中的成員個數(shù)@INDEX(s:ek)返回成員ek在集合中的順序號(索引值),該值在1和集合s的成員個數(shù)之間,如果集合s中沒有該元素,則給出出錯信息@WRAP(I,N)若I∈[1,N],返回I;否則,返回J=I-N*K(K為整數(shù),J∈[1,N],)上表中,前五個函數(shù)的表示形式為:@函數(shù)名(集合名|條件:表達式)例.“@FOR(VD(J)|J#NE#5:表達式e);”表示什么含義?五、變量定界函數(shù).函數(shù)名返回值@BIN(X)限制X為0或1.【該函數(shù)在0-1規(guī)劃中特別有用】@BND(L,X,U)限制L≤X≤U.【可用作約束條件】@GIN(X)限制X為整數(shù).【該函數(shù)在整數(shù)規(guī)劃中特別有用】@FREE(X)取消對變量X的限制(即X可取任意實數(shù)值)注:①@BND函數(shù)可以用約束條件代替,但使用@BND函數(shù)表達變量的取值范圍比使用約束條件的求解速度快,且不計入約束條件的數(shù)目中.②@FREE(X)的作用是取消對變量X的默認非負設置.例.求函數(shù)z=(x+2)2+
(y-2)2的最小值.min=(x+2)^2+(y-2)^2;@free(x);【請大家上機驗證一下有@FREE和沒有的差別】五、其他函數(shù).函數(shù)名說明@WARN(‘文字信息’,邏輯表達式)如果邏輯表達式的值為真,則顯示指導文字信息(用于提示)@IF(邏輯表達式,表達式為真時的值,表達式為假時的值)該函數(shù)根據(jù)邏輯表達式的結果是真還是假,決定返回值,常用來表示分段函數(shù)@USER()該函數(shù)允許用戶用C語言活FORTRAN語言編寫并編譯自己的函數(shù),返回用戶函數(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ù),結果報告函數(shù)補充一、稠密集合與稀疏集合.SETS:WH/W1..W6/:AI;VD/V1..V8/:DJ;LINKS(WH,VD):C,X;ENDSETS省略了成員列表,只是指出它基于兩個初始集合的衍生集合稱為稠密集合.如果衍生集合的成員只是稠密集合中的一部分(子集),則稱為稀疏集合.稀疏集合的定義方法有兩種:(1)直接列表法;(2)元素過濾法.例.有如下工作流程.ABCEFGHIJKDSETS:TASK/ABCDEFGHIJK/;PRED(TASK,TASK)/A,BB,CC,FC,GF,JG,JJ,KD,EE,HE,IH,JI,J/;ENDSETS(1)直接列表法;(2)元素過濾法.例.某公司8個職員兩兩相容度如下表.S1S2S3S4S5S6S7S8S1-9342156S2--173521S3---44292S4----1552S5-----876S6------23S7-------4S8--------SETS:REN/1..8/;LINKS(REN,REN)|&2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年福建貨運從業(yè)資格證考試試題及答案解析
- 2025年鄂州貨運準駕證模擬考試
- 2025年畢節(jié)貨運從業(yè)資格證模擬考試題下載
- 2025年貴港從業(yè)資格證應用能力考些啥
- 茶藝師聘用合同范本
- 地熱發(fā)電架電施工合同
- 互聯(lián)網(wǎng)產(chǎn)品運營專員勞動合同
- 融資合作法律風險評估
- 宗教建筑承包協(xié)議
- 市政工程承諾函模板
- 建筑施工企業(yè)八大員繼續(xù)教育模擬考試題庫500題(含標準答案)
- 眾創(chuàng)空間運營管理實施方案
- 2024智慧城市數(shù)據(jù)采集標準規(guī)范
- 2024年中國電子財務公司春季校園招聘3人高頻難、易錯點500題模擬試題附帶答案詳解
- 云南省2022年中考道德與法治真題試卷
- 業(yè)委會解除小區(qū)物業(yè)服務合同的函
- 食堂食材配送項目投標方案(技術方案)
- 2024-2025學年北京市海淀區(qū)數(shù)學三上期末教學質(zhì)量檢測試題含解析
- 車位進行特許權經(jīng)營服務投標方案(技術方案)
- 廣告宣傳物料、宣傳欄、大字投標方案(技術方案)
- NB/T 11446-2023煤礦連采連充技術要求
評論
0/150
提交評論