




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第 1 講LINGO的基本用法煙臺市,航空:數(shù)學(xué)教研室LINGO是LINDO 系統(tǒng)公司開發(fā)的一套專門用于求解最優(yōu)化問題的。它為求解最優(yōu)化問題提供了一個,主要用于求解線性規(guī)劃、非線性規(guī)劃、整數(shù)規(guī)劃、二次規(guī)劃、線性及非線性方程組等問題它是最優(yōu)化問題的一種建模語言,包含有許多常用的函數(shù)供使用者編寫程序時調(diào)用,并提供了與其他數(shù)據(jù)文件的接口,易于方便地輸入,求解和分析大規(guī)模最優(yōu)化問題,且執(zhí)行速度快.。由于它的功能較強,所以在教學(xué)、科研、工業(yè)、商業(yè)、服務(wù)等許多領(lǐng)域得到了廣泛的應(yīng)用。1.1LINGO簡介1.1.1LINGO的特點LINGO 語言是一個綜合性的工具,使建立和求解數(shù)學(xué)優(yōu)化模型更容易,更有效。LI
2、NGO提供了一個完全集成的括強大的優(yōu)化模型描述語言,一個全功能的建立和編輯模型的環(huán)境,和一套快速內(nèi)置的求解器,能夠有效地解決大多數(shù)優(yōu)化模型。LINGO 包括如下的基本特點:1.代數(shù)模型語言LINGO 支持強大的集模型語言,它使得用戶能夠高效緊湊地表示數(shù)學(xué)規(guī)劃模型。多數(shù)模型可以用LINGO 的內(nèi)置2.方便的數(shù)據(jù)選項進行迭代求解。LINGO 使得從用戶從費時費力的數(shù)據(jù)管理中解脫出來。它允許你直接從數(shù)據(jù)庫和電子表格中獲取信息建立模型,同樣,LINGO 能夠把解輸出到數(shù)據(jù)庫或電子表格,使你能更容易生成你選擇的應(yīng)用。完整的模型和數(shù)據(jù)的分離,提高模型的性和擴展性。3.模型交互性或創(chuàng)建交工程的應(yīng)用你可以用
3、LINGO 建立或求解模型,或者你可以直接從所寫的應(yīng)用中直接調(diào)用 LINGO。為了提高模型的交互性,LINGO 提供了一個完整的建模、求解和分析模型的環(huán)境。為了建立交的解決方案,LINGO 可以調(diào)用用戶所寫的DLL 和 OLE 應(yīng)用接口。LINGO 可以直接調(diào)用 Excel 宏或數(shù)據(jù)庫應(yīng)用, LINGO 目前包括 C/C+、Fortran、Java、C#.net、VB.NET、 ASP.NET、Visual Basic、Delphi 和 Excel 編程實例。4.廣泛的文檔和幫助LINGO 提供了所有你需要快速啟動和運行的工具。你可以得到 LINGO 用戶手冊,它描述了程序令和功能。還包括 L
4、INGO 優(yōu)化建模的較大超級版本了所有類型的線性、整數(shù)和非線性優(yōu)化問題的綜合建模文檔。LINGO 提供了許多現(xiàn)實世界的建模實例供用戶修改和擴展。5.強大的求解器和工具LINGO 提供了一套全面快速的內(nèi)置求解器,求解線性、非線性(凸與非凸)、二次、二次約束的和整數(shù)優(yōu)化。你不必指定或加載一個單獨的求解器,因為 LINGO你的公式,自動選擇一個合適的求解器。LINGO 中有如下一般描述的求解器和工具:(1)一般非線性求解器LINGO 提供了一般非線性和非線性整數(shù)的功能。非線性能與 LINDO API。(2)全局求解器證選擇要使用的非線性功全局求解器結(jié)合了一系列的邊界(例如,區(qū)間分析和凸分析)和范圍減
5、少技術(shù)(例如,線性規(guī)劃和約束),在一個分支定界框架內(nèi)找到非凸非線性規(guī)劃的行之有效全局解。傳統(tǒng)的非線性求解器只能求得次優(yōu)的(4)多初值求解器。多初值求解器能在非線性規(guī)劃和混合整數(shù)非線性規(guī)劃的解空間中智能地生成一系列候選初始點。一個傳統(tǒng)的非線性求解器調(diào)用每個初始點,找到一個局部最優(yōu)解。對于非凸非線性規(guī)劃模型,由多初值求解器求得的最好解的質(zhì)量往往要優(yōu)于傳統(tǒng)的非線性求解器從單一初值求得的解。用戶可以調(diào)節(jié)參數(shù)控制多初值點的最大個數(shù)。(5)求解器求解器是求解線性、二次和二次錐問題的一種可選方INGO 使用最先進技術(shù)的方法,為大型稀疏模型提供了(6)單純形求解器速的算法。LINGO 提供的原始和對偶單純形兩
6、個先進算法作為求解線性規(guī)劃模型的主要工具。其靈活的設(shè)計允許用戶通過改變幾個算法參數(shù),微調(diào)每一種算法。混合整數(shù)求解器LINGO 的混合整數(shù)求解器功能擴展到線性、二次和一般非線性整數(shù)模型。它包含了一些先進的求解技術(shù),如切割生成、樹排序減少樹的動態(tài)生長以及先進的啟發(fā)式和預(yù)求解策略。隨機求解器隨機規(guī)劃求解器通過多階段隨機模型,提供了不確定條件下的決策機會。用戶通過辨識內(nèi)置的或用戶定義的描述每一個隨量的分布函數(shù),來描述不確定性。隨機求解器將優(yōu)化模型,以最大限度地減少初始階段的成本和預(yù)期的成本。高級采樣模式也可用于近似連續(xù)分布。模型及求解分析工具LINGO 對于不可行線性、整數(shù)和非線性規(guī)劃,包括一套全面的
7、分析調(diào)試工具,采用先進的技術(shù)來分離源于不可行的原始約束的最小子集。它也有工具來執(zhí)行靈敏度分析以確定某些最優(yōu)基的敏感性。二次識別工具二次規(guī)劃識別工具是一個有用的代數(shù)預(yù)處理器,自動確定任意非線性規(guī)劃是否實際上是一個凸二次規(guī)劃模型。然后二次規(guī)劃模型可以通過更快的二次求解器,它是作為求解器選項的一部分。當求解器選擇全局選項時,會自動識別二階錐模型,和凸二次規(guī)劃模型。(11)線性化工具線性化是一個綜合性的重構(gòu)工具,自動將許多非光滑函數(shù)和操作符(例如,最大和絕對值)變換到線性系列的數(shù)學(xué)等價表達式。許多非光滑模型可以完全線性化。這讓線性求解器很快找到一個全局最優(yōu)解,否則將是一個棘手的非線性問題。1.1.2L
8、INGO的界面介紹下面簡要地介紹 LINGO 1.模型窗口的模型窗口、運行狀態(tài)窗口和一些重要求解參數(shù)的設(shè)置。圖 1. 1 LINGO 的模型窗口LINGO 的模型窗口如圖 1. 1 所示。模型窗口輸入格式要求如下:LINGO 的數(shù)學(xué)規(guī)劃模型包含目標函數(shù)、決策變量、約束條件三個要素。在 LINGO 程序中,每一個語句都必須要用一個英文狀態(tài)下的分號“;”結(jié)束,一個語句可以分幾行輸入。LINGO 的注釋以英文狀態(tài)的感嘆號“!”開始,必須以英文狀態(tài)下的分號“;”結(jié)束;LINGO 的變量不區(qū)分字母的大小寫,必須以字母開頭,可以包含數(shù)字和下劃線,不超過 32 個字符,。LINGO 程序中,只要定義好集合后
9、,其他語句的順序是任意的。LINGO 中的函數(shù)以“”開頭。LINGO 程序默認所有的變量都是非負的。LINGO 程序中“或”號與“ 或 ”號功能相同。(9)LINGO 模型以語句“M個語句可以省略。:”開始,以“END”結(jié)束,對于比較簡單的模型,這兩LINGO 建模時需要注意如下幾個基本問題:盡量使用實數(shù)變量,減少整數(shù)約束和整數(shù)變量。模型中使用的參數(shù)數(shù)量級要適當,否則會給出警告信息,可以選擇適當?shù)淖兿鄬Τ叨取8谋M量使用線性模型,減少非線性約束和非線性變量的個數(shù),同時盡量少使用絕對值、符號函數(shù)、多變量求最大最小值、取整函數(shù)等非線性函數(shù)。合理設(shè)定變量上下界,盡可能給出初始值。2.LINGO 的求解
10、器運行狀態(tài)窗口變量數(shù)量求解器狀態(tài)變量總數(shù)非線性變量數(shù)整數(shù)變量數(shù)約束總數(shù)非線性約束個數(shù)總數(shù)非線性系數(shù)個數(shù)當前模型類型當前解的狀態(tài) 當前目標函數(shù)值當前約束不滿足的總量目前為止迭代次數(shù)約束數(shù)量非零系數(shù)數(shù)量擴展求解器狀態(tài)使用的特殊求解程序目前可行解的最佳目標函數(shù)值目標函數(shù)值的界特殊求解程序當前運行步數(shù)有效步數(shù)內(nèi)存的使用量求解花費的時間圖 1. 2 LINGO 的求解器狀態(tài)窗口LINGO 求解器運行狀態(tài)窗口如圖 1. 2 所以。其中的兩個狀態(tài)框介紹如下:(1)求解器狀態(tài)框“當前解的狀態(tài)”有如下幾種: Global Optimum全局最優(yōu)解;Local Optimum局部最優(yōu)解;Feasible可行解;I
11、nfeasible不可行解;Unbounded解;errupted中斷;Undetermined未確定。(2)擴展求解器狀態(tài)“使用的特殊求解程序”有如下幾種: B-and-B 分支定界算法。Global全局最優(yōu)求解程序。Multistart 用多個初始點求解的程序。3.LINGO 求解的參數(shù)設(shè)置LINGO10管理的內(nèi)存最大為 2G,如果你的計算機內(nèi)存是 4G 的話,LINGO 的內(nèi)存就設(shè)置為 2G,你的計算機內(nèi)存是 8G 的話,也要設(shè)置成 2G。LINGO 內(nèi)存的設(shè)置是依次選擇菜單 LINGO(第 3 個主菜單)OptionsM Generator。如圖 1. 3 所示紅色標注的部分。圖 1.
12、 3 求解器 Options 的一些設(shè)置如果模型是非線性模型,且欲求全局最優(yōu)解,要把求解器設(shè)置成“Global”。進入圖 1. 3中藍色“Global Solver”后,在“Use Global Solver”前面打上“”,設(shè)置完成后,要關(guān)閉 LINGO,再重新啟動LINGO。1.1.3初識 LINGO 程序LINGO 程序書寫實際上特別簡捷,數(shù)學(xué)模型怎樣描述,LINGO 語言就對應(yīng)地怎樣表達。首先介紹兩個簡單的 LINGO 程序。例 1. 1求解如下的線性規(guī)劃問題:maxz 72x1 64x2 ,x1 x2 50,12x 8x 480,12s.t.3x1 100,x , x 0. 1 2解
13、LINGO 求解程序如下: max=72*x1+64*x2; x1+x2=50; 12*x1+8*x2=480;3*x1=100;注 1. 1:LINGO 中默認所有的變量都是非負的,在LINGO 中就不需寫出對應(yīng)的約束。例 1. 2拋物面 z x2 y2 被平面 x y z 1截成一橢圓,求原點到這橢圓的最短距離。解 該問題可以用日乘子法求解。下面把問題歸結(jié)為數(shù)學(xué)規(guī)劃模型,用LINGO求解。設(shè)原點到橢圓上點(x, y, z) 的距離最短,建立如下的數(shù)學(xué)規(guī)劃模型:minx2 y2 z2 ,x y z 1,s.t.z x y .22LINGO 求解程序如下: min=(x2+y2+z2)(1/2
14、); x+y+z=1;z=x2+y2; free(x); free(y);注 1. 2:LINGO 中默認所有變量都是非負的,這里 x, y 的取值是可正可負的,所以使用LINGO 函數(shù) free。例 1. 3求解如下的數(shù)學(xué)規(guī)劃模型:100 iminx ,2i 1 100 xi 1,s. t . i 199x100 ix .2i 1解 用 LINGO 求解上述數(shù)學(xué)規(guī)劃問題,使用下面將介紹的集合和函數(shù)比較方便,使用集合的目的是為了定義向量,集合使用前,必須先定義;LINGO 程序中的標量不需要定義,直接使用即可。LINGO 求解程序如下:sets:var/1.100/:x; endsetsmin
15、=sqrt(sum(var(i):x(i)2);sum(var(i):x(i)=1; x(100)=sum(var(i)|i#le#99:x(i)2); for(var(i)|i#le#99:free(x(i);注 1.3:如果不使用集合和函數(shù),全部使用標量x1,x2,x100,最后一個約束就要寫 99遍,free(x1); ; free(x99)。1.1.4線性規(guī)劃問題的價格與靈敏度分析以例 1. 1 的線性規(guī)劃模型maxz 72x1 64x2 ,x1 x2 50,12x 8x 480,12s.t.3x1 100,x , x 0. 1 2為例。1.價格要進行靈敏度分析,必須選擇如圖 1. 4
16、 所示的畫圈的選項,依次選擇下列菜單LINGOOptionsGeneral Solver 下 Dual Compuions 選擇 Pri。圖 1. 4 LINGO Options 設(shè)置選項后,運行 LINGO 程序,輸出結(jié)果窗口中包含靈敏度分析,如圖 1. 5勾選了 Pri所示。最優(yōu)目標函數(shù)值目標函數(shù)第一個約束條件第三個約束條件圖 1. 5 靈敏度分析從結(jié)果可知,目標函數(shù)的最優(yōu)值為 3360,決策變量 x1 20, x2 30 。reduced cost 值對應(yīng)于單純形法計算過程中各變量的檢驗數(shù)。圖 1. 5 中紅色方框表示第一個約束條件,Slack or Surplus 值為 0 表示該約束
17、松弛變量為 0,約束等號成立,為緊約束或有效約束。藍色方框表示第三個約束松弛變量為 40,不等號成立,有剩余。(3)Dual Price 對應(yīng)價格,紅色方框表示當?shù)谝粋€約束條件右端常數(shù)項增加 1 個單位,即由 50 變?yōu)?51 時,目標函數(shù)值增加 48,即約束條件 1 所代表的資源的價格。藍色方框表示,第三個約束條件右端常數(shù)項增加 1 個2.確保最優(yōu)基不變的系數(shù)變化范圍時,目標函數(shù)值不變。如果想要研究目標函數(shù)的系數(shù)和約束右端常數(shù)項系數(shù)在什么范圍變化(假定其他系數(shù)保持不變)時,最優(yōu)基保持不變。此時需要首先勾選圖 1. 6 所示的選項。圖 1. 6 LINGO Options框此時不需要重新運行程
18、序,關(guān)閉輸出窗口,從菜單命令 LINGO 中選中“Range”,即如下輸出窗口,如圖 1. 7。到圖 1. 7 靈敏度分析范圍變化輸出窗口(1)Objective Coefficient Ranges 一欄反映了目標函數(shù)中決策變量的價值系數(shù),可以看到 x1的系數(shù)是 72, x2 的系數(shù)是 64,說明 x1 要想確保當前最優(yōu)基不變,在其他系數(shù)不變的情況下, x1系數(shù)的變化范圍為 (64,96) ,當 x 的系數(shù)在這個范圍內(nèi)變化時 ,最優(yōu)解不變,但是最優(yōu)目標函數(shù)值發(fā)生變化,同樣, x2 系數(shù)的變化范圍為(48, 72) 。(2)Righnd Side Ranges 一欄反映了約束條件右端代表資源系
19、數(shù)的常數(shù)項,可見第一個約束右端常數(shù)項在43.333333, 60 變化時,最優(yōu)基不變,但是最優(yōu)解發(fā)生變化,目標函數(shù)值也相應(yīng)地發(fā)生變化。由于第三個約束松弛變量為 40,有剩余,可見無論再如何增加該資源,只會使剩得 ,對解沒有影響,但是如果減少量超過 40,就會產(chǎn)生影響。1.2LINGO 模型的基本組成用 LINGO 語言編寫程序來表達一個實際優(yōu)化問題,稱之為 LINGO 模型。下面以一個規(guī)劃模型為例說明 LINGO 模型的基本組成。例 1. 4已知某種商品 6 個倉庫的存貨量,8 個客戶對該商品的需求量,商品運價如表 1. 1 所示。試確定 6 個倉庫到 8 個客戶的商品調(diào)運數(shù)量,使總的費用最小
20、。表 1. 1商品運價表運價客戶倉庫V1V2V3V4V5V6V7V8存貨量WW24953858255W35219743351解 設(shè) xij (i 1, 2,6; j 1, 2,8) 表示第i 個倉庫運到第 j 個客戶的商品數(shù)量, cij 表示第 i 個倉庫到第 j 個客戶的運價, d j 表示第 j 個客戶的需求量, ei 表示第i 個倉庫的存貨量,建立如下線性規(guī)劃模型6 8cij xij ,i 1 j 1min8 xij ei , j 1i 1, 2, 6,6 xij d j ,j 1, 2,8,s.t. i 1xij 0, i 1, 2, 6; j 1, 2,8.:集合,數(shù)據(jù)和初始,目標函
21、數(shù)與約束條件。LINGO 模型一般由 3 個部分1.2.1集合定義部分集合是一群相聯(lián)系的對象,這些對象也稱為集合的成員。LINGO 將集合(set)的概念引入建模語言,代表模型中的實際事物,并與數(shù)學(xué)變量及常量聯(lián)系起來,是實際問題到數(shù)學(xué)的抽象。例 1. 4 中的 6 個產(chǎn)地可以看成是一個集合,8 個銷地可以看成另一個集合。LINGO 有兩種類型的集合:原始集合(primitive set)和派生集合(derived set)。一個原始集合是由一些最基本的對象組成的,不能再被拆分成更小的組分。一個派生集合是用一個或多個其它集合來定義的,也就是說,它的成員來自于其它已存在的集合。集合部分是 LING
22、O 模型的一個可選部分。在 LINGO 模型中使用集合之前,必須在集合部分事先定義。集合部分以關(guān)鍵字“sets:”開始,以“endsets”結(jié)束。一個模型可以沒有集合部分,或有一個簡單的集合部分,或有多個集合部分。一個集合部分可以放置于模型的任何地方,但是一個集合及其屬性在模型約束中被1.定義原始集合為了定義一個原始集合,必須詳細:之前必須定義了它們。集合的名稱;集合的成員(可選的);集員的屬性(可選的)。定義一個原始集合,用下面的語法:setname/member_list/:attribute_list;注意:用“”表示該部分內(nèi)容可選。下同,不再贅述。setname 是用來標記集合的名字,
23、最好具有較強的可讀性。集合名稱必須嚴格符合標準命名規(guī)則:以字母為首字符,其后由字母(A-Z)、下劃線、成的總長度不超過 32 個字符的字符串,且不區(qū)分大小寫。數(shù)字(0,1,9)組注 1. 4:該命名規(guī)則同樣適用于集員名和屬性名等名。member_list 是集員列表。如果集員放在集合定義中,那么對它們可采取顯式羅列和隱式羅列兩種方式。如果集義它們。員不放在集合定義中,那么可以在隨后的數(shù)據(jù)部分定 當顯式羅列成員時,必須為每個成員輸入一個不同的名字,中間用空格或逗號擱開,允許混合使用。 當隱式羅列成員時,不必羅列出每個集成員。可采用如下語法:setname/member1.memberN/: at
24、tribute_list;w47673927143W52395726541W655228需求量3241324338這里的 member1 是集合的第一個成員名,memberN 是集合的最末一個成員名。LINGO 將自動產(chǎn)生中間的所有成員名。LINGO 也接受一些特定的首成員名和末成員名,用于創(chuàng)建一些特殊的集合,如表 1. 2。表 1. 2 隱式羅列成員示例在例 1. 4 中需要定義倉庫集合:warehouses/1.6/: e;其中 warehouses 是集合的名稱,1.6 是集合內(nèi)的成員,“.”是特定的省略號(如果不用省略號,也可以把成員一一羅列出來,成員之間用逗號或空格分開),表明該集合
25、有 6 個成員,分別對應(yīng)于 6 個倉庫,e 是集合的屬性,它可以看成是一個一維數(shù)組,有 6 個分量,分別表示各倉庫的存貨量。倉庫集合也可以定義為:warehouses/W1W2W3W4W5W6/: e;或者warehouses/W1.W6/: e;在例 1. 4 中還需要定義客戶集合:vendors/V1.V8/: d;該集合有 8 個成員,d 是集合的屬性(有 8 個分量)表示各客戶的需求量。原始集合的屬性相當于一維數(shù)組。2.定義派生集合為了定義一個派生集,必須詳細:集合的名字; 父集合的名字;集集員(可選);員的屬性(可選)。可用下面的語法定義一個派生集合:setname(parent_s
26、et_list)/member_list/:attribute_list;setname 是集合的名字。parent_set_list 是已定義集合的列表,多個時必須用逗號隔開。如果沒有指定成員列表,那么 LINGO 會自動創(chuàng)建父集員的所有組合作為派生集合的成員。派生集合的父集合既可以是原始集合,也可以是其他的派生集合。例 1. 5集合定義示例。sets: product/A B/; machine/M N/;k/1.2/;allowed(product,machine, endsetsk):x;LINGO 生成了三個父集合的所有組合共八組作為 allowed 集合的成員。如表 1. 3 所列
27、。表 1. 3集合 allowed 的成員成員1(A,M,1)2(A,M,2)3(A,N,1)4(A,N,2)隱式成員列表格式示例所產(chǎn)生集成員1.n1.51,2,3,4,5StringM.StringNCar2.car14Car2,Car3,Car4,Car14DayM.DayN.Fri,Tue,Wed,Thu,FrithM.thNOct.JanOct,Nov,Dec,JanthYearM.thYearNOct2001.Jan2002Oct2001,Nov2001,Dec2001,Jan2002成員列表被忽略時,派生集員由父集員所有的組合,這樣的派生集合稱為的集合的一個子集,也可以放在數(shù)據(jù)部分
28、。稠密集。如果限制派生集合的成員,使它成為父集這樣的派生集合稱為稀疏集。同原始集合一樣,派生集一個派生集合的成員列表有兩種方式生成: 顯式枚舉; 設(shè)置成員資格過濾器。員所有組合員的當采用方式時,必須顯式枚舉出所有要包含在派生集合中的成員,并且枚舉的每個成員必須屬于稠密集。在例 1. 5 中,顯式枚舉派生集合的成員:allowed(product,machine,k)/A M 1,A N 2,B N 1/;如果需要生成一個大的、稀疏的集,那么顯式枚舉就很討厭。幸運地是許多稀疏集的成員都滿足一些條件以和非成員相區(qū)分。可以把這些邏輯條件看作過濾器,在LINGO 生成派生集合的成員時把使邏輯條件為成員
29、從稠密集中過濾掉。在例 1. 4 中,為了表示數(shù)學(xué)模型中從倉庫到客戶的關(guān)系以及與此相關(guān)的單價cij和運量 xij ,要定義一個表示關(guān)系的派生集合:links(warehouses,vendors): c,x;其中 c 和 x 是該派生集合的兩個屬性,分別表示例 1. 4 模型的完整集合定義如下:sets:warehouses/1.6/: e; vendors/1.8/: d; links(warehouses,vendors): c,x;endsets單價cij 和運量 xij 。綜上所述,LINGO 中的集合類型見圖 1. 8。圖 1. 8集合類型示意圖模型的數(shù)據(jù)部分和初始部分在處理模型的數(shù)
30、據(jù)時,需要為集合指派一些成員并且在 LINGO 求解模型之前為集合的某些屬性指定值。為此,LINGO 為用戶提供了兩個可選部分:輸入集 員和數(shù)據(jù)的數(shù)據(jù)部分(Data Section)和為決策變量設(shè)置初始值的初始部分(Init Section)。模型的數(shù)據(jù)部分數(shù)據(jù)部分以關(guān)鍵字“data:”開始,以關(guān)鍵字“enddata”結(jié)束。在這里,可以指定集集合的屬性。其語法如下:object_list = value_list;員、其中 object_list 中包含要設(shè)置集員的集名、要指定值的屬性名,用逗號或空格隔開。如果 object_list 中有多個屬性名,那么它們必須定義在同一個集合上。如果 ob
31、ject_list 中有一個集合名,那么它必須是object_list 中任何屬性的父集合。value_list 包含要分配給 object_list 中的對象的值,用逗號或空格隔開。注意屬性值的個數(shù)必須等于集員的個數(shù)。看下面的例子。5(B,M,1)6(B,M,2)7(B,N,1)8(B,N,2)例 1. 6m:sets:SET1: X, Y;endsets data:SET1 = A B C; X = 1 2 3;Y = 4 5 6;enddata end在集 set1 中定義了兩個屬性 X 和Y。X 的三個值是 1、2 和 3,Y 的三個值是 4、5 和 6。也可采用下面的復(fù)合數(shù)據(jù)m:se
32、ts:SET1: X, Y;endsets data:SET1 X Y = A 1 4 B 2 5C 3 6;enddata end實現(xiàn)同樣的功能。要記住一個重要的事實是,當 LINGO的值列表時,它將前n 個值分復(fù)合數(shù)據(jù)別分配給對象列表中n 個對象的第一個值,第二批n 個值的依次分配給n 個對象的第二個值,依次類推。換句話說,LINGO 期望的是列格式,而不是行格式的輸入數(shù)據(jù),這反映了關(guān)系數(shù)據(jù)庫中和字段之間的關(guān)系。例 1. 4 中的集合和數(shù)據(jù)部分可以如下定義:sets:warehouses/1.6/: e; vendors/1.8/: d; links(warehouses,vendors)
33、: c,x;endsetsdata:!數(shù)據(jù)部分;e= 60 55 51 43 41 52;!屬性值;d=35 37 22 32 41 32 43 38;c= 6 2 6 7 4 2 5 94 9 5 3 8 5 8 25 22 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddata例 1. 4 中的集合和數(shù)據(jù)部分也可以如下定義:sets:warehouses: e; vendors: d;links(warehouses, vendors): c, x; endsetsdata: !數(shù)據(jù)部分;warehouses = WH1 WH2 WH3 WH4 WH5 WH6;
34、!集 vendors = V1 V2 V3 V4 V5 V6 V7 V8;e = 60 55 51 43 41 52; !屬性值;d = 35 37 22 32 41 32 43 38;c = 6 2 6 7 4 2 5 9員;4 9 5 3 8 5 8 25 22 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddata2.數(shù)據(jù)段的兩點說明(1)實時數(shù)據(jù)處理在某些情況,對于模型中的某些數(shù)據(jù)并不是定值。譬如模型中有一個通貨膨脹率的參數(shù),想在 2%至 6%范圍內(nèi),對不同的值求解模型,來觀察模型的結(jié)果對通貨膨脹的依賴有多么敏感。把這種情況稱為實時數(shù)據(jù)處理。在本該輸入數(shù)的地
35、方輸入一個問號(?)。例 1. 7data:erest_rate,inflation_rate=0.085 ?; enddata圖 1. 9 交互式輸入框每一次求解模型時,LINGO 都會提示為參數(shù) inflation_rate 輸入一個值。在WINDOWS操作系統(tǒng)下,將會接收到一個圖 1. 9 所示的框。直接輸入一個值再點擊 OK 按鈕,LINGO 就會把輸入的值指定給 inflation_rate,然后繼續(xù)求解模型。(2)部分賦值有時只想為一個集的部分成員的某個屬性指定值,而讓其余成員的該屬性保持未知,以便讓 LINGO 去求出它們的最優(yōu)值。在數(shù)據(jù)中輸入一個逗號(最前面或最后面)或多個相連
36、的逗號表示該位置對應(yīng)的集成員的屬性值未知。例 1. 8sets:years/1.5/: capacity; endsetsdata:capacity = ,34,20,; enddata屬性 capacity 的第 2 個和第 3 個值分別為 34 和 20,其余的 3 個值未知。3.模型的初始部分初始部分是 LINGO 提供的另一個可選部分。在初始部分中,可以輸入初始(initialization sement),和數(shù)據(jù)部分中的數(shù)據(jù)相同。對實際問題的建模時,初始部分并不起到描述模型的作用,在初始部分輸入的值僅被 LINGO 求解器當作初始點來用,并且僅僅對非線性模型有用。和數(shù)據(jù)部分指定變量的
37、值不同,LINGO 求解器可以部分初始化變量的值。改變初始一個初始部分以“init:”開始,以“endinit”結(jié)束。初始部分的初始規(guī)則和數(shù)據(jù)部分的數(shù)據(jù)規(guī)則相同。也就是說,可以在的左邊同時初始化多個集屬性,可以把集屬性初始化為一個值。例 1. 9init:X = 0.999;Y = 0.002;endinitY = LOG(X); X2 + Y2 =1;好的初始點會減少模型的求解時間。1.2.3目標函數(shù)和約束條件6 8例 1. 4 中的目標函數(shù)表達式 min cij xij 用 LINGO 語句表示為:i 1 j 1min=sum(links(i,j): c(i,j)*x(i,j);式中,su
38、m 是 LINGO 提供的函數(shù),其作用是對某個集合的所有成員,求指定表示式的和,該函數(shù)需要兩個參數(shù),第一個參數(shù)是集合名稱,指定對該集合的所有成員求和;第二個參數(shù)是一個表達式,表示求和運算對該表達式進行。此處sum 的第一個參數(shù)是 links(i,j),表示求和運算對派生集合 links 進行,該集合的維數(shù)是 2,共有 48 個成員,運算規(guī)則是:先6 8對 48 個成員分別求表達式 c(i,j)*x(i,j)的值,然后求和,相當于求cij xiji 1 j 1和 x 是集合 links 的兩個屬性,它們各有 48 個分量。注 1. 5 如果表達式中參與運算的屬性屬于同一個集合,則sum 語句中索
39、引(相當于矩陣或數(shù)組的下標)可以省略,假如表達式中參與運算的屬性不同屬于不同的集合,則不能省略屬性的索引。例 1. 4 中的目標函數(shù)可以表示成:min=sum(links: c*x);例 1. 4 中的約束條件 xij ei ,i 1, 2, 6 實際上表示了 6 個不等式,用 LINGO 語言表j 1示該約束條件,語句為:for(warehouses(i):sum(vendors(j): x(i,j)=e(i);,表達式中的 c8語句中的for 是 LINGO 提供的函數(shù),它的作用是對某個集合的所有成員分別生成一個約束表達式,它有兩個參數(shù),第一個參數(shù)是集合名,表示對該集合的所有成員生成對應(yīng)的
40、約束表達式,上述for 的第一個參數(shù)為 warehouses,它表示倉庫,共有 6 個成員,故應(yīng)生成 6個約束表達式;for 的第二個參數(shù)是約束表達式的具體內(nèi)容,此處再調(diào)用sum 函數(shù),表示約束表達式的左邊是求和,是對集合 vendors 的 8 個成員求和,即對表達式 x(i,j)中的第二維 j 求和,亦即 xij ,約束表達式的右邊是集合 warehouses 的屬性 e,它有 6 個分量,與 6j 1個約束表達式一一對應(yīng)。本語句中的屬性分別屬于不同的集合,所以不能省略索引 i,j。同樣地,約束條件 xij d j , j 1, 2,8 用LINGO 語句表示為:i 1for(vendor
41、s(j):sum(warehouses(i): x(i,j)=d(j);1.2.4完整的模型綜上所述,例 1. 4 的完整 LINGO 模型如下:m:sets:warehouses/1.6/: e; vendors/1.8/: d; links(warehouses,vendors): c,x;endsetsdata:!數(shù)據(jù)部分;e= 60 55 51 43 41 52;!屬性值;d=35 37 22 32 41 32 43 38;c= 6 2 6 7 4 2 5 94 9 5 3 8 5 8 25 22 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddata86m
42、in=sum(links(i,j): c(i,j)*x(i,j);!目標函數(shù);for(warehouses(i):sum(vendors(j): x(i,j)=e(i);!約束條件;for(vendors(j):sum(warehouses(i): x(i,j)=d(j); end注 1. 6LINGO 模型以 m:開始,以語句 end 結(jié)束,這兩個語句單獨成一行。完整的模型由集合定義、數(shù)據(jù)段、目標函數(shù)和約束條件等部分組成,這幾個部分部分的先后次序無關(guān)緊要,但集合使用之前必須先定義。用鼠標點擊數(shù)值為 664,最優(yōu)上的“求解”按鈕,就可以求出上述模型的解。計算結(jié)果表明:目標函方案見表 1. 4。
43、表 1. 4最優(yōu)方案LINGO 語言的優(yōu)點從以上實例可以看出,LINGO 建模語言建立規(guī)劃模型有如下優(yōu)點:對大規(guī)模數(shù)學(xué)規(guī)劃,LINGO 語言所建模型較簡潔,語句不多。模型易于擴展,因為for、sum 等語句并沒有指定循環(huán)或求和的上下限,如果在集合在集合定義部分增加集和約束條件。員的個數(shù),則循環(huán)或求和自然擴展,不需要改動目標函數(shù)數(shù)據(jù)部分與其他部分分開,對同一模型用不同數(shù)據(jù)來計算時,只需改動數(shù)據(jù)部分即可,其他語句不變。“集合”是 LINGO 很有特色的概念,它表達了模型中的實際事物,又與數(shù)學(xué)變量及常量聯(lián)系起來,是實際問題到數(shù)學(xué)量的抽象,它比 C 語言中的數(shù)組用途更為廣泛,集合中的成員可以隨意起名字
44、,沒限制,集合的屬性可以根據(jù)需要確定用多少個,可以用來代表已知常量,也可以用來代表決策變量。(5)使用了結(jié)合以及for、sum 等集合操作函數(shù)以后可以用簡潔的語句表達出常見的規(guī)劃模型中的目標函數(shù)和約束條件,即使模型有大量決策變量和大量數(shù)據(jù),組成模型的語句并不隨之增加。1.3LINGO 的運算符和函數(shù)LINGO 的常用運算符算術(shù)運算符算術(shù)運算實際上就是加、減、乘、除、乘方等數(shù)果也是數(shù),LINGO 中的算術(shù)運算符有以下 5 種:算,即數(shù)與數(shù)之間的運算,運算結(jié)+(加法),-(減號或負號),*(乘法),/(除法),(求冪)。 2.邏輯運算符邏輯運算就是運算結(jié)果只有“真”(true)和“假”(false
45、)兩個值的運算。在 LINGO 中,邏輯運算符主要用于集循環(huán)函數(shù)的條件表達式中,來控制在函數(shù)中哪些集成員被包含,哪些被排斥。在創(chuàng)建稀疏集時用在成員資格過濾器中。LINGO 具有種邏輯運算符:#and#(與) #or#(或) #not#(非) #eq#(等于)僅當兩個參數(shù)都為true 時,結(jié)果為 true;否則為 false;僅當兩個參數(shù)都為false 時,結(jié)果為 false;否則為 true;否定該操作數(shù)的邏輯值,not是一個一元運算符; 若兩個運算數(shù)相等,則為 true;否則為 false;V1V2V3V4V5V6V7V8合計W10W210032000033W3011000040051w40
46、0000503843W534700000041W6002200273052合計3537223241324338#ne#(不等于) 若兩個運算符不相等,則為 true;否則為 false;#gt#(大于)若左邊的運算符嚴格大于右邊的運算符,則為 true;否則為 false;#ge#(大于等于) 若左邊的運算符大于或等于右邊的運算符,則為 true;否則為 false;#lt#(小于)若左邊的運算符嚴格小于右邊的運算符,則為 true;否則為 false;#le#(小于等于) 若左邊的運算符小于或等于右邊的運算符,則為 true;否則為 false。這些運算符的優(yōu)先級由高到低為:高 #not#;
47、#eq#ne#gt#ge#lt#le#;低 #and#or#。3.關(guān)系運算符關(guān)系運算符表示的是“數(shù)與數(shù)之間”的大小關(guān)系,因此在 LINGO 中用來表示優(yōu)化模型的約束條件。LINGO 中關(guān)系運算符有三種:(即(即=,大于等于).請注意在優(yōu)化模型中約束一般沒有嚴格小于、嚴格大于關(guān)系。此外,請注意區(qū)分關(guān)系運算符與“數(shù)與數(shù)之間”進行比較的 6 個邏輯運算符的不同之處。如果需要嚴格小于和嚴格大于關(guān)系,比如讓 A 嚴格小于 B ,那么可以把它變成如下的小于等于表達式: A B ,這里 是一個小的正數(shù),它的值依賴于模型中 A 小于 B 多少才算不等。上述三類運算符的優(yōu)先級如表 1. 5 所示,其中同一優(yōu)先級
48、按從左到右的順序執(zhí)行,如果有括號“()”,則括號內(nèi)的表達式有限進行計算。表 1. 5邏輯和關(guān)系運算符的優(yōu)先級1.3.2基本的數(shù)學(xué)函數(shù)函數(shù)的使用能大大減少用戶的編程工作量,所有函數(shù)都以“”符號開頭。LINGO中包括相當豐富的數(shù)學(xué)函數(shù),直接在下面一一列出。abs(x):絕對值函數(shù),返回 x 的絕對值。acos(x):反余弦函數(shù),返回值 acosh(x):反雙曲余弦函數(shù)。 asin(x):反正弦函數(shù),返回值 asinh(x):反雙曲正弦函數(shù)。 atan(x):反正切函數(shù),返回值 atan2(y,x):返回 y/x 的反正切。 atanh(x):反雙曲正切函數(shù)。為弧度。為弧度。為弧度。cos(x):余
49、弦函數(shù),返回 x 的余弦值。cosh(x):雙曲余弦函數(shù)。sin(x):正弦函數(shù),返回x 的正弦值,x 采用弧度制。sinh(x):雙曲正弦函數(shù)。tan(x):正切函數(shù),返回 x 的正切值。 tanh(x):雙曲正切函數(shù)。 exp(x):指數(shù)函數(shù),返回ex 的值。log(x):自然對數(shù)函數(shù),返回 x 的自然對數(shù)。log10(x):以 10 為底的對數(shù)函數(shù),返回 x 的以 10 為底的對數(shù)。lgm(x):返回 x 的 gamma 函數(shù)的自然對數(shù)(當 x 為整數(shù)時,lgm(x)=log(x-1)!))。優(yōu)先級運算符最高最低#not#-(負號)*/+-(減法)#eq#ne#gt#ge#lt#le#
50、#and#or#mod(x,y):模函數(shù),返回 x 除以 y 的余數(shù),這里 x 和 y 應(yīng)該是整數(shù)。pi():返回 pi 的值,即 3.14159265。(x,y):指數(shù)函數(shù),返回xy 的值。sign(x):如果 x0,返回 1;如果 x=0,返回 0。floor(x):取整函數(shù),返回 x 的整數(shù)部分。當 x=0 時,返回不超過x 的最大整數(shù);當x= r (i); for(days:gin(x);!約束 x 為整型變量;end4.size 函數(shù) 使用格式為: size(set_name)返回數(shù)據(jù)集 set_name 中包含元素的個數(shù)。例 1.17某公司準備新開發(fā)一個產(chǎn)品,為了保證新產(chǎn)品的按期投
51、入市場,公司要對新產(chǎn)品進行 PERT 分析。需要完成的作業(yè)由表 1. 6 所示。表 1. 6 PERT 網(wǎng)的相關(guān)數(shù)據(jù)畫出產(chǎn)品計劃網(wǎng)絡(luò)圖;求完成新產(chǎn)品的最短時間,列出各項作業(yè)的最早開始時間、最遲開始時間。解 (1)以 7 項作業(yè)作為頂點集,即頂點集V A, B, G,緊前作業(yè)到后續(xù)作業(yè)畫出有向弧,弧集集合記作 E ,畫出的產(chǎn)品計劃有向圖見圖 1. 10。BEFADGC圖 1. 10 產(chǎn)品計劃有向圖(2)用i 1, 2, 7 分別表示作業(yè)A, B, G ,第i 項工作的計劃完成時間記為t(i) ,第i項工作的最早和最晚開工時間分別記為tes (i),tls (i) ,第i 項工作的松弛時間ts (
52、i) tls (i) tes (i) ,則最早開工時間tes (i) 和最晚開工時間tls (i) 的遞推公式為:tes (1) 0 , tes ( j) max tes (i) t(i) , j 2,3, 7 ;(i, j )Etls (7) tes (7) , tls (i) min tls (i) t( j) , i 6,5,1 .(i, j )E利用 LINGOT ls(7) 10 45 。求得的計算計算結(jié)果見表 1. 7 。所以完成新產(chǎn)品的最短時間表 1. 7 產(chǎn)品計劃網(wǎng)絡(luò)圖的計算結(jié)果計算的 LINGO 程序如下:m:sets: tasks/A.G/:time,es,ls,slack
53、;pred(tasks,tasks)/A B,A C,B D,B E,C D,D G,E F,F G/; endsetsdata:time = 10, 14, 3, 3, 7, 4, 10;enddata作業(yè)ABCDEFG最早開工時間0101024243135最晚開工時間0102932243135作業(yè)名稱計劃完成時間緊前作業(yè)A產(chǎn)品設(shè)計10-B需求14AC市場3AD產(chǎn)品定價3B,CE生產(chǎn)規(guī)劃7BF開支4FG培訓(xùn)10D,F(xiàn)for(tasks(j)|j #gt#1:es(j)=max(pred(i, j):es(i) + time(i);for(tasks(i)|i #lt#ltask:ls(i)=
54、min(pred(i,j):ls(j)-time(i);); for(tasks(i):slack(i)=ls(i)-es(i);es(1)=0; !第一項工作的最早開始時間; ltask=size(tasks);!作業(yè)的總數(shù)量;ls(ltask)=es(ltask); !最后一項作業(yè)的最遲開始時間=最后一項工作的最早開始時間; end1.3.5變量定界函數(shù)變量定界函數(shù)對函數(shù)的取值范圍加以限制,共有以下七種函數(shù):gin(x):限制 x 為整數(shù)。bin(x):限制 x 為 0 或 1。free(x):取消 x 的非負性限制,即 x 可以取任意實數(shù)值。bnd(L,x,U):限制 L=x=U。 so
55、s1(set_name,x):限制x 中至多一個大于 0。sos2(set_name,x):限制x 中至多兩個不等于 0,其他都為 0。 sos3(set_name,x):限制x 中正好有一個為 1,其他都為 0。 card(set_name,x):限制x 中非零元素的個數(shù)。 semic(L,x,U):限制x=0 或 L=x=U。例 1.18(背包問題)給定n 種物品和一背包,物品i 的重量是 wi ,其價值為vi ,i 1, 2, n ,背包的容量為c ,問應(yīng)如何選擇裝入背包的物品,使得裝入背包中物品的總價值最大。假設(shè)現(xiàn)有 8 件物品,它們的重量分別為 3,4,6,7,9,10,11,12
56、( kg ),價值分別為4,6,7,9,11,12,13,15(元),假設(shè)總重量限制不超過 30kg,試決策帶哪些物品,使所帶物品的總價值最大?解 引進0 1 變量 1, 物品i放入背包中,x0, 物品i不放入背包中.i建立如下的 0-1 整數(shù)規(guī)劃模型8max z vi xi ,i 1 8 ix c,wis.t . i 1x 1或0,i 1, 2,8. i利用 LINGO,求得的結(jié)果為帶物品 2、4、5、6,總價值為 38。計算的 LINGO 程序如下:m:sets: items/1.8/:x,w,v; endsetsdata: w=3,4,6,7,9,10,11,12;v=4,6,7,9,1
57、1,12,13,15; c=30;enddatamax=sum(items:v*x); !目標函數(shù); sum(items:w*x)=c; !重量約束; for(items:bin(x); !0-1變量約束; end例 1. 19(配對模型)某公司準備將 8 個職員安排到 4 個,每室兩人。根據(jù)以往觀察,已知有些職員在一起時合作好,有些則不然,表 1. 8 列出了兩兩之間的不相容程度,數(shù)字越小代表相容越好,問如何組合可以使總相容程度最好?表 1. 8 職員之間兩兩組合的不相容程度注:因為甲與乙配對等同于乙與甲配對,故表中數(shù)字只保留對角線上方的內(nèi)容。解 用cij 表示第i 人和第 j 人的不相容程
58、度,引進0 1 變量 1, i與j組合,( i j )x0, i不與j組合.ij則目標函數(shù)是總的不相容程度最小,約束條件是每人組合一次,即對于職員i ,必有 xji xikj ik i 1 .于是建立0 1 整數(shù)規(guī)劃模型如下:min cij xij ,i jji ikxx 1,s.t . j i k ixij 0或1, i j.利用 LINGO,求得最優(yōu)組合方案為: (1, 6) , (2, 7) , (3,8) , (4, 5) ,總等級為 6。計算的 LINGO 程序如下:m:sets:ren/ 1.8/;pairs(ren,ren)|&1 #lt# &2:c,x; endsetsdata
59、:c=9 3 4 22 9 21 5 5 28 7 62 34;text()=table(x); !以表格形式把x的計算結(jié)果輸出到屏幕; enddatamin=sum(pairs:c*x); for(ren(i):sum(pairs(i,j):x(i,j)+sum(pairs(j,i):x(j,i)=1); for(pairs(i,j): bin(x(i,j);end例 1. 20某公司要生產(chǎn) 6 種產(chǎn)品,需要使用 6 種設(shè)備。生產(chǎn)每種產(chǎn)品所用的各種設(shè)備臺時、每件產(chǎn)品利潤、固定費用,以及 6 種設(shè)備的總臺時數(shù)見表 1. 9。在現(xiàn)有設(shè)備總臺時的約束下,如何安排生產(chǎn)才能使利潤最大。表 1. 9 產(chǎn)
60、品生產(chǎn)數(shù)據(jù)表產(chǎn)品 1產(chǎn)品 2產(chǎn)品 3產(chǎn)品 4產(chǎn)品 5產(chǎn)品 6設(shè)備總臺時設(shè)備 A140421800123456781-93421562-1735213-442924-15525-8766-237-48-解 設(shè)第i 種產(chǎn)品的生產(chǎn)量為 xi (i 1, 2, 6) ,第i 種產(chǎn)品的每件利潤為 ci (i 1, 2, 6) ,第i 種產(chǎn)品的固定費用為di (i 1, 2, 6) ;6 種設(shè)備分別為1, 2, 6 ;6 種設(shè)備的總臺時分別記作bi (i 1, 2, 6) ,生產(chǎn)第 j 種產(chǎn)品使用第i 中設(shè)備的臺時數(shù)為aij (i 1, 2,9; j 1, 2,9) 。引進0 1 變量 1, 生產(chǎn)第j種產(chǎn)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車貸合同保密合同范本
- 遼寧省盤錦興隆臺區(qū)七校聯(lián)考2025屆七年級英語第二學(xué)期期中檢測試題含答案
- 餐飲鋪面租賃及裝修設(shè)計施工合同
- 2025年財稅基礎(chǔ)知識試題
- 高端酒店專用海鮮凍品定制購銷合同范本
- 車輛安全培訓(xùn)與演練服務(wù)合同
- 戶外拓展班學(xué)員參與協(xié)議書
- 電力設(shè)備抵押融資合同
- 提升政府公共關(guān)系效果的途徑
- 政府扶持政策與中小企業(yè)融資
- 2023年上海高中學(xué)業(yè)水平合格性考試歷史試卷真題(含答案詳解)
- 風(fēng)力發(fā)電工程施工與驗收規(guī)范
- 2024年個人勞務(wù)承包合同書
- 2024浙江嘉興市海寧高新技術(shù)產(chǎn)業(yè)園區(qū)公開招聘3人重點基礎(chǔ)提升難、易點模擬試題(共500題)附帶答案詳解
- 18 設(shè)計緊急避難路線圖(教案)人美版(北京)(2012)美術(shù)三年級下冊
- GB 9744-2024載重汽車輪胎
- ISO15614-1 2017 金屬材料焊接工藝規(guī)程及評定(中文版)
- 抖音來客商家門店經(jīng)營
- 術(shù)后鎮(zhèn)痛慢性疼痛癌性疼痛診療標準規(guī)范及作業(yè)流程
- 2022AHA-ACC-HFSA心衰管理指南解讀
- 智慧能源管理云平臺方案智慧能源綜合服務(wù)方案智慧能源管理系統(tǒng)方案38-82
評論
0/150
提交評論