版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)學模型與lingo軟件 西南交通大學數(shù)學系 需要掌握的幾個重要方面需要掌握的幾個重要方面 掌握集合(SETS)的應用; 正確閱讀求解報告; 正確理解求解狀態(tài)窗口; 學會設置基本的求解選項(OPTIONS) ; 應用實例 LINGO 8.0有兩種命令模式 Windows 模式, 通過下拉式菜單命令驅(qū)動LINGO 運行 命令行(Command-Line) 模式,僅在命令窗口下操作 與LINDO 相比,LINGO 軟件主要具有兩大優(yōu)點 1、除具有LINDO 的全部功能外,還可用于求解非線性 規(guī)劃問題,包括非線性整數(shù)規(guī)劃問題 2、LINGO 包含了內(nèi)置的建模語言,允許以簡練、直觀 的方式描述較大規(guī)模
2、的優(yōu)化問題,模型中所需的數(shù)據(jù)可 以以一定格式保存在獨立的文件中 LP問題在lindo和lingo中不同的輸入形式 Lindo: max 2x+3y st 4x+3y10 3x+5y12 end Lingo: max=2*x+3*y; 4*x+3*y10; 3*x+5*y12; (1) 將目標函數(shù)的表示方式從 “MAX”變成了“MAX=” (2) “ST”在LINGO 模型中不 再需要,所以被刪除了 (3) 每個系數(shù)與變量間增加 了運算符“*”(即乘號不能省略) (4) 每行(目標、約束和說明 語句)后面均增加了一個分號“;” (5) 模型結束標志“END”也被 刪除了(LINGO 中只有當模型
3、 以“MODEL:”開始時才能以 “END” 結束)。 這是LINGO 模型的最基本 特征 直接將lindo模型文件轉化為lingo文件 Lindo: max 2x+3y st 4x+3y10 3x+5y12 end Lingo: max=2*x+3*y; 4*x+3*y10; 3*x+5*y12; 為保證能將LINDO 模型移植到LINGO 中去,在LINDO 模型輸入時應盡量采 用“規(guī)范化”的格式 Lingo的不同保存類型 “LG4”表示LINGO 格式的 模型文件,是一種特殊的二 進制格式文件,保存了我們 在模型窗口中所能夠看到的 所有文本和其他對象及其格 式信息,只有LINGO 能讀
4、出它,用其他系統(tǒng)打開這種 文件時會出現(xiàn)亂碼 “LNG”表示LINGO文本文 件,以這個格式保存模型時 系統(tǒng) 將給出警告,因為模 型中的格式信息(如字體、 顏色等)將會丟失 “LDT”表示數(shù)據(jù)文件 “LTF”表示 命令腳本文件 “LGR”表示 報告文件 除“LG4”文件外,這里的另外幾 種格式的文件其實都是普通的 文本文件,可以用任何文本編 輯器打開和編輯 狀態(tài)窗口的參數(shù)解釋 約束數(shù)量 (約束總數(shù)、 非線性約束 個數(shù)) 變量數(shù)量(其中包括變量總數(shù)、 非線性變量數(shù)、整數(shù)變量數(shù)) 非零系數(shù)數(shù)量 (總數(shù)、非線 性項的個數(shù)) 內(nèi)存使用量、求 解花費的時間 狀態(tài)窗口的參數(shù)解釋(2) 求解器狀態(tài)框 擴展的求
5、解器 (求解程序) 狀態(tài)框 用LINGO 來解二次規(guī)劃問題 22 121122 12 12 12 982770.32 . .100 2 ,0 MAXzxxxx xx st xx xx x x =+ + 為整數(shù) 注意事項: max=98*x1+277*x2-x12- 0.3*x1*x2-2*x22; x1+x2100; x12*x2; gin(x1);gin(x2); 1) 變量和行名可以超過8 個 字符,但不能超過32 個字符, 且必須以字母開頭 2) LINGO 已假定各變量非 負(除非用函數(shù)free或 sub 或slb 另行說明) 3) 變量可以放在約束條件的 右端(同時數(shù)字也可放在約束
6、條件的左端)。但為了提高效 率,應盡可能采用線性表達式 定義目標和約束(如果可能) Lingo的編程 優(yōu)化問題的一種建模語言。使用者可以只用鍵 入一行文字就可以建立起含有大規(guī)模變量的目 標函數(shù)和成千上萬條約束 LINGO模型的構成:4個段 集合段(SETS ENDSETS) 數(shù)據(jù)段(DATA ENDDATA) 初始段(INIT ENDINIT) 目標與約束段 最重要的是理解“集合”(SET)及其“屬性”(Attribute)的概念 例1:SAILCO 公司需要決定下四個季度的帆船生產(chǎn)量。 下四個季度的帆船需求量分別是40 條,60 條,75 條, 25 條,這些需求必須按時滿足。每個季度正常的
7、生產(chǎn)能 力是40 條帆船,每條船的生產(chǎn)費用為400 美元。如果 加班生產(chǎn),每條船的生產(chǎn)費用為450 美元。每個季度末, 每條船的庫存費用為20 美元。 假定生產(chǎn)提前期為0,初始庫存為10 條船。如何安排 生產(chǎn)可使總費用最??? 用DEM,RP,OP,INV 分別表示需求、正常生產(chǎn)的產(chǎn)量、 加班生產(chǎn)的產(chǎn)量、庫存量,則DEM,RP,OP,INV 對每個 季度都應該有一個對應的值,也就說他們都應該是一個由 4 個元素組成的數(shù)組,其中DEM 是已知的,而 RP,OP,INV 是未知數(shù)。 1,2,3,4 400( )450( )20( ) i MINRP IOP IINV I = + 目標函數(shù): 約束條件
8、1(能力限制): RP(I)40,I=1,2,3,4; 約束條件2(產(chǎn)品數(shù)量的平衡方程): INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I),I=1,2,3,4; INV(0)=10; 利用數(shù)組的概念 約束條件3: 變量的非負約束 QUARTERS =1,2,3, 4稱為集合, DEM,RP,O P,INV 稱 為該集合的 屬性 MODEL: SETS: QUARTERS/1.4/:DEM,RP,OP,INV;! 定義集合及其屬性; ENDSETS DATA: DEM=40,60,75,25; ENDDATA !初始段省略; MIN=SUM(QUARTERS:400*RP+
9、450*OP+20*INV); !目標函數(shù); FOR(QUARTERS(I):RP(I)1 基本集合與派生集合 例2: 某公司有6 個建筑工地要開工,每個工地的位置(用平面坐標 a, b 表示,距離單位:公里)及水泥日用量d(噸)由下表 給出。 目前有兩個臨時料場位于P (5, 1), Q (2, 7) ,日儲量各有20 噸。假設 從料場到工地之間均有直線道路相連,試制定每天的供應計劃,即 從A, B 兩料場分別向各工地運送多少噸水泥,使總的噸公里數(shù)最小。 為了進一步減少噸公里數(shù),打算舍棄兩個臨時料場,改建兩個新的, 日儲量仍各為20 噸,問應建在何處,節(jié)省的噸公里數(shù)有多大。 (1):LINK
10、中的元素就是DEMAND 和 SUPPLY 的笛卡兒積,也就是 LINK=(S,T)|SDEMAND, TSUPPLY.因此,其屬性C 也就是一個 6*2 的矩陣(或數(shù)組)。正是由于這種表示 方式,LINGO 建模語言也稱為矩陣生成器。 DEMAND 和SUPPLY 這種直接把元素列舉 出來的集合,稱為基本集合(primary set), 而把LINK 這種基于基本集合構造的集合稱 為派生集合(derived set) (3):free 函數(shù)取消了變量X、Y 非負限制 局部最優(yōu)解 X(1)=7.249997, X(2)=5.695940, Y(1)=7.749998, Y(2)=4.92852
11、4, (略),最小運量 =89.8835(噸公里) (2):LINGO對數(shù)據(jù)是按列賦值的,而不是 按行.其中“X Y =5,1,2,7;”語句的實 際賦值順序是X=(5,2),Y=(1,7), NLP中局部最優(yōu)解不一定不一定就是全局最優(yōu)解,在 help中有這樣的敘述: “Thus, when a nonlinear model is solved, we say the solution is merely a local optimum, and the user must be aware other local optimums may, or may not, exist with b
12、etter objective values.” 第一步:利用LINGO|Options”菜單命令激活全局最優(yōu)求解程序 第二步:為減少計算工作量,對X,Y 的取值再做一些限制。由于 最佳料場位置至少不應該超出現(xiàn)在6 個工地所決定的坐標的最大、 最小值決定的矩形之外,即:0.5=x=8.75, 0.75=y=7.75. 可以 加上bnd 函數(shù) 最優(yōu)解X(1)=3.2549,X(2)=7.2500, Y(1)=5.6526, Y(2)=7.7500,最小運量= 85.26(噸公里) 把料廠P(5, 1), Q (2, 7)的位置看成是已知并且固定的,這時是LP 模型。只需把初始段的“X Y =5,
13、1,2,7;” 移到數(shù)據(jù)段就可。 此時,得到全局最優(yōu)解,最小運量136.2275(噸公里) 稠密集合與稀疏集合 若派生集合是基本集合構成的笛卡兒積,則稱它為稠密集合稠密集合 ;派生 集合的元素可以只是這個笛卡兒積的一個真子集合,這種派生集 合稱為稀疏集合稀疏集合 例3 最短路問題 在公路網(wǎng)中,司機希望找到一條從一個城市到 另一個城市的最短路. 假設圖 表示的是該公路網(wǎng), 節(jié)點表示貨車 可以停靠的城市,弧上的權表示兩個城市之間的距離(百公里). 那么,貨車從城市S 出發(fā)到達城市T,如何選擇行駛路線,使所經(jīng)過 的路程最短? S到Bj(j=1,2)的最優(yōu)行駛路線 S到Ai(i=1,2,3)的最優(yōu)行
14、駛路線 (易求易求) S到T的最優(yōu)行駛路線P 先求出從S到Ck(k=1,2) 的最優(yōu)行駛路線 0 模型的建立 記d(Y,X)為城市Y與城市X之間 的直接距離(若這兩個城市之 間沒有道路直接相連,則可以 認為直接距離為無窮大),用 L(X)表示城市S到城市X的最 優(yōu)行駛路線的路長, 則: 定義稀疏集合ROADS 方 法:元素枚舉法 從S到T的行駛過程分成4 個 階段,即SAi(i=1,2 或3), Ai Bj(j=1或2), Bj Ck(k=1 或2), Ck T L(S)=0 ( )( ,) , YX MIN L Yd Y XXS + 從S到T的最優(yōu)行駛路線的路 長為20(進一步分析,可以 得
15、到從S到T的最優(yōu)行駛路線 為S A3 B2 C1 T) 另一種定義稀疏集合的方法:“元素過濾”法 匹配(MATCHING)問題:8 名同學準備分成4 個調(diào)查隊(每隊兩人) 前往4 個地區(qū)進行社會調(diào)查。設兩兩之間組隊的效率如表 所示(由 于對稱性只列出了上三角部分),問如何組隊可以使總效率最高? BENEFIT為效率矩陣,MATCH(Si,Sj)=1 表示Si,Sj 組成一隊, 0 表示不組隊。由于對稱性只需考慮ij 共32 個0-1 變量。 目標函數(shù)為BENEFIT(Si,Sj)* MATCH(Si,Sj)之和;約束條 件是每個同學只能(而且必須在)某一組,即對于任意i 有:只要 MATCH
16、屬性的某個下標為i 就加起來,此和=1。顯然,這是一個0- 1 線性規(guī)劃 由于MATCH 變量中多數(shù)為0 setname/member_list/ : attribute_list; 其中setname 為定義的集合 名,member_list 為元素列表, attribute_list 為屬性列表 顯式:CITIES/1,2,3,4/:L 隱式: CITIES/1.4/:L 當元素列表不在集合定 義中出現(xiàn)時,則必須在 程序的數(shù)據(jù)段以賦值語 句的方式直接給出元素 列表 派生集合一般定義格式為:setname(parent_set_list) /member_list/ : attribute_
17、list; 稱parent_set_list為父集合列表 運算符及其優(yōu)先級 算術運算符算術運算符 :+(加法),(減法或負號),*(乘法),/ (除法),(求冪) 關系運算符關系運算符:=,大于 等于) 邏輯運算符邏輯運算符:#AND#(與),#OR#(或),#NOT#(非), #EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大 于等于),#LT#(小于),#LE#(小于等于)。結果只有“真” (1)和“假”(0)兩個值 LINGO 函數(shù)一覽 (1) LINGO 函數(shù)一覽 (2) LINGO 函數(shù)一覽 (3) LINGO 函數(shù)一覽 (4) LINGO 函數(shù)一覽 (5) LIN
18、GO 函數(shù)一覽 (6) smax(x1,x2,xn) 給定一個直角三角形,求包含該三角形的最小正方形 qrand(seed) rand(seed) 返回0和1間的偽隨機數(shù),依賴于指定的種子。典型用法是 U(I+1)=rand(U(I)。注意如果seed不變,那么產(chǎn)生的隨 機數(shù)也不變 利用rand產(chǎn)生15個標準正態(tài)分布的隨機數(shù)和自由度為2的t分 布的隨機數(shù) for 函數(shù)sum 函數(shù)函數(shù) 產(chǎn)生序列1,4,9,16,25 求向量5,1,3,4,6,10 前5個數(shù)的和 該函數(shù)用來產(chǎn)生對集成員的約 束。基于建模語言的標量需要 顯式輸入每個約束,不過for 函數(shù)允許只輸入一個約束,然 后LINGO自動產(chǎn)生
19、每個集成員 的約束 該函數(shù)返回遍歷指定的集成 員的一個表達式的和 min和max 返回指定的集成員的一個表達式的最小值或最大值 求向量5,1,3,4,6,10前5個數(shù)最小值,后3個數(shù)最大值 LINGO的主要菜單命令 與LINDO 主菜單比較,LINGO 相當于合并了LINDO 中的 Solve(求解)菜單和REPORTS(報告)菜單。這些菜單的 用法都是和WINDOWS 下其他應用程序的標準用法類似的, 下面只對前3 個主菜單中與LINDO 不同而有一定LINGO 特 色的主要命令進行簡要介紹。 1)文件主菜單 File|Import LINDO File:將以LINDO 文件格式保存的模型轉換 為LINGO 格式的模型
溫馨提示
- 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年高職作物生產(chǎn)(應用技巧實操)試題及答案
- 2025年高職(樂器維修)琵琶修復技術綜合測試題及答案
- 2025年中職(醫(yī)用電子儀器應用與維護)心電圖機操作專項測試試題及答案
- 2025年中職新聞采編與制作(新聞采編制作應用)試題及答案
- 2025年大學中國語言文學(外國文學)試題及答案
- 2025年中職航海技術(航海氣象認知)試題及答案
- 養(yǎng)老院老人生活設施維修人員晉升制度
- 養(yǎng)老院老人心理咨詢師行為規(guī)范制度
- 養(yǎng)老院護理服務標準制度
- 養(yǎng)老院入住老人生活照料制度
- 統(tǒng)編版六年級語文第一學期期末練習卷
- 2026年社區(qū)活動組織服務合同
- 兒童呼吸道感染用藥指導
- 防意外傷害安全班會課件
- 2025年國家基本公共衛(wèi)生服務考試試題(附答案)
- 2025年醫(yī)院社區(qū)衛(wèi)生服務中心工作總結及2026年工作計劃
- 2025-2026學年北師大版七年級生物上冊知識點清單
- 委托作品協(xié)議書
- 2025至2030中國芳綸纖維行業(yè)發(fā)展分析及市場發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 尾牙宴活動策劃方案(3篇)
- 生蠔課件教學課件
評論
0/150
提交評論