SIMULACIÓN
UNA INTRODUCCIÓN A LA SIMULACIÓN
Que es simulación?
Representar algo, fingiendo o imitando lo que no es (RAE).
La simulación es el proceso de diseñar un modelo de un sistema real (imitar el sistema) y
llevar a término experiencias con él, con la finalidad de comprender el comportamiento del
sistema o evaluar nuevas estrategias dentro de los límites impuestos por un conjunto de
criterios.
Definiciones Importantes en Simulación
Sistema: Conjunto de objetos o ideas interrelacionados como una unidad para la
consecución de un fin
Entidad: Lo que constituye la esencia o la forma de una cosa (RAE). Para nosotros la
entidad es el elemento responsable del que el estado del que sistema cambie.
Modelo de simulación: Representación simplificada de un sistema estocástico.
La intervención del azar en el sistema se representa mediante variables aleatorias.
Es fundamental el tratamiento del tiempo
Estado de un sistema: Conjunto de valores que toman las variables del sistema, y que
permiten describirlo
Cuando Usar Simulación?
No existe formulación matemática
No se conocen métodos de resolución analíticos o son demasiado complejos
Aunque existen métodos de resolución analíticos resulta menos costoso simular
Se desea experimentar con el sistema antes de su implementación.
Es imposible experimentar con el sistema directamente, aunque éste ya exista
Se desea reducir el tiempo de la experimentación
Inconvenientes en Simulación
La construcción del modelo puede ser costosa y compleja
Es frecuente obtener resultados erróneos, por menospreciar o no considerar aspectos
importantes del sistema
Es difícil conocer el grado de precisión de los resultados y analizarlos correctamente
Tipos de Sistemas
Sistemas continuos:
Las variables de estado cambian de forma continua respecto al tiempo
Sistemas discretos:
Las variables de estado cambian en ciertos instantes de tiempo.
Sistemas Híbridos:
Incluyen al menos un subsistema continuo y discreto
Tipos de Modelos de Simulación
Según la evolución del tiempo
Estáticos: representan un sistema en un instante particular
Dinámicos: representan la evolución de sistemas en el tiempo
Según la existencia de aleatoriedad
Deterministas: No incluyen variables aleatorias. Dados unos datos de entrada, existe
un único conjunto posible de datos de salida
Estocásticos: Contienen variables aleatorias. Los datos de salida pueden variar en
diferentes simulaciones
Según la evolución de las variables de estado
Continuos: Todas las variables de estado cambian de forma continua con el tiempo
Discretos: Todas las variables de estado cambian de forma discreta con el tiempo
Híbridos
Etapas de un proceso de Simulación (1)
1. Formular el problema
Entender el Sistema
Objetivos del estudio
Hipótesis básicas
Parámetros que intervienen
Variables de estado del sistema
2. Reunir datos y crear un modelo
Recolección de datos
Análisis estadístico para modelar la aleatoriedad
3. Programar o diseñar el modelo
Lenguaje de programación de propósito general (diagrama de flujo)
Lenguaje específico de simulación (SIMAN, SIMPY, AutoMod, ...)
Utilizar Software especializado en Simulación (SIMIO, ARENA, FLEXSIM, PROMODEL, ETC)
4. Verificar la programación
La traza puede ayudar en esta etapa
Etapas de un proceso de Simulación (2)
5. Validar el modelo
Ejecutar el modelo y comparar con el propio sistema o con soluciones teóricas de casos
sencillos
Alimentar el modelo con los mismos datos con los que se alimenta al sistema para obtener
los resultados que se van a comparar
6. Diseñar el experimento
Diseñar las estrategias a evaluar
Pruebas que se van a llevar a cabo
Número de simulaciones de cada una de ellas
Uso de técnicas de reducción de la varianza
Determinar la longitud del periodo transitorio y utilizar procedimientos para eliminar o
atenuar su influencia
Etapas de un proceso de Simulación (3)
7. Ejecutar las simulaciones
8. Analizar los resultados
Cada ejecución es una muestra simulada
Recurrir al análisis estadístico para obtener conclusiones
9. Decidir si se concluye la simulación
Si se requieren nuevas pruebas, volver a la etapa 6
10. Documentar y organizar las ejecuciones
Recopilar y mostrar la información obtenida
Verificar la confiabilidad de las conclusiones y decisiones que se propongan
Simulación de eventos
discretos
Simulación de Eventos Discretos
Eventos
Sucesos que producen un cambio en el estado del sistema
Mecanismo de transición
Muestra los cambios que se producen en el estado del sistema cuando se produce un evento
Ejemplo: Sistema de colas con un servidor
Estado: número de clientes que en el sistema
Eventos: llegada de un cliente o terminación de un servicio
Mecanismo de transición:
Cuando llega un cliente el numero de personas en el sistema se aumenta en 1
( ) Cuando el servido termina de atender a un cliente el cliente sale del sistema por lo tanto el
numero de clientes se disminuye en 1
Avance del Tiempo en la simulación discreta
Reloj de simulación: Variable que registra la cantidad de tiempo que ha sido simulada
Métodos para incrementar el reloj
Incremento en tiempo fijo (time step):
Se avanza un intervalo fijo (pequeño) y se actualiza el estado del sistema
Se considera que los eventos se producen al final del intervalo
Origina problemas por simultaneidad de eventos
Incremento por evento (event step)
Se comprueba cuando se produce el evento más inminente y se avanza el reloj hasta ese instante
No se incurre en errores en los instantes de ocurrencia de los eventos
Otros elementos de la Simulación discreta
Lista de eventos
Secuencia de instantes en las que se producen los eventos.
Puede ser generada al principio o en el transcurso de la simulación
Contadores estadísticos
Variables que almacenan información estadística relevante sobre el
comportamiento del sistema
15 Ejemplo de eventos
Client Hora Tiempo
e LLegad entre
a LLegadas
16 Ejemplo de eventos
Client Hora Tiempo
e LLegad entre
a LLegadas
1 8:00 -
Numero de Clientes en el sistema = 1
17 Ejemplo de eventos
Client Hora Tiempo
e LLegad entre
a LLegadas
1 8:00 -
2 8:05 5
Numero de Clientes en el sistema = 2
18 Ejemplo de eventos
Client Hora Tiempo
e LLegad entre
a LLegadas
1 8:00 -
2 8:05 5
3 8:07 2
Numero de Clientes en el sistema = 3
19 Ejemplo de eventos
Client Hora Tiempo
e LLegad entre
a LLegadas
1 8:00 0
2 8:05 5
3 8:07 2
4 8:09 2
Numero de Clientes en el sistema = 4
20 Ejemplo de eventos
Numero de Clientes en el sistema = 3
Números aleatorios
Secuencia aleatoria: secuencia de números obtenida al azar de algún
conjunto prefijado
Normalmente es suficiente generar valores de la distribución uniforme
U(0,1). A partir de ella se pueden generar otras distribuciones
Métodos para generar secuencias aleatorias:
Métodos físicos (Ruleta, dado, etc.): Los más efectivos para conseguir
aleatoriedad, pero poco prácticos para simular grandes cantidades de variables
en el ordenador.
Tablas de números aleatorios: Obtenidas normalmente mediante métodos
físicos. Ocupan demasiada memoria.
Se requieren otros métodos más rápidos, aunque se pierda aleatoriedad números
pseudoaleatorios
Números Pseudoaleatorios
Una secuencia de números pseudoaleatorios debe verificar:
Distribución uniforme
Independencia estadística
Un método para generar números pseudoaleatorios debe verificar:
Proporcionar variedad de secuencias
Secuencias reproducibles
Con un ciclo no repetitivo arbitrariamente grande
Velocidad de generación
Ocupar escasa memoria en el ordenador
Esto se ha conseguido mediante métodos aritméticos
Método generar números pseudoaleatorios
Fórmulas
recurrentes basadas en el concepto de congruencia:
; m) con a, b, m , a < m; b < m
Donde:
xn-1 : es el resto de dividir entre m
m es el modulo (longitud máxima del ciclo)
a : multiplicador
x0: semilla
Para conseguir valores uniformes se divide entre m
Método generar números pseudoaleatorios
; m)
m = 9, a = 5, b = 1, x0 = 1
x1= modulo(5·1+1; 9)=6 u1=6/9=0.6666
x2= modulo(5·6+1; 9)=4 u1=4/9=0.44444
x3= modulo(5·4+1; 9)=3 u1=3/9=0.33333
Continuar y observar en x9
Método generar números pseudoaleatorios
Características deseables:
m que facilite los cálculos (2k o 10k)
Longitud del ciclo grande: lo ideal es m
Parámetros más usados para el método multiplicativo
a = 75 = 16807; b = 0; m = 231 – 1 = 2147483647
a = 63036016; b = 0; m = 231 – 1
a = 216 + 3 ; b = 0 ; m = 231 -1
El segundo generador es el que mejores características estadísticas tiene.
Semillas usadas:
1973272912, 281629770, 20006270, 1280689831, 2096730329, 1933576050, 913566091
Simulación de Montecarlo
Un precursor de la simulación actual es el experimento Montecarlo,
un esquema de modelado que estima parámetros estocásticos o
determinísticos con base en un muestreo aleatorio.
Dada una variable aleatoria usamos su función de probabilidad
acumulada y números aleatorios o pseudoaleatorios para simular el
evento que ocurre, si lo repetimos muchas veces podemos obtener
un bien estimador de la media poblacional de la variable aleatoria.
Simular una variable aleatoria discreta
1. Identificar el experimento o sistema a simular
2. Definir la variable aleatoria
3. Definir la función de probabilidad (puede ser tomada de una muestra)
4. Construir la función acumulada de probabilidad
5. Calcular o construir la tabla de trasformación inversa de la función acumulada de
probabilidad. La transformación inversa utiliza la función acumulada de probabilidad
de la variable aleatoria que se va a simular. Puesto que la función acumulada esta definida
en el intervalo (0,1), se puede generar un numero aleatorio U uniformemente distribuido
entre (0,1),y tratar de determinar el valor de la variable aleatoria xk tal que F(xk-1 ) < U
F(xk )
6. Generar un numero aleatorio y ubicarlo en la transformada inversa para simular un valor
especifico
Simulación de Montecarlo en Excel
Dados los siguientes datos de la
variable demanda diaria, simular DEMANDA FRECUENCIA
dicha variable y estimar el
promedio. 100 100
125 200
150 40
200 25
Ejercicio No.1
El señor Pedro compra y vende periódicos del día, cada día compra 100 periódicos a $ 900
y los vende a $ 1100. Los periódicos que no vende en un día pierde la inversión.
por datos históricos se sabe que la demanda diaria se comporta de la siguiente forma:
Demanda Frecuencia Relativa
90 0,3
100 0,4
110 0,2
120 0,1
Simule 1000 días el sistema y calcule la Utilidad Diaria esperada.
Simule otro sistema en el caso de que la demanda se comporte como una distribución
normal de media 95 und., desv. estándar 10 und)
Ejercicio No.2
La caja de la Universidad de Córdoba tiene un servidor, por un estudio de tiempo y el
posterior análisis de bondad de ajuste, se conoce que los tiempos entre llegadas de los
clientes se comporta como una distribución exponencial de media 5 minutos y el tiempo de
servicio se comporta como una distribución normal de media 4 minutos y desviación
estándar de 1 minuto:
Simule la entrada de 1000 clientes al sistema y calcule las medidas de desempeño (ρ, Ls,
Lq, Ws, Wq, P0)
Bibliografía
José María Ferrer Caja, Universidad Pontificia Comillas
Taha H. Investigación de Operaciones. PEARSON EDUCACIÓN
Hillier y Lieberman Introducción a la Investigación de
Operaciones.