统计计算第二次作业(排队论)

代码部分

arrive<-rexp(2000,0.5)      #生成服从指数分布的随机变量,表示客人到达的间隔时间
arritime<-cumsum(arrive)    #通过累加,获得客人到达的时间点
stat1<-rexp(2000,0.25)      #生成服务台1的服务时间间隔
stat2<-rexp(2000,0.25)      #生成服务台2的服务时间间隔
get_ser<-c()                #记录每个客户开始服务时间
end_ser<-c()                #记录每个客户结束服务时间
i=1;j=1
A_opentime <-0              # A_opeantime表示服务台1允许开始服务时间,也就是上一位客人结束服务的时间
B_opentime<-0.001           # B_opeantime表示服务台2允许开始服务时间,也就是上一位客人结束服务的时间
for(k in 1:2000){
  temp <-arritime[k]
  if(A_opentime < B_opentime){   #如果服务台1比服务台2提前结束上一轮服务,则第k个客户的服务由服务台1进行(为服务台1服务的第i个人)
    if(temp > A_opentime)        #比较客户到达时间与服务台1开始服务时间,若第k个客户尚未到达,服务台1空闲,更新
      A_opentime<-temp           # 服务台1的开始服务时间为第k个客户到达时间
    
    get_ser[k]=A_opentime       #讲第k个客户的开始服务时间 =服务台1的opentime
    end_ser[k]=get_ser[k]+stat1[i]    #讲第k个客户的结束服务时间点 =开始服务时间 +服务台1本次花费时间(从stat1中的第i个)
    A_opentime=end_ser[k]            #更新服务台1的下一次开放时间为第k个客户结束服务时间
    i=i+1                             #更新i到i+1,方便提取服务台1为服务下一个客户花费时间的数据  
  }
  else {
    if(temp >B_opentime)
      B_opentime<-temp  
    
    get_ser[k]=B_opentime
    end_ser[k]=get_ser[k]+stat2[j]
    B_opentime=end_ser[k]
    j=j+1
  }
}
#将所有客户的到达时间,接受服务时间 ,结束服务时间合并起来
A=data.frame(arritime=arritime,get_ser=get_ser,end_ser =end_ser)   
waiting=A[,2]-A[,1]   #计算每个人的等待时间
summary(waiting)

#计算平均队伍长度
line=c(0)
for(i in 2:2000){
  temp2=arritime[i]
  line<-c(line,i-table(get_ser< temp2)[2])
}
summary(line)

模拟结果

当服务间隔时间的期望是3,到达时间间隔的期望是1

#等待时间
> summary(waiting)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.0   264.2   498.3   486.4   725.0   957.1 
> #计算平均队伍长度
> summary(line)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.00   53.75  110.00  131.50  214.20  299.00 

当服务间隔时间的期望是3,到达时间间隔的期望是2

#等待时间
> summary(waiting)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   0.000   1.493   4.468   6.412  32.010 
> #计算平均队伍长度
> summary(line)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   1.000   2.000   4.094   6.000  19.000 

当服务间隔时间的期望是3,到达时间间隔的期望是3

#等待时间
> summary(waiting)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.0000  0.0000  1.1400  0.9547 15.2100 
> #计算平均队伍长度
> summary(line)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   1.000   1.000   1.325   1.000  10.000 
  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,022评论 6 13
  • 昨日,读完《1Q84》。今年村上春树长篇小说重读计划算是告一段落。 这次重读,是按小说写作和出版先后顺序,其实还差...
    老麦Michael阅读 3,950评论 12 0
  • ( by Michael Chien ,Line: polochien ) 越前距離九份老街越近 ... ^^| ...
    九份許家民宿阅读 1,486评论 0 0
  • 一风一雨一鸟鸣, 一茶一饭一相思。 一书一信一月明, 一仰一俯一声叹。 一弦一弄一高歌, 一花一树一夜眠。
    锦瑟初浅阅读 4,260评论 1 3

友情链接更多精彩内容