lindo常用的基本語法_第1頁
lindo常用的基本語法_第2頁
lindo常用的基本語法_第3頁
lindo常用的基本語法_第4頁
lindo常用的基本語法_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、目標(biāo)函數(shù)以“max”或“min”開頭,max(或min)與目標(biāo)函數(shù)表達(dá)式之間不能有“=”。lindo常用的基本語法

2、變量名的長度不超過8個(gè)字符,并且必須以英文字母開頭。英文字母不區(qū)分大小寫。3、目標(biāo)函數(shù)與約束條件之間必須用“st”分開,并且“st”單獨(dú)一行。4、目標(biāo)函數(shù)、各約束條件都必須以“回車鍵”結(jié)束,并且都應(yīng)該是經(jīng)過化簡后的表達(dá)式,所有字符必須是英文狀態(tài)下輸入的。5、lindo軟件已規(guī)定所有的決策變量均為非負(fù)數(shù)。6、變量與其系數(shù)之間可以有空格,乘號(hào)必須省略,式中不能有括號(hào);約束條件的右端不能有決策變量,

左端不能有常數(shù)項(xiàng);沒有下標(biāo),式中不能有分母,式中不能有“逗號(hào)”和“句號(hào)”等(說明語句除外)。常用的基本語法

7、約束條件中的符號(hào)“≥”用“>=”表示,

“≤”用“<=”表示,并且可以分別用“>”和“<”表示。8、輸入文件中的第一行默認(rèn)為目標(biāo)函數(shù),可以用2),3)等標(biāo)明各約束條件,便于從輸出結(jié)果中查找信息。以感嘆號(hào)“!”開始的是說明語句.9、程序最后以end結(jié)束,對(duì)于小型的規(guī)劃問題,end可以省略。

常用的基本語法

整數(shù)變量(例如:ginx1)和0-1變量(例如intx3)的約束放在end之后,此時(shí)end不能省略。10、如果所有的決策變量都是整數(shù)變量(假如有6個(gè)變量),則可以在end之后寫命令:

gin6

如果不是所有的決策變量都是整數(shù)變量,則不能采用此方法。

此時(shí),如果省略end的話,整數(shù)變量、0-1變量等限制將不起作用。11、如果x1是整數(shù)變量,則應(yīng)在end之后寫上命令:ginx1如果x1是0-1變量,則應(yīng)在end之后寫上命令:intx1

如果所有的決策變量共有6個(gè),并且所有的決策變量都是整數(shù),則可以在end之后寫命令:gin6

如果x1,x2都是整數(shù)變量,但并不是所有的變量都是整數(shù)變量,則要寫成ginx1ginx2不能寫成ginx1,x2或ginx1;x24.2.1LINGO軟件使用格式(1)目標(biāo)函數(shù)以“max=”或“min=”開頭,其后面是目標(biāo)函數(shù)的表達(dá)式。(2)模型以“model:”開始,以“end”結(jié)束,

對(duì)簡單的模型,“model:”及“end”也可以省略。

lingo中的語句順序不重要,目標(biāo)函數(shù)與約束條件有明顯的標(biāo)志,不用加其它的符號(hào)。

lingo總是根據(jù)“max=”或“min=”語句尋找目標(biāo)函數(shù),而其它的語句都是約束語句和說明語句。

除了首行和末行外,每行以“;”結(jié)束。所有字符必須是英文狀態(tài)下輸入的。

1、LINGO使用規(guī)則LINGO軟件的使用規(guī)則(2)(3)乘號(hào)“*”不能省略,式中可以有括號(hào),約束條件的右端可以有決策變量,沒有下標(biāo),式中不能有分母,式中不能有“逗號(hào)”和“句號(hào)”(說明語句和函數(shù)中的內(nèi)容除外)

,故目標(biāo)函數(shù)和各約束約束條件都可以是沒有經(jīng)過化簡后的表達(dá)式。(4)英文字母不區(qū)分大小寫字母,

lingo中的變量名和行名可以超過8個(gè)字符,但不能超過32個(gè)字符,并且變量名必須以字母開頭,后面跟數(shù)字或字母。(5)lingo軟件已規(guī)定所有的決策變量均為非負(fù)數(shù),(除非用限定變量取值范圍的函數(shù)@free或@bnd等另行說明)。LINGO軟件的使用規(guī)則(3)(6)約束條件中的符號(hào)“≥”用“>=”或“>”表示,“≤”用“<=”或“<”表示。(7)計(jì)算機(jī)把輸入程序中的第一行默認(rèn)為目標(biāo)函數(shù),其它各約束條件可以用[_1],[_2]標(biāo)明它的行號(hào)。

(8)雖然決策變量可以放在約束條件的右端,但為了提高Lingo的求解效率,應(yīng)盡可能采用線性表達(dá)式定義目標(biāo)函數(shù)和約束條件。(9)在lingo中以感嘆號(hào)“!”開始的是說明語句,并且說明語句也需要以分號(hào)“;”結(jié)束,并且除了“!”和“;”之外,說明語句中的其它字符可以是任何字符。LINGO軟件的使用規(guī)則(4)(10)lingo模型是由一系列語句組成的,即每個(gè)語句是組成lingo模型的基本部分,每個(gè)語句(目標(biāo)、約束、說明語句等)都是以分號(hào)“;”結(jié)尾的,編寫程序時(shí)應(yīng)注意保持模型的可讀性。例如:雖然lingo允許每行寫多個(gè)語句,也允許一個(gè)語句寫成幾行,但最好一行只寫一個(gè)語句,并且按照語句的嵌套關(guān)系對(duì)語句安排適當(dāng)?shù)目s進(jìn),增強(qiáng)層次感。LINGO軟件的使用規(guī)則(5)(11)在lingo中,以“@”開頭的都是函數(shù)調(diào)用,其中有:整型變量函數(shù)(@bin表示0-1變量,@gin表示整數(shù)變量)和上下界限定等函數(shù)(@free表示去掉非負(fù)限制,@bnd限定變量的上限、下限)。這些變量的限制要放在“end”之前,否則這些變量的限制將不起作用

。如果x1是整數(shù)變量,則應(yīng)在end之前寫命令:@gin(x1);如果x1是0-1變量,則應(yīng)在end之前寫命令:@bin(x1);如果所有的決策變量共有6個(gè),并且所有的決策變量都是整數(shù),不能寫命令:

@bin(6);等其它的命令如果x1,x2都是整數(shù)變量,并且不是所有的變量都是整數(shù)變量,則要寫成@gin(x1);@gin(x2);不能寫成@gin(x1,x2)或其它的命令練習(xí):分別用lindo、lingo編寫下列數(shù)學(xué)模型的程序(1)可以用于求線性規(guī)劃及非線性規(guī)劃問題,包括非線性整數(shù)規(guī)劃問題。2、lingo的優(yōu)點(diǎn)(2)lingo包含內(nèi)置的建模語言(常稱矩陣生成器),允許以簡練、直觀的方式描述較大規(guī)模的優(yōu)化模型(成千萬個(gè)約束條件和變量),

模型中所需的數(shù)據(jù)可以用一定格式保存在獨(dú)立的文件中,需要時(shí)再讀取數(shù)據(jù)。

在lindo中的目標(biāo)函數(shù)最優(yōu)值、最優(yōu)解與靈敏度分析是一起顯示出來,

3、lingo中的靈敏度分析而在lingo中,最優(yōu)解、最

優(yōu)值與靈敏度分析是分別用不同的命令顯示出來。

lingo中的靈敏度分析的數(shù)據(jù)輸出結(jié)果與lindo中的靈敏性分析中輸出結(jié)果是相同的。

因?yàn)閘ingo的求解結(jié)果中是沒有靈敏度分析的,所以如果需要靈敏度分析的數(shù)據(jù),可以通過修改選項(xiàng)來實(shí)現(xiàn)。

①先修改系統(tǒng)選項(xiàng),啟動(dòng)靈敏度分析通過修改選項(xiàng)得到靈敏度分析數(shù)據(jù)的步驟:執(zhí)行“LINGO/options”菜單命令彈出“選項(xiàng)”對(duì)話框,在“General

solver”選項(xiàng)卡中,將其中左邊列的第二個(gè)選項(xiàng)“Dualcompulations”(對(duì)偶計(jì)算)選項(xiàng)的默認(rèn)設(shè)置“prices”改為“pricesandRanges”(價(jià)格及范圍)后,先對(duì)規(guī)劃問題求解一次。②執(zhí)行“LINGO/Range”菜單命令,運(yùn)行后計(jì)算機(jī)則顯示只有靈敏度分析的數(shù)據(jù)。一般情況下,lingo得到的都是局部最優(yōu)解,要得到全局最優(yōu)解,

激活全局最優(yōu)求解程序的步驟

則要激活全局最優(yōu)求解程序,方法如下:執(zhí)行“LINGO/Options”菜單命令彈出“選項(xiàng)框”對(duì)話框,在“GlobalSolver”選項(xiàng)卡上選擇“UseGlobalSolver”點(diǎn)確定即可。

由于全局最優(yōu)求解程序花費(fèi)的時(shí)間可能是很長的,所以為了減少計(jì)算工作量,我們應(yīng)該盡量對(duì)變量等做進(jìn)一步的限制。

1、運(yùn)算符4.2.2

運(yùn)算符及優(yōu)先級(jí)(1)算術(shù)運(yùn)算符:

+加-減*乘/除^乘方(開方)(2)邏輯運(yùn)算符:邏輯運(yùn)算結(jié)果只有真與假,在lingo中用1和0表示,邏輯運(yùn)算符(表達(dá)式)通常作為過濾條件使用。

①#and#與,#or#或,#not#非②#eq#等于,#ne#不等于,#gt#大于,#ge#大于等于,#lt#小于,#le#小于等于

即:g—大于,e—等于,l—小于,t—不等于(3)關(guān)系運(yùn)算符2、運(yùn)算符的優(yōu)先級(jí)<(或<=)=>(或>=)

#not#(負(fù)號(hào))^

*/

+(減法)

#eq#,#ne#,#gt#,#ge#,#lt#,#le##and#與,#or#>=<

@sqrt(x)

4.2.3常用的函數(shù)在Lingo中,所有的系統(tǒng)函數(shù)都必須是以“@”開頭。1、數(shù)學(xué)函數(shù)@abs(x)

求絕對(duì)值函數(shù),返回x的絕對(duì)值

@cos(x)

求余弦函數(shù),返回x的余弦值,

x的單位是弧度@exp(x)

計(jì)算ex的值@log(x)

計(jì)算lnx

的值@pow(x,y)

計(jì)算xy的值@sqr(x)

計(jì)算x的平方計(jì)算x的平方根@size(A)

求矩陣A的元素個(gè)數(shù)2、集合循環(huán)函數(shù)集合循環(huán)函數(shù)是指對(duì)集合中的所有元素(下標(biāo))進(jìn)行循環(huán)操作的函數(shù),如@sum,@for等。

具體的使用格式:@循環(huán)函數(shù)名(循環(huán)變量所在的集(循環(huán)變量)│過濾條件:循環(huán)表達(dá)式)其中,如果在操作過程中沒有過濾條件,可以省略過濾條件;如果表達(dá)式是對(duì)集合的所有循環(huán)變量進(jìn)行操作,循環(huán)變量也可以省略。集合循環(huán)函數(shù):@for

是對(duì)集合的每個(gè)元素獨(dú)立地操作一次表達(dá)式,通常用于優(yōu)化問題的約束條件;

@sum是求集合中表達(dá)式的和;

@prod是求集合中表達(dá)式的乘積;@max是求集合中表達(dá)式的最大值;

@min是求集合中表達(dá)式的最小值;

但如果是求目標(biāo)函數(shù)的最大、最小值,則是用

“max=目標(biāo)函數(shù)表達(dá)式”,“min=目標(biāo)函數(shù)表達(dá)式”,

而不用寫@。

(1)@for

該函數(shù)用來產(chǎn)生對(duì)集成員的約束。@for函數(shù)允許只輸入一個(gè)約束條件,然后由lingo自動(dòng)產(chǎn)生每個(gè)集成員的約束條件。例4-2

產(chǎn)生序列{1,4,9,16,25}model:

sets:

number/1..5/:x;!此命令產(chǎn)生一個(gè)變量x,是單下標(biāo)變量,其下標(biāo)有5個(gè)取值;

endsets

@for(number(i):x(i)=i^2);!此命令是對(duì)所有的下標(biāo)i,分別求i2;

end(2)@sum

該函數(shù)返回遍歷指定的集成員的一個(gè)表達(dá)式的和。

例4-3

求向量[5,1,3,4,6,10]前5個(gè)數(shù)的和。model:

sets:

number/1..6/:x;

endsets

data:

x=5134610;!此命令給變量x具體的取值;

enddata

s=@sum(number(i)|i#le#5:x(i));

end3、變量定界函數(shù)變量定界函數(shù)是對(duì)變量的取值范圍附加限制。@bnd(A,x,B):

是指限定變量x的取值為

A≤x≤B(在LINDO中無此函數(shù))

@gin(x):

限定變量x

的取值為整數(shù);

@bin(x):

限定變量x為0-1變量,@free(x):

取消變量x的非負(fù)限制,即x可以取負(fù)數(shù)、0或正數(shù),因?yàn)閘ingo原來默認(rèn)所有的變量非負(fù)取值。

在lindo是用命令int,而在lingo中沒有@int(x)

;

4.2.4lingo計(jì)算輸出的結(jié)果

lingo計(jì)算的輸出結(jié)果與lindo計(jì)算的輸出結(jié)果是完全相同的,只是輸出的命令不相同。在lindo中,最優(yōu)值、最優(yōu)解,影子價(jià)格與靈敏度分析的數(shù)據(jù)可以同時(shí)輸出。而在lingo

中,靈敏度分析的數(shù)據(jù)只有通過修改選項(xiàng)才能輸出。lingo計(jì)算輸出結(jié)果例4-1的數(shù)學(xué)模型:model:

max=32*x1+30*x2;

3*x1+4*x2<=36;

5*x1+4*x2<=40;

9*x1+8*x2<=76;

end

輸出結(jié)果:Globaloptimalsolutionfound.

Objectivevalue:282.6667

Totalsolveriterations:3

VariableValueReducedCost

X11.3333330.000000

X28.0000000.000000

RowSlackorSurplusDualPrice

1282.66671.000000

20.0000001.166667

31.3333330.000000

40.0000003.1666674.2.5關(guān)于lingo程序中的段一般來說,lingo中建立的優(yōu)化模型可以由五部分來組成,或稱為五段。下面介紹常用的三段:集合段,數(shù)據(jù)段,目標(biāo)和約束段

1、集合段(sets):這部分要以“sets:”開始,以“endsets”結(jié)束。作用在于定義必要的集合及其元素。

屬性相當(dāng)于變量或數(shù)組,集合的成員相當(dāng)于下標(biāo)。

1、集合段(sets):具體使用格式是:集合名/集的成員/:屬性;ABD/1,2,3,4,5,6/:x,y;顯式羅列所有的成員ABD/1..6/:x,y;

隱式羅列所有的成員,中間的成員系統(tǒng)自動(dòng)產(chǎn)生,只要列出集合的第一個(gè)和最后一個(gè)成員就行,但所有的成員必須是有規(guī)律的。不同的成員及不同的屬性之間,用“,”分隔。

集合的屬性相當(dāng)于以集合的元素為下標(biāo)的數(shù)組,

即屬性相當(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)分別為1,2,3,4,5,6的變量,即x1,

x2,x3,x4,x5,x6

y1,y2,y3,y4,y5,y6

屬性(變量)的具體值如果是常數(shù),則應(yīng)在數(shù)據(jù)段中輸入具體數(shù)據(jù);如果是未知數(shù)(即決策變量),則在數(shù)據(jù)段中不能輸入數(shù)據(jù),但可以在初始段輸入初值。集合的成員和屬性可以在定義時(shí)省略,隨后在數(shù)據(jù)段中輸入。關(guān)于集合的一些說明:

myfile/1..5/:a;

定義原始集合myfile,屬性a的成員有5個(gè)元素,即定義a是單下標(biāo)變量,下標(biāo)有5個(gè)取值,即a1,a2,a3,a4,a5。

myfoes/1..6/:b;

定義原始集合myfoes,屬性b的成員有6個(gè)元素,即定義b是單下標(biāo)變量,下標(biāo)有6個(gè)取值,即b1,b2,b3,b4,b5,b6。

myido(myfoes,myfile):x,c;

定義派生集合myido,屬性x和c的成員有30個(gè)元素,即定義x和c是雙下標(biāo)變量,第1個(gè)下標(biāo)有6個(gè)取值,第2個(gè)下標(biāo)有5個(gè)取值。其中myfoes和myfile稱為派生集合的父集。例4-4model:

sets:

myfile/1..5/:a;

myfoes/1..6/:b;

myido(myfile,myfoes):x,c;

endsets

data:

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ù);

@for(myfile(i):@sum(myfoes(j):x(i,j))=a(i));

!產(chǎn)銷平衡運(yùn)輸問題產(chǎn)地的產(chǎn)量約束;

@for(myfoes(j):@sum(myfile(i):x(i,j))=b(j));

!產(chǎn)銷平衡運(yùn)輸問題銷地的銷量約束;

end

2、數(shù)據(jù)段(data):以“data:”開始,以“enddata”結(jié)束,作用在于對(duì)集合的屬性(數(shù)組或變量)輸入必要的常數(shù)數(shù)據(jù)。具體的使用格式為:

屬性(或變量)=常數(shù)列表;在常數(shù)列表中,數(shù)據(jù)之間用“,”分隔,也可以空格分開(“ctrl+回車”的作用也等價(jià)于一個(gè)空格),即變量(或?qū)傩裕┦侨〉忍?hào)右邊的常數(shù).model:

sets:

ABD/1,2,3,4,5,6/:x,y;

endsets

data:

x=1,3,0,5,6,-7;

y=-3,4,29,58,3,10;

enddata

end在數(shù)據(jù)段中輸入數(shù)據(jù)時(shí),可以分別輸入每個(gè)變量對(duì)應(yīng)的數(shù)據(jù),也可以同時(shí)輸入多個(gè)同維的變量的數(shù)據(jù)值。兩種輸入方法得到的結(jié)果相同例4-5等同于x,y=1,-3,3,4,0,29,5,58,6,3,-7,10;

3、目標(biāo)和約束段:這部分實(shí)際上是定義目標(biāo)函數(shù)、約束條件等,但這部分并沒有段的開始及結(jié)束的標(biāo)記。

lingo的目標(biāo)函數(shù)和約束條件,一般要用到循環(huán)函數(shù):如求和函數(shù)@sum和循環(huán)函數(shù)@for等。

目標(biāo)函數(shù)是求最大值或最小值.

max=目標(biāo)函數(shù);

min=目標(biāo)函數(shù);

約束條件的標(biāo)志是:@for(約束條件);目標(biāo)函數(shù)的標(biāo)志是:

例如:

sets:

ABD/1,2,3,4,5,6/:X;

AB/1..3/:Y,D;

endsets(1)如程序中有約束條件:

在lingo程序中應(yīng)該表示為:

@for(AB(j):@sum(ABD(i):x(i)*y(j))<=d(j));(2)如程序中有約束條件:

在lingo程序中應(yīng)該表示為:

@for(AB(i):@sum(ABD(j):x(i)*y(j))<=d(i));循環(huán)變量:循環(huán)變量:先計(jì)算變量j

,再計(jì)算變量i.

先計(jì)算變量i,再計(jì)算變量j.

model:

sets:

myfile/1..5/:a;myfoes/1..6/:b;myido(myfile,myfoes):x,c;

endsets

data:

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;

enddata

min=@sum(myido(i,j):c(i,j)*x(i,j));

@for(myfile(i):@sum(myfoes(j):x(i,j))=a(i));@for(myfoes(j):@sum(myfile(i):x(i,j))=b(j));

end分析用lingo編寫的程序例4-6寫出下面規(guī)劃問題的lingo中用集合編寫的求解程序。如果線性規(guī)劃問題有最優(yōu)解,請(qǐng)寫出最優(yōu)解。

解:要寫出用lingo中集合的方法求解的程序,則應(yīng)該先把規(guī)劃模型化為用求和形式表示的模型,

其中:

則該規(guī)劃問題的用求和形式表示的模型為:用求和形式表示的模型討論用集合表示的模型:其中:(1)變量c,x是單

下標(biāo),下標(biāo)有3

個(gè)取值;變量b是單下標(biāo),下標(biāo)有4個(gè)取值。對(duì)于單下標(biāo)的變量,只要直接定義集合即可,即要定義兩個(gè)集合,一個(gè)有3個(gè)取值的,另一個(gè)有4個(gè)取值的。由于變量c,b,a已經(jīng)有具體的數(shù)值,故必須在數(shù)據(jù)段中給出具體的取值;變量x沒有具體的數(shù)值,它是決策變量,故不能在數(shù)據(jù)段中給出具體的取值。討論用集合表示的模型:(2)變量a是雙

下標(biāo)變量,下標(biāo)共有4×3個(gè)取值,第1個(gè)i下標(biāo)有4個(gè)取值,第2個(gè)下標(biāo)j有3個(gè)取值。

對(duì)于雙下標(biāo)的變量,必須定義派生集合。

它第1個(gè)父集是有4個(gè)取值,第2個(gè)父集是有3個(gè)取值。

變量a已經(jīng)有具體的數(shù)值,它不是決

策變量,故必須在數(shù)據(jù)段中給出具體的取值。

上述數(shù)學(xué)模型用集合編寫的求解程序?yàn)椋杭隙?/p>

sets:

endsets

ab/1,2,3/:x,c;

abc/1,2,3,4/:b;

abcd(abc,ab):a;數(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;目標(biāo)函數(shù)

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/:x,c;

abc/1,2,3,4/:b;

abcd(abc,ab):a;用集合表示的程序?yàn)椋簃odel:

sets:

ab/1,2,3/:x,c;

abc/1,2,3,4/:b;

abcd(abc,ab):a;

endsets

data:

c=8,10,2;

b=70,80,15,50;

a=2,1,34,2,23,0,12,2,0;

enddata

max=@sum(ab(j):c(j)*x(j));

@for(abc(i):@sum(ab(j):a(i,j)*x(j))<=b(i));

endmodel:

sets:

ab/1,2,3/:x,c;

abc/1,2,3,4/:b;

abcd(abc,ab):a;

endsets

data:

c=8,10,2;

b=70,80,15,50;

a=2,1,34,2,23,0,12,2,0;

enddata

max=@sum(ab(j):c(j)*x(j));

@for(abc(i):@sum(ab(j):a(i,j)*x(j))<=b(i));

end

Globaloptimalsolutionfound.Objectivevalue:280.0000Totalsolveriterations:2VariableValueReducedCostX(1)0.0000002.666667X(2)25.000000.000000X(3)15.000000.000000利用軟件計(jì)算,可知:該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為最優(yōu)值為:

(2)把規(guī)劃問題化為用求和形式表示的模型,其中:

該規(guī)劃問題用求和形式表示的模型為:該規(guī)劃問題用集合編寫的程序?yàn)椋杭隙?/p>

sets:

endsets

ab/1,2,3,4,5/:x,c;

abc/1,2,3/:b;

abcd(abc,ab):a;數(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;目標(biāo)函數(shù)

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;

endsets

data:

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;

enddata

max=@sum(ab(j):c(j)*x(j));

@for(abc(i):@sum(ab(j):a(i,j)*x(j))=b(i));

end用集合表示的程序?yàn)椋簃odel:

sets:

ab/1,2,3/:b;

abc/1,2,3,4,5/:c,x;

abcd(ab,abc):a;

endsets

data:

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;

enddata

max=@sum(abc(j):c(j)*x(j));

@for(ab(i):@sum(abc(j):a(i,j)*x(j))=b(i));

end

Globaloptimalsolutionfound.Objectivevalue:2.000000Totalsolveriterations:0VariableValueReducedCostX(1)4.0000000.000000X(2)1.0000000.000000X(3)9.0000000.000000X(4)0.0000000.3333333X(5)0.0000000.3333333利用軟件計(jì)算可知:該數(shù)學(xué)規(guī)劃模型的最優(yōu)解為最優(yōu)值為:

2

用LINGO求解運(yùn)輸問題:某產(chǎn)品有5個(gè)產(chǎn)地A1,A2,A3,A4,A5,它的產(chǎn)品供應(yīng)6個(gè)銷地B1,B2,B3,B4,B5,B6,產(chǎn)地的產(chǎn)量、銷地的銷

量及產(chǎn)品從各產(chǎn)地運(yùn)往各銷地的單位運(yùn)價(jià)如下表:產(chǎn)地銷地B

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論