排队仿真程序设计实验报告参考格式

合集下载

排队系统仿真matlab实验报告

排队系统仿真matlab实验报告

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; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

排队论问题实验报告(3篇)

排队论问题实验报告(3篇)

第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单服务台单队列排队系统仿真

实验2单服务台单队列排队系统仿真

实验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. 多窗口排队策略相对于单一窗口排队策略能够明显提高服务效率和客户满意度。

MM1排队系统仿真matlab实验报告

MM1排队系统仿真matlab实验报告

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
课程名称:系统仿真
实验名称:排队系统仿真程序设计
院(系):管理学院
专业班级:
姓名:
学号:
指导教师:
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;
}
八、教师评语和成绩
教师签名:
年月日。

相关文档
最新文档