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

原文链接:http://tecdat.cn/?p=8214

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")

?

如果您有任何疑问,请在下面发表评论。

?

大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务

统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服

?QQ:3025393450

?QQ交流群:186388004 

【服务场景】  

科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。

【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询

欢迎选修我们的R语言数据分析挖掘必知必会课程!

原文地址:https://www.cnblogs.com/tecdat/p/11764085.html

时间: 2024-11-13 11:15:02

用R语言模拟混合制排队随机服务排队系统的相关文章

R语言-模拟产生统计专业学生的成绩

现在Mayuyu会以一个例子来说明R语言在统计学中的应用.模拟一个高中学生语数外三科的成绩单. 首先认识两个重要的函数,source()和print(),source()函数是用来运行R脚本的,一个R脚本保存为test.R, 在R交互式环境下通过source("test.R")来运行,print()函数打印结果. 首先每一个学生有一个学号,通过如下方式生成 代码: #生成学号num num <- seq(1 : 100) + 20114300 #生成语文成绩,runif表示生成分

R语言randomForest包实现随机森林——iris数据集和kyphosis数据集

library(randomForest)model.forest<-randomForest(Species~.,data=iris)pre.forest<-predict(model.forest,iris)table(pre.forest,iris$Species) library(rpart)library(randomForest)model.forest<-randomForest(Kyphosis~.,data=kyphosis)pre.forest<-predict

R语言︱决策树族——随机森林算法

笔者寄语:有一篇<有监督学习选择深度学习还是随机森林或支持向量机?>(作者Bio:SebastianRaschka)中提到,在日常机器学习工作或学习中,当我们遇到有监督学习相关问题时,不妨考虑下先用简单的假设空间(简单模型集合),例如线性模型逻辑回归.若效果不好,也即并没达到你的预期或评判效果基准时,再进行下换其他更复杂模型来实验. ---------------------------------------------- 一.随机森林理论介绍 1.1 优缺点 优点. (1)不必担心过度拟合

多元线性回归公式推导及R语言实现

多元线性回归 多元线性回归模型 实际中有很多问题是一个因变量与多个自变量成线性相关,我们可以用一个多元线性回归方程来表示. 为了方便计算,我们将上式写成矩阵形式: Y = XW 假设自变量维度为N W为自变量的系数,下标0 - N X为自变量向量或矩阵,X维度为N,为了能和W0对应,X需要在第一行插入一个全是1的列. Y为因变量 那么问题就转变成,已知样本X矩阵以及对应的因变量Y的值,求出满足方程的W,一般不存在一个W是整个样本都能满足方程,毕竟现实中的样本有很多噪声.最一般的求解W的方式是最小

R语言入门心得(1) -- 下载与安装

R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R 是统计领域广泛使用的诞生于1980年左右的 S 语言的一个分支.R是S语言的一种实现.S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索.统计分析.作图的解释型语言.最初S语言的实现版本主要是S-PLUS.S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善.后来Auckland大学的Robert Gentlema

比较分析C++、Java、Python、R语言的面向对象特征,这些特征如何实现的?有什么相同点?

一门课的课后题答案,在这里备份一下: 面向对象程序设计语言 –  比较分析C++.Java.Python.R语言的面向对象特征,这些特征如何实现的?有什么相同点? C++ 语言的面向对象特征: 对象模型:封装 (1)  访问控制机制: C++提供完善的访问控制机制,分别是: public,protected和private. private, public, protected 访问标号的访问范围 public 可访问 1.该类中的函数 : 2.子类的函数: 3.其友元函数访问:4.该类的对象访

R语言︱机器学习模型评估方案(以随机森林算法为例)

R语言︱机器学习模型评估方案(以随机森林算法为例) 笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评价模型的方式. 常见的应用在监督学习算法中的是计算平均绝对误差(MAE).平均平方差(MSE).标准平均方差(NMSE)和均值等,这些指标计算简单.容易理解:而稍微复杂的情况下,更多地考虑的是一些高大上的指标,信息熵.复杂度和基尼值等等. 本篇可以用于情感挖

R语言基于树的方法:决策树,随机森林,套袋Bagging,增强树

原文链接:http://tecdat.cn/?p=9859 概观 本文是有关  基于树的  回归和分类方法的.用于分割预测变量空间的分割规则可以汇总在树中,因此通常称为  决策树  方法. 树方法简单易懂,但对于解释却非常有用,但就预测准确性而言,它们通常无法与最佳监督学习方法竞争.因此,我们还介绍了装袋,随机森林和增强.这些示例中的每一个都涉及产生多个树,然后将其合并以产生单个共识预测.我们看到,合并大量的树可以大大提高预测准确性,但代价是损失解释能力. 决策树可以应用于回归和分类问题.我们将

R语言——K折交叉验证之随机均分数据集

今天,在阅读吴喜之教授的<复杂数据统计方法>时,遇到了把一个数据集按照某个因子分成若干子集,再把若干子集随机平均分成n份的问题,吴教授的方法也比较好理解,但是我还是觉得有点繁琐,因此自己编写了一个函数,此后遇到这种问题只需要运行一下函数就可以了. 这里采用R中自带的iris数据集, > str(iris) 'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4