拓端tecdat|用R语言模拟随机服务排队系统
原文链接:http://tecdat.cn/?p=8159
原文出处:拓端数据部落公众号
M / M / c / k系统
用肯德尔的表示法,M / M / c / k系统具有指数到达(M / M / c / k),cC具有指数服务时间(M / M / c / k)和k−c的服务器(M / M / c / k)ķ-C队列中的位置(M / M / c / k)。
这是M / M / 2/3系统 的模拟。
lambda <- 3
mu <- 4m.queue <- trajectory() %>%seize("server", amount=1) %>%timeout(function() rexp(1, mu)) %>%release("server", amount=1)mm23.env <- simmer() %>%add_resource("server", capacity=2, queue_size=1) %>%add_generator("arrival", m.queue, function() rexp(1, lambda)) %>%run(until=2000)
队列已满时会有拒绝。
通过求解该系统的平衡方程,可以得出以下信息:
其中r=λ/μ[R=λ/μ。最后,我们可以看到模拟如何快速收敛到系统中的理论平均客户数Nñ:
服务费率
在许多实际的排队方案中,服务器的速度取决于系统的状态。在这里,我们考虑一个多服务器资源,该资源能够在到达位置之间平均分配处理能力。这意味着,例如,如果capacity=2
服务器中有一个服务器到达,则服务器的服务速度将提高一倍。
start
:到达开始最后一个timeout
活动的模拟时间。multiplier
:分配处理能力。delay
:服务延迟应用于上一个timeout
活动。
下面的主要轨迹首先抓住了服务器并初始化了这三个属性。然后,到达者需要遵循update.delay
轨迹,并且必须在任何给定时间中断以重新运行它,从而重新计算剩余的服务时间。
在下文中,我们将M / M / 2与该状态相关系统进行比较。这两个系统的到达时间相同,并且可以预期,平均资源使用量显着降低。
排队网络
队列网络。
有三个指数生成器 注入平均大小为100字节的指数大小的消息。有四个M / D / 1队列,确定速率等于220字节/秒。来自λ的消息有25%的概率1个λ1个 在第二个队列之前删除 。
我们将首先设置主要常量和几个函数来设置消息大小并占用M / D / 1队列:
下一步是 设置三个连接点:
最后,我们 运行仿真环境:
run(4000)
#> simmer environment: anonymous | now: 4000 | next: 4000.27679472528
#> { Monitor: in memory }
#> { Resource: md1_1 | monitored: TRUE | server status: 1(1) | queue status: 4(Inf) }
#> { Resource: md1_2 | monitored: TRUE | server status: 1(1) | queue status: 4(Inf) }
#> { Resource: md1_3 | monitored: TRUE | server status: 0(1) | queue status: 0(Inf) }
#> { Resource: md1_4 | monitored: TRUE | server status: 0(1) | queue status: 0(Inf) }
#> { Source: arrival1_ | monitored: 2 | n_generated: 7994 }
#> { Source: arrival3_ | monitored: 2 | n_generated: 1959 }
#> { Source: arrival4_ | monitored: 2 | n_generated: 2390 }
在分析中,我们将过滤来自生成器1的到达队列3和4的到达,并检查平均等待时间和消息总数:
aggregate(waiting_time ~ generator + resource, arr, function(x) sum(x)/length(x))
#> generator resource waiting_time
#> 1 arrival1 md1_3 6.2313118
#> 2 arrival3 md1_3 0.7253215
#> 3 arrival1 md1_4 5.6431528
#> 4 arrival4 md1_4 0.5001096
get_n_generated(env, "arrival1_") + get_n_generated(env, "arrival4_")
#> [1] 10384
aggregate(waiting_time ~ generator + resource, arr, length)
#> generator resource waiting_time
#> 1 arrival1 md1_3 3864
#> 2 arrival3 md1_3 1958
#> 3 arrival1 md1_4 2177
#> 4 arrival4 md1_4 2389
拓端tecdat|用R语言模拟随机服务排队系统相关推荐
- R语言模拟疫情传播-gganimate包
本文用gganimate包展示模拟疫情数据 本文篇幅较长,分为以下几个部分: 前言 效果展示 小结 附录:代码 前言 前文<R语言模拟疫情传播-RVirusBroadcast>已经介绍了一 ...
- R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)
R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray.F1.偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机) ...
- R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator
R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator 目录 R语言构建随机森林模型错误解决:Erro ...
- R语言基于随机森林进行特征选择(feature selection)
R语言基于随机森林进行特征选择(feature selection) 目录 R语言基于随机森林进行特征选择(feature selection)
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- 拓端tecdat荣获2022年度51CTO博主之星
相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...
- csv数据,已区分训练集和验证集,需要用r语言建立随机森林回归模型,计算模型精度,包括训练集和验证集的r方、mae、rmse
csv数据,已区分训练集和验证集,需要用r语言建立随机森林回归模型,计算模型精度,包括训练集和验证集的r方.mae.rmse #读取训练集 train <- read.csv("tra ...
- 模拟atm取款机 php,C语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 一:问题描述: C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输 ...
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat|bilibili视频流量数据潜望镜
最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...
最新文章
- 通信数字信号处理基本知识
- HP ALM 使用经验
- python可以直接打印中午吗_Python print不能立即打印的解决方式
- 我国最早超级计算机,全球十大超级计算机将在沪开通
- [spring-framework]Spring定时器的配置和使用
- c# 日期函数[string.Format----GetDateTimeFormats] --转载
- TensorFlow 教程 --教程--2.10偏微分方程
- golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法
- 交叉验证与训练集、验证集、测试集
- Strtus2入门简单框架搭建
- 数学建模c语言知识,数学建模方法总结
- EF批量添加数据BulkInsert
- 计算机程序员三级试题,计算机程序员考试试题及答案.
- JSP 创建 CRUD 示例 MyBatis DAO 用于数据库JSTL 用于遍历记录
- python当行刷新
- Java反射基础指南
- 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf
- 手机录制的视频文件被删除如何恢复
- 可见光通信技术的原理、结构及应用研究
- 记录项目中rocketmq的错误处理
热门文章
- 安卓学习征文 -- 自己定义标题栏
- linux下c语言编程之一环境架设和入门
- iFrame左树目录
- 梯度消失的有效解决方法-batch normalization
- HDFS +zookeeper实现高可用
- 第35课 函数对象分析(函数操作符()重载)
- 跨域 No 'Access-Control-Allow-Origin' header is present on the requested resource
- javascript高逼格代码实现数组去重,JSON深度拷贝,匿名函数自执行,数字取整等...
- iOS开发UI篇—程序启动原理和UIApplication
- Android-清空栈内的activity