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

news2024/11/14 13:05:10

 M / M / 1系统

该系统的基本参数::

使用M / M / 1系统进行仿真非常简单 。 

 
lambda <- 2
mu <- 4
rho <- lambda/mu # = 2/4
..

 

例如, 可以快速可视化随时间变化的资源使用情况。在下面,我们可以看到仿真如何收敛到系统中理论上的平均客户数。

# Theoretical value
mm1.N <- rho/(1-rho)
graph + geom_hline(yintercept=mm1.N)

例如,还可以通过使用参数items和来可视化各个元素的瞬时steps

我们可以获取系统中每个客户花费的时间,并将平均值与理论表达式进行比较。

## [1] 0.5
## [1] 0.5012594

看来它与理论值非常吻合。 

 并行化的缺点是,当每个线程完成时,我们会丢失基础的C ++对象 。让我们执行一个简单的测试:

library(dplyr)

t_system <- get_mon_arrivals(envs) %>%
  mutate(t_system = end_time - start_time) %>%
  group_by(replication) %>%
  summarise(mean = mean(t_system))

t.test(t_system$mean)
## 
##  One Sample t-test
## 
## data:  t_system$mean
## t = 348.23, df = 999, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  0.4957328 0.5013516
## sample estimates:
## mean of x 
## 0.4985422

 最后,M / M / 1满足了系统中所用时间的分布,而该分布又是具有平均值的指数随机变量。

qqplot(mm1.t_system, rexp(length(mm1.t_system), 1/mm1.T))
abline(0, 1, lty=2, col="red")

 

M / M / c / k系统

M / M / c / k系统保持指数到达和服务时间,但通常具有不止一台服务器和有限的队列,这通常更现实。例如,路由器可能有多个处理器来处理数据包,而输入/输出队列必定是有限的。

这是M / M / 2/3系统(2个服务器,队列中1个位置)的模拟。 

lambda <- 2
mu <- 4

mm23.trajectory <- create_trajectory() %>%
...

在这种情况下,队列已满时会有拒绝。

##   rejection_rate
## 1     0.02009804

尽管如此,与M / M / 1情况一样,系统中花费的时间仍遵循指数随机变量,但平均值有所下降。

# Comparison with M/M/1 times
qqplot(mm1.t_system, mm23.t_system)
abline(0, 1, lty=2, col="red")


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单点部署linux命令----linux命令 总结篇

java -jar XXX.jar nohup java -jar xxx.jar & nohup java -jar visual_map-1.0.0.jar >/log/log.txt 2>&1 & nohup java -jar visual_map-1.0.0.jar & nohup java -jar_C18298182575的博客-CSDN博客 java -jar后台启动的四种方式_普通网友的博客-CSD…

基于JavaWeb的大学迎新系统设计与实现(源码+数据库脚本+论文+开题报告)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

NLP命名实体识别

命名实体识别&#xff08;Named Entity Recognition&#xff0c; NER&#xff09;是指在文本中识别出特殊对象&#xff0c;如人、地点、组织机构等。 命名实体识别方法概述 基于规则的方法&#xff1a;利用专家手工制订的规则进行命名实体识别。举例&#xff1a;“赵某出生于…

【动态规划】独立任务最优调度问题

1.题目描述 2.算法思路 我认为做动态规划题的关键是找到一个合适的dp数组&#xff0c;确定它dp[i][j]的含义&#xff0c;用它和题目的最优子结构性质结合求解。具体思路如下&#xff1a; (笔记些许潦草hhh…) 1.dp[i][j]表示第i个作业在第j&#xff08;0-A,1-B&#xff09;台…

Keil setting issue

1, data type default issue caused enter “hard fault during debug” void HardFault_Handler(void) { /* if Hard Fault exception occurs, go to infinite loop */ if(CoreDebug->DHCSR & 1) {//check c DEBUGEN 1 -> Debugger connected __breakpoint(0); //…

小迪-day12(SQL注入简要概述)

1、相关sql函数、语句 1.1 count() 1.1.1 count(column_name) ​ count(column_name)是计算数据库表中指定列有多少行&#xff0c; ​ 例&#xff1a; SELECT COUNT(column_name) FROM table_name1.1.2 count(*) 可以计算表中有多少行&#xff08;有多少条数据&#xff0…

基于 docker 搭建 grafana+prometheus 监控资源之mysql+docker+alertmanager配置(二)(超详细版)

先去看第一篇&#xff08;基础部署篇&#xff09;&#xff0c;看完后&#xff0c;才能接上本篇。 基于 docker 搭建 grafanaprometheus 监控资源之mysqldockeralertmanager配置&#xff08;二&#xff09;环境信息服务基本信息一、安装Mysqld_exporter1.1 标准启动1.2 docker-c…

1554_AURIX_TC275_时钟监控功能以及时钟紧急行为

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这部分还是前面CCU寄存器的一些延续&#xff0c;寄存器支持模块的禁用、禁用状态的查询以及是否支持休眠的控制。 1. 时钟监控是时钟进行安全设计需要考虑的一个手段&#xff0c;支持两种锁…

历史性突破,200层以上存储芯片率先量产,领先国外芯片巨头

近日&#xff0c;中企芯片技术迎来历史性突破&#xff0c;200层以上存储芯片率先量产&#xff0c;领先国外存储芯片巨头&#xff0c;或将成为全球行业领导者。后起之秀&#xff0c;鱼跃龙门 众所周知&#xff0c;存储芯片的生产&#xff0c;不仅需要高端技术&#xff0c;还需要…

MySQL之MVCC

多版本并发控制MVCC&#xff0c;也就是Copy on Write思想。MVCC除了支持读和读并行&#xff0c;还支持读和写并行、写和读并行&#xff0c;但为了保持数据一致性&#xff0c;写和写是无法并行的。 ​ 如下图&#xff0c;在事务1写的时候会copy一个记录的副本&#xff0c;其他事…

编译器做了这么多,你知道吗?

编译器做了什么 从最直观的角度来讲&#xff0c;编译器就是将高级语言翻译成机器语言的一个工具。比如我们用C/C语言写的一个程序可以使用编译器将其翻译成机器可以执行的指令及数据。我们前面也提到了&#xff0c;使用机器指令或汇编语言编写程序是十分费事及乏味的事情&…

LabVIEW编程LabVIEW开发ITECH IT6000D系列电源例程与相关资料

LabVIEW编程LabVIEW开发ITECH IT6000D系列电源例程与相关资料 ​IT6000D系列大功率可编程直流电源可支持多种规格的输出能力&#xff0c;以满足高电流、低电压或高电压、低电流等多种测试需求。同时&#xff0c;相同型号的整机间可并联工作&#xff0c;以实现更强大的输出能力…

settings.py配置文件(详解)

文章目录settings.py配置文件1. settings.py文件介绍1) BASE_DIR2) SECRET_KEY3) DEBUG4) ALLOWED_HOSTS5) INSTALLED_APPS6) MIDDLEWARE7) ROOT_URLCONF8) TEMPLATES9) WSGI_APPLICATION10) DATABASES11) AUTH_PASSWORD_VALIDATORS12) LANGUAGE_CODE和TIME_ZONE13) USE_118N和…

Cy7 Tyramide,Tyramide-Cy7,花青素Cy7 酪酰胺,Cy7酪胺

●外观以及性质&#xff1a; Cy7酪胺含有明亮的Cy7&#xff0c;可以使用标准的Cy7滤波片组轻松检测到。酪胺信号放大&#xff08;TSA&#xff09;是一种特别通用且功能强大的酶扩增技术&#xff0c;具有更高的检测灵敏度。西安凯新生物科技有限公司​为了实现大IHC检测&#xf…

排序算法总结

排序算法 排序算法可以分为内部排序和外部排序 内部排序是数据记录在内存中进行排序 外部排序是因排序的数据很大&#xff0c;一次不能容纳全部的排序记录&#xff0c;在排序过程中需要访问外存。常见的内部排序算法有&#xff1a;插入排序、希尔排序、选择排序、冒泡排序、归并…

Qt-OpenCV学习笔记--人脸识别

前言 本人从事机械设计12年&#xff0c;业余时间自学编程。 2022年4月6日&#xff0c;开始学习C#&#xff0c; 2022年9月7日&#xff0c;开始学习c和Qt&#xff0c; 2022年10月28日&#xff0c;开始学习OpenCV&#xff0c; 今天终于搞定了传说中的 人脸识别 &#xff0c;在…

spirngcloud的基本介绍与服务注册

1. 应用系统架构的演变 单应用架构 -> 应用服务器和数据库服务器分离 -> 应用服务器集群 -> 数据库压力变大&#xff0c;数据库读写分离 -> 引入缓存机制缓解数据库的压力 -> 数据库的水平/垂直拆分(数据库分库分表) -> 应用的拆分&#xff08;微服务&…

[附源码]计算机毕业设计绿色生活交流社区网站Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

GitLab搭建

以docker方式运行gitlab docker run --detach \--hostname gitlab.mczaiyun.top \--publish 8443:443 --publish 8090:80 --publish 8022:22 \--name gitlab \--restart always \--volume /root/gitlab/config:/etc/gitlab \--volume /root/gitlab/logs:/var/log/gitlab \--vo…