版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 1、目標(biāo)函數(shù)以目標(biāo)函數(shù)以“max”或或“min”開頭,開頭,max(或(或min)與目標(biāo)函數(shù)表達(dá)式之間不能有)與目標(biāo)函數(shù)表達(dá)式之間不能有“=”。lindo常用的基本語法常用的基本語法 2、變量名的長度不超過變量名的長度不超過8個字符個字符,并且必須以英,并且必須以英文字母開頭。文字母開頭。英文字母不區(qū)分大小寫英文字母不區(qū)分大小寫。3、目標(biāo)函數(shù)與約束條件之間必須用目標(biāo)函數(shù)與約束條件之間必須用“ st ”分開,分開,并且并且“ st ”單獨一行。單獨一行。4、目標(biāo)函數(shù)、各約束條件都必須以、目標(biāo)函數(shù)、各約束條件都必須以“回車鍵回車鍵”結(jié)束,并且都應(yīng)該是結(jié)束,并且都應(yīng)該是經(jīng)過化簡后的表達(dá)式,經(jīng)過化簡
2、后的表達(dá)式,所所有字符必須是英文狀態(tài)下輸入的。有字符必須是英文狀態(tài)下輸入的。5、lindo軟件已規(guī)定所有的決策變量均為非負(fù)數(shù)。軟件已規(guī)定所有的決策變量均為非負(fù)數(shù)。6、變量與其系數(shù)之間可以有空格,乘號必須省變量與其系數(shù)之間可以有空格,乘號必須省略,式中不能有括號略,式中不能有括號;約束條件的右端不能有決約束條件的右端不能有決策變量策變量, 左端不能有常數(shù)項左端不能有常數(shù)項;沒有下標(biāo);沒有下標(biāo), 式中不能式中不能有分母,有分母,式中不能有式中不能有“逗號逗號”和和“句號句號”等等(說明說明語句除外語句除外) 。常用的基本語法常用的基本語法 7 7、約束條件中的符號、約束條件中的符號“”用用 “ “
3、= =”表示,表示, “”用用“”和和“ = ”或或“”表示,表示,“”用用“=”或或 “”表示。表示。 (7) 計算機把輸入程序中的第一行默認(rèn)為目標(biāo)函數(shù),計算機把輸入程序中的第一行默認(rèn)為目標(biāo)函數(shù),其它各約束條件可以用其它各約束條件可以用_1,_2標(biāo)明它的行號。標(biāo)明它的行號。 (8) 雖然決策變量可以放在約束條件的右端,但為雖然決策變量可以放在約束條件的右端,但為了提高了提高Lingo的求解效率,應(yīng)盡可能采用的求解效率,應(yīng)盡可能采用線性表達(dá)線性表達(dá)式式定義目標(biāo)函數(shù)和約束條件。定義目標(biāo)函數(shù)和約束條件。(9) 在在lingo中以感嘆號中以感嘆號“!”開始的是開始的是說明語句說明語句,并且說明語句也
4、需要以分號并且說明語句也需要以分號“;”結(jié)束,并且除結(jié)束,并且除了了“!”和和“;”之外,說明語句中的其它字符之外,說明語句中的其它字符可以是任何字符??梢允侨魏巫址?。LINGO軟件的使用規(guī)則(軟件的使用規(guī)則(4)(10) lingo模型是由一系列語句組成的,即每個語模型是由一系列語句組成的,即每個語句是組成句是組成lingo模型的基本部分,每個語句(目標(biāo)、模型的基本部分,每個語句(目標(biāo)、約束、說明語句等)都是以分號約束、說明語句等)都是以分號“;”結(jié)尾的,結(jié)尾的,編寫程序時應(yīng)注意保持模型的可讀性。編寫程序時應(yīng)注意保持模型的可讀性。例如:例如:雖然雖然lingo允許每行寫多個語句,也允許一允許
5、每行寫多個語句,也允許一個語句寫成幾行,個語句寫成幾行, 但最好一行只寫一個語句,但最好一行只寫一個語句, 并且并且按照語句的嵌套關(guān)系對語句安排適當(dāng)?shù)目s進(jìn),增按照語句的嵌套關(guān)系對語句安排適當(dāng)?shù)目s進(jìn),增強層次感。強層次感。LINGO軟件的軟件的使用規(guī)則使用規(guī)則(5)(11) 在在lingo中,以中,以“”開頭的都是函數(shù)調(diào)用,開頭的都是函數(shù)調(diào)用,其中有:整型變量函數(shù)(其中有:整型變量函數(shù)(bin表示表示0-1變量變量,gin表示表示整數(shù)變量整數(shù)變量) 和上下界限定等函數(shù)和上下界限定等函數(shù)(free表示去掉非負(fù)限制,表示去掉非負(fù)限制,bnd限定變量的限定變量的上限、下限)。上限、下限)。 這些變量的
6、限制要這些變量的限制要放在放在“end”之前,之前,否則這否則這些變量的限制將不起作用些變量的限制將不起作用 。如果如果x1是整數(shù)變量,則應(yīng)在是整數(shù)變量,則應(yīng)在end之前之前寫命令:寫命令:gin(x1);如果如果x1是是0-1變量,則應(yīng)在變量,則應(yīng)在end之前之前寫命令:寫命令:bin( x1); 如果所有的決策變量共有如果所有的決策變量共有6個,并且所有的決個,并且所有的決策變量都是整數(shù),策變量都是整數(shù),不能寫命令不能寫命令: bin(6);等其它的命令等其它的命令 如果如果x1,x2都是整數(shù)變量,并且不是所有的變都是整數(shù)變量,并且不是所有的變量都是整數(shù)變量,則要寫成量都是整數(shù)變量,則要寫
7、成gin (x1); gin (x2);不能不能寫成寫成gin (x1,x2) 或其它的命令或其它的命令練習(xí):練習(xí):0,6 242 . . 2max 132121321321xxxxxxxxtsxxxZ、0,15362 . . 3min 221212121xxxxxxtsxxZ、0,93 62 . . 52min3213232121xxxxxxxtsxxZ、分別用分別用lindo、lingo編寫下列數(shù)學(xué)模型編寫下列數(shù)學(xué)模型的程序的程序(1)可以用于求)可以用于求線性規(guī)劃線性規(guī)劃及及非線性規(guī)劃非線性規(guī)劃問問題,包括非線性整數(shù)規(guī)劃問題。題,包括非線性整數(shù)規(guī)劃問題。2、lingo的優(yōu)點的優(yōu)點(2)l
8、ingo包含內(nèi)置的建模語言(常稱矩陣包含內(nèi)置的建模語言(常稱矩陣生成器),允許以簡練、直觀的方式描述生成器),允許以簡練、直觀的方式描述較大規(guī)模的優(yōu)化模型(成千萬個約束條件較大規(guī)模的優(yōu)化模型(成千萬個約束條件和變量),和變量), 模型中所需的數(shù)據(jù)可以用一定格模型中所需的數(shù)據(jù)可以用一定格式保存在獨立的文件中,需要時再讀取數(shù)據(jù)。式保存在獨立的文件中,需要時再讀取數(shù)據(jù)。 在在lindo中的目標(biāo)函數(shù)最優(yōu)值、最優(yōu)解與靈敏度中的目標(biāo)函數(shù)最優(yōu)值、最優(yōu)解與靈敏度分析是一起顯示出來,分析是一起顯示出來, 3、 lingo中的靈敏度分析中的靈敏度分析 而在而在lingo中,最優(yōu)解、最中,最優(yōu)解、最優(yōu)值與靈敏度分析
9、是分別用不同的命令顯示出來。優(yōu)值與靈敏度分析是分別用不同的命令顯示出來。 lingo中的靈敏度分析的數(shù)據(jù)輸出結(jié)果與中的靈敏度分析的數(shù)據(jù)輸出結(jié)果與lindo中的靈敏性分析中輸出結(jié)果是相同的。中的靈敏性分析中輸出結(jié)果是相同的。 因為因為lingo的求解結(jié)果中是沒有靈敏度分析的,的求解結(jié)果中是沒有靈敏度分析的,所以如果需要靈敏度分析的數(shù)據(jù),可以通過修改所以如果需要靈敏度分析的數(shù)據(jù),可以通過修改選項來實現(xiàn)。選項來實現(xiàn)。 先修改系統(tǒng)選項,啟動靈敏度分析先修改系統(tǒng)選項,啟動靈敏度分析通過修改選項得到靈敏度分析數(shù)據(jù)的步驟:通過修改選項得到靈敏度分析數(shù)據(jù)的步驟: 執(zhí)行執(zhí)行 “ LINGO/ options ”
10、 菜單命令彈出菜單命令彈出 “選項選項” 對話框,在對話框,在“ General solver ”選項卡選項卡中,中,將其中左邊列的第二個選項將其中左邊列的第二個選項 “ Dual compulations ”(對偶計算)選項的默認(rèn)設(shè)置(對偶計算)選項的默認(rèn)設(shè)置 “prices”改為改為 “ prices and Ranges ”(價格及范圍)后,(價格及范圍)后,先對規(guī)劃問題求解一次。先對規(guī)劃問題求解一次。 執(zhí)行執(zhí)行“LINGO/Range”菜單命令,運行后計算菜單命令,運行后計算機則顯示只有靈敏度分析的數(shù)據(jù)。機則顯示只有靈敏度分析的數(shù)據(jù)。 一般情況下,一般情況下,lingo得到的都是局部最
11、優(yōu)得到的都是局部最優(yōu)解,要得到全局最優(yōu)解,解,要得到全局最優(yōu)解, 激活全局最優(yōu)求解程序的步驟激活全局最優(yōu)求解程序的步驟 則要激活全局最優(yōu)求解則要激活全局最優(yōu)求解程序,程序,方法如下:方法如下: 執(zhí)行執(zhí)行 “LINGO/Options” 菜單命令彈出菜單命令彈出 “選項框選項框” 對話框,對話框, 在在 “Global Solver” 選項選項卡上選擇卡上選擇 “Use Global Solver” 點確定即可。點確定即可。 由于全局最優(yōu)求解程序花費的時間可能由于全局最優(yōu)求解程序花費的時間可能是很長的,所以為了減少計算工作量,我們是很長的,所以為了減少計算工作量,我們應(yīng)該盡量對變量等做進(jìn)一步的限
12、制。應(yīng)該盡量對變量等做進(jìn)一步的限制。 1、運算符、運算符4.2.2 運算符及優(yōu)先級運算符及優(yōu)先級(1)算術(shù)運算符:)算術(shù)運算符: +加加 -減減 *乘乘 /除除 乘方乘方 (開方)(開方)(2)邏輯運算符:邏輯運算符: 邏輯運算結(jié)果只有邏輯運算結(jié)果只有真與假真與假,在,在lingo中用中用1和和0表示,邏輯運算符(表達(dá)式)通常作為表示,邏輯運算符(表達(dá)式)通常作為過濾條件過濾條件使用。使用。 #and# 與,與,#or# 或,或,#not# 非非 #eq#等于,等于,#ne#不等于,不等于,#gt#大于,大于, #ge#大于等于,大于等于,#lt#小于,小于, #le#小于等于小于等于 即:即
13、:g 大于大于, e 等于等于, l 小于小于, t 不等于不等于(3)關(guān)系運算符)關(guān)系運算符2、運算符的優(yōu)先級、運算符的優(yōu)先級(或(或(或或=) #not# (負(fù)號負(fù)號) * / + (減法減法) #eq#,#ne#,#gt#,#ge#,#lt#,#le#and# 與,與,#or# = 高高 低低 sqrt(x) 4.2.3 常用的函數(shù)常用的函數(shù) 在在Lingo中,所有的系統(tǒng)函數(shù)都必須是以中,所有的系統(tǒng)函數(shù)都必須是以“”開頭。開頭。1、數(shù)學(xué)函數(shù)、數(shù)學(xué)函數(shù)abs(x) 求絕對值函數(shù),求絕對值函數(shù), 返回返回x的絕對值的絕對值 cos(x) 求余弦函數(shù),返回求余弦函數(shù),返回x的余弦值,的余弦值,
14、 x的單位是弧度的單位是弧度exp(x) 計算計算e x 的值的值log(x) 計算計算lnx 的值的值pow(x,y) 計算計算x y 的值的值sqr(x) 計算計算x的平方的平方計算計算x的平方根的平方根size(A) 求矩陣求矩陣A的元素個數(shù)的元素個數(shù)2、集合循環(huán)函數(shù)集合循環(huán)函數(shù) 集合循環(huán)函數(shù)是指對集合中的所有元素集合循環(huán)函數(shù)是指對集合中的所有元素(下標(biāo)下標(biāo))進(jìn)行循環(huán)操作的函數(shù),如進(jìn)行循環(huán)操作的函數(shù),如sum,for等。等。 具體的使用格式:具體的使用格式:循環(huán)函數(shù)名循環(huán)函數(shù)名(循環(huán)變量所在的集循環(huán)變量所在的集 (循環(huán)變量循環(huán)變量)過濾條件:循環(huán)表達(dá)式過濾條件:循環(huán)表達(dá)式) 其中,如果在
15、操作過程中沒有過濾條件,可其中,如果在操作過程中沒有過濾條件,可以省略過濾條件;如果表達(dá)式是對集合的所有循以省略過濾條件;如果表達(dá)式是對集合的所有循環(huán)變量進(jìn)行操作,循環(huán)變量也可以省略。環(huán)變量進(jìn)行操作,循環(huán)變量也可以省略。集合循環(huán)函數(shù):集合循環(huán)函數(shù):for 是對集合的每個元素獨立地操作一次表是對集合的每個元素獨立地操作一次表達(dá)式達(dá)式 , 通常用于優(yōu)化問題的通常用于優(yōu)化問題的約束條件約束條件; sum是求集合中表達(dá)式的和;是求集合中表達(dá)式的和; prod是求集合中表達(dá)式的乘積;是求集合中表達(dá)式的乘積;max是求集合中表達(dá)式的最大值;是求集合中表達(dá)式的最大值; min是求集合中表達(dá)式的最小值;是求集
16、合中表達(dá)式的最小值; 但如果是但如果是求目標(biāo)函數(shù)的最大、最小值求目標(biāo)函數(shù)的最大、最小值,則是用,則是用“max=目標(biāo)函數(shù)表達(dá)式目標(biāo)函數(shù)表達(dá)式”, “min=目標(biāo)函數(shù)表達(dá)式目標(biāo)函數(shù)表達(dá)式”,而不用寫而不用寫。 (1)for 該函數(shù)用來產(chǎn)生對集成員的約束。該函數(shù)用來產(chǎn)生對集成員的約束。for函數(shù)允許只輸入一個約束條件,然后由函數(shù)允許只輸入一個約束條件,然后由lingo自動產(chǎn)生每個集成員的約束條件。自動產(chǎn)生每個集成員的約束條件。例例4-2 產(chǎn)生序列產(chǎn)生序列 1,4,9,16,25 model:sets: number/1.5/:x; !此命令產(chǎn)生一個變量此命令產(chǎn)生一個變量x,是單下標(biāo)變量,其下標(biāo)有是
17、單下標(biāo)變量,其下標(biāo)有5個取值個取值;endsets for(number(i): x(i)=i2); !此命令是對此命令是對所有的下標(biāo)所有的下標(biāo)i,分別求,分別求i 2;end(2)sum 該函數(shù)返回遍歷指定的集成員的一個表達(dá)該函數(shù)返回遍歷指定的集成員的一個表達(dá)式的和。式的和。 例例4-3 求向量求向量 5,1,3,4,6,10 前前5個數(shù)的和。個數(shù)的和。model:sets: number/1.6/:x; endsetsdata: x = 5 1 3 4 6 10; !此命令給變量此命令給變量x具體的取值具體的取值;enddatas=sum(number(i) | i #le# 5: x(i
18、); end3、變量定界函數(shù)、變量定界函數(shù)變量定界函數(shù)是對變量的取值范圍附加限制。變量定界函數(shù)是對變量的取值范圍附加限制。bnd(A,x,B): 是指限定變量是指限定變量x的取值為的取值為 AxB(在在LINDO中無此函數(shù)中無此函數(shù)) gin(x): 限定變量限定變量x 的取值為整數(shù);的取值為整數(shù); bin(x): 限定變量限定變量x為為0-1變量,變量,free(x): 取消變量取消變量x的非負(fù)限制,即的非負(fù)限制,即x可以可以取負(fù)數(shù)、取負(fù)數(shù)、0或正數(shù),因為或正數(shù),因為lingo原來原來默認(rèn)所有的變量非負(fù)取值。默認(rèn)所有的變量非負(fù)取值。 在在lindo是用是用命令命令int,而在,而在lingo
19、中沒有中沒有int(x) ; 4.2.4 lingo計算輸出的結(jié)果計算輸出的結(jié)果 lingo計算的計算的輸出結(jié)果與輸出結(jié)果與lindo計算的輸出計算的輸出結(jié)果是完全相同的,只是輸出的命令不相同。結(jié)果是完全相同的,只是輸出的命令不相同。 在在lindo中,最優(yōu)值、最優(yōu)解,影子價格中,最優(yōu)值、最優(yōu)解,影子價格與靈敏度分析的數(shù)據(jù)可以同時輸出。與靈敏度分析的數(shù)據(jù)可以同時輸出。 而在而在lingo 中,靈敏度分析的數(shù)據(jù)只有通中,靈敏度分析的數(shù)據(jù)只有通過修改選項才能輸出。過修改選項才能輸出。lingo計算輸出結(jié)果計算輸出結(jié)果 例例4-1 的數(shù)學(xué)模型:的數(shù)學(xué)模型:model:max=32*x1+30*x2;
20、3*x1+4*x2=36;5*x1+4*x2=40;9*x1+8*x2=76;end 輸出結(jié)果:輸出結(jié)果:Global optimal solution found. Objective value: 282.6667 Total solver iterations: 3 Variable Value Reduced Cost X1 1.333333 0.000000 X2 8.000000 0.000000 Row Slack or Surplus Dual Price 1 282.6667 1.000000 2 0.000000 1.166667 3 1.333333 0.000000 4
21、 0.000000 3.1666674.2.5 關(guān)于關(guān)于lingo程序中的段程序中的段 一般來說,一般來說,lingo中建立的優(yōu)化模型可以中建立的優(yōu)化模型可以由五部分來組成,或稱為五段。下面介紹常由五部分來組成,或稱為五段。下面介紹常用的三段:用的三段:集合段,數(shù)據(jù)段,目標(biāo)和約束段集合段,數(shù)據(jù)段,目標(biāo)和約束段 1、集合段(、集合段(sets):): 這部分要以這部分要以“sets:”開始,以開始,以“endsets”結(jié)束。結(jié)束。 作用在于定義必要的集合及其元素。作用在于定義必要的集合及其元素。 屬性屬性相當(dāng)于變量或數(shù)組,相當(dāng)于變量或數(shù)組,集合的成員集合的成員相相當(dāng)于下標(biāo)。當(dāng)于下標(biāo)。 1、集合段
22、(、集合段(sets):):具體使用格式是:具體使用格式是: 集合名集合名/集的成員集的成員/ : 屬性屬性 ;ABD/1,2,3,4,5,6/:x,y;顯式羅列所有的成員顯式羅列所有的成員ABD/1.6/:x,y; 隱式羅列所有的成員,中間隱式羅列所有的成員,中間的成員系統(tǒng)自動產(chǎn)生,只要列出集合的的成員系統(tǒng)自動產(chǎn)生,只要列出集合的第一個和最后一個成員就行,但所有的第一個和最后一個成員就行,但所有的成員必須是有規(guī)律的。成員必須是有規(guī)律的。不同的成員及不同的屬性之間,用不同的成員及不同的屬性之間,用“ , ”分隔。分隔。集合的屬性相當(dāng)于以集合的元素為下標(biāo)的數(shù)組,集合的屬性相當(dāng)于以集合的元素為下標(biāo)
23、的數(shù)組,即屬性相當(dāng)于變量,成員相當(dāng)于下標(biāo)。即屬性相當(dāng)于變量,成員相當(dāng)于下標(biāo)。具體來說,具體來說,ABD/1,2,3,4,5,6/:x,y;其集合名為其集合名為ABD,屬性為,屬性為x,y 成員為成員為1,2,3,4,5,6 定義以定義以x, y為變量,下標(biāo)分別為為變量,下標(biāo)分別為1,2,3,4,5,6的變量,即的變量,即x1, x2, x3, x4, x5, x6 y1, y2, y3, y4, y5, y6 屬性(變量)的具體值如果是常數(shù),則應(yīng)屬性(變量)的具體值如果是常數(shù),則應(yīng)在數(shù)據(jù)段中輸入具體數(shù)據(jù);在數(shù)據(jù)段中輸入具體數(shù)據(jù); 如果是未知數(shù)(即如果是未知數(shù)(即決策變量),則在數(shù)據(jù)段中不能輸入
24、數(shù)據(jù),但決策變量),則在數(shù)據(jù)段中不能輸入數(shù)據(jù),但可以在初始段輸入初值??梢栽诔跏级屋斎氤踔怠?集合的成員和屬性可集合的成員和屬性可以在定義時省略,隨后在數(shù)據(jù)段中輸入。以在定義時省略,隨后在數(shù)據(jù)段中輸入。關(guān)于集合的一些說明:關(guān)于集合的一些說明: myfile/1.5/:a; 定義原始集合定義原始集合myfile,屬性屬性a的成員有的成員有5個元素,即定義個元素,即定義a是單下標(biāo)變量,下是單下標(biāo)變量,下標(biāo)有標(biāo)有5個取值個取值,即,即a1,a2,a3,a4,a5。 myfoes/1.6/:b; 定義原始集合定義原始集合myfoes,屬性屬性b的成員有的成員有6個元素,即定義個元素,即定義b是單下標(biāo)變
25、量,下是單下標(biāo)變量,下標(biāo)有標(biāo)有6個取值個取值,即,即b1,b2,b3,b4,b5,b6。 myido(myfoes,myfile):x,c; 定義派生集合定義派生集合myido,屬性屬性x和和c的成員有的成員有30個元素,即定義個元素,即定義x和和c是雙下標(biāo)變量,第是雙下標(biāo)變量,第1個下標(biāo)有個下標(biāo)有6個取值,第個取值,第2個下標(biāo)有個下標(biāo)有5個取值。其中個取值。其中myfoes和和myfile稱為派稱為派生集合的父集。生集合的父集。例例4-4model:sets: myfile/1.5/:a; myfoes/1.6/:b; myido(myfile,myfoes):x,c; endsetsdat
26、a: c = 1,2,-2,5,6,-4 2,3,-4,6,9,3 2,5,-1,5,-2,0 -5,6,7,9,10,-10 33,4,6,6,7,9; a = 100,200,100,100,400; b = 100,200,100,150,150,200;enddatamin = sum(myido(i,j):c(i,j)*x(i,j); !產(chǎn)銷平衡運輸問題的目標(biāo)函數(shù)產(chǎn)銷平衡運輸問題的目標(biāo)函數(shù);for(myfile(i):sum(myfoes(j):x(i,j) = a(i); !產(chǎn)銷平衡運輸問題產(chǎn)地的產(chǎn)量約束產(chǎn)銷平衡運輸問題產(chǎn)地的產(chǎn)量約束;for(myfoes(j):sum(myfil
27、e(i):x(i,j) = b(j); !產(chǎn)銷平衡運輸問題銷地的銷量約束產(chǎn)銷平衡運輸問題銷地的銷量約束;end 2、數(shù)據(jù)段(、數(shù)據(jù)段(data):): 以以“data:”開始,以開始,以“enddata”結(jié)束,結(jié)束,作用在于對集合的屬性(數(shù)組或變量)輸作用在于對集合的屬性(數(shù)組或變量)輸入必要的常數(shù)數(shù)據(jù)。入必要的常數(shù)數(shù)據(jù)。具體的使用格式為:具體的使用格式為: 屬性(或變量)屬性(或變量)= 常數(shù)列表;常數(shù)列表; 在常數(shù)列表中,數(shù)據(jù)之間用在常數(shù)列表中,數(shù)據(jù)之間用“,”分分隔,也可以隔,也可以空格空格分開(分開(“ctrl+回車回車”的作的作用也等價于一個空格),即變量(或?qū)傩裕┯靡驳葍r于一個空格
28、),即變量(或?qū)傩裕┦侨〉忍栍疫叺某?shù)是取等號右邊的常數(shù)model:sets: ABD/1,2,3,4,5,6/:x,y; endsetsdata: x=1,3,0,5,6,-7; y=-3,4,29,58,3,10;enddataend 在數(shù)據(jù)段中輸入數(shù)在數(shù)據(jù)段中輸入數(shù)據(jù)時,可以分別輸入每據(jù)時,可以分別輸入每個變量對應(yīng)的數(shù)據(jù),也個變量對應(yīng)的數(shù)據(jù),也可以同時輸入多個同維可以同時輸入多個同維的變量的數(shù)據(jù)值。的變量的數(shù)據(jù)值。兩種輸入方法得到的結(jié)果相同兩種輸入方法得到的結(jié)果相同例例4-5等同于x,y =1,-3, 3,4, 0,29, 5,58, 6,3, -7,10; 3、目標(biāo)和約束段:、目標(biāo)和約
29、束段: 這部分實際上是定義目標(biāo)函數(shù)、約束條件這部分實際上是定義目標(biāo)函數(shù)、約束條件等,但這部分并沒有段的開始及結(jié)束的標(biāo)記。等,但這部分并沒有段的開始及結(jié)束的標(biāo)記。 lingo的目標(biāo)函數(shù)和約束條件,一般要用的目標(biāo)函數(shù)和約束條件,一般要用到循環(huán)函數(shù):如求和函數(shù)到循環(huán)函數(shù):如求和函數(shù)sum和循環(huán)函數(shù)和循環(huán)函數(shù)for等。等。 目標(biāo)函數(shù)是求最大值或最小值目標(biāo)函數(shù)是求最大值或最小值. max=目標(biāo)函數(shù)目標(biāo)函數(shù); 或或 min=目標(biāo)函數(shù)目標(biāo)函數(shù); 約束條件的標(biāo)志是:約束條件的標(biāo)志是:for(約束條件約束條件);目標(biāo)函數(shù)目標(biāo)函數(shù)的標(biāo)志是:的標(biāo)志是: 例如:例如: sets: ABD/1,2,3,4,5,6/:X
30、; AB/1.3/:Y,D; endsets(1)如程序中有約束條件:)如程序中有約束條件: 3 , 2 , 1,61jdyxjjii在在lingo程序中應(yīng)該表示為程序中應(yīng)該表示為: for (AB(j):sum(ABD(i):x(i)*y(j)=d(j);(2)如程序中有約束條件:)如程序中有約束條件: 3 , 2 , 1,61idyxijji在在lingo程序中應(yīng)該表示為程序中應(yīng)該表示為: for (AB(i):sum(ABD(j):x(i)*y(j)=d(i);循環(huán)變量:循環(huán)變量:循環(huán)變量:循環(huán)變量:先計算變量先計算變量 j , 再計算變量再計算變量 i . 先計算變量先計算變量 i ,
31、 再計算變量再計算變量 j . model:sets: myfile/1.5/:a; myfoes/1.6/:b; myido(myfile,myfoes):x,c; endsetsdata: c=1,2,-2,5,6,-4 2,3,-4,6,9,3 2,5,-1,5,-2,0 -5,6,7,9,10,-10 33,4,6,6,7,9; a=100,200,100,100,400; b=100,200,100,150,150,200;enddatamin=sum(myido(i,j):c(i,j)*x(i,j); for(myfile(i):sum(myfoes(j):x(i,j)=a(i);
32、 for(myfoes(j):sum(myfile(i):x(i,j)=b(j);end分析用分析用lingo編寫的程序編寫的程序例例4-6 寫出下面規(guī)劃問題的寫出下面規(guī)劃問題的lingo中用集合編中用集合編寫的求解程序。如果線性規(guī)劃問題有最優(yōu)寫的求解程序。如果線性規(guī)劃問題有最優(yōu)解,請寫出最優(yōu)解。解,請寫出最優(yōu)解。 0,50 2215 38022 4703 2 . . ) 1 (2108max 3212131321321321xxxxxxxxxxxxxtsxxxz0,1 23 2411 2 . . ) 2(3max 543213153214321321xxxxxxxxxxxxxxxt sxxx
33、z0,50 2215 38022 4703 2. . ) 1 (2108max 3212131321321321xxxxxxxxxxxxxtsxxxz解:解:要寫出用要寫出用lingo中集中集合的方法求解的程合的方法求解的程序,序, 則應(yīng)該先把規(guī)則應(yīng)該先把規(guī)劃模型化為用求和劃模型化為用求和形式表示的模型,形式表示的模型, 其中:其中: )2108(321ccccCj ,321xxxxXj ,50158070ibB .02210322431234ijaA0,50 2215 38022 4703 2 . . ) 1 (2108max 3212131321321321xxxxxxxxxxxxxtsx
34、xxz則該規(guī)劃問題的則該規(guī)劃問題的用求和形式表示用求和形式表示的模型為:的模型為:3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max 3131jxibxatsxczjjijijjjj用求和形式表示的模型用求和形式表示的模型3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max3131jxibxatsxczjjijijjjj0 . .maxXBAXtsCXz討論用集合表討論用集合表示的模型:示的模型:3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max 3131jxibxatsxczjjijijjjj其中:其中:(1)變量)變量c, x是單是
35、單下標(biāo),下標(biāo)有下標(biāo),下標(biāo)有3個取值;變量個取值;變量b是單下標(biāo),下標(biāo)有是單下標(biāo),下標(biāo)有4個取值。個取值。對于單下標(biāo)的變量,只要直接定義集合即可,對于單下標(biāo)的變量,只要直接定義集合即可,即要定義兩個集合,一個有即要定義兩個集合,一個有3個取值的,另一個個取值的,另一個有有4個取值的。個取值的。 由于變量由于變量c,b,a已經(jīng)有具體的數(shù)值,已經(jīng)有具體的數(shù)值,故必須在數(shù)據(jù)段中給出具體的取值;故必須在數(shù)據(jù)段中給出具體的取值; 變量變量x沒有具體的數(shù)值,它是決策變量,故沒有具體的數(shù)值,它是決策變量,故不能在數(shù)據(jù)段中給出具體的取值。不能在數(shù)據(jù)段中給出具體的取值。討論用集合表討論用集合表示的模型:示的模型:
36、3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max3131jxibxatsxczjjijijjjj(2)變量)變量a是雙是雙下標(biāo)變量,下標(biāo)共有下標(biāo)變量,下標(biāo)共有43個取值,第個取值,第1個個i下下標(biāo)有標(biāo)有4個取值,第個取值,第2個下標(biāo)個下標(biāo)j有有3個取值。個取值。 對于雙下標(biāo)的變量,必須定義派生集合。對于雙下標(biāo)的變量,必須定義派生集合。 它第它第1個父集是有個父集是有4個取值,第個取值,第2個父集是有個父集是有3個取值。個取值。 變量變量a已經(jīng)有具體的數(shù)值,它不是決已經(jīng)有具體的數(shù)值,它不是決策變量,故必須在數(shù)據(jù)段中給出具體的取值。策變量,故必須在數(shù)據(jù)段中給出具體的取值。 上
37、述數(shù)學(xué)模型用集合編寫的求解程序為:上述數(shù)學(xué)模型用集合編寫的求解程序為:3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max3131jxibxatsxczjjijijjjj集合段集合段sets: endsets ab/1,2,3/:x,c; abc/1,2,3,4/:b; abcd(abc,ab):a;數(shù)據(jù)段數(shù)據(jù)段data: enddata c=8,10,2; b=70,80,15,50; a=2,1,3 4,2,2 3,0,1 2,2,0;3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max3131jxibxatsxczjjijijjjj目標(biāo)函數(shù)目標(biāo)函數(shù) m
38、ax=sum(ab(j):c(j)*x(j);約束條件約束條件for(abc(i):sum(ab(j):a(i,j)*x(j)=b(i); ab/1,2,3/:x,c; abc/1,2,3,4/:b; abcd(abc,ab):a;用集合表示的程序為:用集合表示的程序為:model:sets: ab/1,2,3/:x,c; abc/1,2,3,4/:b; abcd(abc,ab):a;endsetsdata: c=8,10,2; b=70,80,15,50; a=2,1,3 4,2,2 3,0,1 2,2,0;enddatamax=sum(ab(j):c(j)*x(j);for(abc(i):
39、sum(ab(j):a(i,j)*x(j)=b(i);end3 , 2 , 1, 04 , 3 , 2 , 1 )( . .max3131jxibxatsxczjjijijjjjmodel:sets: ab/1,2,3/:x,c; abc/1,2,3,4/:b; abcd(abc,ab):a;endsetsdata: c=8,10,2; b=70,80,15,50; a=2,1,3 4,2,2 3,0,1 2,2,0;enddatamax=sum(ab(j):c(j)*x(j);for(abc(i):sum(ab(j):a(i,j)*x(j)=b(i);end Global optimal s
40、olution found.Objective value: 280.0000 Total solver iterations: 2Variable Value Reduced Cost X( 1) 0.000000 2.666667 X( 2) 25.00000 0.000000 X( 3) 15.00000 0.000000 利用軟件計算利用軟件計算,可知可知:該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為15,25, 0321xxx最優(yōu)值為:最優(yōu)值為: 280z(2)把規(guī)劃問題化為用求和形式表示的模型,把規(guī)劃問題化為用求和形式表示的模型,0,1 23 2411 2 . . 3max 5
41、43213153214321321xxxxxxxxxxxxxxxtsxxxz其中:其中: )0 0 113()()(54321ccccccCj ,54321xxxxxxXj ,1311ibB 00102102140112153ijaA該規(guī)劃問題用求和形式表示的模型為:該規(guī)劃問題用求和形式表示的模型為:0,1 23 2411 2 . . 3max 543213153214321321xxxxxxxxxxxxxxxtsxxxz5 , 4 , 3 , 2 , 1, 03 , 2 , 1 . .max 5151jxibxatsxczjjijijjjj0 . .max XBAXtsAXz該規(guī)劃問題用集合
42、該規(guī)劃問題用集合編寫的程序為:編寫的程序為:5 , 4 , 3 , 2 , 1, 03 , 2 , 1 . .max5151jxibxatsxczjjijijjjj集合段集合段sets: endsets ab/1,2,3,4,5/:x,c; abc/1,2,3/:b; abcd(abc,ab):a;數(shù)據(jù)段數(shù)據(jù)段data: enddata c=3,-1,-1,0,0; b=11,3,1; a=1,-2,1,1,0 -4,1,2,0,-1 -2,0,1,0,0;5 , 4 , 3 , 2 , 1, 03 , 2 , 1 . .max5151jxibxatsxczjjijijjjj目標(biāo)函數(shù)目標(biāo)函數(shù)
43、max=sum(ab(j):c(j)*x(j);約束條件約束條件 for(abc(i):sum(ab(j):a(i,j)*x(j)=b(i); ab/1,2,3,4,5/:x,c; abc/1,2,3/:b; abcd(abc,ab):a;model:sets: ab/1,2,3/:b; abc/1,2,3,4,5/:c,x; abcd(ab,abc):a;endsetsdata: c=3,-1,-1,0,0; b=11,3,1; a=1,-2,1,1,0 -4,1,2,0,-1 -2,0,1,0,0;enddatamax=sum(ab(j):c(j)*x(j);for(abc(i):sum(
44、ab(j):a(i,j)*x(j)=b(i);end5 , 4 , 3 , 2 , 1, 03 , 2 , 1 . .max 5151jxibxatsxczjjijijjjj用集合表示的程序為:用集合表示的程序為:model:sets: ab/1,2,3/:b; abc/1,2,3,4,5/:c,x; abcd(ab,abc):a;endsetsdata: c=3,-1,-1,0,0; b=11,3,1; a=1,-2,1,1, 0 -4,1,2,0, -1 -2,0,1,0,0;enddatamax=sum(abc(j):c(j)*x(j);for(ab(i):sum(abc(j):a(i,
45、j)*x(j)=b(i);end Global optimal solution found. Objective value: 2.000000 Total solver iterations: 0 Variable Value Reduced Cost X( 1) 4.000000 0.000000 X( 2) 1.000000 0.000000 X( 3) 9.000000 0.000000 X( 4) 0.000000 0.3333333 X( 5) 0.000000 0.3333333利用軟件計算可知利用軟件計算可知:該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為最優(yōu)值為:最優(yōu)值為
46、: 0, 09, 1, 454321xxxxx2 用用LINGO求解運輸問題求解運輸問題:某產(chǎn)品有某產(chǎn)品有5個產(chǎn)地個產(chǎn)地A1,A2,A3,A4,A5, 它的產(chǎn)品供應(yīng)它的產(chǎn)品供應(yīng)6個銷地個銷地B1,B2,B3,B4,B5,B6, 產(chǎn)地的產(chǎn)量、銷地的銷產(chǎn)地的產(chǎn)量、銷地的銷量及產(chǎn)品從各產(chǎn)地運往各銷地的單位運價如下表:量及產(chǎn)品從各產(chǎn)地運往各銷地的單位運價如下表:產(chǎn)地產(chǎn)地銷地銷地B1B2B3B4B5B6產(chǎn)量產(chǎn)量A1122564100A2234693200A3251520100A456791010100A53346679400銷量銷量100200100150150200900應(yīng)如何調(diào)運,可使總的運輸費用最
47、少?應(yīng)如何調(diào)運,可使總的運輸費用最少?5655545352514645444342413635343332312625242322211615141312119664433 10109765 02552 396432 4652minxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz該產(chǎn)銷平衡運輸問題的數(shù)學(xué)模型為該產(chǎn)銷平衡運輸問題的數(shù)學(xué)模型為:400100100 2001005655545352514645444342413534333231262524232221161514131211xxxxxxxxxxxxxxxxxxxxxxxxxxxxx200150150100200100564636261655453525155444342414534333231352423222125141312111xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6 , 5 , 4 , 3 , 2 , 1; 5 , 4 , 3 , 2 , 1, 0jixij設(shè)決
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度farmhouse木門安裝服務(wù)合同
- 深圳購房合同樣本
- 住宅房屋購買合同簡單版
- 2024年《軟件許可合同中不可抗力事件的處理》
- 廣告公司授權(quán)合同模板
- 2024年范文承包土地協(xié)議書
- 2024年發(fā)光字合同
- 跨境客運線路租賃合同
- 共建文明施工項目協(xié)議書
- 親子園與醫(yī)療機構(gòu)合作協(xié)議書
- 國開2024年《中國法律史》平時作業(yè)1-3答案
- 鋼結(jié)構(gòu)策劃書(范本)
- 急性腎衰竭與crrt治
- 焦化廠生產(chǎn)工序及工藝流程圖
- 嘔吐(急性胃腸炎)診療指南(制訂)編制說明排版
- 江堤道路工程施工方案#江蘇
- (外研版)初中英語語法匯總[新版]
- 李燕璇植樹問題卡通版5
- 有砟軌道鋪設(shè)的施工講解
- 煙草專賣食堂燃?xì)庑孤都盎馂?zāi)事故現(xiàn)場應(yīng)急處置方案
- 國家電網(wǎng)公司十八項反措
評論
0/150
提交評論