热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

本文中我在R中构造一个简单的MM1队列的离散事件模拟。最近我们被客户要求撰写关于随机服务的研究报告,包括一些图形和统计输出。模拟变量像往常一样,我们

 本文中我在R中构造一个简单的M / M / 1队列的离散事件模拟 。最近我们被客户要求撰写关于随机服务的研究报告,包括一些图形和统计输出。


模拟变量

像往常一样,我们从模拟及其检测所需的变量 开始。

t.end <- 10^5 # 模拟的持续时间
t.clock <- 0 # 模拟时间
Ta <- 1.3333 # 抵达间隔期
Ts <- 1.0000 # 服务期
t1 <- 0 # 下一次到达的时间
t2 <- t.end # 下一次出发的时间
tn <- t.clock # 最后事件时间的临时变量
tb <- 0 # 最后一次繁忙时间开始的临时变量
n <- 0 # 系统中的数量
s <- 0 # 累积数量-时间乘积
b <- 0 # 总忙碌时间
c <- 0 # 总完成数
qc <- 0 # 绘制瞬时q大小
tc <- 0 # 绘制时间延迟图
plotSamples <- 100
set.seed(1)

接下来,我们需要编写R代码以对进入队列和从队列离开进行实际的M / M / 1模拟。


仿真循环
 


while (t.clock }


检测指标

在这里,我们 检测数据以形成一些众所周知的性能指标。 


队列长度

这是瞬时队列长度- 平均负载数据的曲线图。这就是排队波动的样子。 

显示为红色虚线的框具有与阶梯曲线下方相同的面积。 


PDQ模型

为了进行分析比较,我们还使用 PDQ-R模型。

是的,这几行代码与上面带工具的仿真代码等效,并且可以保证处于稳定状态。即使在R中运行PDQ本质上也是瞬时的。模拟将花费更长的时间, 


结果

最后,我们可以将模拟的M / M / 1队列与相应的PDQ结果进行比较。像往常一样,最好将它们分解为输入和输出。


  1. 输入:

    Tsim:1.00e + 05
    Ta:1.3333,Ts:1.0000#次
    Ar:0.7500,Sr:1.0000#

  2. 输出:

    Usim:0.7477,Updq:0.75
    Xsim:0.7495,Xpdq:0.75
    Rsim:4.0316,Rpdq:4.00
    Qsim:3.0219,Qpdq:3.00

 我们可以得出结论,仿真在指定的10 5个时间步长内达到了稳态。


推荐阅读
  • Java集合框架特性详解与开发实践笔记
    Java集合框架特性详解与开发实践笔记 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • Java 中优先级队列的轮询方法详解与应用 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 在Linux系统中,目录结构遵循文件系统层次标准(FHS),确保了系统的组织性和可维护性。其中,`/bin`目录是FHS要求必须存在的目录之一,主要存放了在单用户维护模式下仍可执行的基本命令和工具。这些命令不仅对root用户可用,普通用户也能使用,以确保系统在最小化运行状态下仍能进行基本的操作和管理。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • 网络通信基础:互联网协议(IP)详解
    互联网协议(IP)作为TCP/IP协议栈的核心组成部分,主要负责提供一种无连接且不可靠的数据包传输服务。这意味着IP并不确保数据包能够成功抵达目标地址,而是尽力而为地进行传输。此外,IP协议在数据传输过程中不维护任何连接状态,每个数据包独立处理,确保了网络的高效性和灵活性。 ... [详细]
  • 本文深入探讨了Python线程池的内部实现机制,作为对Apshceduler调度器研究的延伸。在先前关于Apshceduler源码分析的文章中,我们提到调度器通过`def_do_submit_`函数将任务提交到线程池。本文将进一步解析线程池的工作原理,包括任务分配、线程管理及性能优化等方面,为读者提供更全面的技术理解。 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • 深入解析:强引用、软引用、弱引用与幻象引用的区别与应用场景 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 在使用 RabbitMQ 构建延时队列的过程中,遇到了一些常见的问题。特别是在设置延时时,由于未充分考虑各种情况,导致延时时间被错误地设置为负数。这不仅会影响消息的正常处理,还可能引发系统异常。本文将深入分析这一问题的原因,并提供有效的解决方案,帮助开发者避免类似错误,确保延时队列的稳定性和可靠性。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • Java 8 引入了 Stream API,这一新特性极大地增强了集合数据的处理能力。通过 Stream API,开发者可以更加高效、简洁地进行集合数据的遍历、过滤和转换操作。本文将详细解析 Stream API 的核心概念和常见用法,帮助读者更好地理解和应用这一强大的工具。 ... [详细]
author-avatar
Edwin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有