原文链接: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语言模拟随机服务排队系统相关推荐

  1. R语言模拟疫情传播-gganimate包

    本文用gganimate包展示模拟疫情数据 本文篇幅较长,分为以下几个部分: 前言 效果展示 小结 附录:代码 前言 前文<R语言模拟疫情传播-RVirusBroadcast>已经介绍了一 ...

  2. R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

    R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray.F1.偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机) ...

  3. R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator

    R语言构建随机森林模型错误解决:Error in y - ymean : non-numeric argument to binary operator 目录 R语言构建随机森林模型错误解决:Erro ...

  4. R语言基于随机森林进行特征选择(feature selection)

    R语言基于随机森林进行特征选择(feature selection) 目录 R语言基于随机森林进行特征选择(feature selection)

  5. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  6. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

  7. csv数据,已区分训练集和验证集,需要用r语言建立随机森林回归模型,计算模型精度,包括训练集和验证集的r方、mae、rmse

    csv数据,已区分训练集和验证集,需要用r语言建立随机森林回归模型,计算模型精度,包括训练集和验证集的r方.mae.rmse #读取训练集 train <- read.csv("tra ...

  8. 模拟atm取款机 php,C语言模拟ATM自动取款机系统

    C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 一:问题描述: C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输 ...

  9. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  10. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

最新文章

  1. 通信数字信号处理基本知识
  2. HP ALM 使用经验
  3. python可以直接打印中午吗_Python print不能立即打印的解决方式
  4. 我国最早超级计算机,全球十大超级计算机将在沪开通
  5. [spring-framework]Spring定时器的配置和使用
  6. c# 日期函数[string.Format----GetDateTimeFormats] --转载
  7. TensorFlow 教程 --教程--2.10偏微分方程
  8. golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法
  9. 交叉验证与训练集、验证集、测试集
  10. Strtus2入门简单框架搭建
  11. 数学建模c语言知识,数学建模方法总结
  12. EF批量添加数据BulkInsert
  13. 计算机程序员三级试题,计算机程序员考试试题及答案.
  14. JSP 创建 CRUD 示例 MyBatis DAO 用于数据库JSTL 用于遍历记录
  15. python当行刷新
  16. Java反射基础指南
  17. 计算机打字速成,计算机汉字输入五笔字型打字速成.pdf
  18. 手机录制的视频文件被删除如何恢复
  19. 可见光通信技术的原理、结构及应用研究
  20. 记录项目中rocketmq的错误处理

热门文章

  1. 安卓学习征文 -- 自己定义标题栏
  2. linux下c语言编程之一环境架设和入门
  3. iFrame左树目录
  4. 梯度消失的有效解决方法-batch normalization
  5. HDFS +zookeeper实现高可用
  6. 第35课 函数对象分析(函数操作符()重载)
  7. 跨域 No 'Access-Control-Allow-Origin' header is present on the requested resource
  8. javascript高逼格代码实现数组去重,JSON深度拷贝,匿名函数自执行,数字取整等...
  9. iOS开发UI篇—程序启动原理和UIApplication
  10. Android-清空栈内的activity