Simulación por Eventos Discretos SIMULACION DE SISTEMAS DISCRETOS Simulación por Eventos Discretos Mg. Samuel Oporto Díaz Lima, 20 Septiembre 2005
Objetivo de la Sesión Identificar los elementos de un sistema de simulación por eventos discretos asíncronos. Identificar la relación que existe entre los elementos de un sistema discreto.
Tabla de Contenido Objetivo Sincronización en modelos discretos Simulación por eventos discretos Diseño de Sistemas de Simulación Discreta Gráfico del Sistema Elementos del Sistema Análisis del Sistema Variables del Sistema Diagramas de Flujo Variables aleatorias Bibliografía
Mapa Conceptual del Curso Modelado y Simulación Colas con un servidor Proyectos Simulación Simulación X Eventos Colas en Serie Inventarios Series de Nro. Aleato Colas en Paralelo Validación de Series Generación de VA
Mapa Conceptual de la Sesión Cola eventos síncrono e1 e3 e2 e4 e5 e6 Diagrama de relación de eventos reloj simulación por eventos discretos asíncrono Flujo-grama e1 e3 e2 Simulación del Sistema t t’ T T’
SINCRONIZACION EN MODELOS DISCRETOS
Simulación de Sistemas Discretos Los SSD, evolucionan en el tiempo en forma discreta. El estado del sistema sólo cambia en ciertos instantes de tiempo, no de forma continua. Los cambios del sistema se traducen en el cambio de algún atributo de alguna entidad y ocurre en algún instante. Este cambio se denomina suceso o evento. El tiempo entre dos instantes se denomina intervalo. Los objetos que operan en el sistema son las entidades. El estado de una entidad se denomina actividad. Un proceso describe la sucesión de estados de una entidad
Mecanismos de Reloj Simulación Síncrona. El tiempo de simulación avanza según pasos fijos Δt. t, t + Δt, t + 2Δt, t + 3Δt, . . . . . Simulación Asíncrona El tiempo de simulación avanza del instante t al instante t’, del siguiente suceso. Δt ti t tii tiii tiv tv
Simulación Síncrona Basado en tiempo. Si No Inicializar t = t + Δt Generar Eventos Evento 4 Evento 3 Evento 2 Evento 1 t < Tmax Si No
Simulación Síncrona Se avanza en tiempo discretos Δt. Cada vez que se incrementa el contador se verifica la cola de eventos. Sólo se puede detectar eventos que ocurren cada Δt. Puede suceder que el tiempo para que ocurra el siguiente evento sea muy grande en comparación de Δt. Es usado frecuentemente en simulación de sistemas dinámicos.
Simulación Asíncrona Basado en eventos. Inicializar Determinar el siguiente evento Cola de Eventos T = T( siguiente evento ) caso = siguiente evento Evento 1 Evento 2 Evento 3 Evento 4 Generar Nuevo Evento Generar Nuevo Evento Generar Nuevo Evento Generar Nuevo Evento Modificar Estadísticas
Simulación Asíncrona El cambio de estado del sistema se obtiene cuando ocurre un suceso (evento). Los periodos entre eventos son insignificantes, por lo que no consumen tiempo de computo, aunque en la realidad consuman tiempo. Es la estrategia habitual de los lenguajes de simulación por eventos discretos.
Ejercicio 1 Diga en el caso de un modelo de colas, ¿qué mecanismo de reloj es recomendable? En qué casos es recomendable usar el modelo síncrono. En qué caso es recomendable usar el modelo asíncrono.
SIMULACION POR EVENTOS DISCRETOS
Simulación por Eventos Discretos La simulación por eventos discretos es un paradigma de simulación. Está soportado por una serie de técnicas y tecnologías. En este paradigma el sistema posee el estado E en determinado momento. El estado E del sistema es actualizado sólo cuando ocurre algún evento e, mientras tanto el sistema (modelo) permanece igual. Si ocurren dos o más eventos e al mismo tiempo, se atiende al primero de ellos y el resto se almacenan en una cola de eventos.
SED e1 e2 e3 e4 e5 e6 e7 E1 E2 E3 E4 E5 E6 E7
Ejercicio 2 ¿Qué es un evento? ¿Cómo identificar un evento? ¿Cómo nos enteramos de que evento ha sucedido? ¿Un evento puede desencadena otro evento? ¿Se puede programar un evento? Para que ocurra en determinado tiempo. El evento ¿tiene un tiempo de duración? ¿Se puede presentar la siguiente situación entre eventos? e1 e2 e5 e4 e3
Imagen del Sistema La imagen del sistema refleja el estado del sistema E en cualquier momento (valores). El progreso o desarrollo de la simulación va ligado a la imagen del sistema. La simulación progresa realizando el siguiente ciclo: Decidiendo, de la imagen del sistema, cuando ocurrirá el siguiente evento e y de qué tipo de evento se trata. Verificando si el evento e puede ser ejecutado, En caso que se pueda, ejecutando aquellos cambios, implicados por el evento, en la imagen del sistema.
Ejercicio 3 Indicar qué las variables y parámetros se puede identificar en el caso de una cola simple: Parámetros Variables de exógenas Variables de estado Variables de estado de salida
Reloj Maestro La imagen del sistema deberá tener un número que represente el tiempo real de la simulación (Reloj Maestro); el avanza con la sucesión de eventos en el modelo. Tiempo de reloj: Paso del tiempo, número de unidades de tiempo simulado que han transcurrido (t). Tiempo de simulación: Tiempo de reloj indicado en el problema (unidades), no tiempo de cómputo (T).
Tiempo en la simulación Actualización del tiempo de reloj: Avanzar reloj en el momento en que ocurra el siguiente evento principal - simulación orientada al evento. (periodo avance variable) Avanzar a intervalos fijos y determinar si ocurre un evento o no - simulación orientada a intervalos.(periodo de avance fijo)
Calendario de Evento El Calendario de Eventos o Cola de Eventos es un arreglo en el cual se registran los eventos potenciales o programados para ocurrir. En el calendario de eventos se guardarán los tiempos de ocurrencia de los eventos potenciales. En el Calendario de Eventos el puntero de inicio TOP nos señalará, siempre cuál es el evento siguiente. ¿Es una cola FIFO o LIFO?
Cola de Eventos PUSH Cada vez que ocurre un evento principal este es ingresado a la cola de eventos. POP Cada vez que se atiende un evento principal este es retirado de la cola de eventos y procesado por el programa.
TIEMPO DEL PROXIMO EVENTO Calendario de Eventos Estructura de datos con la cual podremos representar a un objeto en el sistema: TE TP TLL TS TPREV TIEMPO DEL PROXIMO EVENTO TIEMPO DE SERVICIO TIEMPO DE LLEGADA TIPO DE CLIENTE TIPO DE EVENTO
DISEÑO DE SISTEMAS DE SIMULACION DISCRETA
Estructura del Sistema GR EV EL VA FL Estructura del Sistema Gráfico del Sistema. Elementos del Sistema. Entidades. Atributos. Actividades. Análisis del Sistema Eventos. Eventos Principales DRE Variables Tiempo. Contadores Estado del Sistema Diagrama de Flujo Programa Principal Eventos Principales Variables Aleatorias Distribución de Frecuencias
Solicitar al profesor el caso 1. Librería COPIAMOSLAS24HORAS
1. GRAFICO DEL SISTEMA
GR EL EV VA FL VA 1. Gráfico del Sistema Intenta representar mediante un diagrama las entidades del sistema y los objetos o recursos a ser procesados. Se intenta representar las entradas y salidas del sistema. Se intenta representar los eventos y las colas que se pueden formar. Se indica la distribución de probabilidad de las variables aleatorias.
Ejemplo fotocopiadora documentos a copiar trabajos terminados
2. ELEMENTOS DEL SISTEMA
2. Elementos de un Sistema GR EL EV VA FL VA 2. Elementos de un Sistema Se puede representar mediante formulas matemáticas, símbolos o palabras, pero en esencia es una descripción de: Entidades: parte importante del sistema, agente que tiene algún significado en el sistema. Atributos: característica principal de una entidad para el estudio que se hace del sistema. Actividades: interacción principal de una entidad con otra entidad en el sistema.
GR EV EL VA FL Ejemplo
3. ANALISIS DEL SISTEMA e1 e3 e2 e4 e5 e6
3. Análisis del Sistema Eventos Eventos Principales GR EL EV VA FL VA 3. Análisis del Sistema Eventos Eventos Principales Diagrama de Relación de Eventos
GR EV EL VA FL Sucesos (Eventos ) Los eventos son sucesos que marcan el inicio o fin de una actividad. Los eventos pueden: Crear una entidad. Destruir una entidad. Cambiar un atributo de una entidad.
Sucesos (Eventos ) Los eventos se pueden clasificar en: GR EV EL VA FL Sucesos (Eventos ) Los eventos se pueden clasificar en: Evento Principal: Es aquel evento que no necesita de otro evento para llevarse a cabo. Es un Evento independiente. Evento secundario: Es aquel evento que necesita la ocurrencia de por lo menos un evento para que pueda llevarse a cabo. Evento dependiente.
Ejemplo Eventos del Sistema Llegar al sistema Ingresar a cola VA FL Ejemplo Eventos del Sistema Llegar al sistema Ingresar a cola Salir de cola Iniciar el servicio Fin del servicio Inicio de espera de la fotocopiadora Fin de espera Salir del sistema
Ejemplo Eventos Principales Llegar al sistema (arribo) GR EV EL VA FL Ejemplo Eventos Principales Llegar al sistema (arribo) Ingresar a cola Salir de cola Iniciar el servicio Fin del servicio Inicio de espera de la fotocopiadora Fin de espera Salir del sistema
GR EV EL VA FL Eventos Concurrentes Eventos concurrentes son aquellos que se dan en una misma unidad de tiempo. Entre Eventos Principales. Se producen eventos concurrentes simplemente por azar. Entre Eventos Secundarios. Se producen eventos concurrentes debido a que un cambio implica otros cambios que ocurren al mismo tiempo.
Eventos Concurrentes (Ejemplos) GR EV EL VA FL Eventos Concurrentes (Ejemplos) Entre eventos principales. Llegada de dos elementos a la cola. Llegada de un elemento a la cola y el fin de atención. Entre eventos secundarios. Fin de atención de una máquina, se inicia una nueva atención si hay elementos en la cola. Salida del cliente atendido del sistema, se iniciar la atención de un nuevo cliente, si hay personas en la cola.
GR EV EL VA FL Eventos Concurrentes Se debe tener especial cuidado en que la secuencia de cambios (prioridad de elección del siguiente evento) esté de acuerdo como la secuencia deseada para dichos casos. En caso contrario podría alterarse el proceso.
Ejemplo Llegada simultanea de dos personas. Llegada y fin de servicio GR EV EL VA FL Ejemplo Llegada simultanea de dos personas. Llegada y fin de servicio Fin de servicio e inicio de servicio Fin de servicio y salir del sistema ..
Diagrama de Relación de Eventos VA FL Diagrama de Relación de Eventos Se elaboran solo para los eventos principales. En un DRE un evento principal, no puede figurar otro evento principal, ya que los eventos principales son independientes Los DRE, nos muestran la relación entre un evento principal y sus secundarios, así como la relación entre eventos secundarios. Un evento principal solo puede figurar en un DRE de otro evento principal, si la unión se realiza con una línea punteada que indica la realización a futuro de ese evento no en ese instante.
Ejemplo Diagrama de Relación de Eventos Llegar al sistema (arribo) 2 1 Ingresar a cola Salir de cola Iniciar el servicio Fin del servicio Inicio de espera de la fotocopiadora Fin de espera Salir del sistema 7 4 6 1
Ejemplo Diagrama de Relación de Eventos Fin del servicio 6 5 8 3 4 5 Llegar al sistema (arribo) Ingresar a cola Salir de cola Iniciar el servicio Fin del servicio Inicio de espera de la fotocopiadora Fin de espera Salir del sistema 3 4 5
4. VARIABLES x, y, z
Estadísticos de Salida Los estadísticos más usados son los siguientes: a) Contador: Del número de entidades de cierto tipo, del número de veces que ocurre algún evento, etc. b) Utilización: De una unidad del equipo (en términos de la fracción de tiempo que está en uso). c) Ocupación: De un equipo de múltiples unidades (número promedio de unidades en uso) Distribución: De las variables aleatorias como tiempos de espera, tiempos en el sistema, junto con sus medias, desviaciones estándares e incluso máximos y mínimos observados. ¿PARA QUE NOS SIRVEN ESTOS DATOS?
5. DIAGRAMAS DE FLUJO
Flujo-Grama Principal Inicio Inicializar siguiente evento Arribo Fin Servicio Estadísticas Fin Corrida Cálculos Parciales Fin Simulación Cálculos Finales Reportes Fin
Programar Fin de Servicio (TS1) Flujo-Grama Arribo Arribo N = N + 1 si Cola > 0 no si Ocupado = 1 Cola = Cola + 1 no Ocupado = 1 Programar Fin de Servicio (TS1) Programar Nuevo Arribo (TELL) Return
Flujo-Grama Fin Servicio no Cola > 0 Ocupado = 0 si si Ocupado = 1 no Ocupado = 1 Cola = Cola - 1 Programar Fin de Servicio (TS1) Return
Estructura Programa de Simulación Programa Principal Generación estadísticas Condiciones iniciales Solución del modelo Variables aleatorias Números aleatorios Generación reportes
5. VARIABLES ALEATORIAS
Variables Aleatorias Indicar los parámetros para las curvas de distribución de frecuencias asociadas a cada variable. Exponencial(1) Poisson(3.5)
Bibliografía Simulación de Sistemas Discretos. Shannon. Capítulo 1. Simulación de Sistemas Discretos. Barceló. Capítulo 1.
PREGUNTAS