运筹学实验指导书.docx

上传人:b****6 文档编号:4972750 上传时间:2022-12-12 格式:DOCX 页数:43 大小:447.90KB
下载 相关 举报
运筹学实验指导书.docx_第1页
第1页 / 共43页
运筹学实验指导书.docx_第2页
第2页 / 共43页
运筹学实验指导书.docx_第3页
第3页 / 共43页
运筹学实验指导书.docx_第4页
第4页 / 共43页
运筹学实验指导书.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

运筹学实验指导书.docx

《运筹学实验指导书.docx》由会员分享,可在线阅读,更多相关《运筹学实验指导书.docx(43页珍藏版)》请在冰豆网上搜索。

运筹学实验指导书.docx

运筹学实验指导书

运筹学课程上机实验要求

每项实验提交一份实验报告,根据实验报告进行上机实验成绩评定。

提交实验报告要求:

1.提交电子word版运筹学课程实验报告一份,文件名以学生的学号命名(撰写要求及格式参考附件);

2.实验报告统一由学习委员打包发送到chen.zhh@

3.提交报告时间:

下次上机之前。

成绩评定等级主要分5级,优秀(100分)、良好(85分)、中等(70分)、及格(60分)、不及格(60分以下)。

具体成绩评定还可根据实际情况界于5等级成绩之间细评为10等级。

优(100分)、优-(95分)、良+(90分)、良(85分)、良-(80)、中+(75分)、中(70分)、中-(65分)、及格(60分)、不及格(60分以下)。

5级成绩评定标准如下:

优秀:

能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果可靠,体现了学生较强的分析和解决实际问题的能力,实验报告完整。

实验工作量充分。

良好:

能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程合理,求解过程及结果基本可靠,体现了学生较强的分析和解决实际问题的能力,实验报告较完整。

实验工作量较充分。

中等:

能够综合应用所学过运筹学知识解决案例问题,模型建立及分析过程基本合理,求解过程及结果基本可靠,体现了学生分析和解决实际问题的基本能力,实验报告较完整。

及格:

基本能够综合应用所学过运筹学知识解决案例问题,具有问题分析过程及建立了问题基本模型,体现了学生分析和解决实际问题的基本能力,实验报告基本完整。

不及格:

没有问题分析过程及模型,实验报告不符合要求。

【注】:

如有两份或以上实验报告雷同,均评定为不及格。

运筹学课程实验任务书

实验一熟悉常用求解线性规划问题的软件

一、实验目的

1.掌握线性规划建模的方法与步骤;

2.掌握线性规划问题求解的原理;

3.熟悉常用软件-Excel,Matlab,Lingo,1stopt的用法.

二、实验内容

1.对线性规划问题的习题,列出线性规划模型并求解;

2.用Excel加载规划求解,对所建立线性规划模型求解;

3.用Matlab调用函数linprog(),对所建立线性规划模型求解;

4.用Lingo编写程序,对所建立线性规划模型求解;

5.用1stopt对所建立线性规划模型求解.

【注】:

根据所提供的资料,自学各种软件的用法。

三、实验要求

1.学生在实验操作过程中自己独立完成,1人1组;

2.完成实验报告:

分析结果的正确性,写出简短报告说明各软件的优劣。

3.实验学时:

4学时

四、实验仪器、设备

操作系统为Windows2000及以上的电脑,并装有Office,Lingo,Matlab软件,1stopt软件自行下载,无需安装。

五、实验步骤

上机:

建立下列问题的数学规划模型,并尝试用各种软件进行求解。

问题:

某制药厂生产甲、乙两种药品,生产这两种药品要消耗某种维生素。

生产每吨药品所需要的维生素量分别为30Kg,20Kg,所占设备时间分别为5台班,1台班,该厂每周所能得到的维生素量为160kg,每周设备最多能开15个台班。

且根据市场需求,甲种产品每周产量不应超过4t。

已知该厂生产每吨甲、乙两种产品的利润分别为5万元及2万元。

问该厂应如何安排两种产品的产量才能使每周获得的利润最大?

每吨产品的消耗

每周资源总量

维生素/kg

30

20

160

设备/台班

5

1

15

附录1:

Excel规划求解,用于求解线性规划。

见附件

附录2:

1stOPT用于求解线性规划。

见附件

附录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)

注意:

若没有不等式:

AX≤b约束,则令A=[],b=[].

3.模型minz=cX

S.t.AX≤b

AeqX=Beq

VLB≤X≤VUB

命令:

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

注意:

若没有等式:

AeqX=Beq约束,则令A=[],b=[].

4.命令:

[x,fval]=linprog(…)

返回最优解x及x处的目标函数值fval.

附录4:

Lingo用于求解小规模线性规划问题

对于小型线性规划模型的求解,LINGO中可以用一种与线性规划的数学模型及其类似的方式直接输入模型来求解,简单方便。

例1.1求解下面的线性规划

maxz=2x1+3x2

x1+2x2≤8

4x1≤16

4x2≤16

x1,x2≥0

LINGO中的输入的代码如图2所示,这种输入方式的优势在于适合LINDO系统。

图2

注1:

LINGO中输入的代码和线性规划模型的差异如下:

(1)maxz→max,minz→min;

(2)每一行(包括目标函数)用英文的分号结束;

(3)数与变量的乘积用*表示;

(4)不等号≤和≥用<=和>=或<和>表示;

(5)LINGO系统默认所有的变量非负,因此非负变量的约束可省略,而非正变量和自由变量要用x1<=0和@free(x2)表示;

(6)LINGO中不能输入下标,x1→x1。

图3

注2:

例1.1的模型求解还可以按图4的方式输入代码求解。

此时LINGO中输入的代码和线性规划模型的除注1的相关差异外,还有如下不同:

(1)数与变量的乘积,乘号用空格表示;

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

(3)每行后面不用分号结束;

(4)这种输入法的好处是和LINDO的输入一致,可以直接在LINDO中求解,做灵敏度分析较方便,也能得到最优单纯形表。

图4

点菜单栏的LINGO→Solver,或直接点工具栏上的,可得求解结果即解的状况(SolverStatus)和解报告(SolutionReport):

图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,表示扩展的解的状况,主要用于整数规划和非线性规划。

(7)Variables,表示变量,Total2,表示总决策变量2个,非线性(Nonlinear)变量和整数(Integer)变量都是0个。

(8)Constraints,表示约束,Total4,表示包括目标函数一共4个约束,非线性(Nonlinear)约束0个。

(9)Nonzeros,表示非零系数,Total6,表示包括目标函数和约束条件中变量的非零系数6个,右端常数项不算。

图6

图7

图8

关于图6的SolutionReport的注释如下:

(1)Globaloptimalsolutionfound.整体最优解被找到。

(2)Objectivevalue:

14.00000.最优值为14。

(3)Totalsolveriterations:

1.求解的总迭代步数为1步。

(4)VariableValueReducedCost

X14.0000000.000000

X12.0000000.000000

最优解的变量X1=4.000000,X2=2.000000。

(5)ReducedCost:

表示减少的成本,即最小化问题的最优目标函数中各变量的检验数,即在其它变量不变时,该变量减少一个单位,目标费用减少的数量如图8。

对于最大化问题,是最优目标函数中各变量的检验数的相反数,表示当该变量增加一个单位时目标函数减少的数量如图9。

这里由于上面X1和X2为取值非零的基变量,所以检验数为零。

ReducedCost为在最优解时,最小化问题中变量的检验数,最大化问题中变量检验数的相反数。

(6)RowSlackorSurplusDualPrice

114.000001.000000

20.0000001.500000

30.0000000.1250000

44.0000000.000000

SlackorSurplus表示松弛或剩余变量,即将最优解带入各个约束条件后,左边比右边小的或大的数量,表示在最优方案中,剩余或超过的资源数量。

注意,这里第一行表示目标函数,其松弛或剩余变量和对偶价格都没有意义。

(7)DualPrice,对偶价格,即最大化问题中对偶变量的最优解的值如图9所示,对于最小化问题,对偶价格为对偶变量的最优解的值的相反数。

图9

图10

例1.2求解下面线性规划的数学模型

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

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

x1+x2+3x3-x4≤14;

-2x1+3x2-x3+2x4≥2;

x1,x2,x3≥0,x4无约束;

LINGO中输入如下的代码:

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

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

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

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

@free(x4);

求解可得解报告:

Globaloptimalsolutionfound.

Objectivevalue:

2.000000

Totalsolveriterations:

0

VariableValueReducedCost

X10.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=-3x1+4x2-2x3+5x4;

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

x1+x2+3x3-x4≤14;

-2x1+3x2-x3+2x4≥2;

x1,x2,x3≥0,x4无约束;

编程如下:

!

定义变量与常量,给出了值的为常量;

sets:

is/1..3/:

b;

js/1..4/:

c,x;

links(is,js):

a;

endsets

!

目标函数;

min=@sum(js(J):

c(J)*x(J));

!

约束条件;

@sum(js(J):

a(1,J)*x(J))=b

(1);

@sum(js(J):

a(2,J)*x(J))<=b

(2);

@sum(js(J):

a(3,J)*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(1,2)-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、D。

已知产品的规格要求,产品单价,每天能供应的原材料数量及原材料单价,分别见表1和表2。

该厂应如何安排生产,使利润收入为最大?

表1

产品名称

规格要求

单价(元/kg)

A

原材料C不少于50%

原材料P不超过25%

50

B

原材料C不少于25%

原材料P不超过50%

35

D

不限

25

 

表2

原材料名称

每天最多供应量(kg)

单价(元/kg)

C

100

65

P

100

25

H

60

35

 

实验三灵敏度分析

一、实验目的

1.理解灵敏度分析的概念和意义

2.熟悉excel和Lingo灵敏度分析结果.

二、实验内容

1.对线性规划问题的习题,用软件进行计算并导出分析报告;

2.用excel或Lingo求解线性规划,并验证灵敏度分析的结果;

三、实验要求

1.学生在实验操作过程中自己独立完成,1人1组;

2.完成实验报告:

对灵敏度分析的概念和意义的理解;

3.实验学时:

2学时。

四、实验仪器、设备

操作系统为Windows2000及以上的电脑,并装有Excel,Lingo软件。

五、实验内容及步骤

在求解了一个线性规划的模型的时候,如果是编程输入的模型,还可以通过LINGO中的命令显示线性规划的数学模型。

例3.1通过操作,以下程序的数学模型。

求解下面的线性规划

maxz=2x1+3x2

x1+2x2≤8

4x1≤16

4x2≤16

x1,x2≥0

用LINGO编程求解的线性规划模型

!

定义变量与常量,给出了值的为常量;

sets:

is/1..3/:

b;

js/1..2/:

c,x;

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=12

40

04;

enddata

end

图11

图12

图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_2<=12;

END

只是系统默认的非负约束没有显示,下图表明自由变量和非正变量都会显示出来。

图14

下面的图演示了对线性规划的灵敏度分析

首先求解一个线性规划模型,然后选中“prices&Ranges”

图15

然后在菜单LINGO→Ranges

图16

点击Ranges,得到在最优基或最优解不变时,单个价值系数和右端系数变化范围的灵敏度分析结果。

图17

Rangesinwhichthebasisisunchanged:

ObjectiveCoefficientRanges

CurrentAllowableAllowable

VariableCoefficientIncreaseDecrease

X

(1)2.000000INFINITY0.5000000

X

(2)3.0000001.0000003.000000

RighthandSideRanges

RowCurrentAllowableAllowable

RHSIncreaseDecrease

28.0000002.0000004.000000

316.0000016.000008.000000

412.00000INFINITY4.000000

LINDO中也可以作灵敏度分析,一般在求解了线性规划模型后,自动出现是否进行灵敏度分析的对话框,如图

图18

点击“是”,就可得解和灵敏度分析报告:

LPOPTIMUMFOUNDATSTEP2

OBJECTIVEFUNCTIONVALUE

1)14.00000

VARIABLEVALUEREDUCEDCOST

X14.0000000.000000

X22.0000000.000000

ROWSLACKORSURPLUSDUALPRICES

2)0.0000001.500000

3)0.0000000.125000

4)4.0000000.000000

NO.ITERATIONS=2

RANGESINWHICHTHEBASISISUNCHANGED:

OBJCOEFFICIENTRANGES

VARIABLECURRENTALLOWABLEALLOWABLE

COEFINCREASEDECREASE

X12.000000INFINITY0.500000

X23.0000001.0000003.000000

RIGHTHANDSIDERANGES

ROWCURRENTALLOWABLEALLOWABLE

RHSINCREASEDECREASE

28.0000002.0000004.000000

316.00000016.0000008.000000

412.000000INFINITY4.000000

上机:

美佳公司计划制造I,II两种家电产品.已知各制造一件时分别占用的设备A、B的台时、调试时间、调试工序及每天可用于这两种家电的资源能力、各售出一件时的获利情况如表3.1所示。

问该公司应制造两种家电各多少件,使获取的利润为最大?

表3.1

项目

I

II

每天可用能力

设备A(h)

设备B(h)

调试工序(h)

0

6

1

5

2

1

15

24

5

单位产品利润(元)

2

1

设x1和x2分别表示美佳公司制造家电I和II的数量。

则该问题可用线性规划模型表示如下:

MaxZ=2x1+x2

s.t.5x2≤15

6x1+2x2≤24

x1+x2≤5

X1,x2≥0

问题:

面对市场变化,灵敏度分析的任务是须解决以下两类问题:

(1)当系数A、b、c中的某个发生变化时,目前的最优基是否仍最优(即目前的最优生产方案是否要变化)?

(2)为保持目前最优基仍是最优基,参数A、b、c允许变化范围是什么?

 

实验四运输问题的数学模型和求解

一、实验目的

掌握运输问题建模和计算机求解方法。

二、实验内容

1.对所给运输问题建立数学模型,用软件进行求解;

三、实验要求

1.学生在实验操作过程中自己独立完成,1人1组;

2.完成实验报告:

对结果进行分析。

3.实验学时:

2学时。

四、实验仪器、设备

操作系统为Windows2000及以上的电脑,并装有Excel或Lingo或matlab或1stopt软件。

五、实验内容及步骤

a)中小型运输问题的求解

中小型运输问题可以和小型线性规划一样,直接输入运输问题的数学模型代码求解。

例4.1求解下面运输问题的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1