Post on 23-Jan-2016
SimulaciónDr. Ignacio Ponzoni
Clase IX: Conceptos Básicos de DEVS
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
Año 2005
Simulación 2 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos
• Sistema: colección de entidades que interactúan en el tiempo a fin de alcanzar cierto objetivo o meta.
• Modelo de Simulación basado en Eventos Discretos: es una abstracción que representa un sistema. Usualmente contiene relaciones matemáticas, lógicas o estructurales que describen el sistema en términos de estado, entidades y sus atributos, procesos, eventos, actividades y demoras.
• Estado del sistema: colección de variables que contienen toda la información para describir el sistema en cualquier instante de tiempo.
Simulación 3 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos
• Entidades: cualquier objeto o componente del sistema que requiere explícita representación dentro del modelo.
• Atributos: propiedades relevantes de las entidades que integran el modelo bajo construcción.
• Repositorios (listas o colas): colecciones permanentes o temporales de entidades que circulan por el sistema.
En algunos sistemas se caracterizan por ser colas, en otros simplemente son repositorios de entidades.
Simulación 4 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos
• Evento: una situación que ocurre en un instante de tiempo y modifica el estado del sistema. Puede estar asociado a cuando una entidad entra o sale de un repositorio, o al inicio o finalización de una actividad.
Eventos exógenos: son eventos que provienen del exterior del sistema, por ejemplo, los tiempos de arribo son ejemplo de esta clase de eventos.
Eventos endógenos: son eventos que se generan en el interior del sistema, los tiempo de finalización de servicio son ejemplos de esta clase de eventos.
Simulación 5 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos
• Aviso de evento: es un registro de un evento que está ocurriendo o que va a pasar en un momento futuro. Mantiene la información necesaria para ejecutar el evento.
• Lista de eventos: lista formado por los avisos de eventos que ocurrirán en nuestro sistema.
El orden de los avisos de evento en esta lista tiene en cuenta el orden cronológico y el tipo de evento.
Simulación 6 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos
• Actividad: representa un tiempo de servicio, un tiempo entre arribos, o cualquier tiempo de procesamiento que el modelador haya especificado. La duración de una actividad puede ser especificada de
distintas maneras:
1. Determinísticamente.
2. Estadísticamente.
3. Una función que depende de variables del sistema y/o atributos de las entidades.
Simulación 7 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos
• Proceso: algunas veces es útil agrupar una secuencia de eventos asociados al ciclo de vida de una entidad. Básicamente, cada proceso es una lista de eventos asociada a una entidad del sistema.
• Demora: lapso de tiempo indefinido en que una entidad se encuentra detenida dentro del sistema.
• Reloj de Simulación: variable que representa el tiempo simulado.
Simulación 8 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Conceptos Básicos• La demoras también se conocen como esperas condicionales,
dado que generalmente están asociadas a la liberación de un recurso, mientras que las actividades se denominan esperas incondicionales.
• La terminación de una actividad constituye un evento, frecuentemente llamado evento primario, y se maneja ubicando un aviso de evento en la lista de eventos de la simulación.
• La terminación de una demora suele denominarse evento condicional o evento secundario, pero no se administra en la lista de eventos. La información sobre las demoras se maneja en otras estructuras de datos o variables de la simulación.
Simulación 9 Prof. Dr. Ignacio Ponzoni
Simulación de Eventos Discretos
Evolución del Tiempo
tiempo...
Actividad
InicioPrimer Evento
SegundoEvento
TercerEvento
EventoFinal
ActividadActividad
Simulación 10 Prof. Dr. Ignacio Ponzoni
Caracterización de Eventos Discretos de un Sistema
Dinámico
Ejemplo de un Sistema de Colas
• Un restaurante de comidas rápidas para automovilistas posee una vía de circulación y dos empleados (Ana y Jorge) encargados de atender a los clientes.
Simulación 11 Prof. Dr. Ignacio Ponzoni
• Estado del sistema: Cantidad de autos esperando en la cola. Estado en que se encuentra Ana (ocupada o libre). Estado en que se encuentra Jorge (ocupado o libre).
• Entidades: clientes (autos). servidores (Ana y Jorge).
• Eventos: arribos de autos. terminación de servicio por parte de Ana. terminación de servicio por parte de Jorge.
• Actividades: tiempo entre arribos. tiempo de servicio de Ana. tiempo de servicio de Jorge.
Simulación 12 Prof. Dr. Ignacio Ponzoni
Simulación de Sistemas de Eventos Discretos
Vistas del Mundo
• Una simulación dinámica discreta puede abordarse siguiendo distintas vistas o enfoques de modelado:
– Barrido de actividades.
– Interacción de procesos.
– Planificación de eventos.
– Método de las tres fases.
Simulación 13 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de Barrido de
Actividades
• Este enfoque se concentra en las actividades del modelo y en las condiciones necesarias para llevar a cabo dichas actividades.
• El reloj avanza en intervalos fijos de k unidades de tiempo.
• Cada vez que el reloj de simulación avanza, se chequean las condiciones requeridas para realizar cada actividad.
• Si para alguna actividad se satisfacen todas sus condiciones, se inicia su ejecución.
Simulación 14 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de Barrido de
Actividades
• Este enfoque resulta muy útil en la simulación de sistemas de inventario dado que generalmente los niveles de stock son chequeados en intervalos fijos de tiempo (cada hora, cada día, etc.).
• En algunos sistemas complejos este enfoque acarrea un alto costo en tiempo de ejecución debido a la sobrecarga generada por los numerosos chequeos que deben efectuarse.
Simulación 15 Prof. Dr. Ignacio Ponzoni
Enfoque de Barrido de Actividades
Tabla de Simulación
...
...
...
...2001001301703er
...170100901802do
...1801401202001ro
...Stock FinalDemandaProducciónStock InicialDías
Cuando la simulación se organiza mediante tablas siguiendo el enfoque de barrido de actividades, las filas representan el estado del sistema para una dado período.
Simulación 16 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de Interacción de
Procesos
• En este enfoque el analista define el modelo de simulación en términos de las entidades u objetos del sistema y en como fluye el ciclo de vida de dichas entidades a través del sistema, demandando y consumiendo recursos.
• Un proceso corresponde al ciclo de vida de una entidad, el cual está conformado por varios eventos y actividades.
Simulación 17 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de Interacción de
Procesos
• Algunas actividades pueden requerir y consumir recursos del sistema cuya capacidad es limitada. Estas y otras situaciones pueden provocar la necesidad de interacción entre los distintos procesos a fin de gestionar el acceso a los recursos compartidos (por ejemplo, el acceso a los servidores).
• Varios lenguajes de programación y paquetes para simulación, tales como Simul8, Simprocess, AutoMod y MicroSaint, soportan este enfoque de modelado.
Simulación 18 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de Interacción de
ProcesosEvolución del Tiempo: Sistema de Colas con 1
Servidor
tiempo
Inicio
Tiempode Arribo
Tiempo Inicio de Servicio
Tiempo Finalización de Servicio
Tiempo de Servicio
Tiempo entre Arribo
tiempoTiempo
de Servicio
Inicio Tiempode Arribo
Tiempo Iniciode Servicio
Tiempo Finalización de Servicio
Tiempo de Demora
Tiempo entre Arribo
Cliente 1
Cliente 2
Simulación 19 Prof. Dr. Ignacio Ponzoni
Enfoque de Interacción de Procesos
Tabla de Simulación
...
...
...
...11.251.0010:257:253
...10:252:517:365:122
...7:361:236:134:561
...Fin de ServicioTiempo de
ServicioInicio de ServicioArriboCliente
Cuando la simulación se organiza mediante tablas siguiendo el enfoque de interacción de procesos, cada fila representa el ciclo de vida de un cliente.
Simulación 20 Prof. Dr. Ignacio Ponzoni
Vistas del Mundo Planificación de Eventos
• Un mecanismo para avanzar el tiempo de simulación
en este enfoque y garantizar que todos los eventos
ocurran en el orden cronológico correcto consiste en
administrar una lista de eventos.
• En un instante t, la lista de eventos contendrá n eventos
con tiempo t1, t2, …, tn. En ese momento, el reloj de
simulación tendrá tiempo t y se debe verificar que:
t < t1 t2 t3 … tn
Simulación 21 Prof. Dr. Ignacio Ponzoni
Planificación de Eventos Avance del Tiempo -
Bootstrapping• La simulación progresará tomando siempre el evento más
inminente, el t1 de la secuencia. Luego:
el aviso de evento de t1 es removido de la lista,
el reloj se avanza al tiempo t1, se ejecuta el evento actualizando el estado del sistema, y nuevos eventos pueden o no ser generados e incorporados a
la lista preservando el orden cronológico de la misma. se actualiza la información estadística.
• Estos pasos se repiten hasta terminar la simulación.
Simulación 22 Prof. Dr. Ignacio Ponzoni
Instante Inicial de la Simulación
y Generación de Eventos
• El estado del sistema en el instante 0 de la
simulación es definido mediante las condiciones
iniciales y la generación de los eventos exógenos
provenientes del entorno de nuestro sistema.
Simulación 23 Prof. Dr. Ignacio Ponzoni
Generación del Evento de Finalización de la Simulación
Existen dos métodos básicos para establecer la terminación de una simulación:
•En el instante 0 se genera un tipo de evento especial de terminación cuyo tiempo t corresponde a la última unidad de tiempo correspondiente a la duración de toda la simulación.
•Se especifica una condición de terminación. Por ejemplo, “la simulación termina luego de finalizar la atención del cliente número 100”.
Simulación 24 Prof. Dr. Ignacio Ponzoni
Planificación de EventosTabla de Simulación
...
...
...
...ocupado17:00arribo3
...ocioso06:99partida2
...ocupado15:42arribo1
...Estado
ServidorClientesRelojTipoEvento
Cuando la simulación se organiza mediante tablas siguiendo el enfoque de planificación de eventos, cada fila representa la ocurrencia de un evento de la simulación.
Simulación 25 Prof. Dr. Ignacio Ponzoni
Planificación de EventosCaso de Estudio: Fallas y Reparación de una
Máquina
• Suponga que se desea estudiar la evolución de un sistema dinámico formado por una máquina que sufre regularmente de fallas en su funcionamiento.
• Básicamente, está máquina está operativa durante cierto período de tiempo, luego se produce una falla y deja de funcionar hasta que es reparada y vuelve a iniciar un ciclo operativo.
• ¿Cómo caracterizaría este problema a fin de poder estudiarlo como un sistema de eventos discretos?
Simulación 26 Prof. Dr. Ignacio Ponzoni
Caso de Estudio: Fallas y Reparación de una Máquina
Caracterización como Sistema de Eventos Discretos
• Estado del sistema: Cantidad de fallas producidas. Estado en que se encuentra la máquina (operativa u ociosa)
• Entidades: fallas máquina
• Eventos: inicio de período operativo (I.P.O) fin de período operativo (F.P.O.) terminación de la simulación (FIN)
• Actividades: tiempo entre fallas tiempo de reparación
Simulación 27 Prof. Dr. Ignacio Ponzoni
Generación de Eventos Endógenos
Tiempos de Fallas• Cada vez que se remueve de la lista de eventos un aviso
de fin de período operativo de la máquina con tiempo t, se agrega un aviso de evento de fin de período NO operativo con tiempo t+s, donde s se obtiene siguiendo alguna distribución probabilística apropiada para el tiempo de reparación de la máquina.
• De manera similar, cada vez que se remueve un aviso de fin de período NO operativo, se genera un evento de fin de período operativo utilizando una distribución probabilística apropiada para el tiempo entre fallas.
Simulación 28 Prof. Dr. Ignacio Ponzoni
Planificación de EventosEjemplo con Tiempos de Fallas: Estado
Inicial
• Lista de Eventos:
• Reloj: 3:00
...
...
...
...
...
...
...Número de Fallas
T. Ocioso Acumulado
RelojTipoEvento
F.P.O.3:45
Fin 5:00
t1 t2Tiempo entre fallasAleatorio: 45 min
Simulación 29 Prof. Dr. Ignacio Ponzoni
Planificación de EventosEjemplo: Tomo el primer aviso de eventoy genero un evento endógeno de Inicio de
P.O.
• Lista de Eventos:
• Reloj: 3:45
...
...
...
...
...
...103:45F.P.O.1
...Número
FallasT. Ocioso
AcumuladoRelojTipoEvento
I.P.O. 4:05
Fin 5:00
t1 t2 Tiempo de reparaciónAleatorio: 20 min
Simulación 30 Prof. Dr. Ignacio Ponzoni
Planificación de EventosEjemplo: Tomo el primer aviso de eventoy genero un evento endógeno de Fin de
P.O.
• Lista de Eventos:
• Reloj: 4:05
...
...
...
...
...10:204:05I.P.O.2
...103:45F.P.O.1
...Número
Fallas
T. Ocioso
AcumuladoRelojTipoEvento
F.P.O. 4:10
Fin 5:00
t1 t2 Tiempo entre fallasAleatorio: 5 min
Simulación 31 Prof. Dr. Ignacio Ponzoni
• Lista de Eventos:
• Reloj: 4:10
...
...
...
...20:204:10F.P.O.3
...10:204:05I.P.O.2
...103:45F.P.O.1
...Número de Fallas
T.Ocioso Acumulado
RelojTipoEvento
Planificación de EventosEjemplo: Tomo el primer aviso de eventoy genero un evento endógeno de Inicio de
P.O.
I.P.O. 4:35
Fin 5:00
t1 t2 Tiempo de reparaciónAleatorio: 25 min
Simulación 32 Prof. Dr. Ignacio Ponzoni
Planificación de EventosEjemplo: Tomo el primer aviso de eventoy genero un evento endógeno de Fin de
P.O.
• Lista de Eventos:
• Reloj: 4:35 Fin
5:00F.P.O.5:05
t1 t2
...
...
4
...20:204:10F.P.O.3
...10:204:05I.P.O.2
...103:45F.P.O.1
...Número de Fallas
T.Ocioso Acumulado
RelojTipoEvento
Tiempo entre fallasAleatorio: 30 min
I.P.O. 4:35 0:45 2 ...
Simulación 33 Prof. Dr. Ignacio Ponzoni
Planificación de EventosEjemplo: Tomo el aviso de evento asociado
al Fin de la Simulación y termino la simulación.
• Lista de Eventos:
• Reloj: 5:00F.P.O.5:05
t1
...
5
4
...20:204:10F.P.O.3
...10:204:05I.P.O.2
...103:45F.P.O.1
...Número de Fallas
T.Ocioso Acumulado
RelojTipoEvento
I.P.O. 4:35 0:45 2 ...
FIN 5:00 0:45 2 ...
Simulación 34 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de las Tres Fases
• Este enfoque combina algunas de las características de la planificación de eventos con la técnica de barrido de actividades para lograr un avance del tiempo variable y evitar el barrido de condiciones cuando no resulta necesario.
• Esta técnica es muy útil en sistemas complejos en donde la combinación de varios recursos es necesario para llevar adelante distintas tareas.
• En este método los eventos son considerados actividades con una duración de 0 unidades de tiempo.
Simulación 35 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de las Tres Fases
• Con esta definición, las actividades son clasificadas en dos categorías:
Actividades B: actividades ligadas a un suceso, todos los eventos primarios y actividades no condicionales corresponden a este grupo. Este tipo de actividades se mantiene en una lista de eventos.
Actividades C: actividades o eventos que sólo se producirán cuando se verifiquen ciertas situaciones.
Simulación 36 Prof. Dr. Ignacio Ponzoni
Vistas del MundoEnfoque de las Tres Fases
• El método consiste en repetir las siguientes fases:
FASE A: Remover de la lista de eventos el próximo evento y avanzar el tiempo de reloj al tiempo de dicho evento. Remover de la lista cualquier otro evento que tenga el mismo tiempo que el reloj.
FASE B: Ejecutar todas los eventos removidos de la lista en la fase anterior (estos eventos corresponden a Actividades B). La ejecución de estos eventos puede provocar modificaciones en el estado del sistema.
FASE C: Chequear el cumplimiento de las condiciones para cada una de las Actividades C. Ejecutar todas aquellas actividades cuyas condiciones hayan sido verificadas. Repetir el barrido de chequeos hasta que ninguna actividad adicional de clase C pueda ser ejecutada, en dicho caso se retorna a la FASE A.
Simulación 37 Prof. Dr. Ignacio Ponzoni
Recomendaciones
• Lectura sugerida: Capítulo 3 del libro Discrete-Event System
Simulation de Banks, Carson, Nelson y Nicol.