运筹学实验资料_第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

提交评论