版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、LINGOLINGO軟件篇軟件篇LINGO 9.0 for windowsLINGO 9.0 for windows任興龍任興龍建模時(shí)需要注意的幾個基本問題建模時(shí)需要注意的幾個基本問題 1、盡量使用實(shí)數(shù)優(yōu)化,減少整數(shù)約束和整數(shù)變量盡量使用實(shí)數(shù)優(yōu)化,減少整數(shù)約束和整數(shù)變量2、盡量使用光滑優(yōu)化,減少非光滑約束的個數(shù)盡量使用光滑優(yōu)化,減少非光滑約束的個數(shù) 如:盡量少使用絕對值、符號函數(shù)、多個變量求如:盡量少使用絕對值、符號函數(shù)、多個變量求最大最大/最小值、四舍五入、取整函數(shù)等最小值、四舍五入、取整函數(shù)等3、盡量使用線性模型,減少非線性約束和非線性變盡量使用線性模型,減少非線性約束和非線性變量的個數(shù)量
2、的個數(shù) (如(如x/y 5 改為改為x5y)4、合理設(shè)定變量上下界,盡可能給出變量初始值合理設(shè)定變量上下界,盡可能給出變量初始值 5、模型中使用的參數(shù)數(shù)量級要適當(dāng)模型中使用的參數(shù)數(shù)量級要適當(dāng) (如小于如小于103)否則會給警告信息,選擇適當(dāng)單位改變相對尺度否則會給警告信息,選擇適當(dāng)單位改變相對尺度scaling LP QP NLP IP 全局優(yōu)化全局優(yōu)化(選選) ILP IQP INLP LINGO軟件的求解過程 LINDO/LINGO預(yù)處理程序預(yù)處理程序線性優(yōu)化求解程序線性優(yōu)化求解程序非線性優(yōu)化求解程序非線性優(yōu)化求解程序分枝定界管理程序分枝定界管理程序1. 確定常數(shù)確定常數(shù)2. 識別類型識別
3、類型1. 單純形算法單純形算法2. 內(nèi)點(diǎn)算法內(nèi)點(diǎn)算法(選選)1、順序線性規(guī)劃法、順序線性規(guī)劃法(SLP) 2、廣義既約梯度法、廣義既約梯度法(GRG) (選選) 3、多點(diǎn)搜索、多點(diǎn)搜索(Multistart) (選選) 又稱障礙法又稱障礙法barrierLINGOLINGO的文件類型的文件類型.LG4:LINGO格式的模型文件,保存了模型窗口中所格式的模型文件,保存了模型窗口中所能夠看到的所有文本和其他對象及其格式信息;能夠看到的所有文本和其他對象及其格式信息;.LNG:文本格式的模型文件,不保存模型中的格式信:文本格式的模型文件,不保存模型中的格式信息(如字體、顏色、嵌入對象等);息(如字體
4、、顏色、嵌入對象等);.LDT:LINGO數(shù)據(jù)文件;數(shù)據(jù)文件;.LTF:LINGO命令腳本文件;命令腳本文件;.LGR:LINGO報(bào)告文件;報(bào)告文件;.LTX: LINDO格式的模型文件;格式的模型文件;.MPS:示:示MPS(數(shù)學(xué)規(guī)劃系統(tǒng))格式的模型文件。(數(shù)學(xué)規(guī)劃系統(tǒng))格式的模型文件。除除“LG4”文件外,文件外,另外幾種格式的文件另外幾種格式的文件都是普通的文本文件,都是普通的文本文件,可以用任何文本編輯可以用任何文本編輯器打開和編輯。器打開和編輯。規(guī)劃問題的傻瓜輸入規(guī)劃問題的傻瓜輸入取整取整, 0,2100.23 . 02779max22222212121xxxxxxtsxxxxxx1
5、11 8 Model:Title:傻瓜輸入法傻瓜輸入法;!小程序可用,大程序不提倡小程序可用,大程序不提倡;st1x1+x2100;optmax=98*x1+277*x2-x12-0.3*x1*x2-2*x22;st2x1”(或(或“=”(或(或“=”)功能相同)功能相同LINGO模型以模型以“MODEL:”開始,開始,“END”結(jié)束。結(jié)束。目標(biāo)函數(shù)為目標(biāo)函數(shù)為“MAX=”。不需要寫。不需要寫“ST” 。變量與系數(shù)間有乘號運(yùn)算符變量與系數(shù)間有乘號運(yùn)算符“ * ”變量名以字母開頭,不能超過變量名以字母開頭,不能超過32個字符個字符變量名不區(qū)分大小寫(包括變量名不區(qū)分大小寫(包括LINGO中的關(guān)鍵
6、字)中的關(guān)鍵字)語句的順序不重要語句的順序不重要行號自動產(chǎn)生或人為定義。目標(biāo)函數(shù)所在行是第一行,行號自動產(chǎn)生或人為定義。目標(biāo)函數(shù)所在行是第一行,第二行起為約束條件第二行起為約束條件,約束行名字被放約束行名字被放“”中。中。行中注有行中注有“!”符號的后面部分為注釋。符號的后面部分為注釋。使用使用LINGOLINGO的一些注意事項(xiàng)的一些注意事項(xiàng)在模型的開頭可以用在模型的開頭可以用“TITLE” 對模型命名,對模型命名,變量可以放在約束右端變量可以放在約束右端每行(目標(biāo),約束,說明語句)后增加每行(目標(biāo),約束,說明語句)后增加 “;”開頭都是函數(shù)調(diào)用;開頭都是函數(shù)調(diào)用;上下界限定用上下界限定用BN
7、D,不計(jì)入模型的約束,也不能給出不計(jì)入模型的約束,也不能給出其松緊判斷和敏感性分析其松緊判斷和敏感性分析;缺省假定所有變量非負(fù);可在模型的缺省假定所有變量非負(fù);可在模型的“END”語句后語句后用用“FREE ”將變量的非負(fù)假定取消將變量的非負(fù)假定取消;對對0-1變量說明:變量說明:BIN;對整型變量說明:對整型變量說明:GIN模型由一系列語句組成,適當(dāng)縮進(jìn),增強(qiáng)可讀性模型由一系列語句組成,適當(dāng)縮進(jìn),增強(qiáng)可讀性LINGO狀態(tài)窗口狀態(tài)窗口變量數(shù)量變量數(shù)量TNInTNTNClassObInfeIteTypeObj求解花費(fèi)時(shí)間求解花費(fèi)時(shí)間非零系數(shù)數(shù)量非零系數(shù)數(shù)量內(nèi)存使用數(shù)量內(nèi)存使用數(shù)量約束數(shù)量約束數(shù)量
8、模型類型模型類型當(dāng)前解狀態(tài)當(dāng)前解狀態(tài)當(dāng)前目標(biāo)函數(shù)值當(dāng)前目標(biāo)函數(shù)值擴(kuò)展求解器擴(kuò)展求解器使用的特殊求解程序使用的特殊求解程序到目前的最佳目標(biāo)值到目前的最佳目標(biāo)值特殊求解程序特殊求解程序當(dāng)前運(yùn)行步數(shù)當(dāng)前運(yùn)行步數(shù)有效步數(shù)有效步數(shù)可能顯示可能顯示B-and-BGlobalMultistart可直接求可直接求解的變量解的變量不作為決不作為決策變量。策變量。一般線性規(guī)劃問題的一般線性規(guī)劃問題的影子價(jià)格與敏感性分析影子價(jià)格與敏感性分析1桶牛奶 3公斤A1 12小時(shí) 8小時(shí) 4公斤A2 或獲利24元/公斤 獲利16元/公斤 50桶牛奶桶牛奶 時(shí)間時(shí)間480小時(shí)小時(shí) 至多加工至多加工100公斤公斤A1 制訂生產(chǎn)計(jì)
9、劃,使每天獲利最大制訂生產(chǎn)計(jì)劃,使每天獲利最大 35元可買到元可買到1桶牛奶,買嗎?若買,每天最多買多少桶牛奶,買嗎?若買,每天最多買多少? 可聘用臨時(shí)工人,付出的工資最多是每小時(shí)幾元可聘用臨時(shí)工人,付出的工資最多是每小時(shí)幾元? A1的獲利增加到的獲利增加到 30元元/公斤,應(yīng)否改變生產(chǎn)計(jì)劃?公斤,應(yīng)否改變生產(chǎn)計(jì)劃? 每天:每天:加工奶制品的生產(chǎn)計(jì)劃加工奶制品的生產(chǎn)計(jì)劃1桶牛奶 3公斤A1 12小時(shí) 8小時(shí) 4公斤A2 或獲利24元/公斤 獲利16元/公斤 x1桶牛奶生產(chǎn)桶牛奶生產(chǎn)A1 x2桶牛奶生產(chǎn)桶牛奶生產(chǎn)A2 獲利獲利 243x1 獲利獲利 164 x2 原料供應(yīng)原料供應(yīng) 5021 xx
10、勞動時(shí)間勞動時(shí)間 48081221 xx加工能力加工能力 10031x決策變量決策變量 目標(biāo)函數(shù)目標(biāo)函數(shù) 216472xxzMax每天獲利每天獲利約束條件約束條件非負(fù)約束非負(fù)約束 0,21xx線性線性規(guī)劃規(guī)劃模型模型(LP)時(shí)間時(shí)間480小時(shí)小時(shí) 至多加工至多加工100公斤公斤A1 50桶牛奶桶牛奶 每天每天模型求解模型求解 OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL P
11、RICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 220桶牛奶生產(chǎn)桶牛奶生產(chǎn)A1, 30桶生產(chǎn)桶生產(chǎn)A2,利潤,利潤3360元。元。 Max=72*x1+64*x2;x1+x250;12*x1+8*x2480;3*x1100;模型求解模型求解 reduced cost值表值表示當(dāng)該非基變量示當(dāng)該非基變量增加一個單位時(shí)增加一個單位時(shí)(其他非基變量(其他非基變量保持不變)目標(biāo)保持不變)目標(biāo)函數(shù)減少的量函數(shù)減少的量(對對max型問題型問題) OBJECTIVE FUNCTION
12、 VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000 NO. ITERATIONS= 2也可理解為:也可理解為:為了使該非基變?yōu)榱耸乖摲腔兞孔兂苫兞浚孔兂苫兞浚繕?biāo)函數(shù)中對應(yīng)目標(biāo)函數(shù)中對應(yīng)系數(shù)應(yīng)增加的量系數(shù)應(yīng)增加的量 OBJECTIVE FUNCTION VALUE
13、1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000原料無剩余原料無剩余時(shí)間無剩余時(shí)間無剩余加工能力剩余加工能力剩余40三三種種資資源源“資源資源” 剩余為零的約束為緊約束(有效約束)剩余為零的約束為緊約束(有效約束) 結(jié)果解釋結(jié)果解釋 Max=72*x1+64*x2;x1+x250;12
14、*x1+8*x2480;3*x1100; OBJECTIVE FUNCTION VALUE 1) 3360.000 VARIABLE VALUE REDUCED COST X1 20.000000 0.000000 X2 30.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 48.000000 3) 0.000000 2.000000 4) 40.000000 0.000000結(jié)果解釋結(jié)果解釋 最優(yōu)解下最優(yōu)解下“資源資源”增增加加1單位時(shí)單位時(shí)“效益效益”的的增量增量 原料增原料增1單位單位, 利潤增利潤增48 時(shí)間加時(shí)
15、間加1單位單位, 利潤增利潤增2 能力增減不影響利潤能力增減不影響利潤影子價(jià)格影子價(jià)格Shadow price 35元可買到元可買到1桶牛奶,要買嗎?桶牛奶,要買嗎? 35 48, 應(yīng)該買!應(yīng)該買! 聘用臨時(shí)工人付出的工資最多每小時(shí)幾元?聘用臨時(shí)工人付出的工資最多每小時(shí)幾元? 2元!元!對偶計(jì)算,包括對偶對偶計(jì)算,包括對偶價(jià)格和敏感性分析價(jià)格和敏感性分析LINGOOptionsGeneral Solver(通用求解程序通用求解程序)選項(xiàng)卡選項(xiàng)卡要使用敏感性分析要使用敏感性分析必須要在這選擇必須要在這選擇使用敏感性分析使用敏感性分析RANGES IN WHICH THE BASIS IS UNC
16、HANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 X2 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 50.000000 10.000000 6.666667 3 480.000000 53.333332 80.000000 4 100
17、.000000 INFINITY 40.000000最優(yōu)解不變時(shí)目標(biāo)最優(yōu)解不變時(shí)目標(biāo)系數(shù)允許變化范圍系數(shù)允許變化范圍 x1系數(shù)范圍系數(shù)范圍(64,96) x2系數(shù)范圍系數(shù)范圍(48,72) A1獲利增加到獲利增加到 30元元/千克,應(yīng)否改變生產(chǎn)計(jì)劃千克,應(yīng)否改變生產(chǎn)計(jì)劃 x1系數(shù)由系數(shù)由24 3= 72 增加增加為為30 3= 90,在,在允許范允許范圍內(nèi)圍內(nèi) 不變!不變!(約束條件不變約束條件不變)結(jié)果解釋結(jié)果解釋 LINGORange結(jié)果解釋結(jié)果解釋 RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABL
18、E CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 72.000000 24.000000 8.000000 X2 64.000000 8.000000 16.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 50.000000 10.000000 6.666667 3 480.000000 53.333332 80.000000 4 100.000000 INFINITY 40.000000影子價(jià)格有意義影子價(jià)格有
19、意義時(shí)約束右端的允時(shí)約束右端的允許變化范圍許變化范圍 原料最多增加原料最多增加10 時(shí)間最多增加時(shí)間最多增加53 35元可買到元可買到1桶牛奶,每天最多買多少?桶牛奶,每天最多買多少?最多買最多買10桶?桶?(目標(biāo)函數(shù)不變目標(biāo)函數(shù)不變)注意注意: 充分但充分但可能不必要可能不必要LINGO的高級使用的高級使用 MODEL:TITLE EX060201;!簡單的線性規(guī)劃只需要修簡單的線性規(guī)劃只需要修改一下已有模型的集合段改一下已有模型的集合段和數(shù)據(jù)段和數(shù)據(jù)段;!直接輸入為直接輸入為 min=-5*x1-2*x2;2*x1+x2+x3=8;x1+x4=3;x2+x5=4; (為了避免中止說明語句,
20、(為了避免中止說明語句,這里用的是文本格式的分這里用的是文本格式的分號,在模型中是作為文本的)號,在模型中是作為文本的)SETS:HANG/1.3/:B;LIE/1.5/:C,X;XISHU(HANG,LIE):A;ENDSETSDATA:A= 2 1 1 0 0 1 0 0 1 0 0 1 0 0 1;C=-5 -2 0 0 0;B=8 3 4;ENDDATAOBJMIN=SUM(LIE:C*X);FOR(HANG(I):YUESHU SUM(LIE(J):A(I,J)*X(J)=B(I);END集合與屬性集合與屬性例例 SAILCO公司需要決定下四個季度的帆船生產(chǎn)量。下公司需要決定下四個季
21、度的帆船生產(chǎn)量。下四個季度的帆船需求量分別是四個季度的帆船需求量分別是40條,條,60條,條,75條,條,25條,條,這些需求必須按時(shí)滿足。每個季度正常的生產(chǎn)能力是這些需求必須按時(shí)滿足。每個季度正常的生產(chǎn)能力是40條帆船,每條船的生產(chǎn)費(fèi)用為條帆船,每條船的生產(chǎn)費(fèi)用為400美元。如果加班生產(chǎn),美元。如果加班生產(chǎn),每條船的生產(chǎn)費(fèi)用為每條船的生產(chǎn)費(fèi)用為450美元。每個季度末,每條船的美元。每個季度末,每條船的庫存費(fèi)用為庫存費(fèi)用為20美元。假定生產(chǎn)提前期為美元。假定生產(chǎn)提前期為0,初始庫存為,初始庫存為10條船。如何安排生產(chǎn)可使總費(fèi)用最???條船。如何安排生產(chǎn)可使總費(fèi)用最??? 分析分析:用用DEM,RP
22、,OP,INV分別表示需求量、正常生分別表示需求量、正常生產(chǎn)的產(chǎn)量、加班生產(chǎn)的產(chǎn)量、庫存量,則產(chǎn)的產(chǎn)量、加班生產(chǎn)的產(chǎn)量、庫存量,則DEM,RP,OP,INV對每個季度都應(yīng)該有一個對應(yīng)的值,對每個季度都應(yīng)該有一個對應(yīng)的值,也就說他們都應(yīng)該是一個由也就說他們都應(yīng)該是一個由4個元素組成的數(shù)組,其中個元素組成的數(shù)組,其中DEM是已知的,而是已知的,而RP,OP,INV是未知數(shù)。是未知數(shù)。 集合元素及集合的屬性確定的所有變量集合元素及集合的屬性確定的所有變量集合QUARTERS的元素1234定義在集合QUARTERS上的屬性DEM DEM(1) DEM(2) DEM(3) DEM(4)RPRP(1)RP
23、(2)RP(3)RP(4)OPOP(1)OP(2)OP(3)OP(4)INVINV(1)INV(2)INV(3)INV(4) MODEL:!集合段:定義集合集合段:定義集合SET,元素,元素member及其屬性及其屬性attribute; SETS: QUARTERS/1,2,3,4/:DEM,RP,OP,INV; ENDSETS!目標(biāo)與約束段:沒有開始和結(jié)束標(biāo)記,順序無關(guān);目標(biāo)與約束段:沒有開始和結(jié)束標(biāo)記,順序無關(guān); MIN=SUM(QUARTERS:400*RP+450*OP+20*INV); FOR(QUARTERS(I):RP(I)1(greater than)LINGOGenerat
24、eDisply Model(Ctrl+G)自動生成行號自動生成行號可得展開式可得展開式想求解時(shí)賦值可在數(shù)據(jù)段用語句想求解時(shí)賦值可在數(shù)據(jù)段用語句 “A=?;”例例0303-1例例 建筑工地的位置建筑工地的位置(用平面坐標(biāo)用平面坐標(biāo)a, b表示,距離單位:表示,距離單位:公里公里)及水泥日用量及水泥日用量d(噸噸)下表給出。有兩個臨時(shí)料場位下表給出。有兩個臨時(shí)料場位于于P (5,1), Q (2, 7),日儲量各有日儲量各有20噸。從噸。從A, B兩料場分別兩料場分別向各工地運(yùn)送多少噸水泥,使總的噸公里數(shù)最小。兩個向各工地運(yùn)送多少噸水泥,使總的噸公里數(shù)最小。兩個新的料場應(yīng)建在何處,節(jié)省的噸公里數(shù)有
25、多大?新的料場應(yīng)建在何處,節(jié)省的噸公里數(shù)有多大?a1.258.750.55.7537.25b1.250.754.7556.57.75d3547611基本集合與派生集合基本集合與派生集合建立模型建立模型記工地的位置為記工地的位置為 ,水泥日用量為,水泥日用量為 ;料場;料場位置為位置為 ,日儲量為,日儲量為 ;從料場;從料場 向工地向工地 的的運(yùn)送量為運(yùn)送量為 。 ),(iiba6, 1,idi),(jjyx2 , 1,jejjiijc 2622112161MIN1s.t.,1,2,62,1,23ijjijijiijijijjifcxayacdicej使用現(xiàn)有臨時(shí)料場時(shí),決策變量只有使用現(xiàn)有臨時(shí)
26、料場時(shí),決策變量只有 (非負(fù)),所以這是(非負(fù)),所以這是LP模型;當(dāng)為新模型;當(dāng)為新建料場選址時(shí)決策變量為建料場選址時(shí)決策變量為 和和 ,由于目標(biāo)函數(shù),由于目標(biāo)函數(shù) 對對 是非線性的,是非線性的,所以在新建料場時(shí)是所以在新建料場時(shí)是NLP模型。先解模型。先解NLP模型,而把現(xiàn)有臨時(shí)料場的位置作模型,而把現(xiàn)有臨時(shí)料場的位置作為初始解告訴為初始解告訴LINGO。 ijcijcjjyx ,fjjyx ,本例中集合的概念本例中集合的概念利用集合的概念,可以定義需求點(diǎn)利用集合的概念,可以定義需求點(diǎn)DEMAND和供應(yīng)點(diǎn)和供應(yīng)點(diǎn)SUPPLY兩個集合,分別有兩個集合,分別有6個和個和2個元素個元素(下標(biāo)下標(biāo)
27、)。但決。但決策變量策變量(運(yùn)送量運(yùn)送量) 與集合與集合DEMAND和集合和集合SUPPLY都都有關(guān)系的。該如何定義這樣的屬性?有關(guān)系的。該如何定義這樣的屬性?ijc集合的屬性相當(dāng)于以集合的元素為下標(biāo)的數(shù)組。這里的集合的屬性相當(dāng)于以集合的元素為下標(biāo)的數(shù)組。這里的 相當(dāng)于二維數(shù)組。它的兩個下標(biāo)分別來自集合相當(dāng)于二維數(shù)組。它的兩個下標(biāo)分別來自集合DEMAND和和SUPPLY,因此可以定義一個由二元對組,因此可以定義一個由二元對組成的新的集合,然后將成的新的集合,然后將 定義成這個新集合的屬性。定義成這個新集合的屬性。ijcijcMODEL:Title Location Problem;sets:
28、demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,supply):c;endsetsdata:!locations for the demand(需求點(diǎn)的位置需求點(diǎn)的位置);a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;!quantities of the demand and supply(供需量)(供需量);d=3,5,4,7,6,11; e=20,20;enddata基本集合基本集合primary set與與派生集合派生集合derived set(定義多維數(shù)組)(定義多維數(shù)
29、組)!初始段:對集合屬性定義初值(迭代算法的迭代初值)初始段:對集合屬性定義初值(迭代算法的迭代初值);init:!initial locations for the supply(初始點(diǎn))(初始點(diǎn));x,y=5,1,2,7;endinit!Objective function(目標(biāo))(目標(biāo));OBJ min=sum(link(i,j): c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2) );!demand constraints(需求約束)(需求約束);for(demand(i):DEMAND_CON sum(supply(j):c(i,j) =d(i););!sup
30、ply constraints(供應(yīng)約束)(供應(yīng)約束);for(supply(i):SUPPLY_CON sum(demand(j):c(j,i) =e(i); );for(supply: bnd(0.5,X,8.75); bnd(0.75,Y,7.75); );ENDLINGO對數(shù)值順序按列賦值,即:對數(shù)值順序按列賦值,即:x=5,2;y=1,7;標(biāo)號自動在后加下標(biāo)標(biāo)號自動在后加下標(biāo) *_1 , _2比比free(x);free(y);要好,可減少計(jì)算工作量要好,可減少計(jì)算工作量激活全局最優(yōu)解:激活全局最優(yōu)解:LINGOOptionsGlobal SolverUse Global Solve
31、r集合段(集合段(SETS ENDSETS)數(shù)據(jù)段(數(shù)據(jù)段(DATA ENDDATA)初始段(初始段(INIT ENDINIT) 目標(biāo)與目標(biāo)與約束段約束段 局部最優(yōu):局部最優(yōu):89.8835(噸公里噸公里 ) LP:移到數(shù)據(jù)段:移到數(shù)據(jù)段LINGO模型的構(gòu)成模型的構(gòu)成(5)計(jì)算段計(jì)算段CALC:T_DEM=SUN(QUARTERS:DEM);!總需求;總需求;A_DEM=T_DEM/SIZE(QUARTERS);!平均需求;平均需求;ENDCALC在數(shù)據(jù)段輸入完成之后在正式求解模型之前對原在數(shù)據(jù)段輸入完成之后在正式求解模型之前對原始數(shù)據(jù)進(jìn)行處理,語句是始數(shù)據(jù)進(jìn)行處理,語句是順序順序執(zhí)行的,不能
32、更換執(zhí)行的,不能更換順序,只能直接使用順序,只能直接使用賦值語句賦值語句,不能包含需要經(jīng),不能包含需要經(jīng)過解方程或經(jīng)過求解優(yōu)化問題以后才能決定的變過解方程或經(jīng)過求解優(yōu)化問題以后才能決定的變量。量。 包含了兩個基本集合構(gòu)成的所有二元有序?qū)Φ呐缮藘蓚€基本集合構(gòu)成的所有二元有序?qū)Φ呐缮戏Q為集合稱為稠密集合稠密集合(簡稱稠集簡稱稠集)。有時(shí)候,在實(shí)際問題中,。有時(shí)候,在實(shí)際問題中,一些屬性一些屬性(數(shù)組數(shù)組) 只在笛卡兒積的一個真子集合上定義,只在笛卡兒積的一個真子集合上定義,這種派生集合稱為這種派生集合稱為稀疏集合稀疏集合(簡稱疏集簡稱疏集)。稠密集合與稀疏集合稠密集合與稀疏集合最短路問題
33、最短路問題例例 (最短路問題最短路問題) 在縱橫交錯的公路網(wǎng)中,貨車司機(jī)希望在縱橫交錯的公路網(wǎng)中,貨車司機(jī)希望找到一條從一個城市到另一個城市的最短路找到一條從一個城市到另一個城市的最短路. 下圖表示的下圖表示的是公路網(wǎng)是公路網(wǎng), 節(jié)點(diǎn)表示貨車可以??康某鞘泄?jié)點(diǎn)表示貨車可以??康某鞘?弧上的權(quán)表示弧上的權(quán)表示兩個城市之間的距離兩個城市之間的距離(百公里百公里). 那么那么,貨車從城市貨車從城市S出發(fā)到出發(fā)到達(dá)城市達(dá)城市T,如何選擇行駛路線如何選擇行駛路線,使所經(jīng)過的路程最短使所經(jīng)過的路程最短?STA1 A2 A3 B1 B2 C1 C2 633665874678956分析分析 STA1 A2 A
34、3 B1 B2 C1 C2 633665874678956此例中可把從此例中可把從S到到T的行駛過程分成的行駛過程分成4個階段個階段,即即 SAi (i=1,2或或3), Ai Bj(j=1或或2), Bj Ck(k=1或或2), Ck T. 記記d(Y,X)為城市為城市Y與城市與城市X之間的直接距離之間的直接距離(若這兩個城市若這兩個城市之間沒有道路直接相連,則可以認(rèn)為直接距離為之間沒有道路直接相連,則可以認(rèn)為直接距離為),用,用L(X)表示城市表示城市S到城市到城市X的最優(yōu)行駛路線的路長的最優(yōu)行駛路線的路長: 0;1min,.2YXL SL XL Yd Y XXS本例的計(jì)算本例的計(jì)算 12
35、31123321233112221221216,3,3;min6,8,7107;min5,6,474;min6,8158;min7,9169;min5,6205.L AL AL AL BL AL AL AL AL BL AL AL AL AL CL BL BL BL CL BL BL BL TL CL CL CSTA1 A2 A3 B1 B2 C1 C2 633665874678956所以, 從S到T的最優(yōu)行駛路線的路長為20. 進(jìn)一步分析以上求解過程, 可以得到從S到T的最優(yōu)行駛路線為S A3 B2 C1 T.這種計(jì)算方法在數(shù)學(xué)上稱為動態(tài)規(guī)劃(Dynamic Programming) mod
36、el:SETS: CITIES /S,A1,A2,A3,B1,B2,C1,C2,T/: L; !屬性屬性L(i)表示城市表示城市S S到城市到城市i的最優(yōu)行駛路線的路長的最優(yōu)行駛路線的路長; ; ROADS(CITIES, CITIES)/ !派生集合派生集合ROADS表示的是網(wǎng)絡(luò)中的道路(弧)表示的是網(wǎng)絡(luò)中的道路(?。? S,A1 S,A2 S,A3 !由于并非所有城市間都有道路直接連接,所以將弧具體列出由于并非所有城市間都有道路直接連接,所以將弧具體列出; A1,B1 A1,B2 A2,B1 A2,B2 A3,B1 A3,B2 B1,C1 B1,C2 B2,C1 B2,C2 C1,T C2
37、,T/: D; !屬性屬性D( i, j) 是城市是城市i到到j(luò)的直接距離(已知)的直接距離(已知);ENDSETSDATA: D = 6 3 3 6 5 8 6 7 4 6 7 8 9 5 6; L= 0, , , , , , , , ; !因?yàn)橐驗(yàn)長(S)=0;ENDDATA FOR( CITIES( i)|i#GT#index(S): !這行中這行中index(S)index(S)可以直接寫成可以直接寫成11; L( i) = MIN( ROADS( j, i): L( j) + D( j, i); ); !這就是前面寫出的最短路關(guān)系式這就是前面寫出的最短路關(guān)系式;endend定義稀疏集
38、合方法:枚舉法定義稀疏集合方法:枚舉法CITIES(i)中的)中的 i 指元素在集合中的位置順序,指元素在集合中的位置順序, index(S)即即:index(CITIES,S),S在在CITIES中的索引值。中的索引值。沒有目標(biāo)函數(shù)是允許的沒有目標(biāo)函數(shù)是允許的 0;1min,.2YXL SL XL Yd Y XXS例例 某班某班8名同學(xué)準(zhǔn)備分成名同學(xué)準(zhǔn)備分成4個調(diào)查隊(duì)個調(diào)查隊(duì)(每隊(duì)兩人每隊(duì)兩人)前往前往4個個地區(qū)進(jìn)行社會調(diào)查。這地區(qū)進(jìn)行社會調(diào)查。這8名同學(xué)兩兩之間組隊(duì)的效率如名同學(xué)兩兩之間組隊(duì)的效率如下表所示下表所示(由于對稱性,只列出了嚴(yán)格上三角部分由于對稱性,只列出了嚴(yán)格上三角部分),問
39、,問如何組隊(duì)可以使總效率最高?如何組隊(duì)可以使總效率最高?學(xué)生S1S2S3S4S5S6S7S8S1-9342156S2-173521S3-44292S4-1552S5-876S6-23S7-4 元素過濾法元素過濾法組隊(duì)問題組隊(duì)問題分析分析 這是一個匹配(MATCHING)問題。把上表的效率矩陣記為BENEFIT(由于對稱性,這個矩陣只有嚴(yán)格上三角部分共28個數(shù)取非零值)。 用MATCH(Si,Sj)=1表示同學(xué)Si,Sj組成一隊(duì) ,而MATCH(Si,Sj)=0表示Si,Sj不組隊(duì)。由于對稱性,只需考慮ij共28個0-1變量(而不是全部32個變量)。 顯然,目標(biāo)函數(shù)正好是BENEFIT(Si,S
40、j)*MATCH(Si,Sj)對I,j之和。 約束條件是每個同學(xué)只能(而且必須在)某一組,即對于任意i有:只要屬性MATCH的某個下標(biāo)為i就加起來,此和應(yīng)該等于1。 由上面的分析,因此,完整的數(shù)學(xué)模型如下(顯然,這是一個0-1線性規(guī)劃): 31.0)(21,2,3,4,I 1,)(. .1 ),(),(II,或J,KMATCHJ,KMATCHtsJI*MATCHJIBENEFITMinKJJIMODEL:SETS: STUDENTS /S1.S8/; PAIRS( STUDENTS, STUDENTS) | &2 #GT# &1: BENEFIT, MATCH;ENDSETSD
41、ATA: BENEFIT = 9 3 4 2 1 5 6 1 7 3 5 2 1 4 4 2 9 2 1 5 5 2 8 7 6 2 3 4;ENDDATAobjective MAX = SUM( PAIRS( I, J): BENEFIT( I, J) * MATCH( I, J);FOR(STUDENTS( I): constraints SUM( PAIRS( J, K) | J #EQ# I #OR# K #EQ# I: MATCH( J, K) =1);FOR(PAIRS( I, J): BIN( MATCH( I, J);END第二個父集合的索引值大于第一個父集合的索引值第二個父集
42、合的索引值大于第一個父集合的索引值LINGOSolution經(jīng)驗(yàn)介紹經(jīng)驗(yàn)介紹很多時(shí)候是程序?qū)懗鰜砹耍怯泻芏噱e誤,怎么很多時(shí)候是程序?qū)懗鰜砹?,但是有很多錯誤,怎么進(jìn)行程序的進(jìn)行程序的調(diào)試調(diào)試呢?可按下面步驟進(jìn)行:呢?可按下面步驟進(jìn)行:1.直接點(diǎn)擊運(yùn)行,如果出錯會彈出錯誤提示,根據(jù)提直接點(diǎn)擊運(yùn)行,如果出錯會彈出錯誤提示,根據(jù)提示做相應(yīng)的修改;示做相應(yīng)的修改;2.可以用可以用“!”把約束變成說明語句,而把這條語句把約束變成說明語句,而把這條語句屏蔽掉,縮小尋找出錯的范圍;屏蔽掉,縮小尋找出錯的范圍;3.可以邊寫程序邊運(yùn)行,保證每行書寫都是正確的程可以邊寫程序邊運(yùn)行,保證每行書寫都是正確的程序;序
43、;一般容易一般容易出錯出錯的地方有:的地方有:定義了多個長度一樣的集合,而在使用中區(qū)分不明確;定義了多個長度一樣的集合,而在使用中區(qū)分不明確;定義了同名的屬性;定義了同名的屬性; 掉了或多了括號;掉了或多了括號;分號不是英文半角輸入;使用的字母沒有定義;分號不是英文半角輸入;使用的字母沒有定義;循環(huán)語句中元素下標(biāo)顛倒或者不明;循環(huán)語句中元素下標(biāo)顛倒或者不明;約束錯誤變成不可行或無界;約束錯誤變成不可行或無界;關(guān)系運(yùn)算符(如關(guān)系運(yùn)算符(如“=”)使用邏輯運(yùn)算符(如)使用邏輯運(yùn)算符(如“#EQ#”););使用了非使用了非LINGO語言的輸入;語言的輸入;(比如比如%引導(dǎo)說明語句)引導(dǎo)說明語句)函數(shù)
44、調(diào)用錯誤;函數(shù)調(diào)用錯誤;函數(shù)的括號寫錯了地方等函數(shù)的括號寫錯了地方等.集合的不同類型及其關(guān)系集合的不同類型及其關(guān)系 集合集合派生集合派生集合稀疏集合稀疏集合稠密集合稠密集合基本集合基本集合元素列表法元素列表法 元素過濾法元素過濾法 直接列舉法直接列舉法 隱式列舉法隱式列舉法 集合的使用小結(jié)集合的使用小結(jié)基本集合的定義語法基本集合的定義語法 基本集合的定義格式為基本集合的定義格式為(方括號方括號“ ”中的內(nèi)容是可選項(xiàng)中的內(nèi)容是可選項(xiàng), 可以沒可以沒有有):setname /member_list/ : attribute_list;其中其中setname為定義的集合名,為定義的集合名,membe
45、r_list為元素列表,為元素列表,attribute_list為屬性列表。元素列表可以采用顯式列舉法為屬性列表。元素列表可以采用顯式列舉法(即直接即直接將所有元素全部列出將所有元素全部列出,元素之間用逗號或空格分開元素之間用逗號或空格分開),也可以采用隱也可以采用隱式列舉法。隱式列舉法可以有幾種不同格式,式列舉法。隱式列舉法可以有幾種不同格式,類型類型隱式列舉格式隱式列舉格式示例示例示例集合表示的元素示例集合表示的元素?cái)?shù)字型數(shù)字型1.n1.51, 2, 3, 4, 5字符字符-數(shù)字型數(shù)字型stringM.stringNCar101.car208Car101, car102, , car208
46、日期(星期)型日期(星期)型dayM.dayNMON.FRIMON, TUE, WED, THU, FRI月份型月份型monthM.monthNOCT.JANOCT, NOV, DEC, JAN年份年份-月份型月份型monthYearM.monthYearNOCT2001.JAN2002OCT2001, NOV2001, DEC2001, JAN2002 元素列表和屬性列表都是可選的。 當(dāng)屬性列表不在集合定義中出現(xiàn)時(shí),這樣的集合往往只是為了將來在程序中作為一個循環(huán)變量來使用,或者作為構(gòu)造更復(fù)雜的派生集合的父集合使用(匹配問題中的集合STUDENTS沒有屬性列表)。 而當(dāng)元素列表不在基本集合的定
47、義中出現(xiàn)時(shí),則必須在程序的數(shù)據(jù)段以賦值語句的方式直接給出元素列表。 例如,前例中SAILCO公司決定四個季度的帆船生產(chǎn)量模型的集合段和數(shù)據(jù)段可以分別改為:SETS: QUARTERS:DEM,RP,OP,INV; !注意沒有給出集合的元素列表;ENDSETSDATA: QUARTERS DEM=1 40 2 60 3 75 4 25; !注意LINGO按列賦值的特點(diǎn);ENDDATA基本集合的定義語法基本集合的定義語法 帆船生產(chǎn)量模型的源程序匹配問題的源程序派生集合的定義語法派生集合的定義語法 派生集合的定義格式為(方括號“ ”中的內(nèi)容是可選項(xiàng), 可以沒有): setname(parent_se
48、t_list) /member_list/ : attribute_list;與基本集合的定義相比較多了一個parent_set_list(父集合列表)。父集合列表中的集合(如 set1,set2,等)稱為派生集合setname的父集合,它們本身也可以是派生集合。當(dāng)元素列表(member_list)不在集合定義中出現(xiàn)時(shí),還可以在程序的數(shù)據(jù)段以賦值語句的方式給出元素列表;若在程序的數(shù)據(jù)段也不以賦值語句的方式給出元素列表,則認(rèn)為定義的是稠密集合,即父集合中所有元素的有序組合(笛卡兒積)都是setname的元素。當(dāng)元素列表在集合定義中出現(xiàn)時(shí),又有“元素列表法”(直接列出元素)和“元素過濾法”(利用過
49、濾條件)兩種不同方式。 當(dāng)屬性列表不在集合定義中出現(xiàn)時(shí),這樣的集合往當(dāng)屬性列表不在集合定義中出現(xiàn)時(shí),這樣的集合往往只是為了將來在程序中作為一個循環(huán)變量來使用,或往只是為了將來在程序中作為一個循環(huán)變量來使用,或者構(gòu)造更復(fù)雜的派生集合的父集合使用。者構(gòu)造更復(fù)雜的派生集合的父集合使用。 當(dāng)元素列表不再基本集合的定義中出現(xiàn)時(shí),則必須當(dāng)元素列表不再基本集合的定義中出現(xiàn)時(shí),則必須在程序的數(shù)據(jù)段以賦值語句的方式直接給出元素列表。在程序的數(shù)據(jù)段以賦值語句的方式直接給出元素列表。SETS:QUARERS:DEM,RP,OP,INV;ENDSETSDATA:QUARTERS DEM=1 40 2 60 3 75
50、4 25;ENDDATA算術(shù)運(yùn)算符算術(shù)運(yùn)算符加、減、乘、除、乘方等數(shù)學(xué)運(yùn)算加、減、乘、除、乘方等數(shù)學(xué)運(yùn)算(即數(shù)與數(shù)之即數(shù)與數(shù)之間的運(yùn)算,運(yùn)算結(jié)果也是數(shù)間的運(yùn)算,運(yùn)算結(jié)果也是數(shù))。LINGO中的算術(shù)運(yùn)算符有以下中的算術(shù)運(yùn)算符有以下5種:種:+(加法),(加法),(減法或負(fù)號),(減法或負(fù)號),*(乘法),(乘法),/(除法),(除法), (求冪求冪)。運(yùn)算符及其優(yōu)先級運(yùn)算符及其優(yōu)先級邏輯運(yùn)算符邏輯運(yùn)算符運(yùn)算結(jié)果只有運(yùn)算結(jié)果只有“真真”(TRUE)和和“假假”(FALSE)兩個值兩個值(稱為稱為“邏輯值邏輯值”),LINGO中用數(shù)字中用數(shù)字1代表代表TRUE,其他值,其他值(典型典型的值是的值是0
51、)都是都是FALSE。在在LINGO中,邏輯運(yùn)算中,邏輯運(yùn)算(表達(dá)式表達(dá)式)通常作為過濾條件使用通常作為過濾條件使用,邏邏輯運(yùn)算符有輯運(yùn)算符有9種,可以分成兩類:種,可以分成兩類:#AND#(與與),#OR#(或或),#NOT#(非非):邏輯值之間的運(yùn)算,它邏輯值之間的運(yùn)算,它們操作的對象本身已經(jīng)是邏輯值或邏輯表達(dá)式,計(jì)算結(jié)果們操作的對象本身已經(jīng)是邏輯值或邏輯表達(dá)式,計(jì)算結(jié)果也是邏輯值。也是邏輯值。#EQ#(等于等于),#NE#(不等于不等于),#GT#(大于大于),#GE#(大于等大于等于于),#LT#(小于小于),#LE#(小于等于小于等于):是:是“數(shù)與數(shù)之間數(shù)與數(shù)之間”的比較的比較,也
52、就是它們操作的對象本身必須是兩個數(shù)也就是它們操作的對象本身必須是兩個數(shù), 計(jì)算得到的結(jié)果計(jì)算得到的結(jié)果是邏輯值。是邏輯值。關(guān)系運(yùn)算符關(guān)系運(yùn)算符表示是表示是“數(shù)與數(shù)之間數(shù)與數(shù)之間”的大小關(guān)系,在的大小關(guān)系,在LINGO中用來表中用來表示優(yōu)化模型的約束條件。示優(yōu)化模型的約束條件。LINGO中關(guān)系運(yùn)算符有中關(guān)系運(yùn)算符有3種:種:(即即(即即=,大于等于,大于等于)(在優(yōu)化模型中在優(yōu)化模型中約束一般沒有嚴(yán)格小于、嚴(yán)格大于關(guān)系約束一般沒有嚴(yán)格小于、嚴(yán)格大于關(guān)系)運(yùn)算符的優(yōu)先級運(yùn)算符的優(yōu)先級 優(yōu)先級優(yōu)先級運(yùn)算符運(yùn)算符最高最高#NOT# (負(fù)號)(負(fù)號)* /+ (減法)(減法)#EQ# #NE# #GT#
53、 #GE# #LT# #LE# #AND# #OR#最低最低(=)三類運(yùn)算符:三類運(yùn)算符: 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 邏輯運(yùn)算符邏輯運(yùn)算符 關(guān)系運(yùn)算符關(guān)系運(yùn)算符在LINGO中建立優(yōu)化模型時(shí)可以引用大量的內(nèi)部函數(shù),這些函數(shù)以” 打頭。LINGO中包括相當(dāng)豐富的數(shù)學(xué)函數(shù),這些函數(shù)的用法非常簡單,下面一一列出。ABS(X):絕對值函數(shù),返回X的絕對值。COS(X):余弦函數(shù),返回X的余弦值(X的單位是弧度)。EXP(X):指數(shù)函數(shù),返回eXFLOOR(X):取整函數(shù),返回X的整數(shù)部分(向最靠近0的方向取整)。LGM(X) :返回X的伽瑪(gamma)函數(shù)的自然對數(shù)值(當(dāng)X為整數(shù)時(shí)LGM(X) = LOG
54、(X-1)!;當(dāng)X不為整數(shù)時(shí),采用線性插值得到結(jié)果)。LOG(X):自然對數(shù)函數(shù),返回X的自然對數(shù)值。的值(其中e=2.718281.)?;镜臄?shù)學(xué)函數(shù)基本的數(shù)學(xué)函數(shù)基本的數(shù)學(xué)函數(shù)基本的數(shù)學(xué)函數(shù) MOD(X,Y):模函數(shù),返回X對Y取模的結(jié)果,即X除以Y的余數(shù),這里X和Y應(yīng)該是整數(shù)。POW(X,Y):指數(shù)函數(shù),返回XY的值。SIGN(X):符號函數(shù),返回X的符號值(X = 0時(shí)返回+1)。SIN(X):正弦函數(shù),返回X的正弦值(X的單位是弧度)。SMAX(list):最大值函數(shù),返回一列數(shù)(list)的最大值。SMIN(list):最小值函數(shù),返回一列數(shù)(list)的最小值。SQR(X):平方
55、函數(shù),返回X的平方(即X*X)的值。SQRT(X):開平方函數(shù),返回X的正的平方根的值。TAN(X):正切函數(shù),返回X的正切值(X的單位是弧度)。集合循環(huán)函數(shù)集合循環(huán)函數(shù) 集合上的元素(下標(biāo))進(jìn)行循環(huán)操作的函數(shù), 一般用法如下:function(setname ( set_index_list) | condition : expression_list);其中:function 集合函數(shù)名,FOR、MAX、MIN、PROD、SUM之一; Setname 集合名;set_index_list 集合索引列表(不需使用索引時(shí)可以省略);Condition 用邏輯表達(dá)式描述的過濾條件(通常含有索引,
56、無條件時(shí)可以省略);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(集合屬性的求和函數(shù)):返回集合setname上的表達(dá)式的和。集合循環(huán)函數(shù)集合循環(huán)函數(shù) INDEX( set
57、_name, primitive_set_element) 給出元素primitive_set_element在集合set_name中的索引值(即按定義集合時(shí)元素出現(xiàn)順序的位置編號)。省略set_name,LINGO按模型中定義的集合順序找到第一個含有該元素的集合,并返回索引值。如果沒有找到該元素,則出錯。 注: Set_name的索引值是正整數(shù)且只能位于1和元素個數(shù)之間。例:定義一個女孩姓名集合(GIRLS)和男孩姓名集合(BOYS) :SETS: GIRLS /DEBBIE, SUE, ALICE/; BOYS /BOB, JOE, SUE, FRED/;ENDSETS 都有SUE, GI
58、RLS在BOYS前定義,調(diào)用INDEX(SUE)將返2,相當(dāng)于INDEX(GIRLS,SUE) 。要找男孩中名為SUE的小孩的索引,應(yīng)該使用INDEX(BOYS, SUE),返3。集合操作函數(shù)集合操作函數(shù) 集合操作函數(shù)集合操作函數(shù) IN( set_name, primitive_index_1 , primitive_index_2 .) 判斷一個集合中是否含有某個索引值。如果集合set_name中包含由索引primitive_index_1 , primitive_index_2 .所對應(yīng)元素,則返回1(邏輯值“真”),否則返回0(邏輯值“假”)。索引用“&1”、“&2”或I
59、NDEX函數(shù)等形式給出,這里“&1”表示對應(yīng)于第1個父集合的元素的索引值,“&2”表示對應(yīng)于第2個父集合的元素的索引值。 例:定義一個集合STUDENTS(基本集合),派生出集合PASSED和FAILED,定義: SETS: STUDENTS / ZHAO, QIAN, SUN, LI/:; PASSED( STUDENTS) /QIAN,SUN/:; FAILED( STUDENTS) | #NOT# IN( PASSED, &1):; ENDSETS 如果集合C是由集合A,B派生的,例如: SETS: A / 1.3/:; B / X Y Z/:; C( A, B)
60、 / 1,X 1,Z 2,Y 3,X/:; ENDSETS 判斷C中是否包含元素(2,Y),則可以利用以下語句: X = IN( C, INDEX( A, 2), INDEX( B, Y);對本例,結(jié)果是X=1(真)。 注:X既是集合B的元素,又對X賦值1,在LINGO中這種表達(dá)是允許的,因?yàn)榍罢呤羌系脑?,后者是變量,邏輯上沒有關(guān)系(除了同名外),所以不會出現(xiàn)混淆。集合操作函數(shù)集合操作函數(shù) IN( set_name, primitive_index_1 , primitive_index_2 .)WRAP(I,N) 此函數(shù)對此函數(shù)對N1無定義無定義 當(dāng)當(dāng)I位于區(qū)間位于區(qū)間1, N內(nèi)時(shí)直接返回內(nèi)時(shí)直接返回I;一般地,返回;一般地,返回 J =
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購買化工產(chǎn)品合同書
- 2025年華東師大版八年級生物下冊階段測試試卷含答案
- 2025年度二零二五版創(chuàng)城墻面粉刷項(xiàng)目經(jīng)費(fèi)監(jiān)管施工合同3篇
- 2025年牛津上海版高一英語下冊階段測試試卷含答案
- 醫(yī)療器械保修合同
- 二零二五年度金屬礦產(chǎn)品倉儲與分銷合同3篇
- 2025年滬教新版九年級歷史上冊月考試卷含答案
- 2025年外研版三年級起點(diǎn)四年級語文下冊階段測試試卷
- 2025年粵人版八年級生物下冊階段測試試卷
- 個性化出軌離婚合同模板2024年版版B版
- 玻璃安裝應(yīng)急預(yù)案
- 道德與法治中考一輪總復(fù)習(xí)課件 課時(shí)8 走向未來的少年 (九下第三單元)
- 五十音圖+あ行+課件【高效備課精研+知識精講提升】 初中日語人教版第一冊
- 早爆、拒爆事故預(yù)防與處理
- 七年級美術(shù)上冊-向日葵-湘教版優(yōu)秀PPT
- 人教精通版(三起點(diǎn))小學(xué)英語四年級下冊同步練習(xí)試題(含答案)全套
- GB/T 5009.15-2003食品中鎘的測定
- GB/T 4795-1999船用艙底油污水分離裝置
- GB/T 34370.2-2017游樂設(shè)施無損檢測第2部分:目視檢測
- GB/T 2463.2-1996硫鐵礦和硫精礦中全鐵含量的測定第2部分:三氯化鈦-重鉻酸鉀容量法
- 基于核心素養(yǎng)的單元整體教學(xué)課件(共30張ppt)
評論
0/150
提交評論