用R语言模拟随机服务排队系统

更新时间:2023-05-10 15:49:38 阅读: 评论:0

⽤R语⾔模拟随机服务排队系统
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系统 的模拟。
<- 3\nmu <- 4\n\nm.queue <- trajectory() %>%\n ize(\"rver\", amount=1) %>%\n timeout(function() rexp(1, mu)) %>%\n relea(\"rver\", amount=1)\v <- simmer() %>%\n add_resource(\"rver\", capacity=2, queue_size=1)
%>%\n add_generator(\"arrival\", m.queue, function() rexp(1, lambda)) %>%\n run(until=2000)","class":{"has":1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet">lambda <- 3 mu <- 4 m.queue <-trajectory() %>% ize("rver", amount=1) %>% timeout(function() rexp(1, mu)) %>% relea("rver", amount=1)
队列已满时会有拒绝。
通过求解该系统的平衡⽅程,可以得出以下信息:
其中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队列:
下⼀步是 设置三个连接点:
最后,我们 运⾏仿真环境:
simmer environment: anonymous | now: 4000 | next: 4000.27679472528\n#> { Monitor: in memory }\n#> { Resource:
md1_1 | monitored: TRUE | rver status: 1(1) | queue status: 4(Inf) }\n#> { Resource: md1_2 | monitored: TRUE | rver status: 1(1) | queue status: 4(Inf) }\n#> { Resource: md1_3 | monitored: TRUE | rver status: 0(1) | queue status: 0(Inf)
}\n#> { Resource: md1_4 | monitored: TRUE | rver status: 0(1) | queue status: 0(Inf) }\n#> { Source: arrival1_ | monitored: 2 | n_generated: 7994 }\n#> { Source: arrival3_ | monitored: 2 | n_generated: 1959 }\n#> { Source: arrival4_ | monitored: 2 | n_generated: 2390 }","class":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-
widget="codeSnippet"> run(4000) #> simmer environment: anonymous | now: 4000 | next: 4000.27679472528 #> { Monitor: in memory } #> { Resource: md1_1 | monitored: TRUE | rver status: 1(1) | queue status: 4(Inf) } #> { Resource: md1_2 | monitored: TRUE | rver status: 1(1) | queue status: 4(Inf) } #> { Resource: md1_3 | monitored: TRUE | rver status: 0(1) | queue status: 0(Inf) } #> { Resource: md1_4 | monitored: TRUE | rver 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的到达,并检查平均等待时间和消息总数:
generator resource waiting_time\n#> 1 arrival1 md1_3 6.2313118\n#> 2 arrival3 md1_3 0.7253215\n#> 3 arrival1
md1_4 5.6431528\n#> 4 arrival4 md1_4 0.5001096\nget_n_generated(env, \"arrival1_\") + get_n_generated(env, \"arrival4_\")\n#> [1] 10384\naggregate(waiting_time ~ generator + resource, arr, length)\n#> generator resource
waiting_time\n#> 1 arrival1 md1_3 3864\n#> 2 arrival3 md1_3 1958\n#> 3 arrival1 md1_4 2177\n#> 4 arrival4 md1_4 2389","class":{"has":1},"lang":""}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-
widget="codeSnippet"> 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

本文发布于:2023-05-10 15:49:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/573410.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:到达   系统   时间   服务   队列   服务器   指数   模拟
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图