La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Simulación Dr. Ignacio Ponzoni

Presentaciones similares


Presentación del tema: "Simulación Dr. Ignacio Ponzoni"— Transcripción de la presentación:

1 Simulación Dr. Ignacio Ponzoni
Clase XVI: Otros Métodos para Simulación de Sistemas de Eventos Discretos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Año 2005

2 Planificación de Eventos
Este enfoque fue muy empleado en los inicios de la simulación de eventos discretos, durante los años 60 y 70, con el advenimiento de las primeras versiones del lenguaje SIMSCRIPT. Así como el método de las tres fases se basa en la especificación de las Actividades B y C, el corazón del método de planificación de eventos esta dado por la definición de las rutinas de evento. Estas rutinas capturan, en una secuencia de instrucciones, todas las posibles consecuencias lógicas de la ocurrencia de un evento.

3 Planificación de Eventos Problema del Vendedor
Para este problema, la implementación debe manejar: Dos colas de entidades (clientes que arriban personalmente y llamadas telefónicas) Una lista de eventos, la cual contendrá 4 tipos de notas de evento: Arribo Llamada FinDeServicio FinDeCharla

4 Planificación de Eventos Problema del Vendedor
En este enfoque, cada evento primario (una Actividad B del método de las tres fases) tiene asociado una rutina de evento. Los eventos secundarios (Actividades C) son tratados, en forma distribuida, dentro de las mismas rutinas que modelan los eventos primarios.

5 Planificación de Eventos Problema del Vendedor
Por ejemplo, si analizamos el evento secundario de InicioDeServicio, tenemos que el mismo se produce en dos posibles instantes de tiempo: 1º) Cuando arriba un cliente y el servidor está ocioso, esta situación la modelamos en la rutina de Arribo. 2º) Cuando termina la atención de un cliente, y hay clientes esperando en la cola, esta situación la modelamos en la rutina de FinDeServicio.

6 Planificación de Eventos FinDeServicio
Liberar el cliente actualmente en servicio. Si (Cantidad de Clientes en la Cola > 0) entonces Tomar el próximo cliente de la cola, Computar el Tiempo de Servicio, Planificar el FinDeServicio para el cliente actualmente en servicio. Sino, Si (Cantidad de Llamadas en la Cola > 0) entonces Tomar la próxima Llamada Telefónica de la cola, Computar el Tiempo de Charla, Planificar el FinDeCharla para Llamada Telefónica actual, Sino, pasar el Vendedor a estado ocioso.

7 Planificación de Eventos Arribo del n-ésimo cliente
Computar tiempo entre arribo para el n+1-ésimo cliente. Planificar el arribo del n+1-ésimo cliente. Si ((Cantidad de Clientes en la Cola = 0) y (Vendedor está ocioso)) entonces Pasar el Vendedor a estado ocupado, Computar un tiempo de servicio para el cliente n-ésimo. Planificar el FinDeServicio del cliente n-ésimo. Sino, Agregar el cliente n-ésimo a la cola de clientes.

8 Planificación de Eventos Unidad de Control
Inicio Avanzar Reloj Armar Lista de Eventos Actuales Ejecutar Eventos Actuales ¿Time-Up? Fin No Si

9 Planificación de Eventos Ventajas
La principal ventaja de este enfoque es su eficiencia en cuanto a tiempos de cómputo. Esto se debe a que las condiciones de los eventos secundarios son chequeadas sólo cuando resulta posible la ocurrencia de dichos eventos, evitándose evaluaciones innecesarias. Notesé que en cambio, en el método de las tres fases, cada vez que se avanza el reloj del simulación, TODOS los test de condición asociados a los eventos secundarios son ejecutados, aún cuando por lógica algunos eventos no tengan posibilidad de ocurrir. Por ejemplo, si se ejecuta un evento de arribo de Llamada, no tiene sentido chequear la posibilidad de un InicioDeServicio.

10 Planificación de Eventos Desventajas
El principal problema con este enfoque se presenta cuando aumenta la complejidad de los sistemas a modelar. En tales situaciones, se torna muy difícil poder expresar todas las posibles consecuencias de la ocurrencia de un evento primario, haciendo muy arduo el modelado de la lógica del sistema. En tal sentido, un cambio en la lógica de un evento secundario puede afectar a varias rutinas de eventos. Esto atenta también con los principios de programación modular y refinamiento paso a paso.

11 Barrido de Actividades
Este enfoque, al igual que la planificación de eventos, no es muy empleado actualmente, a excepción de algunas aplicaciones de sistemas de inventario. Existen dos enfoques para su implementación: con Rebanado de Tiempo (método clásico). con Avance No Periódico del Tiempo. Con cualquiera de los dos enfoques los eventos primarios y secundarios son modelados de manera simular a las Actividades C del método de las tres fases.

12 Barrido de Actividades Problema del Vendedor
Para este problema, este enfoque reconoce 6 eventos (o actividades en la terminología de este método): Arribo InicioDeServicio FinDeServicio Llamada InicioDeCharla FinDeCharla

13 Barrido de Actividades InicioDeServicio
Los eventos secundarios se modelan de igual forma que las actividades C del método de las tres fases. Test de Condición: Si (el Vendedor está ocioso) y (hay un cliente esperando en la cola) Acciones: Tomar el cliente al frente de la cola. Pasar el Vendedor a estado ocupado. Computar el Tiempo de Servicio. Planificar el FinDeServicio.

14 Barrido de Actividades Arribo del n-ésimo cliente
Para los eventos primarios, el Test de Condición consiste en chequear que el reloj de simulación haya alcanzado el tiempo planificado para el evento. Test de Condición: Si el Reloj de Simulación alcanzó el tiempo en que se produce este evento. Acciones: Agregar el n-ésimo cliente a la cola. Computar Tiempo entre Arribo. Planificar el Arribo del n+1-ésimo cliente.

15 Barrido de Actividades Unidad de Control
Inicio Avanzar Reloj Efectuar Barrido de Actividades ¿Time-Up? Fin No Si Similar a la Fase C del Método de las Tres Fases

16 Barrido de Actividades Avance por Rebanado de Tiempo
Cuando el avance del tiempo se efectúa mediante rebanado de tiempo, se debe fijar una unidad de tiempo de avance periódico lo suficientemente pequeña para evitar la posibilidad de que algunos eventos sean salteados. En lo problemas de inventario esta unidad de tiempo está asociada a la frecuencia con que son revisados los stocks del sistema bajo estudio.

17 Barrido de Actividades Avance No Periódico del Tiempo
En estos casos, el avance del reloj de simulación es similar al efectuado en la Fase A del método de las tres fases, sólo que NO se genera la lista Hacer Ahora. Aunque no se mantiene una lista de eventos, sí se cuenta con una estructura de datos para mantener los próximos eventos planificados para cada entidad (la estructura Details de la implementación de Pidd). Luego, el reloj de simulación avanza hacia el tiempo del evento primario más inminente.

18 Barrido de Actividades Ventajas y Desventajas
La principal ventaja de este método es su simplicidad. En contrapartida, resulta una técnica muy costosa en cuanto a tiempos de cómputo, dado que realiza la evaluación innecesaria de muchos Test de Condición. Más aún, si utilizamos la técnica de rebanado de tiempo puede suceder que para ciertos instantes de tiempo (registrados por el reloj de simulación) no ocurra ningún evento. En tales casos, el trabajo realizado por el simulador para dichas iteraciones representa labor de cómputo desperdiciada. Por otra parte, el uso de la técnica de Barrido de Actividades con avance no periódico de tiempo está completamente superada por el Método de las Tres Fases.

19 Enfoques Basados en Procesos
La mayoría de los software de simulación emplean algún enfoque basado en procesos. Este enfoque toma como unidad atómica de la simulación al ciclo de vida de un cliente (proceso). Un proceso es básicamente definido como una secuencia de operaciones a través de las cuales va pasando una entidad durante su tiempo de vida dentro del sistema.

20 Enfoques Basados en Procesos Modelado de Procesos
Trazando los ciclos que contiene el Diagrama de Ciclos de Actividades de un sistema podemos determinar los procesos vinculados a las distintas entidades del modelo. Cada tipo (o clase) de entidad del modelo tendrá su propio proceso. Durante la ejecución de la simulación, cada vez que una entidad es creada dinámicamente, la Unidad de Control del Simulador moverá dicha entidad a través del sistema siguiendo el proceso correspondiente a su clase.

21 Enfoques Basados en Procesos Demoras
Una entidad puede sufrir dos tipos de demoras: No condicionales: esto ocurre cuando el avance de la entidad es detenido por un período de tiempo que fue previamente planificado. Luego de transcurrido dicho lapso de tiempo, el progreso de la entidad dentro del sistema es retomado normalmente. Condicionales: esto sucede cuando el movimiento de la entidad es detenido hasta que se satisfagan ciertas condiciones dentro del sistema. Cuando se define un proceso para una clase de entidades se debe indicar los puntos en donde la entidad retoma su ejecución luego de finalizada una demora. Estos puntos son usualmente conocidos como puntos de reactivación.

22 Enfoques Basados en Procesos Problema del Vendedor
Proceso del n-ésimo Cliente Arriba el cliente n-ésimo Computar tiempo de entre arribo del próximo cliente. Crear Proceso para el n+1-ésimo cliente. Demorar cliente n+1-ésimo hasta que arribe. El cliente n-ésimo espera hasta estar al frente de la cola y el vendedor se encuentre libre. Sacar al cliente n-ésimo de la cola. Vincular al Vendedor con el cliente n-ésimo. Computar un Tiempo de Servicio. Demorar al cliente n-ésimo hasta que transcurra su tiempo de servicio. Liberar el Vendedor. Quitar al cliente n-ésimo del sistema. Demora No Condicional Demora Condicional

23 Enfoques Basados en Procesos Interacción de Procesos
En el problema del vendedor, los clientes y las llamadas compiten por obtener la atención del Vendedor. Esto genera cierto nivel de interacción entre las distintas entidades del sistema. La técnica de interacción de procesos es un caso particular de enfoque basado en procesos donde la interacción es manejada de forma explícita. En los modelos que siguen este enfoque, un proceso puede crear y modificar demoras condicionales y no condicionales en otros procesos. Esto puede derivar a veces en modelos con una estructura lógica muy compleja.

24 Enfoques Basados en Procesos Unidad de Control
Un proceso puede ser descripto a través de la lista de operaciones que la entidad va a realizar a lo largo de su tiempo de vida. La operaciones dentro de la lista están ordenadas de manera cronológica. La Unidad de Control debe mantener un registro para cada entidad, el cual contiene dos campos: Tiempo de re-activación (si es conocido), Próximo punto de re-activación (en que punto de su proceso será reactivada la entidad).

25 Enfoques Basados en Procesos Unidad de Control
La Unidad de Control mantiene estos registros en dos listas: Lista de Eventos Futuros. Es una lista ordenada cronológicamente que contiene los registros de las entidades cuyo progreso se encuentra demorado incondicionalmente. Es decir, contiene las entidades demoradas cuyo tiempo de re-activación es conocido. Lista de Eventos Actuales. Contiene dos tipos de entidades: 1º) Entidades que han estado demoradas de manera incondicional y cuyo tiempo de reactivación coincide con el tiempo que actualmente tiene el reloj de simulación. 2º) Entidades que están demoradas condicionalmente.

26 Enfoques Basados en Procesos Unidad de Control
Estas dos listas permiten a la Unidad de Control efectuar la simulación mediante un método iterativo formado por tres etapas: 1º) Avanzar reloj. Se utiliza la lista de eventos futuros para determinar el evento más inminente, y se avanza el reloj de simulación al tiempo en que se producirá dicho evento. 2º) Mover entre listas. Las entidades de la lista de futuros eventos cuyo tiempo de re-activación coincide con el reloj de simulación son movidas a la lista de eventos actuales. 3º) Ejecutar eventos actuales. La unidad de control ejecutará eventos avanzando a cada entidad lo más que pueda dentro de su proceso hasta alcanzar una demora (condicional o incondicional) o hasta finalizar su proceso. Si una entidad alcanza una demora incondicional, su registro es movido a la lista de eventos futuros. Si una entidad termina su proceso, esta es removida de la lista.

27 Enfoques Basados en Procesos Unidad de Control
Inicio Avanzar Reloj Mover entidades entre listas Ejecutar Eventos Actuales ¿Time-Up? Fin No Si

28 Enfoques Basados en Procesos Comparación con los otros métodos
Al igual que el método de las tres fases, el enfoque basado en procesos supera las limitaciones evidenciadas por la Planificación de Eventos y la técnica de Barrido de Actividades. Si lo comparamos con el método de las tres fases vemos que ambos hacen distinción en el tratamiento de eventos primarios y secundarios. En el caso del método de las tres fases esta distinción se produce a través de la separación de los eventos en Actividades de tipo B y C. En el enfoque basado en procesos, está distinción se efectúa a través de las demoras condicionales e incondicionales.

29 Enfoques Basados en Procesos Comparación con los otros métodos
¿Cuál es la diferencia entonces entre el Método de las Tres Fases y el Enfoque Basado en Procesos? La política de avance de tiempo en el método de las tres fases evita toda posibilidad de deadlock, debido a que en un determinado instante de tiempo ninguna actividad C puede ejecutarse hasta haber finalizado la ejecución de todas las actividades B planificadas para dicho momento. En cambio, cuando construimos un modelo utilizando el enfoque basado en procesos, el modelador debe asegurarse de que cualquier posible situación de deadlock va a poder ser manejada por los distintos procesos.

30 Enfoques Basados en Procesos Comparación con los otros métodos
Problema de Deadlock Suponga que tenemos dos entidades: La primera está ejecutando la actividad A1 la cual requiere el uso exclusivo del servidor 1, y la segunda está ejecutando la actividad A2 la cual requiere el uso exclusivo del servidor 2. Asuma también que la finalización de ambos servicios está planificada para el mismo instante de tiempo, y que la siguiente actividad a realizar por parte de la entidad 1 es la actividad A2 y para la entidad 2 es la actividad A1.

31 Enfoques Basados en Procesos Comparación con los otros métodos
Problema de Deadlock Entidad 1 Ejecuntando Actividad A1 En Espera Ejecuntando Actividad A2 Servidor A Entidad 2 Ejecuntando Actividad A2 Actividad A1 En Espera Servidor B Reloj de Simulación

32 Enfoques Basados en Procesos Comparación con los otros métodos
Problema de Deadlock Eventos a analizar en este instante de la simulación: Primarios (Planificados): Finalización de la actividad A1 por parte de la entidad 1. Consecuencia: liberación del servidor 1. Finalización de la actividad A2 por parte de la entidad 2. Consecuencia: liberación del servidor 2. Secundarios (Condicionales): Inicio de la actividad A2 por parte de la entidad 1. Condición: servidor 2 debe estar libre. Inicio de la actividad A1 por parte de la entidad 2. Condición: servidor 1 debe estar libre.

33 Enfoques Basados en Procesos Comparación con los otros métodos
Problema de Deadlock El método de las tres fases ejecutará en primer lugar los dos eventos primarios (Fase B), con lo cual liberará los servidores, y luego ejecutará los eventos secundarios (Fase C). Con lo cual, los cuatro eventos será ejecutados sin problema. En cambio, el orden en que se ejecutarán los eventos en una simulación basada en procesos dependerá de la secuencia que haya expresado el modelador en la especificación de cada proceso.

34 Enfoques Basados en Procesos Comparación con los otros métodos
Problema de Deadlock Proceso Entidad 1 Proceso Entidad 2 … … Demorar entidad hasta Demorar entidad hasta que finalice Act que finalice Act2. Esperar hasta que el servidor Esperar hasta que el servidor 1 este disponible esté disponible. Liberar servidor Liberar servidor 2. Vincular entidad con servidor Vincular entidad con servidor 1. deadlock

35 Enfoques Basados en Procesos Comparación con los otros métodos
Si el método de las tres fases resulta más seguro, ¿por qué los enfoques basados en procesos tienen tanto éxito en la actualidad? La clave está en que para las personas, independientemente de su formación, resulta más natural “pensar” un sistema dinámico en términos de proceso. Es más sencillo que una persona se ponga en el lugar de una entidad que circula por el sistema y piense el funcionamiento del sistema a través de las distintas acciones que esa entidad debe realizar dentro del mismo. Esto facilita el modelado visual-funcional de sistemas que actualmente brindan muchos paquetes de simulación. En contrapartida, pensar un sistema a través de un conjunto de actividades B y C resulta menos natural.

36 Recomendaciones Lectura sugerida: Ejercitación recomendada:
Capítulo 6 del libro Computer Simulation in Management Science de Michael Pidd. Ejercitación recomendada: Trabajo Práctico 11: Programación de DEVS: Otros métodos.


Descargar ppt "Simulación Dr. Ignacio Ponzoni"

Presentaciones similares


Anuncios Google