




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 1、目標(biāo)函數(shù)以目標(biāo)函數(shù)以“max”或或“min”開頭,開頭,max(或(或min)與目標(biāo)函數(shù)表達(dá)式之間不能有)與目標(biāo)函數(shù)表達(dá)式之間不能有“=”。lindo常用的基本語法常用的基本語法 2、變量名的長(zhǎng)度不超過變量名的長(zhǎng)度不超過8個(gè)字符個(gè)字符,并且必須以英,并且必須以英文字母開頭。文字母開頭。英文字母不區(qū)分大小寫英文字母不區(qū)分大小寫。3、目標(biāo)函數(shù)與約束條件之間必須用目標(biāo)函數(shù)與約束條件之間必須用“ st ”分開,分開,并且并且“ st ”單獨(dú)一行。單獨(dú)一行。4、目標(biāo)函數(shù)、各約束條件都必須以、目標(biāo)函數(shù)、各約束條件都必須以“回車鍵回車鍵”結(jié)束,并且都應(yīng)該是結(jié)束,并且都應(yīng)該是經(jīng)過化簡(jiǎn)后的表達(dá)式,經(jīng)過化簡(jiǎn)
2、后的表達(dá)式,所所有字符必須是英文狀態(tài)下輸入的。有字符必須是英文狀態(tài)下輸入的。5、lindo軟件已規(guī)定所有的決策變量均為非負(fù)數(shù)。軟件已規(guī)定所有的決策變量均為非負(fù)數(shù)。6、變量與其系數(shù)之間可以有空格,乘號(hào)必須省變量與其系數(shù)之間可以有空格,乘號(hào)必須省略,式中不能有括號(hào)略,式中不能有括號(hào);約束條件的右端不能有決約束條件的右端不能有決策變量策變量, 左端不能有常數(shù)項(xiàng)左端不能有常數(shù)項(xiàng);沒有下標(biāo);沒有下標(biāo), 式中不能式中不能有分母,有分母,式中不能有式中不能有“逗號(hào)逗號(hào)”和和“句號(hào)句號(hào)”等等(說明說明語句除外語句除外) 。常用的基本語法常用的基本語法 7 7、約束條件中的符號(hào)、約束條件中的符號(hào)“”用用 “ “
3、= =”表示,表示, “”用用“”和和“ = ”或或“”表示,表示,“”用用“=”或或 “”表示。表示。 (7) 計(jì)算機(jī)把輸入程序中的第一行默認(rèn)為目標(biāo)函數(shù),計(jì)算機(jī)把輸入程序中的第一行默認(rèn)為目標(biāo)函數(shù),其它各約束條件可以用其它各約束條件可以用_1,_2標(biāo)明它的行號(hào)。標(biāo)明它的行號(hào)。 (8) 雖然決策變量可以放在約束條件的右端,但為雖然決策變量可以放在約束條件的右端,但為了提高了提高Lingo的求解效率,應(yīng)盡可能采用的求解效率,應(yīng)盡可能采用線性表達(dá)線性表達(dá)式式定義目標(biāo)函數(shù)和約束條件。定義目標(biāo)函數(shù)和約束條件。(9) 在在lingo中以感嘆號(hào)中以感嘆號(hào)“!”開始的是開始的是說明語句說明語句,并且說明語句也
4、需要以分號(hào)并且說明語句也需要以分號(hào)“;”結(jié)束,并且除結(jié)束,并且除了了“!”和和“;”之外,說明語句中的其它字符之外,說明語句中的其它字符可以是任何字符??梢允侨魏巫址?。LINGO軟件的使用規(guī)則(軟件的使用規(guī)則(4)(10) lingo模型是由一系列語句組成的,即每個(gè)語模型是由一系列語句組成的,即每個(gè)語句是組成句是組成lingo模型的基本部分,每個(gè)語句(目標(biāo)、模型的基本部分,每個(gè)語句(目標(biāo)、約束、說明語句等)都是以分號(hào)約束、說明語句等)都是以分號(hào)“;”結(jié)尾的,結(jié)尾的,編寫程序時(shí)應(yīng)注意保持模型的可讀性。編寫程序時(shí)應(yīng)注意保持模型的可讀性。例如:例如:雖然雖然lingo允許每行寫多個(gè)語句,也允許一允許
5、每行寫多個(gè)語句,也允許一個(gè)語句寫成幾行,個(gè)語句寫成幾行, 但最好一行只寫一個(gè)語句,但最好一行只寫一個(gè)語句, 并且并且按照語句的嵌套關(guān)系對(duì)語句安排適當(dāng)?shù)目s進(jìn),增按照語句的嵌套關(guān)系對(duì)語句安排適當(dāng)?shù)目s進(jìn),增強(qiáng)層次感。強(qiáng)層次感。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個(gè),并且所有的決個(gè),并且所有的決策變量都是整數(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)點(diǎn)的優(yōu)點(diǎn)(2)l
8、ingo包含內(nèi)置的建模語言(常稱矩陣包含內(nèi)置的建模語言(常稱矩陣生成器),允許以簡(jiǎn)練、直觀的方式描述生成器),允許以簡(jiǎn)練、直觀的方式描述較大規(guī)模的優(yōu)化模型(成千萬個(gè)約束條件較大規(guī)模的優(yōu)化模型(成千萬個(gè)約束條件和變量),和變量), 模型中所需的數(shù)據(jù)可以用一定格模型中所需的數(shù)據(jù)可以用一定格式保存在獨(dú)立的文件中,需要時(shí)再讀取數(shù)據(jù)。式保存在獨(dú)立的文件中,需要時(shí)再讀取數(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é)果是相同的。 因?yàn)橐驗(yàn)閘ingo的求解結(jié)果中是沒有靈敏度分析的,的求解結(jié)果中是沒有靈敏度分析的,所以如果需要靈敏度分析的數(shù)據(jù),可以通過修改所以如果需要靈敏度分析的數(shù)據(jù),可以通過修改選項(xiàng)來實(shí)現(xiàn)。選項(xiàng)來實(shí)現(xiàn)。 先修改系統(tǒng)選項(xiàng),啟動(dòng)靈敏度分析先修改系統(tǒng)選項(xiàng),啟動(dòng)靈敏度分析通過修改選項(xiàng)得到靈敏度分析數(shù)據(jù)的步驟:通過修改選項(xiàng)得到靈敏度分析數(shù)據(jù)的步驟: 執(zhí)行執(zhí)行 “ LINGO/ options ”
10、 菜單命令彈出菜單命令彈出 “選項(xiàng)選項(xiàng)” 對(duì)話框,在對(duì)話框,在“ General solver ”選項(xiàng)卡選項(xiàng)卡中,中,將其中左邊列的第二個(gè)選項(xiàng)將其中左邊列的第二個(gè)選項(xiàng) “ Dual compulations ”(對(duì)偶計(jì)算)選項(xiàng)的默認(rèn)設(shè)置(對(duì)偶計(jì)算)選項(xiàng)的默認(rèn)設(shè)置 “prices”改為改為 “ prices and Ranges ”(價(jià)格及范圍)后,(價(jià)格及范圍)后,先對(duì)規(guī)劃問題求解一次。先對(duì)規(guī)劃問題求解一次。 執(zhí)行執(zhí)行“LINGO/Range”菜單命令,運(yùn)行后計(jì)算菜單命令,運(yùn)行后計(jì)算機(jī)則顯示只有靈敏度分析的數(shù)據(jù)。機(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” 菜單命令彈出菜單命令彈出 “選項(xiàng)框選項(xiàng)框” 對(duì)話框,對(duì)話框, 在在 “Global Solver” 選項(xiàng)選項(xiàng)卡上選擇卡上選擇 “Use Global Solver” 點(diǎn)確定即可。點(diǎn)確定即可。 由于全局最優(yōu)求解程序花費(fèi)的時(shí)間可能由于全局最優(yōu)求解程序花費(fèi)的時(shí)間可能是很長(zhǎng)的,所以為了減少計(jì)算工作量,我們是很長(zhǎng)的,所以為了減少計(jì)算工作量,我們應(yīng)該盡量對(duì)變量等做進(jìn)一步的限
12、制。應(yīng)該盡量對(duì)變量等做進(jìn)一步的限制。 1、運(yùn)算符、運(yùn)算符4.2.2 運(yùn)算符及優(yōu)先級(jí)運(yùn)算符及優(yōu)先級(jí)(1)算術(shù)運(yùn)算符:)算術(shù)運(yùn)算符: +加加 -減減 *乘乘 /除除 乘方乘方 (開方)(開方)(2)邏輯運(yùn)算符:邏輯運(yùn)算符: 邏輯運(yùn)算結(jié)果只有邏輯運(yùn)算結(jié)果只有真與假真與假,在,在lingo中用中用1和和0表示,邏輯運(yùn)算符(表達(dá)式)通常作為表示,邏輯運(yùn)算符(表達(dá)式)通常作為過濾條件過濾條件使用。使用。 #and# 與,與,#or# 或,或,#not# 非非 #eq#等于,等于,#ne#不等于,不等于,#gt#大于,大于, #ge#大于等于,大于等于,#lt#小于,小于, #le#小于等于小于等于 即:即
13、:g 大于大于, e 等于等于, l 小于小于, t 不等于不等于(3)關(guān)系運(yùn)算符)關(guān)系運(yùn)算符2、運(yùn)算符的優(yōu)先級(jí)、運(yùn)算符的優(yōu)先級(jí)(或(或(或或=) #not# (負(fù)號(hào)負(fù)號(hào)) * / + (減法減法) #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) 求絕對(duì)值函數(shù),求絕對(duì)值函數(shù), 返回返回x的絕對(duì)值的絕對(duì)值 cos(x) 求余弦函數(shù),返回求余弦函數(shù),返回x的余弦值,的余弦值,
14、 x的單位是弧度的單位是弧度exp(x) 計(jì)算計(jì)算e x 的值的值log(x) 計(jì)算計(jì)算lnx 的值的值pow(x,y) 計(jì)算計(jì)算x y 的值的值sqr(x) 計(jì)算計(jì)算x的平方的平方計(jì)算計(jì)算x的平方根的平方根size(A) 求矩陣求矩陣A的元素個(gè)數(shù)的元素個(gè)數(shù)2、集合循環(huán)函數(shù)集合循環(huán)函數(shù) 集合循環(huán)函數(shù)是指對(duì)集合中的所有元素集合循環(huán)函數(shù)是指對(duì)集合中的所有元素(下標(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á)式是對(duì)集合的所有循以省略過濾條件;如果表達(dá)式是對(duì)集合的所有循環(huán)變量進(jìn)行操作,循環(huán)變量也可以省略。環(huán)變量進(jìn)行操作,循環(huán)變量也可以省略。集合循環(huán)函數(shù):集合循環(huán)函數(shù):for 是對(duì)集合的每個(gè)元素獨(dú)立地操作一次表是對(duì)集合的每個(gè)元素獨(dú)立地操作一次表達(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)生對(duì)集成員的約束。該函數(shù)用來產(chǎn)生對(duì)集成員的約束。for函數(shù)允許只輸入一個(gè)約束條件,然后由函數(shù)允許只輸入一個(gè)約束條件,然后由lingo自動(dòng)產(chǎn)生每個(gè)集成員的約束條件。自動(dòng)產(chǎn)生每個(gè)集成員的約束條件。例例4-2 產(chǎn)生序列產(chǎn)生序列 1,4,9,16,25 model:sets: number/1.5/:x; !此命令產(chǎn)生一個(gè)變量此命令產(chǎn)生一個(gè)變量x,是單下標(biāo)變量,其下標(biāo)有是
17、單下標(biāo)變量,其下標(biāo)有5個(gè)取值個(gè)取值;endsets for(number(i): x(i)=i2); !此命令是對(duì)此命令是對(duì)所有的下標(biāo)所有的下標(biāo)i,分別求,分別求i 2;end(2)sum 該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和。式的和。 例例4-3 求向量求向量 5,1,3,4,6,10 前前5個(gè)數(shù)的和。個(gè)數(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ù)是對(duì)變量的取值范圍附加限制。變量定界函數(shù)是對(duì)變量的取值范圍附加限制。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ù),因?yàn)榛蛘龜?shù),因?yàn)閘ingo原來原來默認(rèn)所有的變量非負(fù)取值。默認(rèn)所有的變量非負(fù)取值。 在在lindo是用是用命令命令int,而在,而在lingo
19、中沒有中沒有int(x) ; 4.2.4 lingo計(jì)算輸出的結(jié)果計(jì)算輸出的結(jié)果 lingo計(jì)算的計(jì)算的輸出結(jié)果與輸出結(jié)果與lindo計(jì)算的輸出計(jì)算的輸出結(jié)果是完全相同的,只是輸出的命令不相同。結(jié)果是完全相同的,只是輸出的命令不相同。 在在lindo中,最優(yōu)值、最優(yōu)解,影子價(jià)格中,最優(yōu)值、最優(yōu)解,影子價(jià)格與靈敏度分析的數(shù)據(jù)可以同時(shí)輸出。與靈敏度分析的數(shù)據(jù)可以同時(shí)輸出。 而在而在lingo 中,靈敏度分析的數(shù)據(jù)只有通中,靈敏度分析的數(shù)據(jù)只有通過修改選項(xiàng)才能輸出。過修改選項(xiàng)才能輸出。lingo計(jì)算輸出結(jié)果計(jì)算輸出結(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)自動(dòng)產(chǎn)生,只要列出集合的的成員系統(tǒng)自動(dòng)產(chǎn)生,只要列出集合的第一個(gè)和最后一個(gè)成員就行,但所有的第一個(gè)和最后一個(gè)成員就行,但所有的成員必須是有規(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í)省略,隨后在數(shù)據(jù)段中輸入。以在定義時(shí)省略,隨后在數(shù)據(jù)段中輸入。關(guān)于集合的一些說明:關(guān)于集合的一些說明: myfile/1.5/:a; 定義原始集合定義原始集合myfile,屬性屬性a的成員有的成員有5個(gè)元素,即定義個(gè)元素,即定義a是單下標(biāo)變量,下是單下標(biāo)變量,下標(biāo)有標(biāo)有5個(gè)取值個(gè)取值,即,即a1,a2,a3,a4,a5。 myfoes/1.6/:b; 定義原始集合定義原始集合myfoes,屬性屬性b的成員有的成員有6個(gè)元素,即定義個(gè)元素,即定義b是單下標(biāo)變
25、量,下是單下標(biāo)變量,下標(biāo)有標(biāo)有6個(gè)取值個(gè)取值,即,即b1,b2,b3,b4,b5,b6。 myido(myfoes,myfile):x,c; 定義派生集合定義派生集合myido,屬性屬性x和和c的成員有的成員有30個(gè)元素,即定義個(gè)元素,即定義x和和c是雙下標(biāo)變量,第是雙下標(biāo)變量,第1個(gè)下標(biāo)有個(gè)下標(biāo)有6個(gè)取值,第個(gè)取值,第2個(gè)下標(biāo)有個(gè)下標(biāo)有5個(gè)取值。其中個(gè)取值。其中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)銷平衡運(yùn)輸問題的目標(biāo)函數(shù)產(chǎn)銷平衡運(yùn)輸問題的目標(biāo)函數(shù);for(myfile(i):sum(myfoes(j):x(i,j) = a(i); !產(chǎn)銷平衡運(yùn)輸問題產(chǎn)地的產(chǎn)量約束產(chǎn)銷平衡運(yùn)輸問題產(chǎn)地的產(chǎn)量約束;for(myfoes(j):sum(myfil
27、e(i):x(i,j) = b(j); !產(chǎn)銷平衡運(yùn)輸問題銷地的銷量約束產(chǎn)銷平衡運(yùn)輸問題銷地的銷量約束;end 2、數(shù)據(jù)段(、數(shù)據(jù)段(data):): 以以“data:”開始,以開始,以“enddata”結(jié)束,結(jié)束,作用在于對(duì)集合的屬性(數(shù)組或變量)輸作用在于對(duì)集合的屬性(數(shù)組或變量)輸入必要的常數(shù)數(shù)據(jù)。入必要的常數(shù)數(shù)據(jù)。具體的使用格式為:具體的使用格式為: 屬性(或變量)屬性(或變量)= 常數(shù)列表;常數(shù)列表; 在常數(shù)列表中,數(shù)據(jù)之間用在常數(shù)列表中,數(shù)據(jù)之間用“,”分分隔,也可以隔,也可以空格空格分開(分開(“ctrl+回車回車”的作的作用也等價(jià)于一個(gè)空格),即變量(或?qū)傩裕┯靡驳葍r(jià)于一個(gè)空格
28、),即變量(或?qū)傩裕┦侨〉忍?hào)右邊的常數(shù)是取等號(hào)右邊的常數(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ù)時(shí),可以分別輸入每據(jù)時(shí),可以分別輸入每個(gè)變量對(duì)應(yīng)的數(shù)據(jù),也個(gè)變量對(duì)應(yīng)的數(shù)據(jù),也可以同時(shí)輸入多個(gè)同維可以同時(shí)輸入多個(gè)同維的變量的數(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、束段: 這部分實(shí)際上是定義目標(biāo)函數(shù)、約束條件這部分實(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ì)算變量先計(jì)算變量 j , 再計(jì)算變量再計(jì)算變量 i . 先計(jì)算變量先計(jì)算變量 i ,
31、 再計(jì)算變量再計(jì)算變量 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)解,請(qǐng)寫出最優(yōu)解。解,請(qǐng)寫出最優(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個(gè)取值;變量個(gè)取值;變量b是單下標(biāo),下標(biāo)有是單下標(biāo),下標(biāo)有4個(gè)取值。個(gè)取值。對(duì)于單下標(biāo)的變量,只要直接定義集合即可,對(duì)于單下標(biāo)的變量,只要直接定義集合即可,即要定義兩個(gè)集合,一個(gè)有即要定義兩個(gè)集合,一個(gè)有3個(gè)取值的,另一個(gè)個(gè)取值的,另一個(gè)有有4個(gè)取值的。個(gè)取值的。 由于變量由于變量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個(gè)取值,第個(gè)取值,第1個(gè)個(gè)i下下標(biāo)有標(biāo)有4個(gè)取值,第個(gè)取值,第2個(gè)下標(biāo)個(gè)下標(biāo)j有有3個(gè)取值。個(gè)取值。 對(duì)于雙下標(biāo)的變量,必須定義派生集合。對(duì)于雙下標(biāo)的變量,必須定義派生集合。 它第它第1個(gè)父集是有個(gè)父集是有4個(gè)取值,第個(gè)取值,第2個(gè)父集是有個(gè)父集是有3個(gè)取值。個(gè)取值。 變量變量a已經(jīng)有具體的數(shù)值,它不是決已經(jīng)有具體的數(shù)值,它不是決策變量,故必須在數(shù)據(jù)段中給出具體的取值。策變量,故必須在數(shù)據(jù)段中給出具體的取值。 上
37、述數(shù)學(xué)模型用集合編寫的求解程序?yàn)椋荷鲜鰯?shù)學(xué)模型用集合編寫的求解程序?yàn)椋? , 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;用集合表示的程序?yàn)椋河眉媳硎镜某绦驗(yàn)椋簃odel: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 利用軟件計(jì)算利用軟件計(jì)算,可知可知:該數(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ī)劃問題用集合編寫的程序?yàn)椋壕帉懙某绦驗(yàn)椋? , 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用集合表示的程序?yàn)椋河眉媳硎镜某绦驗(yàn)椋簃odel: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利用軟件計(jì)算可知利用軟件計(jì)算可知:該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為最優(yōu)值為:最優(yōu)值為
46、: 0, 09, 1, 454321xxxxx2 用用LINGO求解運(yùn)輸問題求解運(yùn)輸問題:某產(chǎn)品有某產(chǎn)品有5個(gè)產(chǎn)地個(gè)產(chǎn)地A1,A2,A3,A4,A5, 它的產(chǎn)品供應(yīng)它的產(chǎn)品供應(yīng)6個(gè)銷地個(gè)銷地B1,B2,B3,B4,B5,B6, 產(chǎn)地的產(chǎn)量、銷地的銷產(chǎn)地的產(chǎn)量、銷地的銷量及產(chǎn)品從各產(chǎn)地運(yùn)往各銷地的單位運(yùn)價(jià)如下表:量及產(chǎn)品從各產(chǎn)地運(yùn)往各銷地的單位運(yùn)價(jià)如下表:產(chǎn)地產(chǎn)地銷地銷地B1B2B3B4B5B6產(chǎn)量產(chǎn)量A1122564100A2234693200A3251520100A456791010100A53346679400銷量銷量100200100150150200900應(yīng)如何調(diào)運(yùn),可使總的運(yùn)輸費(fèi)用最
47、少?應(yīng)如何調(diào)運(yùn),可使總的運(yùn)輸費(fèi)用最少?5655545352514645444342413635343332312625242322211615141312119664433 10109765 02552 396432 4652minxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz該產(chǎn)銷平衡運(yùn)輸問題的數(shù)學(xué)模型為該產(chǎn)銷平衡運(yù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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉爾吉斯語中的狀語位置研究論文
- 2025-2030全球及中國(guó)汽油燃油泵行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 5G在電力負(fù)荷預(yù)測(cè)中的應(yīng)用-全面剖析
- 2025-2030全球及中國(guó)急性后護(hù)理解決方案行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030全球及中國(guó)小容量靜脈注射(SVP)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030全球及中國(guó)基于網(wǎng)絡(luò)的數(shù)字看板行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030全球及中國(guó)凋亡調(diào)節(jié)因子BAX行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030全球及中國(guó)兒童日托服務(wù)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030全球及中國(guó)業(yè)務(wù)流程管理(BPM)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 個(gè)性化印刷技術(shù)探討-全面剖析
- 廈門象嶼財(cái)務(wù)報(bào)表分析報(bào)告
- 勝利油田吊裝作業(yè)安全管理實(shí)施細(xì)則
- 2024年新課標(biāo)高考真題河北生物試卷(原卷版)
- 2024年廣州高三語文一模作文題5個(gè)參考立意看“相處之道”(附范文及解析)
- IARPA首次利用網(wǎng)絡(luò)心理學(xué)賦能網(wǎng)絡(luò)防御重塑安全
- 統(tǒng)編版《道德與法治》六年級(jí)下冊(cè)第5課《應(yīng)對(duì)自然災(zāi)害》精美課件(第1課時(shí))
- 工會(huì)現(xiàn)金管理制度
- HG∕T 3792-2014 交聯(lián)型氟樹脂涂料
- 機(jī)制砂綠色生產(chǎn)技術(shù)規(guī)程
- 《工程招投標(biāo)與合同管理》全套教學(xué)課件
- 2024年鄭州鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案1套
評(píng)論
0/150
提交評(píng)論