运筹学课程设计 1

课 程 设 计 报 告

课程设计名称 运筹学课程设计

2014年6月20日

课 程 设 计 任 务 书

运筹学课程设计报告

组 别:第一组

设计时间:2014年6月9日至2014年6月20日 1.设计进度计划

本课程设计时间分为两周:

1.1第一周(2014年6月9日----2014年6月13日)

建模阶段。此阶段各小组根据给出的题目完成模型的建立。主要环节包括 : (1)6月9日上午:发指导书;按组布置设计题目;说明进度安排。

(2)6月9日下午至6月11日:各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。

(3)6月12日至6月13日:各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。 1.2第二周(2014年6月16日---6月20日)

上机求解,结果分析及答辩。主要环节包括: (1)6月16日至6月17日:上机调试程序 (2)6月18日:完成计算机求解与结果分析。 (3)6月19日:撰写设计报告。 (4)6月20日:设计答辩及成绩评定。 2.设计题目

已知某公司有四个主要车间:排字、制版、印刷和装订。公司把它接受的任务分成三类:A、B和C。每种任务在四个主要车间里所需的时间不同,每单位产品生产需要时间如表6。假设完成单位工作所用的时间固定不变,每单位A类任务提供的收益200元,每单位B类任务提供的收益是400元,每单位C类任务提供的收益是150元。公司给每一车间规定了下期的固定时间能力:排字50小时;制版100小时;印刷200小时;装订180小时。除规定时间外,公司能够利用加班加点手段在排字车间里得到附加的30小时。加班加点奖金(即除规定时间以外的增加费用)是每小时4元。公司希望给他的设备找到最优工作组合,所以管理部门假定能销售所有的产品。因而为了满足长期生产的需要,管理部门决定在每个时期对每类工作至少要安排10个单位。(1)试确定

所寻求的印刷工作的最好组合,使公司的收益最大?(2)假如印刷公司有一个承接新业务的机会,这项新业务需要0小时排字,3小时制版,1小时印刷和2小时装订,要有多大的收益才对公司有吸引力?(3)假定规定排字能力和加班排字能力两者都减少3小时,最优解有何变化?(4)A类任务收益在何范围内变化时最优方案不变?(5)排字车间的生产能力在何范围内变化最优基不变?(6)有无利用的生产能力,试进行决策分析。

表6

3.建模

3.1 题目分析,变量设定

设 X1表示在正常时间内生产A类任务的单位数; X2表示在正常时间内生产B类任务的单位数; X3表示在正常时间内生产C类任务的单位数; X4表示在排字的加班时间内生产B类任务的单位数; X5表示在排字的加班时间内生产C类任务的单位数。

3.2 建模分析

正常时间内生产A类任务所得的收益为:200X1;

正常时间内生产B类任务所得的收益为:400X2; 正常时间内生产C类任务所得的收益为:150X3;

排字的加班时间内生产B类任务所得的收益为:(400-2*4)X4;

排字的加班时间内生产C类任务所得的收益为:(150-2*4) X5。 2X2 +2X3≤50,表示规定的排字时间小于等于50小时; 2X4+2X5≤30,表示加班的排字时间小于等于30小时;

2X1 +2(X2+ X4)+4 (X3+ X5)≤100,表示规定的制版时间小于等于100小时; 4X1+5(X2+ X4) +2 (X3+ X5)≤200,表示规定的印刷时间小于等于200小时; 4X1 +4(X2+ X4)≤180,表示规定的装订时间小于等于180小时; X1≥10 ,表示A类任务的最低限至少要安排10个单位; X2+X4≥10,表示B类任务的最低限度至少要安排10个单位; X3+X5≥10,表示C类任务的最低限度至少要安排10个单位。 此时的总收益为:

Z = 200X1+400X2+150X3+(400-2*4)X4+(150-2*4)X5。 3.3 数学模型

该问题的LP模型为:

Max Z = 200X1+400X2+150X3+392X4+142X5

2X2 +2X3≤50 2X4+2X5≤30

规定的排字时间 加班的排字时间

2X1 +2X2 +4X3+2X4+4X5≤100 规定的制版时间 4X1+5X2 +2X3+5X4+2X5≤200

规定的印刷时间

4X1 +4X2+4X4≤180 规定的装订时间 X1≥10 A类任务的最低限度 X2+X4≥10

B类任务的最低限度

X3+X5≥10 C类任务的最低限度 X1,X2,X3,X4,X5≥0 4.程序

4.1求解程序流程图 第一阶段流程图:

第二阶段流程图:

4.2求解程序功能介绍

该程序主要运用了基础Java编程语言,Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的,安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。程序通过Java编程语言实现了运筹学中的两阶段法,首先通过Scanner函数收集求解问题的必要数据,例如变量个数、约束条件个数、约束条件系数等,然后利用收集来的数据判断并生成辅助函数,以二维数组形式储存这些数据,而这个二维数组中的数据排列形式如同单纯形表一样,可以更加直观的体现出利用单纯形法求解线性问题时的每一步骤,在程序中每次迭代前都会求解当前单纯形表的检验数,然后判断检验数是否全部小于等于零,从而进行下一步迭代,最后得到最优表。通过求得辅助函数的最优单纯形表后,开始进行第二阶段的运算,将得到最优表进行变换,再次进行迭代运算,最后得到原问题的最优单纯形表,计算并得出最优值。

4.3灵敏度分析程序功能介绍

LINDO是一种专门用于求解数学规划问题的软件包。由于LINDO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。 LINDO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于一些线性和非线性方程组的求解以及代数方程求根等。LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概率函数),可供使用者建立数学规划问题模型时调用。

MAX/MIN命令对模型的输入格式有一些注意事项,这些注意事项是: (1)模型中出现的关键词只能是 MAX (或 MIN ), ST (或 SUBJECT TO )和 END。关键词中不能含有空格。MAX ( 或 MIN ), ST (或 SUBJECT TO )的右面至少要有一个空格,关键词中字符大写和小写都合法的。

(2)变量名不超过8个字符,其中第一个字符必须定字母,其余的可以是字母或数字。这样就可以藉助变量表示变量的实际含义。

(3)不等号用"<"表示"≤",用">"表示"≥"。要注意的是当模型(用 LOOK 命令)输出(到屏幕或打印机)时,不等号分别写成"<="和">="。

(4)目标函数中不能出现常数项,也不能出现等式。

(5)无论连目标函数(第一行)或约束条件中,都不能出现括号、乘号。 (6)在约束条件中,变量必须在关系符左面,常数必须在关系符右边。

(7)模型中系数必须写成整数或小数形式而不能写成指数形式。如系数是小数形式,输入的位数限制定整数最大6位,小数最大5位。

(8)除关键字中间,系数中间,变量名中间不能嵌入空格外,模型的其他地方都允许出现空格和回车。在模型输入时,空格和回车是等效的。

(9)变量的非负约束是隐含的,不需要在模型中加以意义。 4.4手工数据准备

LINDO主要用于结果的检验和灵敏度分析,LINDO的数据输入如下: MAX 200X1+400X2+150X3+392X4+142X5 ST

2X2 +2X3

2X1 +2X2 +4X3+2X4+4X5=10 X2+X4>=10 X3+X5>=10

END 5.结果分析 5.1结果分析思路

5.1.1试确定所寻求的印刷工作的最好组合,使公司的收益最大?

通过Java编程语言实现运筹学中的两阶段法,首先通过Scanner函数收集求解问题的必要数据,通过求得辅助函数的最优单纯形表后,开始进行第二阶段的运算,将得到最优表进行变换,再次进行迭代运算,最后得到原问题的最优单纯形表,计算并得出最优值。

5.1.2 印刷公司有一个承接新任务的机会,这项新业务需要0小时排字,3小时制版,1小时印刷和2小时装订,要有多大的收益才对公司有吸引力?

此问题属于系数矩阵A的变化,增添一个新活动或变量,即A增加一列,根据公式б=CBBPj-Cj

5.1.3 规定排字能力和加班排字能力两者都减少3小时,最优解有何变化?

-1

此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50和2X4+2X5≤30,右端的常数项50和30的变化对最优基的影响。

根据公式max{-bi/βir| βir>0}

5.1.4 A类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X1的系数变化对最优决策的影响。

先确定基变量系数变化范围,基变量系数变化影响所有非基变量的检验数和目标函数值。如果Cj的变化范围在基变量Cj增量的变化范围之内则其最优解、最优值均不变;反之如果Cj的变化范围超出基变量Cj增量的变化范围,则需要重新迭代求出最优值。

5.1.5 排字车间的生产能力在何范围内变化时最优基不变?

此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50,右端的常数项50的变化对最优解的影响。

根据公式max{-bi/βir| βir>0}

5.1.6有无利用的生产能力,试进行决策分析。

此问题属于约束条件右端常数项b的变化,即约束条件右端的常数项的变化对最优解的影响。根据公式max{-bi/βir| βir>0}

5.2求解结果

5.2.1 java求解结果

图一:

-1-1-1**-1-1-1**-1-1-1**

5.2.2 Lindo求解结果

图二:

LP OPTIMUM FOUND AT STEP 8

OBJECTIVE FUNCTION VALUE

1) 11460.00

VARIABLE VALUE REDUCED COST

X1 10.000000 0.000000

X2 20.000000 0.000000

X3 5.000000 0.000000

X4 0.000000 0.000000

X5 5.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES

2) 0.000000 4.000000

3) 20.000000 0.000000

4) 0.000000 196.000000

5) 40.000000 0.000000

6) 60.000000 0.000000

7) 0.000000 -192.000000

8) 10.000000 0.000000

9) 0.000000 -642.000000

NO. ITERATIONS=8

5.3灵敏度分析结果

5.3.1根据结果分析当目标函数的变量系数在什么变化范围内时,最优基不变。 图三:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 200.000000 192.000000 INFINITY

X2 400.000000 INFINITY 0.000000

X3 150.000000 0.000000 8.000000

X4 392.000000 0.000000 INFINITY

X5 142.000000 8.000000 0.000000

其中各列表头释义为,CURRENT COEF:初始目标函数系数;ALLOWABLE INCREASE:允许变量系数增加的范围;ALLOWABLE DECREASE:允许变量系数减少的范围。则当目标函数的系数C在 [初始目标函数的系数-允许变量系数减少的范围,初始目函数的系数+允许变量系数增加的范围] 内变化时,最优基不变,最优解也不变,由于目标函数的系数发上改变了,所以最优值有可能改变。

5.3.2根据结果分析约束条件右端项在什么范围内变化时,最优基不变。

图四:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

3 30.000000 INFINITY 20.000000

4 100.000000 10.000000 10.000000

5 200.000000 INFINITY 40.000000

6 180.000000 INFINITY 60.000000

7 10.000000 5.000000 5.000000

8 10.000000 10.000000 INFINITY

9 10.000000 5.000000 2.500000

其中各列表头释义为,CURRENT RHS:初始约束条件右端项的值;ALLOWABLE INCREASE:允许b值增加的范围;ALLOWABLE DECREASE:允许b值减少的范围当约束条件右端项的值在 [初始约束条件右端项的值-允许b值减少的范围,初始约束条件右端项的值+允许b值增加的范围]内变化时最优基不变,最优解不变,最优值也可能不变。

5.4结果分析

5.4.1试确定所寻求的印刷工作的最好组合,使公司的收益最大?

由图一可知,印刷工作的最好组合为:X1=10,X2=15,X3=10,X4=5;即在正常时间内生产A类任务的单位数为10,在正常时间内生产B类任务的单位数为15,在正常时间内生产C类任务的单位数为10,在排字的加班时间内生产B类任务的单位数为5;使公司的收益最大为11460.00元。

由图一可知,存在非基变量的检验数为0,则最优解可能不唯一;又由图二可知,印刷工作的最好组合为:X1=10,X2=20,X3=5,X4=0,X5=5;即在正常时间内生产A类任务的单位数为10,在正常时间内生产B类任务的单位数为20,在正常时间内生产C类任务的单位数为5,在排字的加班时间内生产B类任务的单位数为0,在排字的加班时间内生产C类任务的单位数为5;使公司的收益最大为11460.00元。

5.4.2假如印刷公司有一个承接新业务的机会,这项新业务需要0小时排字,3小时制版,1小时印刷和2小时装订,要有多大的收益才对公司有吸引力?

此问题属于系数矩阵A的变化,增添一个新活动或变量,即A增加一列,根据公式б=CBB-1Pj-cj

LINDO的数据输入如下:

MAX 200X1+400X2+150X3+392X4+142X5+300X6

ST

2X2 +2X3

2X4+2X5

2X1 +2X2 +4X3+2X4+4X5+3X6

4X1+5X2 +2X3+5X4+2X5+X6

4X1 +4X2+4X4+2X6

X1>=10

X2+X4>=10

X3+X5>=10

X6>=10

END

图五:

由LINDO程序运行可知,该问题无可行解,所以印刷公司承接这项新业务对公司没有吸引力。

5.4.3 假定规定排字能力和加班排字能力两者都减少3小时,最优解有何变化? 此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50和2X4+2X5≤30,右端的常数项50和30的变化对最优基的影响,由5.3.2分析结果可知: 图六:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

3 30.000000 INFINITY 20.000000

在最优基不变的情况下第一个约束条件右端常数项的可变化范围为[40,60],即规定的排字时间在[40,60]的范围内变化时最优基不变。在最优基不变的情况下第二个约束条件右端常数项的可变化范围为[10,+∞],即规定的排字时间在[10,+∞]的范围内变化时最优基不变。因为二者都减少3小时均在可变化范围内,所以最优解不发生变化。

5.4.4 A类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X1的系数变化对最优决策的影响,由5.3.1的分析结果可知:

图七:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 200.000000 192.000000 INFINITY

在最优决策不变的情况下X1的可变化范围为[0,392],A类任务收益在[0,392]范围内变化时最优决策不变。

5.4.5排字车间的生产能力在何范围内变化最优基不变?

此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50,右端的常数项20的变化对最优解的影响,由5.3.2的分析结果可知:

图八:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

在最优决策不变的情况下排字能力的变化范围,即第一个约束条件右端常数项的可变化范围为[40,60]。

5.4.6有无利用的生产能力,试进行决策分析。

此问题属于约束条件右端常数项b的变化,即约束条件右端的常数项的变化对最优解的影响,由5.3.2的分析结果可知:

图九:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

3 30.000000 INFINITY 20.000000

4 100.000000 10.000000 10.000000

5 200.000000 INFINITY 40.000000

6 180.000000 INFINITY 60.000000

有可利用的生产能力,决策分析:规定的排字可利用的生产能力为10小时;加班的排字可利用的生产能力为20小时;规定的制版可利用的生产能力为10小时;规定的印刷可利用的生产能力为40小时;规定的装订可利用的生产能力为60小时。

6.创新内容

模型的主体采取Lindo6.1软件处理数据和对其进行灵敏度分析,准确性高,容量大,逻辑性严格,计算速度快,具有较强的说服力和适应能力。除题中问题外,还可以解决其他的灵敏度分析问题。

6.1 B类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X2的系数变化对最优决策的影响,由5.3.1的分析结果可知:

图十:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X2 400.000000 INFINITY 0.000000

在最优决策不变的情况下X2的可变化范围为[400,+∞],A类任务收益在[400,+∞]范围内变化时最优决策不变。

6.2 排字的加班时间内生产C类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X2的系数变化对最优决策的影响,由5.3.1的分析结果可知:

图十一:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X5 142.000000 8.000000 0.000000

在最优决策不变的情况下X2的可变化范围为[142,150],A类任务收益在[142,150]范围内变化时最优决策不变。

6.3 制版车间的生产能力在何范围内变化时最优基不变?

此问题属于约束条件右端常数项b的变化,即约束条件:2X1 +2X2 +4X3+2X4+4X5≤100,右端的常数项100的变化对最优解的影响,由5.3.2的分析结果可知: 图十二:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

4 100.000000 10.000000 10.000000

在最优决策不变的情况下制版能力的变化范围,即第三个约束条件右端常数项的可变化范围为[90,110]。

7.课程设计总结

为期两周的运筹学课程设计,让我们受益匪浅,让我们重新认识了两阶段法的运用与计算、灵敏度分和分配问题等,使我们温故知新并对运筹学及其应用有了更深刻的认识并能将我们的所学融会贯通。

在运筹理论课学习过程中,我们只是了解到运筹学在实际中应用广泛,学习了很多类运筹问题以及解决运筹问题的方法,但是并没有真正了解到这些方法的真正内涵,而只是片面的使用这些方法,而通过这次运筹的课程设计,通过java编程和使用Lindo来解决老师给定的各类运筹问题,不仅提高了我们的动手操作能力,而且使我们对两阶段法和单纯形法有了十分深刻的理解。我们组的题是通过两阶段法来求最优

解,经过讨论我们决定是用java编程,然后用Lindo检验结果的正确性,并用Lindo对问题进行灵敏度分析。我们组丑树楠同学对java的掌握非常熟练,虽然在编程中也遇到了一些问题,但总体运用得心应手。

整个设计期间,第一周的前三天我们先解题并建立数学模型。因为这道题涉及到多个变量和6个问题,所以在解题过程中遇到了一些问题,但是我们三个人齐心合作和王老师的点拨,通过我们的不懈努力最终建立了模型。接下来的两天,主要是写提纲,这就要求我们必须对这道题有充分的理解,能知道哪些是基变量,哪些是非基变量,以及题目里所涉及的约束条件。从第一周开始开始着手java代码编写工作,直到第二周终于顺利完成java编程。在此期间也遇到了很多问题,程序中间也遇到小差错,不过通过我们三个人讨论分析以及老师的指点,都顺利解决了,最后终于编出了让我们都满意的程序。

通过这次的课程设计,不仅让我对运筹有了更深刻的了解,也让我们对运筹产生了兴趣,同时也让我们明白团队合作、各尽所能的重要性。运筹能解决很多实际问题,更具操作性,不像高数那样枯燥,增加了可学性,而且在以后的工作岗位上也非常有可能用到运筹学的知识,对以后的工作也有帮助。另外,在设计中自始至终我们都是以小组为单位查阅资料、分析问题、建模、编写程序等一系列问题的解决,增进了小组成员之间的交流,提高了解决问题的效率,加强了团队合作意识,懂得了作为小组一员,不能太以自我为中心,充分考虑队友的想法与建议,权衡每个人的意见,得出遇到问题的最优方案。

短短两周的实习即将结束了,这两周所学到的东西是平时课堂上学不到的,让我们终身受益,很感谢王老师在设计过程中对我们的指导!

课 程 设 计 报 告

课程设计名称 运筹学课程设计

2014年6月20日

课 程 设 计 任 务 书

运筹学课程设计报告

组 别:第一组

设计时间:2014年6月9日至2014年6月20日 1.设计进度计划

本课程设计时间分为两周:

1.1第一周(2014年6月9日----2014年6月13日)

建模阶段。此阶段各小组根据给出的题目完成模型的建立。主要环节包括 : (1)6月9日上午:发指导书;按组布置设计题目;说明进度安排。

(2)6月9日下午至6月11日:各小组审题,查阅资料,进行建模前的必要准备(包括求解程序的编写与查找)。

(3)6月12日至6月13日:各个小组进行建模,并根据题目及设计要求拟定设计提纲,指导教师审阅;同时阅读,理解求解程序,为上机求解做好准备。 1.2第二周(2014年6月16日---6月20日)

上机求解,结果分析及答辩。主要环节包括: (1)6月16日至6月17日:上机调试程序 (2)6月18日:完成计算机求解与结果分析。 (3)6月19日:撰写设计报告。 (4)6月20日:设计答辩及成绩评定。 2.设计题目

已知某公司有四个主要车间:排字、制版、印刷和装订。公司把它接受的任务分成三类:A、B和C。每种任务在四个主要车间里所需的时间不同,每单位产品生产需要时间如表6。假设完成单位工作所用的时间固定不变,每单位A类任务提供的收益200元,每单位B类任务提供的收益是400元,每单位C类任务提供的收益是150元。公司给每一车间规定了下期的固定时间能力:排字50小时;制版100小时;印刷200小时;装订180小时。除规定时间外,公司能够利用加班加点手段在排字车间里得到附加的30小时。加班加点奖金(即除规定时间以外的增加费用)是每小时4元。公司希望给他的设备找到最优工作组合,所以管理部门假定能销售所有的产品。因而为了满足长期生产的需要,管理部门决定在每个时期对每类工作至少要安排10个单位。(1)试确定

所寻求的印刷工作的最好组合,使公司的收益最大?(2)假如印刷公司有一个承接新业务的机会,这项新业务需要0小时排字,3小时制版,1小时印刷和2小时装订,要有多大的收益才对公司有吸引力?(3)假定规定排字能力和加班排字能力两者都减少3小时,最优解有何变化?(4)A类任务收益在何范围内变化时最优方案不变?(5)排字车间的生产能力在何范围内变化最优基不变?(6)有无利用的生产能力,试进行决策分析。

表6

3.建模

3.1 题目分析,变量设定

设 X1表示在正常时间内生产A类任务的单位数; X2表示在正常时间内生产B类任务的单位数; X3表示在正常时间内生产C类任务的单位数; X4表示在排字的加班时间内生产B类任务的单位数; X5表示在排字的加班时间内生产C类任务的单位数。

3.2 建模分析

正常时间内生产A类任务所得的收益为:200X1;

正常时间内生产B类任务所得的收益为:400X2; 正常时间内生产C类任务所得的收益为:150X3;

排字的加班时间内生产B类任务所得的收益为:(400-2*4)X4;

排字的加班时间内生产C类任务所得的收益为:(150-2*4) X5。 2X2 +2X3≤50,表示规定的排字时间小于等于50小时; 2X4+2X5≤30,表示加班的排字时间小于等于30小时;

2X1 +2(X2+ X4)+4 (X3+ X5)≤100,表示规定的制版时间小于等于100小时; 4X1+5(X2+ X4) +2 (X3+ X5)≤200,表示规定的印刷时间小于等于200小时; 4X1 +4(X2+ X4)≤180,表示规定的装订时间小于等于180小时; X1≥10 ,表示A类任务的最低限至少要安排10个单位; X2+X4≥10,表示B类任务的最低限度至少要安排10个单位; X3+X5≥10,表示C类任务的最低限度至少要安排10个单位。 此时的总收益为:

Z = 200X1+400X2+150X3+(400-2*4)X4+(150-2*4)X5。 3.3 数学模型

该问题的LP模型为:

Max Z = 200X1+400X2+150X3+392X4+142X5

2X2 +2X3≤50 2X4+2X5≤30

规定的排字时间 加班的排字时间

2X1 +2X2 +4X3+2X4+4X5≤100 规定的制版时间 4X1+5X2 +2X3+5X4+2X5≤200

规定的印刷时间

4X1 +4X2+4X4≤180 规定的装订时间 X1≥10 A类任务的最低限度 X2+X4≥10

B类任务的最低限度

X3+X5≥10 C类任务的最低限度 X1,X2,X3,X4,X5≥0 4.程序

4.1求解程序流程图 第一阶段流程图:

第二阶段流程图:

4.2求解程序功能介绍

该程序主要运用了基础Java编程语言,Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的,安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。程序通过Java编程语言实现了运筹学中的两阶段法,首先通过Scanner函数收集求解问题的必要数据,例如变量个数、约束条件个数、约束条件系数等,然后利用收集来的数据判断并生成辅助函数,以二维数组形式储存这些数据,而这个二维数组中的数据排列形式如同单纯形表一样,可以更加直观的体现出利用单纯形法求解线性问题时的每一步骤,在程序中每次迭代前都会求解当前单纯形表的检验数,然后判断检验数是否全部小于等于零,从而进行下一步迭代,最后得到最优表。通过求得辅助函数的最优单纯形表后,开始进行第二阶段的运算,将得到最优表进行变换,再次进行迭代运算,最后得到原问题的最优单纯形表,计算并得出最优值。

4.3灵敏度分析程序功能介绍

LINDO是一种专门用于求解数学规划问题的软件包。由于LINDO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。 LINDO主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于一些线性和非线性方程组的求解以及代数方程求根等。LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概率函数),可供使用者建立数学规划问题模型时调用。

MAX/MIN命令对模型的输入格式有一些注意事项,这些注意事项是: (1)模型中出现的关键词只能是 MAX (或 MIN ), ST (或 SUBJECT TO )和 END。关键词中不能含有空格。MAX ( 或 MIN ), ST (或 SUBJECT TO )的右面至少要有一个空格,关键词中字符大写和小写都合法的。

(2)变量名不超过8个字符,其中第一个字符必须定字母,其余的可以是字母或数字。这样就可以藉助变量表示变量的实际含义。

(3)不等号用"<"表示"≤",用">"表示"≥"。要注意的是当模型(用 LOOK 命令)输出(到屏幕或打印机)时,不等号分别写成"<="和">="。

(4)目标函数中不能出现常数项,也不能出现等式。

(5)无论连目标函数(第一行)或约束条件中,都不能出现括号、乘号。 (6)在约束条件中,变量必须在关系符左面,常数必须在关系符右边。

(7)模型中系数必须写成整数或小数形式而不能写成指数形式。如系数是小数形式,输入的位数限制定整数最大6位,小数最大5位。

(8)除关键字中间,系数中间,变量名中间不能嵌入空格外,模型的其他地方都允许出现空格和回车。在模型输入时,空格和回车是等效的。

(9)变量的非负约束是隐含的,不需要在模型中加以意义。 4.4手工数据准备

LINDO主要用于结果的检验和灵敏度分析,LINDO的数据输入如下: MAX 200X1+400X2+150X3+392X4+142X5 ST

2X2 +2X3

2X1 +2X2 +4X3+2X4+4X5=10 X2+X4>=10 X3+X5>=10

END 5.结果分析 5.1结果分析思路

5.1.1试确定所寻求的印刷工作的最好组合,使公司的收益最大?

通过Java编程语言实现运筹学中的两阶段法,首先通过Scanner函数收集求解问题的必要数据,通过求得辅助函数的最优单纯形表后,开始进行第二阶段的运算,将得到最优表进行变换,再次进行迭代运算,最后得到原问题的最优单纯形表,计算并得出最优值。

5.1.2 印刷公司有一个承接新任务的机会,这项新业务需要0小时排字,3小时制版,1小时印刷和2小时装订,要有多大的收益才对公司有吸引力?

此问题属于系数矩阵A的变化,增添一个新活动或变量,即A增加一列,根据公式б=CBBPj-Cj

5.1.3 规定排字能力和加班排字能力两者都减少3小时,最优解有何变化?

-1

此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50和2X4+2X5≤30,右端的常数项50和30的变化对最优基的影响。

根据公式max{-bi/βir| βir>0}

5.1.4 A类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X1的系数变化对最优决策的影响。

先确定基变量系数变化范围,基变量系数变化影响所有非基变量的检验数和目标函数值。如果Cj的变化范围在基变量Cj增量的变化范围之内则其最优解、最优值均不变;反之如果Cj的变化范围超出基变量Cj增量的变化范围,则需要重新迭代求出最优值。

5.1.5 排字车间的生产能力在何范围内变化时最优基不变?

此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50,右端的常数项50的变化对最优解的影响。

根据公式max{-bi/βir| βir>0}

5.1.6有无利用的生产能力,试进行决策分析。

此问题属于约束条件右端常数项b的变化,即约束条件右端的常数项的变化对最优解的影响。根据公式max{-bi/βir| βir>0}

5.2求解结果

5.2.1 java求解结果

图一:

-1-1-1**-1-1-1**-1-1-1**

5.2.2 Lindo求解结果

图二:

LP OPTIMUM FOUND AT STEP 8

OBJECTIVE FUNCTION VALUE

1) 11460.00

VARIABLE VALUE REDUCED COST

X1 10.000000 0.000000

X2 20.000000 0.000000

X3 5.000000 0.000000

X4 0.000000 0.000000

X5 5.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES

2) 0.000000 4.000000

3) 20.000000 0.000000

4) 0.000000 196.000000

5) 40.000000 0.000000

6) 60.000000 0.000000

7) 0.000000 -192.000000

8) 10.000000 0.000000

9) 0.000000 -642.000000

NO. ITERATIONS=8

5.3灵敏度分析结果

5.3.1根据结果分析当目标函数的变量系数在什么变化范围内时,最优基不变。 图三:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 200.000000 192.000000 INFINITY

X2 400.000000 INFINITY 0.000000

X3 150.000000 0.000000 8.000000

X4 392.000000 0.000000 INFINITY

X5 142.000000 8.000000 0.000000

其中各列表头释义为,CURRENT COEF:初始目标函数系数;ALLOWABLE INCREASE:允许变量系数增加的范围;ALLOWABLE DECREASE:允许变量系数减少的范围。则当目标函数的系数C在 [初始目标函数的系数-允许变量系数减少的范围,初始目函数的系数+允许变量系数增加的范围] 内变化时,最优基不变,最优解也不变,由于目标函数的系数发上改变了,所以最优值有可能改变。

5.3.2根据结果分析约束条件右端项在什么范围内变化时,最优基不变。

图四:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

3 30.000000 INFINITY 20.000000

4 100.000000 10.000000 10.000000

5 200.000000 INFINITY 40.000000

6 180.000000 INFINITY 60.000000

7 10.000000 5.000000 5.000000

8 10.000000 10.000000 INFINITY

9 10.000000 5.000000 2.500000

其中各列表头释义为,CURRENT RHS:初始约束条件右端项的值;ALLOWABLE INCREASE:允许b值增加的范围;ALLOWABLE DECREASE:允许b值减少的范围当约束条件右端项的值在 [初始约束条件右端项的值-允许b值减少的范围,初始约束条件右端项的值+允许b值增加的范围]内变化时最优基不变,最优解不变,最优值也可能不变。

5.4结果分析

5.4.1试确定所寻求的印刷工作的最好组合,使公司的收益最大?

由图一可知,印刷工作的最好组合为:X1=10,X2=15,X3=10,X4=5;即在正常时间内生产A类任务的单位数为10,在正常时间内生产B类任务的单位数为15,在正常时间内生产C类任务的单位数为10,在排字的加班时间内生产B类任务的单位数为5;使公司的收益最大为11460.00元。

由图一可知,存在非基变量的检验数为0,则最优解可能不唯一;又由图二可知,印刷工作的最好组合为:X1=10,X2=20,X3=5,X4=0,X5=5;即在正常时间内生产A类任务的单位数为10,在正常时间内生产B类任务的单位数为20,在正常时间内生产C类任务的单位数为5,在排字的加班时间内生产B类任务的单位数为0,在排字的加班时间内生产C类任务的单位数为5;使公司的收益最大为11460.00元。

5.4.2假如印刷公司有一个承接新业务的机会,这项新业务需要0小时排字,3小时制版,1小时印刷和2小时装订,要有多大的收益才对公司有吸引力?

此问题属于系数矩阵A的变化,增添一个新活动或变量,即A增加一列,根据公式б=CBB-1Pj-cj

LINDO的数据输入如下:

MAX 200X1+400X2+150X3+392X4+142X5+300X6

ST

2X2 +2X3

2X4+2X5

2X1 +2X2 +4X3+2X4+4X5+3X6

4X1+5X2 +2X3+5X4+2X5+X6

4X1 +4X2+4X4+2X6

X1>=10

X2+X4>=10

X3+X5>=10

X6>=10

END

图五:

由LINDO程序运行可知,该问题无可行解,所以印刷公司承接这项新业务对公司没有吸引力。

5.4.3 假定规定排字能力和加班排字能力两者都减少3小时,最优解有何变化? 此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50和2X4+2X5≤30,右端的常数项50和30的变化对最优基的影响,由5.3.2分析结果可知: 图六:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

3 30.000000 INFINITY 20.000000

在最优基不变的情况下第一个约束条件右端常数项的可变化范围为[40,60],即规定的排字时间在[40,60]的范围内变化时最优基不变。在最优基不变的情况下第二个约束条件右端常数项的可变化范围为[10,+∞],即规定的排字时间在[10,+∞]的范围内变化时最优基不变。因为二者都减少3小时均在可变化范围内,所以最优解不发生变化。

5.4.4 A类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X1的系数变化对最优决策的影响,由5.3.1的分析结果可知:

图七:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X1 200.000000 192.000000 INFINITY

在最优决策不变的情况下X1的可变化范围为[0,392],A类任务收益在[0,392]范围内变化时最优决策不变。

5.4.5排字车间的生产能力在何范围内变化最优基不变?

此问题属于约束条件右端常数项b的变化,即约束条件:2X2 +2X3≤50,右端的常数项20的变化对最优解的影响,由5.3.2的分析结果可知:

图八:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

在最优决策不变的情况下排字能力的变化范围,即第一个约束条件右端常数项的可变化范围为[40,60]。

5.4.6有无利用的生产能力,试进行决策分析。

此问题属于约束条件右端常数项b的变化,即约束条件右端的常数项的变化对最优解的影响,由5.3.2的分析结果可知:

图九:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 10.000000

3 30.000000 INFINITY 20.000000

4 100.000000 10.000000 10.000000

5 200.000000 INFINITY 40.000000

6 180.000000 INFINITY 60.000000

有可利用的生产能力,决策分析:规定的排字可利用的生产能力为10小时;加班的排字可利用的生产能力为20小时;规定的制版可利用的生产能力为10小时;规定的印刷可利用的生产能力为40小时;规定的装订可利用的生产能力为60小时。

6.创新内容

模型的主体采取Lindo6.1软件处理数据和对其进行灵敏度分析,准确性高,容量大,逻辑性严格,计算速度快,具有较强的说服力和适应能力。除题中问题外,还可以解决其他的灵敏度分析问题。

6.1 B类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X2的系数变化对最优决策的影响,由5.3.1的分析结果可知:

图十:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X2 400.000000 INFINITY 0.000000

在最优决策不变的情况下X2的可变化范围为[400,+∞],A类任务收益在[400,+∞]范围内变化时最优决策不变。

6.2 排字的加班时间内生产C类任务收益在何范围内变化时最优方案不变?

此问题属于目标函数系数C的变化,且为基变量变化,即X2的系数变化对最优决策的影响,由5.3.1的分析结果可知:

图十一:

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

VARIABLE CURRENT ALLOWABLE ALLOWABLE

COEF INCREASE DECREASE

X5 142.000000 8.000000 0.000000

在最优决策不变的情况下X2的可变化范围为[142,150],A类任务收益在[142,150]范围内变化时最优决策不变。

6.3 制版车间的生产能力在何范围内变化时最优基不变?

此问题属于约束条件右端常数项b的变化,即约束条件:2X1 +2X2 +4X3+2X4+4X5≤100,右端的常数项100的变化对最优解的影响,由5.3.2的分析结果可知: 图十二:

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

4 100.000000 10.000000 10.000000

在最优决策不变的情况下制版能力的变化范围,即第三个约束条件右端常数项的可变化范围为[90,110]。

7.课程设计总结

为期两周的运筹学课程设计,让我们受益匪浅,让我们重新认识了两阶段法的运用与计算、灵敏度分和分配问题等,使我们温故知新并对运筹学及其应用有了更深刻的认识并能将我们的所学融会贯通。

在运筹理论课学习过程中,我们只是了解到运筹学在实际中应用广泛,学习了很多类运筹问题以及解决运筹问题的方法,但是并没有真正了解到这些方法的真正内涵,而只是片面的使用这些方法,而通过这次运筹的课程设计,通过java编程和使用Lindo来解决老师给定的各类运筹问题,不仅提高了我们的动手操作能力,而且使我们对两阶段法和单纯形法有了十分深刻的理解。我们组的题是通过两阶段法来求最优

解,经过讨论我们决定是用java编程,然后用Lindo检验结果的正确性,并用Lindo对问题进行灵敏度分析。我们组丑树楠同学对java的掌握非常熟练,虽然在编程中也遇到了一些问题,但总体运用得心应手。

整个设计期间,第一周的前三天我们先解题并建立数学模型。因为这道题涉及到多个变量和6个问题,所以在解题过程中遇到了一些问题,但是我们三个人齐心合作和王老师的点拨,通过我们的不懈努力最终建立了模型。接下来的两天,主要是写提纲,这就要求我们必须对这道题有充分的理解,能知道哪些是基变量,哪些是非基变量,以及题目里所涉及的约束条件。从第一周开始开始着手java代码编写工作,直到第二周终于顺利完成java编程。在此期间也遇到了很多问题,程序中间也遇到小差错,不过通过我们三个人讨论分析以及老师的指点,都顺利解决了,最后终于编出了让我们都满意的程序。

通过这次的课程设计,不仅让我对运筹有了更深刻的了解,也让我们对运筹产生了兴趣,同时也让我们明白团队合作、各尽所能的重要性。运筹能解决很多实际问题,更具操作性,不像高数那样枯燥,增加了可学性,而且在以后的工作岗位上也非常有可能用到运筹学的知识,对以后的工作也有帮助。另外,在设计中自始至终我们都是以小组为单位查阅资料、分析问题、建模、编写程序等一系列问题的解决,增进了小组成员之间的交流,提高了解决问题的效率,加强了团队合作意识,懂得了作为小组一员,不能太以自我为中心,充分考虑队友的想法与建议,权衡每个人的意见,得出遇到问题的最优方案。

短短两周的实习即将结束了,这两周所学到的东西是平时课堂上学不到的,让我们终身受益,很感谢王老师在设计过程中对我们的指导!


相关文章

  • 新建 关于运筹学课程设计的说明
  • 运筹学课程设计方案 要求:最终将研究报告与工作报告集结成册,封面要求与数学建模相同.第16周全部交到各班学习委员处:请学习委员按四个同学一组进行分组各组组长要在论文中体现. <运筹学实践>课程设计是以小组团队为基础,在学习< ...查看


  • 军校专业介绍
  • 招 生 专 业 介 绍 一.通信工程(培养目标为通信初级指挥军官,本科) 培养目标:培养掌握现代通信的基本理论,具有从事军用通信系统的研究设计.运行分析.维护管理工作能力和部队基层管理.指挥能力,适应军队现代化建设需要的懂技术.会管理.能指 ...查看


  • 高考军事类专业荟萃
  • 军事类院校相关专业荟萃 1.测量工程专业 专业信息 培养目标:培养从事测量工程的设计.实施和研究工作的高级工程技术人才. 培养要求:本专业学生主要学习测量学.测量工程学的基础理论,以及在各种工程(如城市建设.交通.水利.矿山.海洋建筑.大型 ...查看


  • 纺织工程系
  • 纺织工程系 纺织工程 主要课程:高等数学.大学英语.大学物理.计算机应用基础.机械设计基础.电工电子.纺织材料学.纺纱学.织造学.针织学.染整工艺学.非织造技术:纺纱工艺与质量控制.织造工艺与质量控制.纺织CAD.织物组织与结构.纺织厂设计 ...查看


  • 运筹学 课程设计
  • 1 前 言 必胜快餐店是一家市内新兴的个体经营性质的快餐服务企业.该快餐店平 时接待客人和节假日接待客人的差别,相应的对职工人数的需求也存在巨大的差别.为了满足和人员的配置,从而进一步的抢占快餐市场,决定从人力资源的优化配置开始. 本次课程 ...查看


  • 运筹学课程设计(论文)撰写示例
  • (小四号,空一行) 设计总说明/摘要(三号,黑体,居中,段后空0.5行) 近几年来,随着人们生活水平的提高和环保意识的增强,环保节能的轻型木结构房屋引起了人们的关注,它在我国有着较为广泛的应用前景.木结构房屋的优势在于设计风格独特,在国外大 ...查看


  • 交通运输就业
  • 交通运输 培养目标:培养具有运筹学.经济管理学.交通运输组织学.运输市场营销学.汽车贸易.载运工具(汽车.工程机械等)运用工程等方面深厚的基础知识,系统而宽广的专业基础理论,能在国家及省.市的交通运输管理部门.交通运输企事业单位等从事交通运 ...查看


  • 运筹学课程设计源代码-题目是[某商店要制订明年第一季度某种商品的进货和销售计划]
  • 运筹学建模与源代码 题目:某商店要制订明年第一季度某种商品的进货和销售计划.一直该店的仓库容量最多 可存储该种商品500件,而今年年底有200件存货.该店在每月月初进货一次.一直各月份进货和销售该种商品的单价如下表所示.问每个月应进货和销售 ...查看


  • 运筹学课程设计报告
  • 长春工业大学人文信息学院 工商管理系物流管理专业课程设计 运筹学课程设计方案 题 目 本硕生七年学习费用教育基金投资计划 专业年级 姓名 2009级 090713 班 朱亚娟 宋殿辉 学号 职称 38 讲师 指导教师 日 期 2011年 6 ...查看


热门内容