Software
Para poder utilizar el código expuesto en estos materiales es necesario la instalación de los programas R (R Core Team 2021), que actúa como lenguaje de programación, y RStudio (RStudio Team 2019). que actúa como interfaz, y que se pueden descargar desde:
- R: https://cran.r-project.org/
- RStudio: https://rstudio.com/
Para crear informes directos a partir del código utilizado al programar en R con RStudio se recomienda RMarkdown (Allaire et al. 2021).
A continuación se detallan brevemente las librerías especifícas de R utilizadas en este manual. Conviene tenerlas instaladas y actualizadas todas ellas. El conjunto de librerías útiles en Simulación de Procesos y Sistemas son:
tidyverse, en Wickham et al. (2019) y Wickham (2021): Es una colección de librerías en R para la ciencia de datos, que comparten una misma filosofía, gramática y estructuras de datos y facilita el tratamiento de datos. Para aprender a utilizar estas librerías es recomendable el libro R for Data Science de Wickham and Grolemund (2017), así como el manual de Grosser (2018).
simmer, en Ucar, Smeets, and Azcorra (2019), Ucar and Smeets (2021a), Ucar and Smeets (2021b): Es una librería R para la simulación de eventos discretos (DES) orientada a procesos. Diseñado para ser un marco genérico como SimPy o SimJulia, aprovecha la potencia de Rcpp para aumentar el rendimiento y hacer factible el DES en R. Como característica destacable, simmer explota el concepto de trayectoria: un camino común en el modelo de simulación para entidades del mismo tipo. Es bastante flexible y sencillo de utilizar, y aprovecha el flujo de trabajo de encadenamiento/conducción introducido por el paquete
magrittr
(Bache and Wickham (2022)). También utilizaremos las librerías vinculadassimmer.plot
,simmer.optim
,simmer.json
, ysimmer.mom
.markovchain (Spedicato et al. 2021): Librería de R que proporciona clases, métodos y funciones para manejar fácilmente las Cadenas de Markov de Tiempo Discreto (DTMC), realizando análisis probabilísticos y ajustes.
queueing (Canadilla 2019): Proporciona una herramienta versátil para el análisis de los modelos de colas markovianos basados en el nacimiento y la muerte y de las redes de colas monoclase y multiclase.
queuecomputer, en Ebert et al. (2020) y Ebert (2021): Implementación de un método computacionalmente eficiente para simular colas con tiempos de llegada y servicio arbitrarios.
Las versiones de las librerías de R utilizadas son las siguientes:
sessionInfo()
## R version 4.1.2 (2021-11-01)
## Platform: x86_64-apple-darwin17.0 (64-bit)
## Running under: macOS Big Sur 10.16
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
##
## locale:
## [1] es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/C/es_ES.UTF-8/es_ES.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] Rcpp_1.0.8 bslib_0.3.1 jquerylib_0.1.4
## [4] pillar_1.7.0 compiler_4.1.2 simmer_4.4.3
## [7] tools_4.1.2 digest_0.6.29 jsonlite_1.7.3
## [10] evaluate_0.14 lifecycle_1.0.1 tibble_3.1.6
## [13] gtable_0.3.0 pkgconfig_2.0.3 queueing_0.2.12
## [16] rlang_1.0.1 DBI_1.1.2 cli_3.1.1
## [19] rstudioapi_0.13 yaml_2.2.2 xfun_0.29
## [22] fastmap_1.1.0 stringr_1.4.0 dplyr_1.0.7
## [25] knitr_1.37 sass_0.4.0 generics_0.1.2
## [28] vctrs_0.3.8 grid_4.1.2 tidyselect_1.1.1
## [31] glue_1.6.1 R6_2.5.1 fansi_1.0.2
## [34] bookdown_0.24 rmarkdown_2.11 ggplot2_3.3.5
## [37] purrr_0.3.4 magrittr_2.0.2 scales_1.1.1
## [40] codetools_0.2-18 ellipsis_0.3.2 htmltools_0.5.2.9000
## [43] assertthat_0.2.1 colorspace_2.0-2 utf8_1.2.2
## [46] stringi_1.7.6 munsell_0.5.0 crayon_1.4.2
Cargamos las librerías de interés que utilizaremos en este manual.
# librerías
library(tidyverse)
library(simmer)
library(simmer.bricks)
library(simmer.plot)
library(diagram)
library(markovchain)
library(queueing)
library(queuecomputer)
library(rootSolve)
# Librerías de entorno gráfico
library(sjPlot)
library(gridExtra)
library(kableExtra) # y tablas
Configuramos además el tema de los gráficos para que tengan un aspecto más limpio y más fácil de exportar en formato pdf o word. Para ellos utilizamos la función theme_set()
.
theme_set(theme_sjplot2())
Manuales de referencia
Se recomiendan los siguientes manuales para trabajar con R, RStudio y las librerías proporcionadas:
APS 135: Introduction to Exploratory Data Analysis with R. (Childs 2019) Versión electrónica.
R for Data Science. (Wickham and Grolemund 2017) Acceso web.
Advanced R. (Wickham 2019) Versión online y Versión en español.
Tidyverse Cookbook. (Grosser 2018) Versión online incompleta.
ggplot2, part of the tidyverse (Wickham et al. 2021) Acceso web.
RMarkdown básico (Goicoa 2017). Acceso web.
RMarkdown Cookbook (Xie, Dervieux, and Riederer 2020) Versión online.