Mejoramiento de los tiempos de arribo y salida en un sistema de
transporte público masivo aplicando un modelo computacional y Simulación
Montecarlo
Improvement
of arrival and departure times in a mass public transport system applying a
computational model and Monte Carlo Simulation
Jonathan P. Cárdenas-Ruperti1, Luis A. Padilla-Alvarez2, Olga L. León-Santillan3
RESUMEN
El presente trabajo tiene como objetivo simular
el arribo y salida de las unidades de transporte para poder mejorar la calidad
del servicio y el tiempo de espera que toma cada unidad de transporte público para
realizar el recorrido completo aplicando el método de simulación de Montecarlo. Debido a la falta de buses para
poder abastecer a toda la comunidad que utiliza este medio de transporte y las
recientes quejas de los moradores debido a que no hay un bus que circule por
ese lugar, se propondrá la adquisición de nuevas unidades, para cumplir esta demanda. En este proyecto se
simula el tiempo de salida de los buses de la Cooperativa Albosau línea 47. Para poder realizar esta simulación, se
utiliza una distribución uniforme, en la cual el tiempo
medio de salida de cada bus va a ser tomado un viernes en la estación del bus. Para poder obtener el tiempo de espera entre cada salida de bus, se utiliza el Método de Montecarlo, en donde
se genera números aleatorios en programa elaborado en Python, para de esta manera conocer el tiempo estimado del proceso y para saber
si es conveniente adquirir unidades nuevas. Como
resultado, se redujeron los tiempos promedios de llegada
y salidas de los buses de esta cooperativa. Así mismo
se pudo determinar, mediante una distribución uniforme, los tiempos promedios en cada uno de los procesos de salida y llegada
de todos los buses, incluyendo los que ya cuenta la cooperativa de
transporte.
Palabras clave: Distribución
de probabilidad Uniforme, simulación Montecarlo, números aleatorios.
ABSTRACT
The objective of this work is to simulate the arrival and departure of transport units in order to improve the quality of the service and the waiting time that each public transport unit takes to complete the entire route by applying the Monte Carlo simulation method. Due to the lack of buses to supply the entire community that uses this means of transport and the recent complaints from residents due to the fact that there is no bus that circulates through that place, the acquisition of new units will be proposed, to meet this demand. In this project, the departure time of the buses from “Cooperativa Albosau” line 47 is simulated. In order to carry out this simulation, a uniform distribution is used, in which the average departure time of each bus will be taken on a Friday. at the bus station. In order to obtain the waiting time between each bus departure, the Monte Carlo Method is used, where random numbers are generated in a program prepared in Python, in order to know the estimated time of the process and to know if it is convenient acquire new units. As a result, the average arrival and departure times of the buses of this cooperative were reduced. Likewise, it was possible to determine, through a uniform distribution, the average times in each of the departure and arrival processes of all buses, including those already provided by the transport cooperative.
Keywords: Uniform probability distribution, Monte Carlo
simulation, random numbers.
Fecha de recepción: Febrero 8, 2020.
Fecha de aceptación:
Marzo 25,
2020.
En el estudio de la materia de Simulación de Sistemas, se encuentra el
tema de Simulación Montecarlo, por consiguiente, (Faulin, 2008) indica que “La
simulación de Montecarlo es una técnica cuantitativa que hace uso de la
estadística y los ordenadores para imitar, mediante modelos matemáticos, el
comportamiento aleatorio de sistemas reales no dinámicos” Debido a la
importancia del tema, es que este trabajo de investigación se propone un modelo
computacional probabilístico que permita imitar la realidad de lo que sería el
tiempo de recorrido que realizan los buses de transporte publico en cierta
localidad de la ciudad de Guayaquil, con la finalidad de poder encontrar una
solución a la demanda de este transporte y asi poder cubrir las necesidades de
los usuarios, para este proyecto se ha considerado utilizar ciertos modelos
matemáticos, tal como el uso de números pseudoaleatorios, que van a representar
el tiempo de recorrido que las unidades de transporte hacen.
Con respecto al uso de un sistema
computacional para modelar el problema de simulación, Shannon Robert (2005) indica que. “La simulación es el proceso de
diseñar y desarrollar un modelo computarizado de un sistema o proyecto y
conducir experimentos con este modelo bajo el propósito de entender el
comportamiento del sistema o evaluar varias estrategias con las cuales se puede
operar el sistema.” Es por esta razón que podremos entender el comportamiento
que tendría si se adquirieran nuevas unidades y de esta manera evaluar si es
conveniente realizar esta acción.
Este proyecto simula el tiempo de
salida de los buses de la Cooperativa Albosau “línea 47”, con la finalidad de
mejorar los tiempos de espera, para
realizar esta simulación, se hace uso de distribuciones de probabilidad, en
este caso al tomar los datos hemos notado que su comportamiento se asemeja a una
distribución uniforme, los datos correspondiente a este tipo de distribución
fueron obtenidos a partir del tiempo medio de salida de cada bus y en el
horario que se considera con mayor demanda de pasajeros que es entre las
07:00–09:00 de la mañana, vale recalcar que la demanda de esta línea es alta
por parte de los usuarios y es importante saber además que es la única línea
que circula en dicho sector.
Para poder simular y obtener los
tiempos de espera entre cada una de la salida de los buses, se utiliza el
Método de Montecarlo, la metodología que sigue el método de Montecarlo es a
partir de este método donde se generan números aleatorios, en vista de que la
generación es grande, se ha optado por realizarla mediante un medio tecnológico
y para esto se ha considerado el uso de programación en Python, con la
finalidad de obtener el tiempo estimado del proceso y para saber si es
conveniente adquirir unidades nuevas. Como resultado de la simulación, obtuvimos
que se redujeron los tiempos promedios de llegada y salidas de los buses, así
mismo se pudo determinar, mediante una distribución uniforme, los tiempos
promedios en cada uno de los procesos de salida y llegada de todos los buses,
incluyendo los que ya cuenta la cooperativa de transporte.
La metodología general se basó desde
un principio en la recolección de datos, relacionado con los tiempos de
llegada, y los tiempos de salida, posteriormente se determinaron los parámetros
necesarios para la utilización de una distribución de probabilidad, en base a
lo anterior fue necesario tomar en cuenta la demanda de usuarios que utilizan
este medio de transporte, así como el tiempo de servicio, para calcular esto de
utilizo la distribución de probabilidad uniforme.
Modelos de Simulación
En la actualidad, la simulación se ha convertido en
una herramienta para los negocios. En el campo de la manufactura es usada para
establecer los programas de producción, los niveles de inventario y los
programas de mantenimiento, con el fin de planear los requerimientos de
capacidad, recursos y procesos. En el sector de servicios la simulación se
utiliza como técnica para analizar las filas de espera y programar las
operaciones. Tal como lo indica (Shannon Robert, 2005). “Es el proceso de
diseñar y desarrollar un modelo computarizado de un sistema o proyecto y
conducir experimentos con este modelo bajo el propósito de entender el
comportamiento del sistema o evaluar varias estrategias con las cuales se puede
operar el sistema”
Simulación Montecarlo
Montecarlo está basado en la generación de números
aleatorios y el procedimiento es simular el comportamiento aleatorio del
sistema para obtener en forma artificial los tiempos de llegada y salida de los
buses. El tipo de simulación utilizado es secuencial, dado que los tiempos de
salida y llegada generados se van acumulando para obtener el tiempo total del
recorrido de la unidad. Según Faulin (2008) “La simulación de Montecarlo es una
técnica cuantitativa que hace uso de la estadística y los ordenadores para
imitar, mediante modelos matemáticos, el comportamiento aleatorio de sistemas
reales no dinámicos”. Debido a la importancia del tema, es que este trabajo de
investigación fue realizado utilizando el método antes mencionado, para poder
imitar el modo en el que los buses realizan su recorrido.
Para poder simular grande cantidades de números, esto
se hace posible mediante el uso de sistemas computacionales para esto se
implementa un software de simulación basado en programación Python, donde se ha
registrado para cada unidad su distribución de probabilidad, puntos de carga,
número de usuarios por punto de carga y demanda total por punto de carga. Para
la simulación de Montecarlo las propiedades distributivas de los generadores
aleatorios son primordiales, mientras que en la criptografía la
imprevisibilidad es crucial. Por tal motivo, el generador que se vaya a elegir
dependerá de la aplicación que se le vaya a dar. Rodríguez-Aragón, L. J. (2011).
Para poder realizar una simulación que incluya
variabilidad dentro de sus eventos, es preciso generar una serie de números que
sean aleatorios por sí mismos, y que su aleatoriedad se extrapole al modelo de
simulación que se está construyendo. Como puede comprender, en la construcción
del modelo los números aleatorios juegan un papel relevante. Ledesma, E, et al.
(2007).
Es por esta razón que, una de las primeras tareas que
es necesario llevar a cabo consiste en determinar si los números que
utilizaremos para "correr" o ejecutar la simulación son realmente
aleatorios o no. Se puede asegurar que el conjunto de números que se utilizarán
en una simulación se comporta de manera muy similar a un conjunto de números
totalmente aleatorios; por ello es que se les denomina números
pseudoaleatorios. Casi todas las aplicaciones comerciales tienen varios
generadores de números pseudoaleatorios que pueden generar un conjunto muy
grande de números sin mostrar correlación entre ellos. Astaiza, L. G. (1983).
Métodos congruenciales
Se cuenta con varios generadores de números
aleatorios, de los cuales los más populares son los métodos congruenciales
(aditivo, multiplicativo y mixto). El método congruencial mixto incluye
características de los otros dos, por lo que se presentará en primer lugar. El
método congruencial mixto genera una sucesión de números aleatorios enteros en
un intervalo de
Método de la Transformada inversa
Cuando se trata de distribuciones más complicadas, ya sean
discretas o continuas, a veces se puede usar una generalización de este enfoque
llamado método de transformación inversa para generar observaciones aleatorias.
Sea X la variable aleatoria involucrada y sea su función de distribución
acumulada la siguiente.
En consecuencia, la generación de cada observación requiere
los siguientes dos pasos:
· Generar un número aleatorio uniforme r entre 0 y 1.
· Establecer
Es decir que, según este método, la función acumulada se
igual al número aleatorio; esto bajo la condición de que ambos tienen su gama
de variación entre 0 y 1. El método de la transformada inversa propone que se
genere un número aleatorio y se lo proyecte sobre la curva acumulada F(x),
leyendo para ese punto la accisa correspondiente que será el valor de variable
aleatoria que sigue la distribución de densidad
Distribución de probabilidad Uniforme
Esta distribución de probabilidad describe el
comportamiento de una variable discreta que puede tomar n valores distintos con
la misma probabilidad cada uno de ellos. Una aplicación común es para
representar el tiempo de duración de una actividad cuando se tiene una mínima
información de la duración de la actividad. Gimenez Palomares, F. (2017).
Algunas veces el tiempo para completar se considera
que varía aleatoria y uniformemente entre dos valores. Dadas estas condiciones,
la distribución Uniforme es una buena estimación preliminar para la duración de
una actividad. La función de densidad de la Distribución Uniforme de
probabilidad está definida de la siguiente manera:
Para obtener la distribución acumulada de
probabilidad, usando la distribución original de probabilidad y a través del
cálculo, así:
substituyendo
Por lo que,
Usando el procedimiento de transformación inversa
involucra establecer una variable aleatoria uniforme R (donde R se encuentra
entre cero y uno) igual a F(x) y resolver para x. En donde a es el tiempo
mínimo, b el tiempo máximo de nuestra distribución uniforme y R el número
pseudoaleatorio generado. Así, Cevallos-Torres, L. y Botto-Tobar, M.
(2019).
Caso de Estudio
Teniendo en cuenta que el tiempo de arribo de los
buses de la línea 47 que llegan a la estación puede ser descrito por una
distribución uniforme con un tiempo mínimo de 8 minutos y un tiempo máximo de
11 minutos. Para mejorar este tiempo y poder brindar un mejor servicio se
propone adquirir más unidades. Con las nuevas unidades arribarán 20 unidades a
la estación en un tiempo determinado.
Por otro lado se procedió a clasificar el
comportamiento de las personas que llegan a la estación principal, todos los
días de la semana, en los diferentes horarios de atención dependiendo de la
demanda de usuarios. Para consolidar datos sujetos de análisis, se observó la
afluencia de los usuarios por un periodo de 1 semana, así mismo se procedió a
realizar una simulación de los intervalos de tiempo de salida de las unidades
de transporte, la cual se resume a continuación:
Horario 1: 07:00 − 09:00
Horario 2: 12:00 − 14:00
Horario 3: 18:00 − 20:00
Tabla 1. Número
de usuarios promedio que llegan a la estación
Días |
Horario 1 |
Horario 2 |
Horario 3 |
Promedio |
Lunes |
32 |
14 |
24 |
23,33 |
Martes |
31 |
10 |
24 |
21,67 |
Miércoles |
32 |
18 |
26 |
25,33 |
Jueves |
35 |
12 |
32 |
26,33 |
Viernes |
28 |
14 |
28 |
23,33 |
Tabla 2. Promedio
de buses que salen de la estación
Días |
Horario 1 |
Horario 2 |
Horario 3 |
Promedio |
Lunes |
6 |
4 |
5 |
3 |
Martes |
4 |
3 |
4 |
3,67 |
Miércoles |
5 |
5 |
6 |
5,33 |
Jueves |
5 |
4 |
6 |
3 |
Viernes |
4 |
5 |
5 |
4,67 |
Tabla 3. Promedio de buses que llegan a la estación
Días |
Horario 1 |
Horario 2 |
Horario 3 |
Promedio |
Lunes |
4 |
5 |
5 |
4,67 |
Martes |
5 |
4 |
6 |
3 |
Miércoles |
5 |
5 |
6 |
5,33 |
Jueves |
4 |
3 |
4 |
3,67 |
Viernes |
6 |
4 |
5 |
3 |
Fuente: Authors (In case the authors of the article have developed such material)
Donde:
Carro |
Número aleatorio |
x |
1 |
0.4764 |
3.9056 |
2 |
0.8416 |
2.3664 |
3 |
0.9434 |
4.7736 |
4 |
0.340 |
3.368 |
5 |
0.6827 |
3.7308 |
6 |
0.8521 |
4.4084 |
7 |
0.1129 |
3.4516 |
8 |
0.5806 |
5.3224 |
9 |
0.9285 |
4.714 |
10 |
0.6955 |
3.7820 |
Con la información tabulada, se procedió a aplicar una
prueba estadística, para determinar qué tipo de distribución siguen los datos.
Luego se procede a simular los valores de los tiempos de salida y llegada de
los buses ya que se puede decir que existe evidencia suficiente para que los
datos simulados sean los más reales posibles.
En Python el módulo random nos proporciona un rápido
generador de números pseudoaleatorios basado en el algoritmo Mersenne Twister;
el cual genera números con una distribución casi uniforme y un período grande,
haciéndolo adecuado para una amplia gama de aplicaciones. La mayoría de los
lenguajes de programación hoy en día contienen un generador de números
aleatorios por defecto al cual simplemente debemos ingresarle un valor inicial,
generalmente llamado seed o semilla, y que luego en cada invocación nos va a
devolver una secuencia uniforme de variables aleatorias independientes en el
intervalo (0, 1).
A continuación, se puede ver algunos números simulados
utilizando el lenguaje de programación Python.
# importando modulos
necesarios import matplotlib.pyplot
as plt import numpy as np # importando numpy import pandas as pd # importando pandas import random from scipy import stats np.random.seed(nr) %matplotlib inline def num_ale(n=1000): #Contador k
= 0 #Iteramos en el rango n for
i in range(n): #generamos los números
aleatorios x = random.random() y
= random.random() if
(ps >0 || ps <= 1):
# Si
cumple la condicion continúa k = k + 1
return (ps * float(k) / n)
# Graficando Uniforme
sns.set_context(rc={"figure.figsize": (11, 9)})
dist = stats.beta
n_trials = [0, 1, 2, 3, 4, 5, 8, 15, 50, 500]
data = stats.uniforme.rvs(0.5, size=n_trials[-1])
x = np.linspace(0, 1, 100)
uniforme = stats.uniform()
x = np.linspace(uniforme.ppf(0.01),
uniforme.ppf(0.99), 100)
fp = uniforme.pdf(x) # Función de Probabilidad
fig, ax = plt.subplots()
ax.plot(x, fp, '--')
ax.vlines(x, 0, fp, colors='b', lw=5, alpha=0.5)
ax.set_yticks([0., 0.2, 0.4, 0.6, 0.8, 1., 1.2])
plt.title('Distribución Uniforme')
plt.ylabel('probabilidad')
plt.xlabel('valores')
plt.show()
Conclusiones
Se determinó que la Simulación
Montecarlo ayuda a tener una mejor perspectiva acerca de duración de arribos y
salidas las unidades de la cooperativa de transporte urbano Albosau y Anexos,
ofreciendo ajustar el tiempo de espera de los usuarios que se encuentran en la
estación en los horarios en que se presenta mayor demanda de este servicio,
esto es debido a que se evidenció mayor flujo de personas en la estación en los
horarios establecidos en la toma de datos, de tal manera que ayude a la
comunidad a tener un mejor servicio, además de un menor tiempo de espera entre
las distintas unidades si se obtiene una flota con nuevos buses. La compra de
nuevas unidades mejorará notablemente el tiempo en el que una unidad de la
Línea 47 B salga de la estación a realizar su recorrido, beneficiando a los
usuarios que utilizan este medio de transporte, en el cual en un lapso de 1
hora podrán aproximadamente un total de 32 buses que salen de la estación a
realizar el recorrido, ya que al contar con más unidades aparte de las 22
unidades que se encuentran actualmente transitando, permitirá que se pueda
ejecutar dicha operación
Agradecimientos
Agradezco a Dios por permitirme
llevar con éxito la realización de este proyecto, a este equipo diverso de
trabajo que sirvió como apoyo fundamental para terminar este trabajo con la más
alta calidad posible, a mis padres por darme su ejemplo a seguir y su apoyo
incondicional, a mi esposa y a mi hija porque son el motor que me impulsa para
superarme cada día más
Referencias Bibliográficas
Domínguez,
D. S. C. (2014). SIMULACIÓN SIMULACIÓN.
Rodrıguez-Aragón, L. J. (2011). Simulación, método de
montecarlo. Recuperado de: https://previa. uclm.
es/profesorado/licesio/docencia/mcoi/tema4_guion. pdf.
Ledesma, E. F. R., Gonzaga, E. A., & Romero, T. E. R. (2007). Conceptos básicos de los generadores de números aleatorios (RGN) y
pseudoaleatorios (PRGN). COLDPower: el agente inteligente mexi-cano de
mercadeo de energía.
Astaiza, L. G. (1983). Los números aleatorios y la ingeniería. Ingeniería e Investigación,
(7), 55-60.
Gimenez Palomares, F. (2018). Método congruencial para la generación de
números seudoaleatorios.
Gimenez Palomares, F. (2017). DISTRIBUCIÓN UNIFORME.
Baltazar,
F., & López, S. (2017, abril 26). Simulación Estocástica. UNAM, 195.
Dagpunar,
J. (1988). Principios de generación de variables aleatorias. Oxford:
ClaredonPress.
Faulin, J.
(2008) , Simulación Montecarlo con Excel. enero 20, 2018, Recuperado de:
http://www.uoc.edu/in3/emath/docs/Simulacion_MC.pdf (Enero, 2009).
Fuentelzas,
C. (2004). Cálculo del tamaño de la muestra. Matronas Profesión, 5, pp.1-3.
García,
E., García, H. & Cárdenas, L. (2006). Simulación y Análisis de Sistemas con
ProModel. México: Pearson.
Hillier,
F., & Lieberman, G. (2010). Introducción a la Investigación de Operaciones.
México: McGraw-Hill.
Kelton, W.
David y otros (2008). Simulación con Software ARENA. McGraw-Hill – México, pp.
35-38.
Mancilla
Herrera, A. M. (2011). Simulación Herramienta para el estudio de sistemas
reales. Revista Científica Ingeniería y Desarrollo, (6), 104-112.
Rios, D.,
& Rios, S. (2000). Simulación, métodos y aplicaciones. Ed. Alfa Omega.
Colombia.
Rodríguez,
L. (2011). Simulación, Método de Montecarlo. Universidad de Castilla-La Mancha.
Salinas,
A. (2004). Métodos de muestreo. Redalyc, VII, 121-123.
Schmidt,
J., & Taylor, R. (1970). Simulación y análisis de Sistemas Industriales. McGraw-Hill.
Terrazas,
R. (1988). Simulación de Sistemas; Publicaciones de la Facultad de Ciencias y
Tecnología, serie técnica; UMSS. Cochabamba-Bolivia.
Cevallos-Torres,
L. y Botto-Tobar, M. (2019). Estudio de caso: Aprendizaje basado en
proyectos para evaluar distribuciones de probabilidad en el área
médica. En Aprendizaje basado en problemas: una estrategia
didáctica en la enseñanza de la simulación de sistemas (págs.
111-122). Springer, Cham.
[1] Ingeniero en Sistemas e Informática, Máster en
Gerencia de Sistemas y Tecnologías de la Información. Docente Investigador de
la Facultad de Ingenierías Universidad Técnica “Luis Vargas Torres” de
Esmeraldas E-mail: [email protected]
[2] Tnlgo. En Sistemas, Lic. En Informática
Educativa, Ing. En Sistemas Informáticos, Magister en Ciberseguridad. Docente Investigador de la Facultad de
Ingenierías en la Universidad Técnica “Luis Vargas Torres” de Esmeraldas,
Ecuador. E-mail: [email protected]
3 Ingeniera en sistemas y computación, Máster
Universitario en Dirección y Administración de Empresa(MBA). E-mail: [email protected].
Como citar: Cárdenas-Ruperti. J, Padilla-Álvarez L., & León-Santillán O. (2020). Ecuadorian Science Journal. 4(1), 57-61.
DOI: https://doi.org/10.46480/esj.4.1.94