运筹学实验报告
运筹学综合实验报告

运筹学综合实验报告本次实验中,我们使用了运筹学的方法来解决了一个经典的优化问题,即整数线性规划问题(Integer Linear Programming,简称ILP)。
一、实验目的本次实验的主要目的是熟悉ILP的求解过程,了解ILP在实际问题中的应用,以及掌握使用现代优化软件Gurobi来求解ILP的方法。
二、实验原理1. 整数线性规划问题整数线性规划问题是在所有线性规划问题中的一个非常重要的子集。
它将优化目标函数的线性组合与整数限制相结合。
一个典型的ILP问题可以被描述为:最大化(或最小化)目标函数:\max(\min) \sum_{j=1}^{n}c_j x_j满足如下的约束条件:\sum_{j=1}^{n}a_{ij} x_j \leq b_i,\ i=1,2,\cdots,mx_j \geq 0,\ j=1,2,\cdots,nx_j \in Z,\ j=1,2,\cdots,nx_j表示自变量,c_j表示目标函数中的系数,a_{ij}表示第i个约束条件中x的系数,b_i表示约束条件的右侧常数,m表示约束条件的数量,n表示变量的数量。
最后两个约束条件要求自变量只能是整数。
2. Gurobi优化软件Gurobi是一个商业优化软件,经过多年的发展,已成为当前最流行的数学优化软件之一。
Gurobi支持多种数学优化方法,包括线性规划、非线性规划、混合整数规划、二次规划等。
Gurobi使用了现代算法来实现高效的求解效果,是工业和学术界备受推崇的优化软件。
三、实验内容1. 利用Gurobi求解整数线性规划问题我们使用Gurobi来求解如下的整数线性规划问题:\max\ \ 2x_1 + 3x_2 + 7x_3满足如下的约束条件:x_1 + x_2 + x_3 \leq 6x_1 - x_2 + x_3 \leq 4x_1, x_2, x_3 \in Z,\ x_1 \geq 0,\ x_2 \geq 0,\ x_3 \geq 0我们使用Python代码来实现该问题的求解过程:```pythonimport gurobipy as gbmodel = gb.Model("integer linear programming")# Create variablesx1 = model.addVar(vtype=gb.GRB.INTEGER, name="x1")x2 = model.addVar(vtype=gb.GRB.INTEGER, name="x2")x3 = model.addVar(vtype=gb.GRB.INTEGER, name="x3")# Set objectivemodel.setObjective(2*x1 + 3*x2 + 7*x3, gb.GRB.MAXIMIZE)# Add constraintsmodel.addConstr(x1 + x2 + x3 <= 6)model.addConstr(x1 - x2 + x3 <= 4)# Optimize modelmodel.optimize()# Print resultsprint(f"Maximum value: {model.objVal}")print(f"x1 = {x1.x}")print(f"x2 = {x2.x}")print(f"x3 = {x3.x}")```运行该代码,得到的输出结果为:```Optimize a model with 2 rows, 3 columns and 6 nonzerosVariable types: 0 continuous, 3 integer (0 binary)Coefficient statistics:Matrix range [1e+00, 1e+00]Objective range [2e+00, 7e+00]Bounds range [0e+00, 0e+00]RHS range [4e+00, 6e+00]Found heuristic solution: objective 9.0000000Presolve time: 0.00sPresolved: 2 rows, 3 columns, 6 nonzerosVariable types: 0 continuous, 3 integer (0 binary)Root relaxation: objective 1.500000e+01, 2 iterations, 0.00 secondsNodes | Current Node | Objective Bounds | WorkExpl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time0 0 15.00000 0 1 9.00000 15.00000 66.7% - 0sH 0 0 14.0000000 15.00000 7.14% - 0s0 0 15.00000 0 1 14.00000 15.00000 7.14% - 0sExplored 1 nodes (2 simplex iterations) in 0.03 secondsThread count was 4 (of 4 available processors)Solution count 2: 14 9Optimal solution found (tolerance 1.00e-04)Best objective 1.400000000000e+01, best bound 1.400000000000e+01, gap 0.0000%Maximum value: 14.0x1 = 2.0x2 = 4.0x3 = 0.0```经过Gurobi的求解,我们得到了最大值为14,同时x_1=2, x_2=4, x_3=0时取到最优值。
运筹学实验报告

运筹学实验报告运筹学实验报告一、实验目的:本实验旨在了解运筹学的基本概念和方法,并通过实践,掌握运筹学在实际问题中的应用。
二、实验过程:1.确定运筹学的应用领域:本次实验选择了物流配送问题作为运筹学的应用领域。
2.收集数据:我们选择了一个小型企业的物流配送数据进行分析,并将数据录入到计算机中。
3.建立模型:根据所收集的数据,我们建立了一个代表物流配送问题的数学模型。
4.运用运筹学方法进行求解:我们运用了线性规划的方法对物流配送问题进行求解,并得到了最优解。
5.分析结果:通过分析最优解,我们得出了一些有关物流配送问题的结论,并提出了一些优化建议。
三、实验结果:通过运用运筹学方法对物流配送问题进行求解,我们得到了一个最优解,即使得物流成本最低的配送方案。
将最优解与原始的配送方案进行对比,我们发现最优解的物流成本降低了20%,节省了货物运输的时间,减少了仓储成本。
四、实验结论:通过本次实验,我们了解了运筹学的基本概念和方法,并成功应用运筹学方法解决了物流配送问题。
通过分析最优解,我们发现采用最优解可以降低物流成本,提高配送效率。
因此,我们得出结论:运筹学在物流配送问题中的应用具有重要意义,可以帮助企业降低成本、提高效率。
五、实验心得:通过本次实验,我对运筹学有了更深入的了解。
通过实践应用运筹学方法,我明白了运筹学的实用性和价值。
在以后的工作中,我会更加注重运筹学方法的应用,以解决实际问题,提高工作效率。
本次实验不仅增强了我的动手实践能力,也培养了我分析和解决问题的能力。
我将继续学习和探索运筹学的知识,为将来的工作打下坚实的基础。
运筹学实验报告心得

运筹学实验报告心得运筹学实验报告实验一:线性规划问题1、实验目的:?学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
?掌握利用计算机软件求解线性规划最优解的方法。
2、实验任务?结合已学过的理论知识,建立正确的数学模型; ?应用运筹学软件求解数学模型的最优解?解读计算机运行结果,结合所学知识给出文字定性结论 3、实验仪器设备:计算机 4、实验步骤:(1)在主菜单中选择线性规划模型,在屏幕上就会出现线性规划页面,如图所示。
(2)在点击“新建”按钮以后,按软件的要求输入目标函数个数和约束条件个数,输入目标函数及约束条件的各变量的系数和b值,并选择好“?”、“?”或“=”号,如图所示。
(3)当约束条件输入完毕后,请点击“解决”按钮,屏幕上将显现线性规划问题的结果,如图所示。
例题一:例题二:例题三:例题四:例题五5、试验体会或心得运筹学是一门实用的学科,学习运筹学,结合生活实际运用运筹学,我们可以将资源最大化利用。
学习理论的目的就是为了解决实际问题。
线性规划的理论对我们的实际生活指导意义很大。
当我们遇到一个问题,需要认真考察该问题。
如果它适合线性规划的条件,那么我们就利用线性规划的理论解决该问题。
线性规划指的是在资源有限的条件下,为达到预期目标最优,而寻找资源消耗最少的方案。
其数学模型有目标函数和约束条件组成。
一个问题要满足一下条件时才能归结为线性规划的模型:?要求解的问题的目标能用效益指标度量大小,并能用线性函数描述目标的要求;?为达到这个目标存在很多种方案;?要到达的目标是在一定约束条件下实现的,这些条件可以用线性等式或者不等式描述。
所以,通过这次实验,不仅对运筹学的有关知识有了进一步的掌握,同时对在自己的计算机操作水准也有了很大的提高。
这次实验让我懂得了运筹学在电脑的应用,让我对运输与数学相结合的应用理解更深了。
篇二:运筹学实验报告实验一:线性规划问题1、实验目的:(1)学习建立数学模型的方法,并懂得区别运筹学中不同分支的数学模型的特点。
运筹学实践教学报告范文(3篇)

第1篇一、引言运筹学作为一门应用数学分支,广泛应用于经济管理、工程技术、军事决策等领域。
本报告旨在通过运筹学实践教学,验证理论知识在实际问题中的应用效果,提高学生的实践能力和创新能力。
以下是对本次实践教学的总结和反思。
二、实践教学内容1. 线性规划问题本次实践教学选择了线性规划问题作为研究对象。
通过建立线性规划模型,我们尝试解决生产计划、资源分配等实际问题。
- 案例一:生产计划问题某公司生产A、B两种产品,每单位A产品需消耗2小时机器时间和3小时人工时间,每单位B产品需消耗1小时机器时间和2小时人工时间。
公司每天可利用机器时间为8小时,人工时间为10小时。
假设A、B产品的利润分别为50元和30元,请问如何安排生产计划以获得最大利润?- 建模:设A产品生产量为x,B产品生产量为y,目标函数为最大化利润Z = 50x + 30y,约束条件为:\[\begin{cases}2x + y \leq 8 \\3x + 2y \leq 10 \\x, y \geq 0\end{cases}\]- 求解:利用单纯形法求解该线性规划问题,得到最优解为x = 3,y = 2,最大利润为240元。
- 案例二:资源分配问题某项目需要分配三种资源:人力、物力和财力。
人力为50人,物力为100台设备,财力为500万元。
根据项目需求,每种资源的需求量如下:- 人力:研发阶段需20人,生产阶段需30人;- 物力:研发阶段需30台设备,生产阶段需50台设备;- 财力:研发阶段需100万元,生产阶段需200万元。
请问如何合理分配资源以满足项目需求?- 建模:设人力分配量为x,物力分配量为y,财力分配量为z,目标函数为最大化总效用U = x + y + z,约束条件为:\[\begin{cases}x \leq 20 \\y \leq 30 \\z \leq 100 \\x + y + z \leq 500\end{cases}\]- 求解:利用线性规划软件求解该问题,得到最优解为x = 20,y = 30,z = 100,总效用为150。
运筹学实验报告四

实验四存贮模型的建立及求解1.实验目的和要求理解存贮问题模型的基本思想,模型的建立方法及使用运筹学软件对存贮问题进行求解。
2.实验内容(1)选择教材第十三章例题中两个例子,使用运筹学软件求解模型,分析输出数据。
(2)选择教师指定的实际问题,进行分析、建模和用软件求解(实验报告内容)。
问题一:解:根据题意得D=1200*12=14400吨/年,单位存储费c1=1500*12*2%=360(元)每次订货费c3=1800(元)。
计算机求解(1)打开运筹学软件,选择存储论,分析题意得问题一为经济订货批量模型(2)输入数据,解决所以(1)经济订货批量为379.47吨(2)再订货点276.16吨(3)两次订货间隔时间为9.62天(4)每月订货和存储的总费用为136610.4/12=11384.2(元)。
问题二:解:根据题意得D=18000套/年,每年的需求率d=D=18000套/年,每年的生产率p=30000套/年,每次生产准备成本c3=1600元/次,单位存储费c1=150*18%=27元/套年。
计算机求解(1)打开运筹学软件,选择存储论,分析题意得问题二为经济生产批量模型(3)输入数据,解决所以(1)最优经济生产批量为2309.4套(2)每年组织生产次数为7.79次(3)两次生产间隔时间32.08天(4)每次生产所需时间t=Q*/p=2309.4/30000=0.07698(年)(5)最大存储水平为923.76套(6)生产和存储的全年总成本为24941.53元(7)再订货点为720套。
问题三:解:根据题意得D=1000瓶/年,c1=0.4元/瓶年,c3=5元/次,Qa=100(件),Qb=300(件)。
当折扣为5%时,c a=2.5*(1-5%)=2.375元/瓶当折扣为10%时,c b=2.5*(1-10%)=2.25元/瓶计算机求解:(1)打开运筹学软件,选择存储论,分析题意得问题三为经济订货批量折扣模型(2)输入数据,解决存贮策略为:最优定货量300每年存贮成本54每年订货成本16.67每年购买成本2250成本总计2320.67最大贮存水平300平均贮存水平150每年订货次数 3.33周期( 天数) 75所以选择第二个折扣方案,订购300瓶,价格折扣为10%。
运筹学实验报告

运筹学实验报告一实验一:线性规划【例l】某制药厂用甲、乙两台机器生产A、B两种药物。
每种药物要经过两道工序,在甲机器上搅拌,在乙机器上包装。
生产每千克药物所需的加工时间以及机器1周可用于加工的总时间如下表1所示。
已知生产每千克药物A的利润是30元,B是25元,问应如何安排1周的生产计划才能使工厂获利最大?表 1 两种药物在各机器上所需加工时间及各机器可用于加工的总时间(1)写出数学模型,建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果。
(2)将电子表格格式转换成标准模型。
(3)将结果复制到Excel或Word文档中。
(4)分析结果。
解:(1)从已知条件写出该问题的数学模型:max Z=30x1+25x2;2x1+4x2<=40;3x1+2x2<=30;x1>=0,x2>=0.建立新问题、输入选项(电子表格、变量取非负连续)、输入数据、存盘、求解模型、结果存盘、观察结果:求解模型过程Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 1X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioSlack_C1 0 2.0000 4.0000 1.0000 0 40.0000 20.0000Slack_C2 0 3.0000 2.0000 0 1.0000 30.0000 10.0000C(j)-Z(j) 30.0000 25.0000 0 0 0Simplex Tableau -- Iteration 3X1 X2 Slack_C1 Slack_C2Basis C(j) 30.0000 25.0000 0 0 R. H. S. RatioX2 25.0000 0 1.0000 0.3750 -0.2500 7.5000X1 30.0000 1.0000 0 -0.2500 0.5000 5.0000C(j)-Z(j) 0 0 -1.8750 -8.7500 337.5000(2)将电子表格格式转换成标准模型。
运筹学实验报告

运筹学实验报告运筹学实验报告2实验内容:线性规划问题的建模和求解。
“炼油厂生产计划安排”,“长征医院的护士值班计划”两题目任选其一,每个小组最多3名同学,共同完成实验报告。
一、问题提出长征医院是长宁市的一所区级医院,该院每天各时间区段内需求的值班护士数如表1所示.该医院护士上班分五个班次,每班8h,具体上班时间为第一班2:00~10:00,第二班6:00~14:00,第三班10:00~18:00,第四班14:00~22:00,第五班18:00~2:00(次日).每名护士每周上5个班,并被安排在不同日子,有一名总护士长负责护士的值班安排计划.值班方案要做到在人员或经济上比较节省,又做到尽可能合情合理.下面是一些正在考虑中的值班方案:方案1 每名护士连续上班5天,休息2天,并从上班第一天起按从上第一班到第五班顺序安排.例如第一名护士从周一开始上班,则她于周一上第一班,周二上第二班,……,周五上第五班;另一名护士若从周三起上班,则她于周三上第一班,周四上第二班,……,周日上第五班,等等.方案2 考虑到按上述方案中每名护士在周末(周六、周日)两天内休息安排不均匀.于是规定每名护士在周六、周日两天内安排一天、且只安排一天休息,再在周一至周五期间安排4个班,同样上班的五天内分别顺序安排5个不同班次.在对第1、2方案建立线性规划模型并求解后,发现方案2虽然在安排周末休息上比较合理,但所需值班人数要比第1方案有较多增加,经济上不太合算,于是又提出了第3方案.方案3 在方案2基础上,动员一部分护士放弃周末休息,即每周在周一至周五间由总护士长给安排三天值班,加周六周日共上五个班,同样五个班分别安排不同班次.作为奖励,规定放弃周末休息的护士,其工资和奖金总额比其他护士增加a%.根据上述,帮助长征医院的总护士长分析研究:(x)对方案1、2建立使值班护士人数为最少的线性规划模型并求解;(b)对方案3,同样建立使值班护士人数为最少的线性规划模型并求解,然后回答a的值为多大时,第3方案较第2方案更经济;二、问题简述从该医院各时间段护士值班表可看出:五个时间段所需护士人数分别为18,20,19,17,12。
运筹学lingo实验报告(一)

运筹学lingo实验报告(一)运筹学lingo实验报告介绍•运筹学是一门研究在给定资源约束下优化决策的学科,广泛应用于管理、工程、金融等领域。
•LINGO是一种常用的运筹学建模和求解软件,具有丰富的功能和高效的求解算法。
实验目的•了解运筹学的基本原理和应用。
•掌握LINGO软件的使用方法。
•运用LINGO进行优化建模和求解实际问题。
实验内容1.使用LINGO进行线性规划的建模和求解。
2.使用LINGO进行整数规划的建模和求解。
3.使用LINGO进行非线性规划的建模和求解。
4.使用LINGO进行多目标规划的建模和求解。
实验步骤1. 线性规划•确定决策变量、目标函数和约束条件。
•使用LINGO进行建模,设定目标函数和约束条件。
•运行LINGO求解线性规划问题。
2. 整数规划•在线性规划的基础上,将决策变量的取值限制为整数。
•使用LINGO进行整数规划的建模和求解。
3. 非线性规划•确定决策变量、目标函数和约束条件。
•使用LINGO进行非线性规划的建模和求解。
4. 多目标规划•确定多个目标函数和相应的权重。
•使用LINGO进行多目标规划的建模和求解。
实验结果•列举各个实验的结果,包括最优解、最优目标函数值等。
结论•运筹学lingo实验是一种有效的学习运筹学和应用LINGO的方法。
•通过本实验能够提高对运筹学概念和方法的理解,并掌握运用LINGO进行优化建模和求解的技能。
讨论与建议•实验过程中是否遇到困难或问题,可以进行讨论和解决。
•提出对于实验内容或方法的建议和改进方案。
参考资料•提供参考书目、文献、教材、网站等资料,以便学生深入学习和研究。
致谢•对与实验指导、帮助或支持的人员表示感谢,如老师、助教或同学等。
以上为运筹学lingo实验报告的基本框架,根据实际情况进行适当调整和补充。
实验报告应简洁明了,清晰表达实验目的、内容、步骤、结果和结论,同时可以加入必要的讨论和建议,以及参考资料和致谢等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成都理工大学管理科学学院教学实验报告(半期考试) 2014~2015学年第二学期一、实验过程与步骤:步骤1:新建Excel表,根据表二和表三分别绘制轿车到达间隔时间和洗车服务时间,如图1。
图1统计顾客到达速率步骤2:模拟从A21开始,模拟数据区域为A21:K1120 。
在A21:A1120列,依次编号为1到1100。
分别选中24-117、123-1118行,点击鼠标右键将其“隐藏”,便于之后运算,否则表太大不好操作。
共模拟1100辆轿车,假设从第101辆轿车开始系统进入稳态,则前面100辆轿车的数据不作为计算范围。
步骤3:在B21:B1120列每一格,分别表示1100辆轿车两两之间到达的间隔时间。
在单元格B21中输入公式:=Vlookup(rand(),A$7:C$13,6),完毕按回车键。
这个公式的意思是:由rand()产生一个[0,1]之间的随机数,将它与A$7:C$20区域第一列(即A7:A20)各单元格数据相比较,如果它大于或等于某单元格数据而小于同列下一行的数据,excel就会记录下某单元格所在的行数,然后返回同行第3列的数据。
步骤4:在F21:F1120列,比照(3)进行类似操作。
在单元格F21中输入公式:=Vlookup(rand(),E$7:G$14,4),按回车键。
输入完毕,将F21单元格数据拖至1120行。
这就得到了1100辆轿车每一辆服务时间的随机数据。
泊位数在B19输入,等于3。
以上两步的操作结果见图2所示。
图2每辆车服务时间随机数的生成步骤5:在C21单元格,输入:=0+B21,在C21单元格,输入:=C21+B22(注:从上一辆轿车到达的时刻开始计时,则第二辆轿车到达的时刻就是C21+B22小时末。
以后以此推类)。
将C21单元格拖动到C1120。
结果见图3所示。
图 3 1100辆轿车到点时刻的计算步骤6:在D21单元格,输入:=C21;在E21单元格,输入:= D21 -C21。
在G21单元格,输入:=D25+F25。
在H25单元格,输入:=G21-C21。
分别将E21、G21、H21的数据拖动至E1120、G1120、H1120。
结果见图4所示。
图 4 1100辆车等待时间、完成时刻、在车行逗留时间的计算步骤7:在I21单元格,输入:=IF(RAND()>1/$B$19,0,G21);在J21单元格,输入:=IF(SUM($I21:I21)<>0,0,IF(AND(RAND()>1/$B$19,COLUMN(J21)-8<$B$19),0,$G21)) 。
这表示在三个洗车位都空闲时,随机抽取洗车位,第一辆车到车行时,就属于这种情形。
这里的“开始空闲时刻”是指该车服务完毕后的空闲时刻,而不是该车到达之前三个洗车位都空闲的状况。
因为1/$B$19=1/2,RAND()>1/2的概率即该洗车位被弃用概率为50%,所以I21中公式的含义是:以50%的概率选择洗车位1进行服务。
一旦选择了洗车位1,则第一辆车的完工时刻就是它的空闲时刻(也即该洗车位可为下一辆车进行洗车的时刻,这就必然不为0),否则它就一直从0时刻开始一直空闲着(这就必然为0);J21单元格中公式的含义是:如果J21对应的编号小于该洗车位的洗车位已经有一个被占用,则必有SUM($I21:I21)<>0,此时该单元格对应的洗车位就不能被用来服务,因为一辆车洗车只能且必须占用一个洗车位,这样未占用的该洗车位的空闲时刻将一直为0;否则SUM($I21:I21)=0,表示该小于该洗车位编号的洗车位都未被选中,那么如果该洗车位是最后一个洗车位(即COLUMN(J21)-8=$B$19),或者该洗车位不是最后一个洗车位(即COLUMN(J21)-8<$B$19)但被概率选中(即RAND()<1/$B$19 ),那么该洗车位就一定会被该车选中用于洗车服务,它的空闲时刻将是该车完成服务时刻G21,否则该洗车位未选中则其开始空闲时刻仍为0。
本题输入的公式不限于3个洗车位,可将J21在该行继续往后拖。
在excel表中选择crtl+`(注:数字1键左边和tab键之上),可在公式和数值之间来回切换。
公式输入结果见图5所示。
图 5 第一辆车对应的洗车位1、洗车位2、洗车位3空闲时刻计算步骤8:在D22单元格,输入:=IF(C22<=MIN(I21:J21),MIN(I21:J21),C22),并将其拖动到D1120单元格。
C22<=MIN(I21:J21)表示:如果第二辆车舶到港的时刻不迟于车位1、车位2的新近空闲时刻,那么该车就必须等到所有车位其中一个完成服务的时刻(即MIN(I21:J21))才能开始进行洗车;否则,C22>MIN(I21:J21)表示第二辆车来时,第一辆车已经服务完毕因而至少有一个车位处于空闲,那么此时第二辆车的到达时刻就是它开始洗车的时刻(即等于C22)。
操作结果如图6所示:图 6 第2-1100辆车开始洗车时刻的计算步骤9:在I22单元格,输入:=IF(I17=MIN(I17:J17),IF(RAND()<=1/COUNTIF(I17:J17,MIN(I17:J17)),G22,I17),I17)。
解释:如果第二辆车到达时,无论车位全都被占用或是有多个空闲,将锁定最先服务完的那个车位进行服务(即MIN(I17:J17))如果最先服务完即空闲时刻相等的洗车位不止一个而有COUNTIF(I17:J17,MIN(I17:J17))个,那么洗车位1被选中来为该车服务的概率为1/COUNTIF(I17:J17,MIN(I17:J17)),该概率可用表达式RAND()<1/ 1/COUNTIF(I17:J17,MIN(I17:J17))成立的概率来表示。
如果洗车位1 被第2辆车选中,则它的空闲时刻就是该车完成服务时刻G26;如果洗车位1没有被选中,则洗车位1的空闲时刻仍与I17相同。
计算结果见图7:图7某车服务完毕后洗车位1被占用情况、开始空闲时刻的计算步骤10:在J22单元格,输入:=IF(SUMXMY2($I17:I17,$I22:I22)<>0,J17,IF(OR(AND(RAND()<1/COUNTIF($I17:$J17,MIN($I17:$J17)),J17=MIN($I17:$J17)),COUNTIF($I17: J17,MIN($I17:$J17))=COUNTIF($I17:$J17,MIN($I17:$J17))),$G22,J17))。
解释:如果第二辆车到达时,无论洗车位全都被占用或是有多个空闲,只要编号小于洗车位2的洗车位有一个被该车占用来服务(即SUMXMY2($I17:I17,$I22:I22)<>0),则洗车位2一定会从J17时刻开始就空闲着而不被第二辆车占用(因为它不可能同时占用洗车位1和洗车位2的吧?);否则,编号小于洗车位2的洗车位都没有被该车占用来服务(即SUMXMY2($I17:I17,$I22:I22)=0,SUMXMY2( )函数求$I17:I17和$I22:I22两个向量对应元素之差的平方和)。
操作结果如图8:图8某车服务完毕后洗车位2被占用情况、开始空闲时刻的计算步骤11:在K22单元格中,输入:=IF(SUMXMY3($I17:I17,$I22:I22)<>0,K17,IF(OR(AND(RAND()<1/COUNTIF($I17:$K17,MIN($I17:$K17)),K17=MIN($I17:$K17)),COUNTIF($I 17:K17,MIN($I17:$K17))=COUNTIF($I17:$K17,MIN($I17:$K17))),$G22,K17))。
比如:第二辆车到达时洗车位1已占则它必然不会再选洗车位1,因而必有I17=I22从而SUMXMY2(I17,I22 )=0),那么编号非最后的洗车位3(假如洗车位多于2个)可能以概1/COUNTIF($I17:$K17,MIN($I17:$K17))被占用,表达式RAND()<1/COUNTIF($I17:$K17,MIN($I17:$K17))可表示该概率COUNTIF($I17:$K17,MIN($I17:$K17)统计在区域I17:K17的单元格中,其最小值MIN($I17:$K17)出现的次数,即有多个洗车位同时都是最快完成服务时,该车须按照上述概率随机选择一个洗车位来服务。
另一种情况,如果洗车位3就是最后一个最快完成服务的洗车位(即COUNTIF($I17:K17,MIN($I17:$K17))=COUNTIF($I17:$K17,MIN($I17:$K17)),图10中简称①式,本题即是)且之前的洗车位没有用来为该车服务(SUMXMY2($I17:I17,$I22:I22)=0),那么洗车位3无论如何(无论RAND()和1/COUNTIF($I17:$K17,MIN($I17:$K17))孰大孰小)都必须用来为该车服务。
因此,表达式OR(AND(RAND()<1/COUNTIF($I17:$K17,MIN($I17:$K17)),K17=MIN($I17:$K17)),COUNTIF($I17: K17,MIN($I17:$K17))=COUNTIF($I17:$K17,MIN($I17:$K17)))表达的就是这些情况,此时洗车位3必然被占用,所以洗车位3的开始空闲时刻就是该车完成服务的时刻$G22。
当然如果编号小于该洗车位的洗车位都未被该车占用的条件下,洗车位3非最后一个(即COUNTIF($I17:K17,MIN($I17:$K17))<COUNTIF($I17:$K17,MIN($I17:$K17)),假如是三个或更多的洗车位时),而且洗车位3对应的随机数rand()如果超过1/COUNTIF($I17:$K17,MIN($I17: $K17)) ,则洗车位3就没有被选中用于为该车服务,则洗车位3的开始空闲时刻仍维持着K17单元格对应的时刻。
将单元格K22拖动到K1124,表明今后洗车行1的空闲时刻计算原理都类似于此。
本题输入的公式不限于3个洗车位,如果有多个就可以将单元格K17在该行继续往后拖至后续洗车位,操作结果如图9:图9 某车服务完毕后洗车位3被占用情况、开始空闲时刻的计算步骤12:在B1126:E1134区域填写仿真模拟结论。
假设前100辆车的服务过程不是洗车位洗车服务系统的稳态时间,因此求各项模拟指标的稳态值须将其去掉。
在E1127中输入公式:=COUNTIF(E117:E1124,“>0”),即只要统计第101~1100辆车的等待时间即可:某车等待时间只要大于0,就计数1次,其中有2辆车等待时间超过2小时,计算公式见分图(b)E1133单元格。