用R语言模拟M|用R语言模拟M / M / 1随机服务排队系统
原文链接: http://tecdat.cn/?p=8199
原文出处:拓端数据部落公众号
本文中我在R中构造一个简单的M / M / 1队列的_离散事件_模拟 。
模拟变量
像往常一样,我们从模拟及其检测所需的变量 开始。
t.end <- 10^5 # 模拟的持续时间
t.clock <- 0 # 模拟时间
Ta <- 1.3333 # 抵达间隔期
Ts <- 1.0000 # 服务期
t1 <- 0 # 下一次到达的时间
t2 <- t.end # 下一次出发的时间
tn <- t.clock # 最后事件时间的临时变量
tb <- 0 # 最后一次繁忙时间开始的临时变量
n <- 0 # 系统中的数量
s <- 0 # 累积数量-时间乘积
b <- 0 # 总忙碌时间
c <- 0 # 总完成数
qc <- 0 # 绘制瞬时q大小
tc <- 0 # 绘制时间延迟图
plotSamples <- 100
set.seed(1)
接下来,我们需要编写R代码以对进入队列和从队列离开进行实际的M / M / 1模拟。
仿真循环
while (t.clock < t.end) {
if(t1 < t2) { # 到达事件
t.clock <- t1
s <- s + n * (t.clock - tn) # 队列中的delta时间加权数...else {
t2 <- t.end
b <- b + t.clock - tb
}
}
}
检测指标 在这里,我们 检测数据以形成一些众所周知的性能指标。
队列长度 这是瞬时队列长度- 平均负载数据的曲线图。这就是排队波动的样子。
文章图片
显示为红色虚线的框具有与阶梯曲线下方相同的面积。
PDQ模型 为了进行分析比较,我们还使用 PDQ-R模型。
是的,这几行代码与上面带工具的仿真代码等效,并且可以保证处于稳定状态。即使在R中运行PDQ本质上也是瞬时的。模拟将花费更长的时间,
结果 最后,我们可以将模拟的M / M / 1队列与相应的PDQ结果进行比较。像往常一样,最好将它们分解为输入和输出。
- 输入:
Tsim:1.00e + 05 Ta:1.3333,Ts:1.0000#次 Ar:0.7500,Sr:1.0000#
- 输出:
Usim:0.7477,Updq:0.75 Xsim:0.7495,Xpdq:0.75 Rsim:4.0316,Rpdq:4.00 Qsim:3.0219,Qpdq:3.00
文章图片
最受欢迎的见解
1.R语言中使用排队论预测等待时间
2.R语言进行数值模拟:模拟泊松回归模型
3.用R语言模拟M M 1随机服务排队系统
4.R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化
5.用R语言模拟混合制排队随机服务排队系统
6.用R语言模拟随机服务排队系统
7.R语言做复杂金融产品的几何布朗运动的模拟
8.R语言进行数值模拟:模拟泊松回归模型
【用R语言模拟M|用R语言模拟M / M / 1随机服务排队系统】9.使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。