運籌學實驗資料_第1頁
運籌學實驗資料_第2頁
運籌學實驗資料_第3頁
運籌學實驗資料_第4頁
運籌學實驗資料_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

運籌學課程上機實驗要求

每項實驗提交一份實驗報告,根據實驗報告進行上機實驗成績評定。提交實驗報

告要求:

1.提交電子word版運籌學課程實驗報告一份,文件名以學生的學號命名(撰寫

要求及格式參考附件);

2.實驗報告統一-由學習委員打包發送到chen.zhh@163.com

3.提交報告時間:下次上機之前。

成績評定等級主要分5級,優秀(10()分)、良好(85分)、中等(7()分)、及格

(60分)、不及格(60分以下)。具體成績評定還可根據實際情況界于5等級成績之

間細評為10等級。優(100分)、優-(95分)、良+(90分)、良(85分)、良-(80)、

中+(75分)、中(70分)、中-(65分)、及格(60分)、不及格(60分以下)。

5級成績評定標準如下:

優秀:

能夠綜合應用所學過運籌學知識解決案例問題,模型建立及分析過程合理,求解

過程及結果可靠,體現了學生較強的分析和解決實際問題的能力,實驗報告完整。實

驗工作量充分。

良好:

能夠綜合應用所學過運籌學知識解決案例問題,模型建立及分析過程合理,求解

過程及結果基本可靠,體現了學生較強的分析和解決實際問題的能力,實驗報告較完

整。實驗工作量較充分。

中等:

能夠綜合應用所學過運籌學知識解決案例問題,模型建立及分析過程基本合理,

求解過程及結果基本可靠,體現了學生分析和解決實際問題的基本能力,實驗報告較

完整。

及格:

基本能夠綜合應用所學過運籌學知識解決案例問題,具有問題分析過程及建立了

問題基本模型,體現了學生分析和解決實際問題的基本能力,實驗報告基本完整。

不及格:

沒有問題分析過程及模型,實驗報告不符合要求。

【注】:如有兩份或以上實驗報告雷同,均評定為不及格。

運籌學課程實驗任務書

實驗一熟悉常用求解線性規劃問題的軟件

一、實驗目的

1.掌握線性規劃建模的方法與步驟;

2.掌握線性規劃問題求解的原理;

3.熟悉常用軟件-Excel,Matlab,Lingo,Istopt的用法.

二、實驗內容

1.對線性規劃問題的習題,列出線性規劃模型并求解;

2.用Excel加載規劃求解,對所建立線性規劃模型求解;

3.用Matlab調用函數linprog。,對所建立線性規劃模型求解;

4,用Lingo編寫程序,對所建立線性規劃模型求解;

5.用Istopt對所建立線性規劃模型求解.

【注】:根據所提供的資料?,自學各種軟件的用法。

三、實驗要求

1.學生在實驗操作過程中自己獨立完成,1人1組;

2.完成實驗報告:分析結果的正確性,寫出簡短報告說明各軟件的優劣。

3.實驗學時:4學時

四、實驗儀器、設備

操作系統為Windows2000及以上的電腦,并裝有Office,Lingo,Matlab軟件,Istopt

軟件自行下載,無需安裝。

五、實驗步驟

上機:建立下列問題的數學規劃模型,并嘗試用各種軟件進行求解。

問題:某制藥廠生產甲、乙兩種藥品,生產這兩種藥品要消耗某種維生素。生產

每噸藥品所需要的維生素量分別為30Kg,20Kg,所占設備時間分別為5臺班,1臺班,

該廠每周所能得到的維生素量為160kg,每周設備最多能開15個臺班。且根據市場需

求,甲種產品每周產量不應超過4t。已知該廠生產每噸甲、乙兩種產品的利潤分別為

5萬元及2萬元。問該廠應如何安排兩種產品的產量才能使每周獲得的利潤最大?

每噸產品的消耗

每周資源總量

甲乙

維生素/kg3()20160

設備/臺班5115

附錄1:

Excel規劃求解,用于求解線性規劃。見附件

附錄2:

IstOPT用于求解線性規劃。見附件

附錄3:

Matlab用于求解線性規劃。

1.模型minz=cX

S.t.AX<b

命令:x=linprog(c,A,b)

2.模型minz=cX

S.t.AX<b

AeqX=Beq

命令:x=linprog(c,A,b,Aeq,beq)

注意:若沒有不等式:AXWb約束,則令A=[],b=[].

3.模型minz=cX

S.tAX<b

AeqX=Beq

VLB<X<VUB

命令:x=linprog(c,A,b,Aeq,beq,VLB,VUB)

注意:若沒有等式:AeqX=Beq約束,則令A=[],b=[].

4.命令:[x,fval]=Mnprog(...)

返回最優解x及x處的目標函數值fval.

附錄4:

Lingo用于求解小規模線性規劃問題

對于小型線性規劃模型的求解,LINGO中可以用一種與線性規劃的數學模型及其

類似的方式直接輸入模型來求解,簡單方便。

例1.1求解下面的線性規劃

maxz=2x1+3x2

X]+2X2<8

4XIW16

4x2W16

X”X220

LINGO中的輸入的代碼如圖2所示,這種輸入方式的優勢在于適合LINDO系統。

ELIHGO-[LINGOKodel-LINGO2]

FileEditLINGOWindowHelp

口|闔。牌ID電|聞口|a|>牌|。|⑼國|同區|的|@屈|曾解

max=2*xl+3*x2;

xl+2*x2<=8;

4*xl<=16;

4*x2<=12;

圖2

注1:LINGO中輸入的代碼和線性規劃模型的差異如下:

(1)maxz-*max,minz-*min;

⑵每一行(包括目標函數)用英文的分號結束;

⑶數與變量的乘積用*表示;

⑷不等號W和2用<=和>=或<和>表示;

⑸LINGO系統默認所有的變量非負,因此非負變量的約束可省略,而非正變量和自

由變量要用xl<=0和@候6儀2)表示;

(6)LINGO中不能輸入下標,XI-xlo

圖3

注2:例1.1的模型求解還可以按圖4的方式輸入代碼求解。此時LINGO中輸入的代

碼和線性規劃模型的除注1的相關差異外,還有如下不同:

(1)數與變量的乘積,乘號用空格表示;

(2)約束條件之前用s.t.或subjectto表示后面是約束;

(3)每行后面不用分號結束;

(4)這種輸入法的好處是和LINDO的輸入--致,可以直接在LINDO中求解,做靈敏

度分析較方便,也能得到最優單純形表。

ELIHGO-[LINGOKodel-LING02]

FileEditLINGOWindowHelp

0I曲s|昌I電僮1口庭1卻時|。|⑼國同區I的|@|由|曾施|

max=2*xl+3*x2;

xl+2*x2<=8;

4*xl<=16;

4*x2<=12;

圖4

點菜單欄的LINGO-Solver,或直接點工具欄上的,可得求解結果即解的狀況

(SolverStatus)和解報告(SolutionReport):

LINGOSolverStatus[lindO3_Distn_UnliMited]

SolverStatusVariables

ModelLPotal2

oxilinear:0

StateGlobalOptxtegers:0

)jective:14

Constraints

asibility:0otal:4

onlinear:0

orations:1

ExtendedSolverStatusotal:6

oxJLinear:0

Solver

BestGeneratorMemoryUsed(K)

ObjBound:17

Steps:

ElapsedRuntimeQih.:mm:ss)

Active:...00:00:00

Update[2I1(Close

圖5

關于圖5的SolverStatus的注釋如下:

(1)Model(模型)LP(線性規劃Linearprogramming,其它模型還有非線性規劃

NLP(Nonlinearprogramming),整數線性規劃ILP(Integer),整數非線性規劃INLP)

(2)State(狀態)GlobalOpt(整體最優解Globaloptimalsolution,線性規劃的最優解

都是整體最優解,非線性規劃有局部最優解(LocalOpt)和整體最優解之分,其它狀

態還有無可行解(Infeasible)圖7和無界解(Unbounded)圖8)

(3)Objective,目標函數值為14,由于處于最優解狀態,所以這里表示最優值為14。

(4)Infeasibility0,不可行性0,表示此時有可行解,否則沒有可行解。

(5)Iteration1,表示迭代了1步求得最優解。

(6)ExtendedSolverStatus,表示擴展的解的狀況,主要用于整數規劃和非線性規劃。

⑺Variables,表示變量,Total2,表示總決策變量2個,非線性(Nonlinear)變量和整

數(Integer)變量都是0個。

(8)Constraints,表示約束,Total4,表示包括目標函數一共4個約束,非線性(Nonlinear)

約束0個。

(9)Nonzeros,表示非零系數,Total6,表示包括目標函數和約束條件中變量的非零系

數6個,右端常數項不算。

LIHGOSolutionReportlindO3_Distn_UnliMxted

FileEditLJNGOWindowHelp

口后舊gp|a卜|多哈13I|i|兇|alyls'?」壁

tSolutionReport-lindO3_Distn_UnliMi-ted

Globaloptimalsolutionfound.

Objectivevalue:14.00000

Totalsolveriterations:1

VariatoleValueReducedCost.

Ixi4.0000000.000000

12.0000000.000000

RowSlackorSurplusDualPrice

114.000001.000000

20.0000001.500000

30.0000000.1250000

4.0000000.000000

圖6

max=2*xl+3*x2;

xl+2,x2<=8;

圖7

關于圖6的SolutionReport的注釋如下:

(1)Globaloptimalsolutionfound.整體最優解被找到。

(2)Objectivevalue:14.00000.最優值為14。

(3)Totalsolveriterations:1.求解的總迭代步數為1步。

(4)VariableValueReducedCost

XI4.0000000.000000

XI2.0000000.000000

最優解的變量Xl=4.000000,X2=2.OOOOOOo

(5)ReducedCost:表示減少的成本,即最小化問題的最優目標函數中各變量的檢驗數,即在其它

變量不變時,該變量減少一個單位,目標費用減少的數量如圖8。對于最大化問題,是最優目標函

數中各變量的檢驗數的相反數,表示當該變量增加一個單位時目標函數減少的數量如圖9。這里由

于上面XI和X2為取值非零的基變量,所以檢驗數為零。ReducedCost為在最優解時,最小化問

題中變量的檢驗數,最大化問題中變量檢驗數的相反數。

(6)RowSlackorSurplusDualPrice

114.000001.000000

20.0000001.500000

30.0000000.1250000

44.0000000.000000

SlackorSurplus表示松弛或剩余變量,即將最優解帶入各個約束條件后,左邊比右邊小的或大

的數量,表示在最優方案中,剩余或超過的資源數量。注意,這里第一行表示目標函數,其松弛或剩

余變量和對偶價格都沒有意義。

⑺DualPrice,對偶價格,即最大化問題中對偶變量的最優解的值如圖9所示,對于最小化問題,

對偶價格為對偶變量的最優解的值的相反數。

ELINGO-SolutionReport-LINGO5

FileEditLINGOWindowHelp

闔第:叵1叫,唇回國?|區]圄引國1號闡______________________________________

^IIRGOlodel-LIKGO5

ESolutionReport-LINGO5

ir)in=2*xl+3*x2+4*x3;Globaloptimalsolutionfound.

xl+2*x2+x3-x4?3;Objectivevalue:5.600000

2?xl-x2+3*x3-x5=4;Totalsolveriterations:2

VariableValueReducedCost

XI2.2000000.000000

X20.40000000.000000

X30.0000001.800000

X40.0000001.600000

X50.0000000.2000000

RowSlackorSurplusDualPrice

15.600000-1.000000

20.000000-1.600000

30.000000-0.2000000

表示在最優解時,最小化的目標函數為Z=5.6+0XI+0X2+1.8X3+1.6X4+0.2X5

圖9

工LINGO-SolutionReport-LING02

FileEditIZHGOWindowKelp

印團舊1倒*1網聞o|:-|3明。|⑨圓?|兇|同引用|曾陷

金LIHGOlodel-LING021SolutionReport-LIHG02

1max=2*xl+3*x2;

Globaloptimalsolutionfound.

xl+2*x2+x3-8;Objectivevalue:14.00000

4*xl+x4=16;Totalsolveriterations:1

4*x2+x5=12;

VariableValueReducedCost

XI4.0000000.000000

X22.0000000.000000

X30.0000001.500000

X40.0000000.1250000

X54.0000000.000000

RowSlackorSurplusDualPrice

114.000001.000000

20.0000001.500000

30.0000000.1250000

40.0000000.000000

表示在最優解時,最大化的目標函數為2=14-0X1-0X2-1.5X39125X4-0X5

圖10

例1.2求解下面線性規劃的數學模型

minz=-3xl+4x2-2x3+5x4;

4xl-x2+2x3-x4=-2;

xl+x2+3x3-x4^14;

-2xl+3x2-x3+2x4^2;

xl/x2zx3^0/x4無約束;

LINGO中輸入如下的代碼:

min=-3*xl+4*x2-2*x3+5*x4;

4*xl-x2+2*x3-x4=-2;

xl+x2+3*x3-x4<=14;

-2*xl+3*x2-x3+2*x4>=2;

@free(x4);

求解可得解報告:

Globaloptimalsolutionfound.

Objectivevalue:2.000000

Totalsolveriterations:0

VariableValueReducedCost

XI0.00000015.50000

X28.0000000.000000

X30.0000008.500000

X4-6.0000000.000000

RowSlackorSurplusDualPrice

12.000000-1.000000

20.0000004.500000

30.0000000.5000000

410.000000.000000

實驗二Lingo求解較大規模線性規劃問題

一、實驗目的

1.掌握線性規劃建模的方法與步驟;

2,熟悉Lingo求解較大規模線性規劃問題.

二、實驗內容

1.對線性規劃問題的習題,列出線性規劃模型并求解;

2.用Lingo編寫程序,對所建立線性規劃模型求解;

三、實驗要求

1.學生在實驗操作過程中自己獨立完成,1人1組;

2.完成實驗報告:分析結果的正確性,說明對于大規模線性規劃問題的求解Lingo

具有的優勢。

四、實驗儀器、設備

操作系統為Windows2000及以上的電腦,并裝有Lingo軟件。

五、實驗內容及步驟

教學過程中所見到的運籌學模型大多是小規模的,但是,在解決生產和經營管理

活動中的實際時.,建立的通常是含有很多和變量和約束條件的模型,用前面的方法,

經常要花費大量的時間來輸入代碼或模型,下面介紹編程的方法,對于解決大型復雜

的模型,效果顯著。

例2.1求解下面線性規劃的數學模型;

minz=-3xl+4x2-2x3+5x4;

4x1-x2+2x3-x4=-2;

xl+x2+3x3-x4^14;

-2xl+3x2-x3+2x422;

xl,x2,x320,x4無約束;

編程如下:

!定義變量與常量,給出了值的為常量;

sets:

is/1..3/:b;

js/1..4/:c,x;

links(isrjs):a;

endsets

!目標函數;

min=@sum(js(J):c(J)*x(J));

!約束條件;

@sum(js(J):a(1,J)*x(J))=b(1);

@sum(js(J):a(2zJ)*x(J))<=b(2);

@sum(js(J):a(3zJ)*x(J))>=b(3);

!自由變量;

?free(x(4));

!指定常量的值;

data:

c=-34-25;

b=-2142;

a=4-12-1

113-1

-23-12;

enddata

!結束;

end

求解可得解報告:

Globaloptimalsolutionfound.

Objectivevalue:2.000000

Totalsolveriterations:2

VariableValueReducedCost

B(1)-2.0000000.000000

B(2)14.000000.000000

B(3)2.0000000.000000

C(1)-3.0000000.000000

C(2)4.0000000.000000

C(3)-2.0000000.000000

C(4)5.0000000.000000

X(1)0.00000015.50000

X(2)8.0000000.000000

X(3)0.0000008.500000

X(4)-6.0000000.000000

A(1,1)4.0000000.000000

A(lz2)-1.0000000.000000

A(1,3)2.0000000.000000

A(1,4)-1.0000000.000000

A(2,1)1.0000000.000000

A(2,2)1.0000000.000000

A(2,3)3.0000000.000000

A(2,4)-1.0000000.000000

A(3,1)-2.0000000.000000

A(3,2)3.0000000.000000

A(3,3)-1.0000000.000000

A(3,4)2.0000000.000000

RowSlackorSurplusDualPrice

12.000000-1.000000

20.0000004.500000

30.0000000.5000000

410.000000.000000

這里以!開始和分號結束的語句為注釋語句,該程序的求解方法和解報告與小型模

型類似,只是編程的解報告會把所有的系數也表述出來而已。

從例2.1可以看出,一個LINGO的程序由四個部分組成。

1.以“sets:”開始,以“endsets”結束的語句定義模型中出現的變量集。

2.以sets中定義的變量和常量來表達目標函數。

3.以sets中定義的變量和常量來表達全部的約束條件。

4.以“data:"開始,以“enddata"結束的語句給常量指定數值。

上機內容:建立下列配料問題的數學模型,并用lingo求解。

配料問題:某工廠要用三種原材料C、P、H混合調配出三種不同規格的產品A、B、Do

已知產品的規格要求,產品單價,每天能供應的原材料數量及原材料單價,分別見

表1和表2。該廠應如何安排生產,使利潤收入為最大?

表1

產品名稱規格要求單價(元7kg)

A原材料C不少于50%50

原材料P不超過25%

B原材料C不少于25%35

原材料P不超過50%

D不限25

表2

原材料名稱每天最多供應量(kg)單價(元/kg)

C10065

P10025

H6035

實驗三靈敏度分析

一、實驗目的

1.理解靈敏度分析的概念和意義

2.熟悉excel和Lingo靈敏度分析結果.

二、實驗內容

1.對線性規劃問題的習題,用軟件進行計算并導出分析報告;

2.用excel或Ling。求解線性規劃,并驗證靈敏度分析的結果;

三、實驗要求

1.學生在實驗操作過程中自己獨立完成,1人1組;

2.完成實驗報告:對靈敏度分析的概念和意義的理解;

3.實驗學時:2學時。

四、實驗儀器、設備

操作系統為Windows2000及以上的電腦,并裝有Excel,Lingo軟件。

五、實驗內容及步驟

在求解了一個線性規劃的模型的時候,如果是編程輸入的模型,還可以通過

LINGO中的命令顯示線性規劃的數學模型。

例3.1通過操作,以下程序的數學模型。

求解下面的線性規劃

maxz=2x1+3x2

X|+2X2^8

4XI<16

4x2^16

X”X2>0

用LINGO編程求解的線性規劃模型

!定義變量與常量,給出了值的為常量;

sets:

is/1..3/:b;

js/1..2/:czx;

links(is,js):a;

endsets

!目標函數;

max=@sum(js(J):c(J)*x(J));

!約束條件;

@for(is(I):@sum(js(J):a(I,J)*x(J))<=b(I));

!指定常量的值;

data:

!直接輸入數據;

c=23;

b=81612;

a=l2

40

04;

enddata

end

£LIHGO—LINGOKodel—LINGO1

FileEditLINGOWindowHelp

口1目IdSolveCti-l+U,㈤3|0>|區)|E3|因1導|3|不|虛I

Salxitioxt...Ctx-l+W

RaztgeCt.x-1+R

1::丁―

O^t.ions...Ctz-l+I

set^s:

is/1..3^exter-ate?1DisplaymodelCti-l+G

Js/1..2

Doxt'tdisplaymodelCtrl+Q

1inJcs(1Pl_ctiax-?Ctx-l+K

endsets

?目標國要DebusCtirl+D

SvModelSta.t.ist.icsCt.i-1+E

?約束條仲

@for(isLook...Ct.z-1+LX(J))vf(I));

!才旨定常量的1直;

data:

?直接輸入數據;

c=23:

to-81612;

&.=12

qo

oq;

enddata

end

圖11

圖12

2LLINGO-GeneratedBodelReport-LINGO1

FileEditLINGOWindowHelp

d|=舊|第Id嘲匈wluj至*ol燮I回?|⑷的|@|田|蹩㈣

LINGOBodel-LIBGO1Generat■odelReport-LIHGO1

!定義變量與常量,給出了值的為常量;

sets:MODEL:

is/1..3/:b;[_1]MAX-2*X1+3*X2

js/1..2/:c,x;[_2]X_1+2*X_2<=8;

links(is,js):a;[_3]4-*X_1<=16;

endsets[_4]4*X-2<=12;

!目標函數;END

max=0suro(js(J):c(J)*x(J));

!約束條件;

0for(is(I):0suin(js(J):a(I,J)*x(J))<=b(I));

!指定常量的值;

data:

!直接輸入數據;

c-23;

b=81612;

aml2

40

04;

enddata

end

圖13

MODEL:

[_1]MAX=2*X_1+3*X_2;

[_2]X_1+2*X_2<=8;

[_3]4*X_1<=16;

[_4]4*X_2v=12;

END

只是系統默認的非負約束沒有顯示,下圖表明自由變量和非正變量都會顯示出來。

atedKodelReportLINGO1

FileEditLINGOWindowHelp

口I總I&I號1品|電|匈I&>同臼皎1國|?|區11a|q>|回蹩|喇

x.GeneratedModelReport—LINGO1

二LIHGOModel-L.IBGO1

1

,定義變量與常盤,給出了值的為常量:MODEL:

sets:[_1]MAX-2*X_1+3*X_2;

is/1..3/:b;[二2]X_14-2*X_2<=8;-

js/1..2/:czx;[-3]*X_1<=_16;

links(is,js):a;[二4]4*X二2<=12;

endsets[二5]X_2<二。;

!目標函數;QFREETX_I);

roax-Qsum(js(J):c(J)*x(J));END

,約束條件;

0for(is(I):Qsum(js(J):a(I,J)?x(J))<=b(I));

0free(x(1));

x(2)<=O;

”旨定常量的值;

data:

,直接輸入數據;

c-23;

b=81612;

a=l2

4O

O4;

enddat-a

end

圖14

下面的圖演示了對線性規劃的靈敏度分析

首先求解一個線性規劃模型,然后選中"prices&Ranges”

LIHGO-LIHGOlodel-LINGO1

FiloEditJWGOWindowH?lp

印咨日昌:阿|心畫回松回E3同用引國鑰電

圖15

然后在菜單LINGO-Ranges

LINGO-LINGOBodel-LINGO1

EileEditLINGOWindowHelp

口ia已SolveCtrl+U|Er|o|喳>|區1|E1。

S^lution...Ctrl+W

一,LJLKGU|

RangeCtrl+R-__-__-__-__-__-__-__-__-__-__-__-__-__-__-__-_1

?定義變叁

ORtiorts...Ctrl+I

sets:

is/1..3generate?

Js/1..2

1inks(1PictureCtrl+K

endset-s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論