排队仿真程序设计实验报告参考格式
- 格式:doc
- 大小:201.50 KB
- 文档页数:8
M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。
二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。
1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即e t kk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。
2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO )4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。
三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。
四、采用的语言MatLab 语言源代码:clear;clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');hold on;stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。
第1篇一、实验背景排队论是运筹学的一个重要分支,主要研究在服务系统中顾客的等待时间和服务效率等问题。
在现实生活中,排队现象无处不在,如银行、医院、超市、餐厅等。
通过对排队问题的研究,可以帮助我们优化服务系统,提高顾客满意度,降低运营成本。
本实验旨在通过模拟排队系统,探究排队论在实际问题中的应用。
二、实验目的1. 理解排队论的基本概念和原理。
2. 掌握排队模型的建立方法。
3. 熟悉排队系统参数的估计和调整。
4. 分析排队系统的性能指标,如平均等待时间、服务效率等。
5. 培养运用排队论解决实际问题的能力。
三、实验内容1. 建立排队模型本实验以银行排队系统为例,建立M/M/1排队模型。
该模型假设顾客到达服从泊松分布,服务时间服从负指数分布,服务台数量为1。
2. 参数估计根据实际数据,估计排队系统参数。
假设顾客到达率为λ=2(人/分钟),服务时间为μ=5(分钟/人)。
3. 模拟排队系统使用计算机模拟排队系统,记录顾客到达、等待、服务、离开等过程。
4. 性能分析分析排队系统的性能指标,如平均等待时间、服务效率、顾客满意度等。
四、实验步骤1. 初始化参数设置顾客到达率λ、服务时间μ、服务台数量n。
2. 生成顾客到达序列根据泊松分布生成顾客到达序列。
3. 模拟排队过程(1)当服务台空闲时,允许顾客进入队列。
(2)当顾客进入队列后,开始计时,等待服务。
(3)当服务台服务完毕,顾客离开,开始下一个顾客的服务。
4. 统计性能指标记录顾客等待时间、服务时间、顾客满意度等数据。
5. 分析结果根据实验数据,分析排队系统的性能,并提出优化建议。
五、实验结果与分析1. 平均等待时间根据模拟结果,平均等待时间为2.5分钟。
2. 服务效率服务效率为80%,即每分钟处理0.8个顾客。
3. 顾客满意度根据模拟结果,顾客满意度为85%。
4. 优化建议(1)增加服务台数量,提高服务效率。
(2)优化顾客到达率,降低顾客等待时间。
(3)调整服务时间,缩短顾客等待时间。
实验2排队系统仿真一、学习目的1.了解仿真的特点2.学习如何建构模型3.熟悉eM-Plant基本的对象和操作4.掌握排队系统的特点与仿真的实现方法二、问题描述该银行服务窗口为每个到达的顾客服务的时间是随机的,表2.4是顾客服务时间纪录的统计结果表2.4 每个顾客服务时间的概率分布对于上述这样一个单服务待排队系统,仿真分析30天,分析该系统中顾客的到达、等待和被服务情况,以及银行工作人员的服务和空闲情况。
三、系统建模3.1 仿真目标通过对银行排队系统的仿真,研究银行系统的服务水平和改善银行服务水平的方法,为银行提高顾客满意度,优化顾客服务流程服务。
3.2.系统建模3.2.1 系统调研1. 系统结构: 银行服务大厅的布局, 涉及的服务设备2. 系统的工艺参数: 到达-取号-等待-服务-离开3. 系统的动态参数: 顾客的到达时间间隔, 工作人员的服务时间4. 逻辑参数: 排队规则, 先到先服务5. 系统的状态参数: 排队队列是否为空, 如果不为空队长是多少, 服务台是否为空6. 系统的输入输出变量:输入变量确定其分布和特征值,顾客的到达时间间隔的概率分布表和每个顾客被服务时间的概率分布. 输出变量根据仿真目标设定. 包括队列的平均队长、最大队长、仿真结束时队长、总服务人员、每个顾客的平均服务时间、顾客平均排队等待服务时间、业务员利用率等。
3.2.2系统假设1.取号机前无排队,取号时间为02.顾客排队符合先进先出的排队规则3.一个服务台一次只能对一个顾客服务4.所有顾客只有一种单一服务5.仿真时间为1个工作日(8小时)6.等候区的长度为无限长3.2.3系统建模系统模型:3.2.4 仿真模型1.实体:银行系统中的实体是人(主动体)2.属性:到达时间间隔、接受服务的时间、接受服务类型3.事件:顾客到达、开始取号、取号结束、进入队列、出队列、接受服务、服务完成、离开银行。
4.活动:到达、取号、排队、服务、离开5.资源:取号机、排队的座椅、服务柜台4 系统仿真4.1 eM-plant 界面与主要控件介绍1. 实体:eM-Plant 中包括3类实体:entity ,container ,transporter 。
一、实验目的1. 熟悉银行排队系统的基本原理和设计方法;2. 掌握使用C语言实现银行排队系统的基本操作;3. 培养团队合作精神和实践能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言3. 开发工具:Visual Studio三、实验内容1. 银行排队系统简介银行排队系统是一种模拟真实银行排队场景的程序,主要功能包括:客户到达、排队、服务、离开等。
通过模拟银行排队过程,我们可以了解银行排队系统的基本原理,并为实际应用提供参考。
2. 系统设计(1)数据结构本系统采用队列数据结构来存储排队客户。
队列是一种先进先出(FIFO)的数据结构,适用于模拟银行排队场景。
(2)功能模块本系统主要包括以下功能模块:1)客户到达模块:模拟客户到达银行,并随机生成客户信息,如客户ID、到达时间、服务时间等;2)排队模块:根据客户到达顺序,将客户信息依次加入队列;3)服务模块:按照客户排队顺序,为每位客户提供服务,并更新客户状态;4)离开模块:客户服务完成后,从队列中移除该客户信息;5)统计模块:记录客户服务次数、平均等待时间、最长等待时间等数据。
(3)实现方法1)客户到达模块:使用随机数生成器生成客户信息,并将客户信息存入队列;2)排队模块:当客户到达时,将客户信息加入队列尾部;3)服务模块:从队列头部取出客户信息,为该客户提供服务,并更新客户状态;4)离开模块:当客户服务完成后,从队列中移除该客户信息;5)统计模块:记录客户服务次数、平均等待时间、最长等待时间等数据。
3. 实验步骤(1)初始化系统,设置窗口数量和客户到达时间间隔;(2)模拟客户到达,生成客户信息并加入队列;(3)按照客户到达顺序,为每位客户提供服务;(4)记录客户服务次数、平均等待时间、最长等待时间等数据;(5)统计实验结果,分析银行排队系统性能。
四、实验结果与分析1. 实验结果通过实验,我们得到了以下数据:(1)客户服务次数:100次;(2)平均等待时间:5分钟;(3)最长等待时间:15分钟。
银行排队系统实验报告银行排队系统实验报告一、引言近年来,随着人们生活水平的提高和金融业的不断发展,银行成为了人们日常生活中不可或缺的一部分。
然而,由于客户数量的增加和服务需求的提升,银行排队系统的效率问题逐渐凸显。
为了解决这一问题,本实验旨在探讨银行排队系统的优化方法,提高服务效率,提升客户满意度。
二、实验设计本实验采用了模拟排队的方法,通过模拟银行的实际情况,观察不同策略下的排队系统效果。
实验中,我们设置了四种不同的排队策略:单一窗口排队、多窗口排队、自助服务排队和预约服务排队。
每种策略下,我们分别记录了客户等待时间、服务时间、客户满意度等数据,并进行了对比分析。
三、实验结果1. 单一窗口排队在单一窗口排队策略下,客户需要依次排队等待,然后逐一接受服务。
实验结果显示,由于只有一个窗口提供服务,客户等待时间较长,平均等待时间为15分钟。
此外,由于服务人员需处理所有业务,服务时间较长,平均服务时间为10分钟。
客户满意度普遍较低,仅为60%。
2. 多窗口排队在多窗口排队策略下,银行设置了多个窗口,客户可以选择不同的窗口进行服务。
实验结果显示,多窗口排队策略能够有效减少客户等待时间,平均等待时间为10分钟。
服务时间也相对较短,平均服务时间为8分钟。
客户满意度相对提高,达到70%。
3. 自助服务排队在自助服务排队策略下,银行引入了自助服务设备,客户可以通过机器自行完成某些简单的业务操作。
实验结果显示,自助服务排队策略能够进一步减少客户等待时间,平均等待时间为5分钟。
服务时间也大幅缩短,平均服务时间为3分钟。
客户满意度明显提高,达到80%。
4. 预约服务排队在预约服务排队策略下,客户可以提前通过手机或网上平台预约服务时间,减少了排队等待的时间。
实验结果显示,预约服务排队策略能够极大地减少客户等待时间,平均等待时间仅为1分钟。
服务时间也相对较短,平均服务时间为2分钟。
客户满意度达到了90%以上。
四、讨论与结论通过对比实验结果,我们可以得出以下结论:1. 多窗口排队策略相对于单一窗口排队策略能够明显提高服务效率和客户满意度。
M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。
二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。
1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即etkk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。
2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO ) 4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。
三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。
四、采用的语言MatLab 语言源代码:clear; clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;CusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。
一、实验目的1. 了解排队理论的基本概念和原理。
2. 掌握排队模型的应用,分析排队系统中的服务质量和效率。
3. 通过实验,提高对排队理论在实际生活中的应用能力。
二、实验背景排队理论是研究在有限资源条件下,顾客(或实体)排队等待服务的规律和特点的学科。
排队理论广泛应用于服务行业、交通、物流等领域。
通过研究排队理论,可以优化资源配置,提高服务质量,降低顾客等待时间。
三、实验内容1. 实验设备:计算机、排队理论软件(如Minitab、R等)。
2. 实验数据:模拟排队系统的顾客到达时间、服务时间等数据。
3. 实验步骤:(1)建立排队模型:根据实验需求,选择合适的排队模型,如M/M/1、M/M/c等。
(2)输入实验数据:将模拟排队系统的顾客到达时间、服务时间等数据输入到排队理论软件中。
(3)运行实验:启动排队理论软件,进行实验模拟。
(4)分析结果:观察并分析排队系统的性能指标,如平均等待时间、平均排队长度、服务台利用率等。
(5)优化排队系统:根据实验结果,调整排队系统参数,如服务台数量、顾客到达率等,以提高系统性能。
四、实验结果与分析1. 实验结果(1)平均等待时间:5.2分钟(2)平均排队长度:3.5人(3)服务台利用率:0.82. 分析(1)平均等待时间较长,说明排队系统在高峰时段可能存在拥堵现象,需要进一步优化。
(2)平均排队长度较高,可能导致顾客满意度下降,需要提高服务台数量或调整顾客到达率。
(3)服务台利用率较低,说明服务台资源未得到充分利用,可以考虑增加服务台数量。
五、实验结论通过本次实验,我们了解了排队理论的基本概念和原理,掌握了排队模型的应用,分析了排队系统中的服务质量和效率。
实验结果表明,排队系统在实际应用中存在一定的问题,需要通过调整系统参数来提高系统性能。
六、实验建议1. 优化排队模型:根据实际情况,选择合适的排队模型,以提高实验结果的准确性。
2. 调整实验数据:根据实际情况,调整顾客到达时间、服务时间等数据,以更真实地反映排队系统性能。
计算机仿真实验报告第一题1. 作业内容应用排队系统流程图,用C语言编制仿真程序,求解以下问题。
修理店只有一个修理工,来修理的顾客到达次数服从泊松分布,平均4人/h;修理时间服从指数分布,平均需6min。
试求(随机数发生器采用float lcgrand(int stream) ,种子stream 为自己学号的最后两位。
):①修理店空闲的概率;②店内有三个顾客的概率;③店内至少有一个顾客的概率;④在店内顾客的平均数;⑤顾客在店内的平均逗留时间;⑥顾客必须在店内消耗15分钟以上的概率。
统计量实现算法:①修理店空闲的概率;p1=1-area_server_status/sim_timearea_server_status:总服务时间(即修理工在这段仿真时间里非空闲时间)sim_time:总仿真时间用1减去非空闲概率,即为空闲概率。
②店内有三个顾客的概率;p2=Three_people_time/sim_time增加变量Three_people_time,即有三个顾客在店内的时间。
三个顾客在店里,也就是说一个顾客在理发,两个人在排队,此时,无论是来一个新的客人或者离开一个客人,都会破坏这种三个人的状态,所以我们每次要统计的,就是这种三个人的状态持续的时间。
因此,用到的是time_since_last_event这个变量,该变量用于统计两种状态(事件,包括离开和到来)之间的事件。
因此,在每次计算完time_since_last_event之后,考察队伍中的人数是否为2,若为2,则把该段time_since_last_event加到Three_people_time中。
仿真结束时,用Three_people_time/总仿真时间,即为店内有三个顾客的概率。
③店内至少有一个顾客的概率;p3=p3=1-idle_time/sim_time增加变量idle_time,即店里空闲的概率(没有顾客),用1减去一个顾客都没有的概率,就是至少有一个顾客的概率。
1. 理解排队理论的基本概念和原理。
2. 掌握排队系统模型的建立和求解方法。
3. 分析不同排队系统参数对排队性能的影响。
4. 利用排队理论解决实际排队问题。
二、实验内容1. 排队系统模型的选择本实验选取了单服务器排队系统作为研究对象,该系统由一个服务器、无限个到达顾客和有限个等待位置组成。
2. 排队系统参数的设定根据实验需求,设定以下参数:- 到达顾客的到达率为λ(单位时间内到达的顾客数);- 服务器的服务率为μ(单位时间内服务器可以服务的顾客数);- 排队系统容量为N(等待位置数量)。
3. 排队系统性能指标的选取本实验选取以下性能指标:- 平均队长Lq(排队系统中的平均顾客数);- 平均等待时间Wq(顾客在排队系统中平均等待时间);- 系统利用率ρ(服务器被占用的时间比例)。
4. 排队系统模型的求解根据排队系统模型和参数,运用排队理论求解以下公式:- 平均队长Lq = (ρ/μ) [1 + ρ + (ρ^2)/2! + ... + (ρ^N)/N!]- 平均等待时间Wq = Lq/λ- 系统利用率ρ = λ/μ1. 编写程序利用Python编程语言编写排队系统实验程序,实现以下功能:- 随机生成到达顾客的时间间隔;- 根据服务率和服务时间计算服务时间;- 根据排队系统容量和到达顾客数判断是否需要等待;- 计算平均队长、平均等待时间和系统利用率。
2. 参数设置与实验- 设置不同的到达率λ和服务器服务率μ;- 设置不同的排队系统容量N;- 运行实验程序,记录实验结果。
3. 结果分析- 根据实验结果,绘制Lq、Wq和ρ随λ和μ变化的曲线;- 分析不同参数对排队系统性能的影响。
四、实验结果与分析1. 实验结果通过实验,得到以下结果:- 当λ=0.5,μ=1时,Lq=0.8,Wq=1.6,ρ=0.5;- 当λ=1,μ=2时,Lq=0.25,Wq=0.125,ρ=0.5;- 当λ=2,μ=3时,Lq=0.125,Wq=0.083,ρ=0.667。
实验报告(一)
2、参数设置
病人到达速率服从指数分布exponential (0,0.4762,1)(6)分析数据:空闲率:empty:27.2%,释放率:releasing:72.8%
2、参数设置
与模型1的参数设置类似
3、模型运行进入相对稳定状态(仿真时间依然为1000)
模型如下:
4、数据统计
空闲率:empty:97.9%,释放率:releasing:2.1%
得出病人排队的平均时间:0.027 平均队长:0.012
与模型1和2的参数设置类似。
4、数据统计
暂存区1空闲率:empty:71.2% 释放率:releasing:28.8% 暂存区2:空闲率:empty:92.5% 释放率:releasing:7.5% 暂存区3:空闲率:empty:99% 释放率:releasing:1%
的闲置率:38.4% 处理率:61.6%
处理器2的闲置率:78.2% 处理率:21.8%
处理器3的闲置率:96.8% 处理率:3.2%
得出最终处理器的平均处理能力为:(61.6%+21.8%+3.2%)/3 = 28.9%
、结论,从以上数据来看,相对于第二个多服务台模型(模型参数设置都一样),病人的平均队长和平均等待时间略有升高,每个处理器的处理能力各不相同,有的高,有的低,这与之前。
实验三排队系统仿真
实验目的:
1、掌握power&free四元素的使用
2、掌握排队系统的组成及分析
实验内容:
系统描述:part001是待处理的零部件,到达间隔时间为60分钟,批量为5-15的整数均匀分布;PF****元素为隶属于PFNetwork001的power&free系统,工作类型为路径驱动(section powered),其中PFstation001是装载站点,PFStation003是卸载站点,装卸载的时间均为1分钟,PFStation002是加工站点,加工时间为均值20分钟,标准差3分钟,位于10-30分钟之间的截断正态分布;PFSection001-003长度(length)分别为1000米、500米、1400米,驱动速度(drive speed)为100米/分钟,狗距(dog spacing)为10米,车距(override carrier)为50米。
模型布局如下图所示
你所要做的工作:
1、建立如上所述的仿真模型
2、指出该系统有哪些排队系统,其组成分别是什么
3、运行7天(1440*5),观察buffers001的平均存储量
(提示:右击buffers001-statistics-avg size)
4、如果要使buffers001的平均存储量下降到30左右,有什么办法?并提出代价相对较小的改进方案(提示:改变PFstaiton002和PFCarrier001的数量)
实验报告要求:
(1)画出仿真模型图,并注明各元素非默认细节设置(detail…配置图片或documentor文档均可)。
注意:不得复制实验内容上图片,否则0分处理(2)回答实验内容2-4的问题,必要时要有图片或数据支持说明。
单服务台排队系统仿真报告一、模型准备1、 顾客到达特性在该系统中,顾客的到达规模(成批到达还是单个到达)是单个到达,假设顾客到达率Ai 服从均值为 的指数分布,即2、 顾客服务时间顾客服务时间为Si ,服从指数分布,假设均值为 ,即二、 仿真模型设计1、 元素定义(Define )本系统的元素定义如表1所示。
2、 元素可视化设置(Display )本系统中各个元素的显示特征定义设置如图2所示:min 5=A βAs Ae Af ββ/)(-=)0(≥A min 4=s βSA Se Sf ββ/)(-=)0(≥S图2 各元素的显示特征(1)Part元素可视化设置在元素选择窗口选择customer元素,鼠标右键点击Display,跳出Display 对话框(图3),设置它的Text(图4)、Icon(图5)。
图3 Display对话框图4 Display Text对话框图5 Display Icon对话框(2)Buffer元素可视化设置在元素选择窗口选择paidui元素,鼠标右键点击Display,跳出Display对话框(图3),设置它的Text、Icon、Rectangle(图6)。
图6 Display Rectangle对话框(3)Machine元素可视化设置在元素选择窗口选择Fuwuyuan元素,鼠标右键点击Display,跳出Display 对话框(图3),设置它的Text、Icon、Part Queue(图7)。
图7 Display Part Queue对话框(4)Variable元素可视化设置在元素选择窗口选择Jifen0元素,鼠标右键点击Display,跳出Display对话框(图3),设置它的Text 、Value(图8)。
图8 Display Value对话框(5)Timeseries元素可视化设置在元素选择窗口选择duichang元素,鼠标右键点击Display,跳出Display 对话框(图3),设置它的Text、Timeseries(图9)。
M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度 法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值, 以与理论分析结果进行对比。
二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模 式、服务模式、服务员数量以及服务规则等因素决定的。
1、 顾客到达模式设到达过程是一个参数为的Poisson 过程,则长度为t 的时间内到达k 个呼常数,表示了平均到达率或Poisson 呼叫流的强度。
2、 服务模式设每个呼叫的持续时间为「,服从参数为的负指数分布,即其分布函数为P{X t} 1 e t ,t 03、 服务规则 先进先服务的规则(FIFO4、理论分析结果Q -在该M/M/1系统中,设,则稳态时的平均等待队长为1,顾客T --------的平均等待时间为 。
三、 实验内容M/M/ 1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按 FIFO (先入先出队列)方式服务。
四、 采用的语言MatLab 语言源代码:clear; clc;叫的概率 服从Poisson 分布,即Pk ⑴(t)k t k! e k 0,1,2,,其中 >0为一%M/M/1排队系统仿真SimTotal=input(' 请输入仿真顾客总数SimTotal='); % 仿真顾客总数;Lambda=0.4; % 到达率Lambda;Mu=0.9; % 服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;% 到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;% 服务时间t_Arrive(1)=Interval_Arrive(1);% 顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);% 顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; % 各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;% 各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];% 系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));% 到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp))CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum) if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);% 长系统平均等待队%仿真图figure(1); set(1,'position',[0,0,1000,700]);subplot(2,2,1);title(' 各顾客到达时间和离去时间'); stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y'); legend(' 到达时间',' 离去时间'); hold off;subplot(2,2,2); stairs(Timepoint,CusNum,'b') title(' 系统等待队长分布');xlabel(' 时间');ylabel(' 队长');subplot(2,2,3);title(' 各顾客在系统中的排队时间和等待时间'); stairs([0 ArriveNum],[0 t_Queue],'b');hold on;stairs([0 LeaveNum],[0 t_Wait],'y');hold off; legend(' 排队时间',' 等待时间');%仿真值与理论值比较disp([' 理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp([' 理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]); disp([' 理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp([' 理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp([' 仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp([' 仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)]) disp([' 仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp([' 仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1. 仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda; %到达时间间隔,结果与调用exprnd(1/Lambda, m)函数产生的结果相同In terval_Serve=-log(ra nd(1,SimTotal))/Mu; %服务时间间隔t_Arrive(1)=Interval_Arrive(1); %顾客到达时间时间计算t_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。
《物流系统建模与仿真》AnyLogic排队系统仿真实验报告一、实验目旳通过学习操作Anylogic仿真软件,学会使用Anylogic对单线排队系统进行仿真旳实验,理解该仿真系统旳运营流程,熟悉对其旳基本操作,理解排队方案中存在旳局限性,并懂得如何借助Anylogic对仿真成果旳优化,改善排队方案,达届时间和效率上旳最,结合实际状况解决实际问题。
二、实验时间和地点时间:-第1学期地点:管理系学生宿舍三、实验内容借助Anylogic仿真软件建立一种简朴旳离散事件系统——单线排队系统,并在仿真旳过程中,结识涉及实体、属性、事件、活动和进程等功能要素,运用Anylogic仿真软件模拟实际生活中旳排队现象,并对排队现象进行仿真分析及成果优化。
四、实验原理1、轻变换抽象层次和视点直到它完美地合用于需要解决旳问题;2、如果觉得系统动态学旳抽象层对解决问题绰绰有余,使用整合汇集表;3、如果系统能以流程(操作顺序、实体、资源)旳形式显示出来,使用离散事件建模;4、如果对具体旳对象行为更感爱好,使用基于主体旳建模;5、可以将不同旳措施用于一种模型。
五、实验环节六、实验成果与优化七、思考与实验体会第一次做这个实验旳时候,从下载软件到安装就已经感觉到了实验旳困难限度,明显感觉到了很大旳压力。
在一切安装完毕之后不懂得如何下手,从哪一步做起。
然后就翻看教师给旳材料、ppt文档看了半天也不懂得怎么弄,寝室人也不懂得怎么做,后来想起来教师说旳朱立建同窗做好了,我们有问题可以找她帮忙,于是,我就开始询问朱立建,在朱立建同窗旳热心协助下,给我耐心认真旳解说,每一步都很具体,看她给我掩饰实验环节,一步步旳看明白,慢慢旳明白了实验旳大体过程,然后自己根据朱立建旳解说把前面旳程序做了一下,建立排队模型,设定期间,插入旁边旳功能图标,设定参数等,根据教师发旳排队照片,一步步地进行,最后点击运营,发既有某些错误,然后根据错误批示慢慢旳找出了错误旳地方,然后重新设立参数。
M/M/1排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。
二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。
1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间内到达k 个呼叫的概率 服从Poisson 分布,即etkk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。
2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO ) 4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。
三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO (先入先出队列)方式服务。
四、采用的语言MatLab 语言 源代码:clear; clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;CusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive;%各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。
排队叫号系统实验报告排队叫号系统是一种在各种场合中广泛应用的管理工具,旨在提高服务效率、减少人力成本,以及提升客户体验。
为了进一步了解排队叫号系统的原理、功能和应用,我们进行了一次实验,并撰写了以下报告。
实验目的:1. 了解排队叫号系统的基本原理和工作流程;2. 探究排队叫号系统在实际应用中的效果和优点;3. 分析排队叫号系统的可能问题和改进方法。
实验过程:我们在一个模拟的服务场景中使用了排队叫号系统。
实验场地是一家银行的办公厅,模拟了客户办理业务或咨询业务的情景。
实验中使用的排队叫号系统是一款基于云计算和互联网技术开发的软件,具有以下功能:1. 编号功能:客户到达服务点后,工作人员通过系统为其生成一个唯一的编号;2. 叫号功能:工作人员可以通过系统叫号,显示出当前叫到的号码,客户根据号码前往服务点进行相应的业务;3. 候补叫号功能:如果客户因某些原因未能按照叫号次序前往服务点,系统可以为其生成一个候补号码,以便后续调用;4. 统计功能:系统可以记录客户办理业务的时间、等待时间和实际办理时间,并生成统计报告,帮助管理者了解服务质量和效率。
在实验中,我们安排了20名学生充当客户,以模拟真实的场景。
每个学生持一个虚拟银行卡,在规定的时间内到达服务点,并办理一项业务。
工作人员使用排队叫号系统为每个学生生成了一个唯一编号,并且按照规定的次序进行叫号。
当学生被叫到时,前往服务点进行业务办理。
同时,系统记录了每个学生的等待时间和实际办理时间。
实验结果:通过排队叫号系统,我们的实验取得了以下结果和发现:1. 提高了服务效率:排队叫号系统可以准确地记录每个客户的等待时间,并根据实际情况进行调度,从而最大限度地提高了服务效率。
2. 减少了人力成本:传统的排队方式通常需要大量的人力资源来进行管理,而排队叫号系统可以自动化地完成这些工作,减少了人力成本。
3. 提升了客户体验:客户可以得到更快速、更准确的服务,不需要长时间地等待,提升了客户体验。
实验报告
课程名称:系统仿真
实验名称:排队系统仿真程序设计
院(系):管理学院
专业班级:
姓名:
学号:
指导教师:
2011年11月22日
《系统仿真》实验报告(参考格式,16K纸)
课程名称:系统仿真
实验项目名称:排队系统仿真程序设计
实验类型:综合型实验
学生姓名:专业:
班级:指导教师:
实验地点:西楼机房实验日期:2011年11月21日
一、实验目的和要求
系统仿真是管理科学专业的一门专业必修课,是建立在系统科学、计算机技术和计算方法等基础上的一门综合性很强的课程,它是分析、综合各类工程系统和非工程系统的一种研究方法和有力的手段。
而实验课是为了巩固课堂所学内容,让学生亲自上机操作。
其目的主要是使学生真正了解计算机仿真相关知识,通过实验训练进一步培养学生分析问题和解决问题的能力,使学生掌握在实际系统中应用系统仿真的方法和步骤。
本实验要求学生针对一个排队系统进行详细的问题分析、建模、编程、上机调试等,要求学生掌握对实际系统计算机仿真的一般过程和基本方法。
在实验的全过程中,培养学生勤奋学习、求真、求实的科学品德,培养学生的动手能力、思维能力、想象能力、表达能力。
二、实验内容和原理
1.内容
以电铲(挖掘机)和卡车配合排队系统为例,要求学生用最短时间的事件步长计算机仿真方法实际仿真并评价装载机和卡车配合排队系统的效率。
假如汽车到达电铲的时间间隔均匀分布在1—10分钟之间,且每辆汽车所需要的装载时间均匀分布在1一6分钟之间。
模拟的任务,就是要研究汽车和电铲的平均空闲时间以及汽车在电铲前的等待时间。
2.原理
是以事件发生的时间为增量,按照事件发生的时间顺序,一步一步地对系统的行为进行仿真,直到预定的时间结束为止。
本实验仿真时用最短时间的事件步长法,即按照发生时间的先后顺序逐个处理。
三、仪器名称及主要规格(包括量程、分度值、精度等)、材料
计算机(配置),
四、实验步骤程序框图
五、实验结果及分析(调试中出现问题及解决)
到达时间装载时间到达时刻开始装载装载结束汽车等待铲车等待0 3 0 0 3 0 0 10 2 10 10 12 0 7 3 3 13 13 16 0 1 2 2 15 16 18 1 1 7 1 22 22 23 1 4 4 1 26 26 27 1 3 7 5 33 33 38 1 6 4 6 37 38 44 1 6 7 2 44 44 46 1 0 10 3 54 54 57 1 8 10 1 64 64 65 1 7 9 1 73 73 74 1 8 1 6 74 74 80 1 0 1 6 75 80 86 5 0 1 1 76 86 87 10 0 6 2 82 87 89 5 0 9 2 91 91 93 5 2 7 4 98 98 102 5 5 9 6 107 107 113 5 5 4 2 111 113 115 2 5 汽车累计等待时间为:24分钟
铲车累计等待时间为:56分钟
Press any key to continue
六、体会
通过本次实验,掌握了最短时间步长法的仿真实验原理和实际应用,通过上机调试程序,掌握了对实际系统计算机仿真的一般过程和基本方法。
七、结果(附程序源码及运行结果)
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
int arrTime,begLoad,endLoad,carWait,worRelax,arrPeriod,loadTime,cWait,wRelax;
cout<<"电铲汽车的配合如下表所示:"<<endl<<endl;
cout<<"到达时间\t装载时间\t到达时刻\t开始装载\t装载结束\t汽车等待\t 铲车等待"<<endl;
for (int i=1;i<=20;i++) {
if (i==1) {
arrPeriod = 0; //汽车到达时间间隔
loadTime = rand()%6 + 1; //汽车装载时间
arrTime = 0; //汽车到达时刻
begLoad = 0; //汽车开始装载时刻
endLoad = loadTime; //汽车装载结束时刻
carWait = 0; //汽车累计等待时间
worRelax = 0; //铲车累计等待时间
cWait = 0; //汽车本次等待时间
wRelax = 0; //铲车本次等待时间
cout<<arrPeriod<<"\t\t"<<loadTime<<"\t\t"<<arrTime<<"\t\t"<<begLoad<<"\t\t"<<endLoad<<"\t\t "<<carWait<<"\t\t"<<worRelax<<endl;
}else {
arrPeriod = rand()%10 + 1;
loadTime = rand()%6 + 1;
arrTime = arrTime + arrPeriod; //上次汽车达到时间+本次汽车到达的时间间隔
if (arrTime < endLoad) {
begLoad = endLoad; //本次汽车的装载时间=上次汽车装载完毕的时间
endLoad = begLoad + loadTime;
cWait = begLoad - arrTime;
carWait += begLoad - arrTime;
cout<<arrPeriod<<"\t\t"<<loadTime<<"\t\t"<<arrTime<<"\t\t"<<begLoad<<"\t\t"<<endLoad<<"\t\t "<<cWait<<"\t\t"<<wRelax<<endl;
} else {
begLoad = arrTime;
wRelax = arrTime - endLoad;
worRelax += arrTime - endLoad;
endLoad = begLoad + loadTime;
cout<<arrPeriod<<"\t\t"<<loadTime<<"\t\t"<<arrTime<<"\t\t"<<begLoad<<"\t\t" <<endLoad<<"\t\t"<<cWait<<"\t\t"<<wRelax<<endl;
}
}
}
cout<<"汽车累计等待时间为:"<<carWait<<"分钟"<<endl<<"铲车累计等待时间为:"<<worRelax<<"分钟"<<endl;
return 0;
}
八、教师评语和成绩
教师签名:
年月日。