Sie sind auf Seite 1von 15

CAPITULO IV INGENIERIA DE SISTEMAS II

SIMULACION DE EVENTOS DISCRETOS

Competencia
Emplea eficientementesus conocimientos previos sobre teoría de colas en la modelac
ión de
sistemas de eventos discretos.

Modelado de un sistema en términos de sus estados en cada instante de tiempo y de varios eventos cuya
ocurrencia provoca un cambio en los estados del sistema.

4.1 ENFOQUES A LA SIMULACION DE EVENTOS DISCRETOS:

a) Programación de eventos. La concentración es en los eventos y su impacto en el estado del


sistema.

b) Interacción de procesos. La concentración es en una entidad y la secuencia de eventos y


actividades que realiza mientras 'vive' en el sistema.

A manera de recordatorio de los conceptos básicos de simulación de sistemas orientadas a eventos, se


presenta la Tabla 1. Con referencia a esta tabla y debido a que es de interés los sistemas dinámicos, es
importante mencionar que los siguientes elementos son función del tiempo:

Estado,
Atributos de entidades,
Número de entidades activas,
Contenido de las colas,
Actividades,
Retrasos.

Esto implica que debe haber un mecanismo que lleve registro de todos estos elementos a lo largo de una
simulación. Este mecanismo se le llama RELOJ de la simulación, el cual se explicará más adelante.

La definición de los componentes del modelo proporciona una relación estática del mismo; sin embargo, las
relaciones dinámicas son necesarias conocerlas para la simulación. Para ello es necesario definir lo
siguiente:

Evento Estado, atributos de entidades y contenido de las colas.

Definición Determinística o Estocástica


__________________________________________________________________
Ing. Carla Escobar Olivares
26
de actividades

Qué evento marca el fin o inicio de una actividad


Qué actividad inicia en función del estado del sistema
Qué eventos producen retrasos (inicio / fin)
Condiciones iniciales del sistema

Concepto Definición
Sistema Colección de entidades que interactúan entre sí a lo largo del
tiempo para realizar uno o varios objetivos.
Modelo Representación abstracta de un sistema (relaciones lógicas y/o
matemáticas) para describir al sistema en términos de sus
estados, entidades y sus atributos, conjuntos o colas, eventos,
actividades y retrasos.
Estado del Sistema Una colección de variables que contiene toda la información
necesaria para describir al sistema en cualquier instante de
tiempo.
Entidad Cualquier objeto o componente que requiere una representación
explícita en el modelo.
Atributos Las propiedades de una entidad dada (prioridad de un cliente
esperando, ruteo de una pieza en un taller, etc.).
Conjunto o Cola Una colección (permanente o temporal) de entidades asociadas,
ordenadas en una forma lógica (FIFO, LIFO, cola con prioridad,
etc.).
Evento Una ocurrencia instantánea que cambia el estado del sistema
(llegada de un nuevo cliente).
Actividad Un intervalo de tiempo específico (tiempo de servicio o tiempo
entre arribos) cuya duración es conocida y cuándo inicia (aún
cuando sea aleatoria).
Retraso Un intervalo de tiempo de duración no especificada, cuya duración
no se conoce hasta que acaba (retraso de un cliente en una cola
esperando su turno).

Tabla 1. Elementos constitutivos de un sistema.

__________________________________________________________________
Ing. Carla Escobar Olivares
27
4.2 LISTA DE EVENTOS FUTUROS

La simulación de eventos discretos produce un conjunto de FOTOS que representan la evolución del
sistema en el tiempo. Cada una de ellas contiene la información sobre los estados del sistema, los eventos
que van a ocurrir en el futuro, el registro del tiempo, las estadísticas que se necesiten para el criterio de
desempeño, etc. Un elemento clave para toda simulación de eventos discretos es la LISTA DE EVENTOS
FUTUROS, la cual consiste de llevar un registro sobre cuál evento se va a iniciar o terminar y en qué
instante de tiempo ocurrirá. A continuación, se presenta una foto ejemplificando esto.

reloj Estado entidad c. c.2 ... LEF estadísticas


atributos 1
t (x,y..) (3,t 1) L, W, ...
(1,t 2)
...

(2,t n)

Tabla 2. Foto de una simulación, mostrando la lista de eventos futuros.

El avance del tiempo y la garantía de que todos los eventos ocurran en su orden correcto cronológico
depende de la LISTA DE EVENTOS FUTUROS (LEF). Esta lista contiene todos los eventos programados
que van a ocurrir en el futuro.

Programar un evento quiere decir que cuando se inicia una actividad, se calcula su duración y el evento fin
de actividad junto con su instante de ocurrencia se mete a la LEF. Esta lista contiene a los eventos
ordenados en orden cronológico:

t £ t 1 £ t 2 £ ... £ t n ...
El evento asociado a t1 se le conoce como el evento inminente. Cuando el reloj avanza a este instante, se
produce otra foto y así sucede hasta acabar la simulación. Al mecanismo encargado de mover el reloj y
construir una nueva foto se le conoce como algoritmo de programación de eventos y avance de tiempo.
Las operaciones que se pueden realizar sobre la LEF son:
a) remoción del evento inminente,
b) adición de un nuevo evento y,
c) remoción de un evento cancelado.
La LEF es una lista ordenada con algoritmos muy eficientes de búsqueda y recorrido

__________________________________________________________________
Ing. Carla Escobar Olivares
28
Ejemplo de avance de tiempo y actualización de fotos. Para fines de ejemplo, considere la foto mostrada
en la Tabla 3:

reloj estado ... LEF


t (5,1,6) ... (3,t1) - evento tipo 3 en t1
(1,t2) - evento tipo 1 en t2
(1,t3) - evento tipo 1 en t3
.
.

Tabla 3. Foto mostrando el estado de la simulación, antes de la ocurrencia de


un nuevo evento.
El algoritmo de avance de tiempo y programación de eventos operaría de la siguiente manera:

paso 1. Remover el evento inminente (3,t1) de la LEF.


paso 2. Avanzar el reloj al tiempo de ocurrencia del evento inminente t1.
paso 3. Ejecutar el evento inminente: actualiza estado, atributos y colas (si es necesario).
paso 4. Generar eventos futuros (si es necesario) y localizarlos en la LEF.
Ejemplo: evento 4 ocurrirá en t*, donde t2<t*<t3. El resultado de esta ocurrencia en
la LEF se ilustra en la Tabla 4.
paso 5. Actualizar estadísticas y contadores.
reloj estado ... LEF
t1 (5,1,5) ... (1,t2) - evento tipo 1 en t2
(4,t*) - evento tipo 4 en t*
(1,t3) - evento tipo 1 en t3
.
.

Tabla 4. Actualización de la LEF, después de la ocurrencia del evento 4.

Toda simulación debe tener un evento de paro, el cual define cuánto tiempo Tp durará la simulación. Hay
dos formas de programar un paro, a saber:

1. Al inicio, se programa un evento PARO en un tiempo futuro Tp, detrminando el intervalo de


tiempo de la simulación [0,Tp].
2. Tp lo determina la misma simulación, de tal manera que en este instante ocurre un evento
prespecificado. Por ejemplo, Tp indicaría la llegada del cliente número 100 a la cola.

__________________________________________________________________
Ing. Carla Escobar Olivares
29
4.3 EJEMPLOS DE SIMULACION DE EVENTOS DISCRETOS

Ejemplo 1. Cola de un sólo canal. Considere una tienda con una sola caja. Los clientes llegan a la caja
aleatoriamente separados entre 1 y 8 minutos, con la misma probabilidad (tabla5). El tiempo de servicio
varía entre 1 y 6 minutos, de acuerdo con la probabilidad mostrada en la tabla6. En la tabla7 se muestran
los números aleatorios que se usarán en esta simulación. Simular el comportamiento del sistema para 60
minutos.

tiempo entre arribos probabilidad probabilidad números


(minutos) acumulada aleatorios
1 0.125 0.125 001-125
2 0.125 0.250 126-250
3 0.125 0.375 251-375
4 0.125 0.500 376-500
5 0.125 0.625 501-625
6 0.125 0.750 626-750
7 0.125 0.875 751-875
8 0.125 1.000 876-000

Tabla 5. Distribución de tiempos de arribos.

Tiempo de probabilidad números


servicio probabilidad acumulada aleatorios
(minutos)
1 0.10 0.10 01-10
2 0.20 0.30 11-30
3 0.30 0.60 31-60
4 0.25 0.85 61-85
5 0.10 0.95 86-95
6 0.05 1.00 96-00

__________________________________________________________________
Ing. Carla Escobar Olivares
30
Tabla6. Distribución de tiempos de servicio.

Cliente # aleatorio para # aleatorio para


tiempo entre arribos tiempos de servicio
1 - 84
2 913 10
3 727 74
4 015 53
5 948 17
6 309 79
7 922 91
8 753 67
9 235 89
10 302 38

Tabla 7. Números aleatorios.

Solución. Una vez que se tienen definidas las condiciones el problema, es necesario establecer el
modelo que represente a esta situación. En este caso, el modelo estará formado por la definición de
sus componentes que sean relevantes al caso y la lógica que gobernará a los eventos de arribo y
despacho de clientes del sistema. El modelo tiene las siguientes componentes:

* Estado (LC(t),LS(t)),
LC(t) número de clientes esperando y LS(t) número de clientes siendo
atendidos (0 ó 1) en tiempo t.

* Entidades : El servidor y los clientes no se modelan explícitamente, sólo en los términos


de arriba.

* Eventos Arribo (A),


Despacho (D),
Paro (P), programado que ocurra en el tiempo 60.

* Actividades Tiempo entre arribos (tabla 6.5),


Tiempo de servicio (tabla 6.6).

* Retrasos Tiempo empleado por el cliente en la cola.

__________________________________________________________________
Ing. Carla Escobar Olivares
31
La lógica de ejecución de un evento de arribo se muestra en la Figura 6.1; asimismo, la lógica para la
ejecución de un despacho, aparece en la Figura 6.2. La lista de eventos futuros (LEF) indica a los eventos
como sigue
(tipo de evento, tiempo del evento)

En la tabla 6.8 se presenta la tabla de simulación para los primeros eventos, usando la tabla de
números aleatorios. Las condiciones iniciales son que el primer cliente arriba en tiempo 0 y se inicia el
servicio: LC(0) = 0, LS(0)=1. También en este instante se programa el paro al tiempo 60. Sólo dos
estadísticas se usarán: utilización del servidor y la cola máxima de clientes (MC). La utilización del
servidor se representará por el cociente del tiempo de utilización (U) entre el tiempo total.

__________________________________________________________________
Ing. Carla Escobar Olivares
32
EVENTO ARRIBO
Ocurre en reloj = t

Paso 3 Paso 3
No Es Sí
Haz LS(t)=1 LS(t)=1 Incremento
? LQ(t) en 1

Tiempo s* de generación
del servicio; horario de
nueva partida del evento
en tiempo t + s*

Paso 4
Generación interarribo tiempo a *;
horario de arribo del siguiente evento
en tiempo t + a*
Paso 5

Reunir estadísticas

Retorno del control a la rutina de


avance de tiempo para continuar
la simulación

Figura 1. Lógica del evento ARRIBO

__________________________________________________________________
Ing. Carla Escobar Olivares
33
EVENTO PARTIDA
ocurre en reloj = t

Paso 3 Paso 3
No Sí
Es
Haz LS(t)=0 LQ(t)> Reduce LQ(t)
0 en 1
?

Paso 4

Tiempo s* de generación
de servicio; horario de
nueva partida del evento en
tiempo t + s*

Paso 5

Reunir estadísticas

Retorno del control


a la rutina de avance de tiempo
para continuar la simulación

Figura 2. Lógica del evento PARTIDA

Reloj LC LS LEF Comentarios U C


0 0 1 (D,4) (A,8) (P,60) primer A ocurre 0 0
programa sig A (a=8)
programa sig D (s=4)
4 0 0 (A,8) (P,60) primer D ocurre (D,4) 4 0
8 0 1 (D,9) (A,14) (P,60) 2° A ocurre (A,8) 4 0
programa sig A (a=6)
__________________________________________________________________
Ing. Carla Escobar Olivares
34
Reloj LC LS LEF Comentarios U C
programa sig D (s=1)
9 0 0 (A,14) (P,60) 2° D ocurre (D,9) 5 0
14 0 1 (A,15) (D,18) (P,60) 3° A ocurre (A,14) 5 0
programa sig D (s=4)
15 1 1 (D,18) (A,23) (P,60) 4° A ocurre (A,15) 6 1
(cliente retrasado)
18 0 1 (D,21) (A,23) (P,60) 3° D ocurre (D,18) 9 1
programa sig D (s=3)
21 0 0 (A,23) (P,60) 4° D ocurre (D,21) 12 1

Tabla 6.7. Foto y LEF asociado al ejemplo 1.

Ejemplo 2. Considere el mismo ejemplo anterior, pero ahora se desea estimar el tiempo medio de
respuesta y la proporción media de clientes que emplean 4 ó más minutos en el sistema.

Solución. El tiempo de respuesta es el tiempo que un cliente emplea dentro del sistema. Para este fin,
es necesario modificar el modelo para calcular las medias de los clientes. Es decir es necesario
conocer el tiempo de arribo y de partida de un cliente en particular. Por lo tanto, una entidad cliente
con atributo tiempo de llegada se agregará al modelo. Por ello, es necesario agregar un conjunto
llamado cola de pago, cuyos elementos serán los clientes Ci. Para este efecto, la notación (D,4,C1)
significa que el cliente 1 partirá al tiempo 4. Las adiciones al modelo anterior serán las siguientes:

* Entidades(Ci,t) representa cliente Ci que arriba al tiempo t.

* Eventos (A,t,Ci) arribo del cliente Ci en tiempo t,


(D,t,Ci) despacho del cliente Ci en tiempo t.

* Conjunto Cola de pago, conjunto de clientes actualmente en la caja (siendo


atendidos o esperando), ordenado por tiempo de arribo.

Se van a colectar tres nuevas estadísticas:

S suma de los tiempos de respuesta del cliente para todos los clientes que hayan
partido en el tiempo actual.

F número total de clientes que hayan esperado 4 ó más minutos en la caja.


__________________________________________________________________
Ing. Carla Escobar Olivares
35
Nd número total de partidas acumuladas hasta el tiempo actual de simulación.

A continuación se muestra en la tabla 6.8 el estado de la simulación de este ejemplo, suponiendo los
mismos tiempos que el ejemplo anterior.

Reloj LC LS COLA LEF S Nd F


0 0 1 (C1,0) (D,4,C1) (A,8,C2) (P,60) 0 0 0
4 0 0 (A,8,C2) (P,60) 4 1 1
8 0 1 (C2,8) (D,9,C2) (A,14,C3) (P,60) 4 1 1
9 0 0 (A,14,C3) (P,60) 5 2 1
14 0 1 (C3,14) (A,15,C4) (D,18,C3) (P,60) 5 2 1
15 1 1 (C3,14) (D,18,C3) (A,23,C5) (P,60) 5 2 1
(C4,15)
18 0 1 (C4,15) (D,21,C4) (A,23,C5) (P,60) 9 3 2
21 0 0 (A,23,C5) (P,60) 15 4 3

__________________________________________________________________
Ing. Carla Escobar Olivares
36
4.4 PRESENTACIÓN DE UNA HERRAMIENTA DE SIMULACIÓN

PROGRAMACIÓN EN SIMSCRIPT

Programación en SIMSCRIPT del ejemplo 2. Con el fin de ilustrar el uso del lenguaje SIMSCRIPT para la
simulación de eventos discretos, se presenta el listado correspondiente al ejemplo 2, analizado
anteriormente.

PREAMBLE
NORMALLY, MODE IS INTEGER
DEFINE Departing.Customer TO MEAN Atrb1
DEFINE Arrival.Time TO MEAN Atrb2

EVENT NOTICES INCLUDE Arrival


EVERY Departure HAS A Departing.Customer

TEMPORARY ENTITIES
EVERY Customer HAS AN Arrival.Time AND
MAY BELONG TO THE Queue

THE SYSTEM OWNS THE Queue


DEFINE Queue AS A FIFO SET
DEFINE Report.Generator AS A ROUTINE

DEFINE Miat, Msvt, sigma,Arrival.Time and


Response.Time AS REAL VARIABLES
DEFINE Server, Ncust, Is.RT.4 AND Number.of.Departures
AS INTEGER VARIABLES
DEFINE Idle TO MEAN 0
DEFINE Busy TO MEAN 1

ACCUMULATE Rho AS THE AVERAGE OF Server


TALLY Max.Q.Length AS THE MAXIMUM OF N.Queue
TALLY Avg.RT AS THE AVERAGE OF Response.Time
TALLY Prob.RT.GE.4 AS THE AVERAGE OF Is.RT.4
END

MAIN
SCHEDULE AN Arrival NOW

LET Miat = 4.5 "minutos, tiempo entre arribos


__________________________________________________________________
Ing. Carla Escobar Olivares
37
LET Msvt = 3.2 "minutos, tiempo medio de servicio
LET Sigma = 0.6 "minutos, desviación estándar del tiempo de servicio
LET Ncust = 1000 " clientes a ser atendidos (criterio de paro)

LET Server = Idle "el primer arribo encontrará al cajero libre


LET Number.of.Departures = 0

START SIMULATION

END

EVENT ARRIVAL
CREATE A CUSTOMER NOW
LET Arrival.Time = TIME.V

IF Servel IS EQUAL TO Idle


LET Server = Busy
SCHEDULE A Departure GIVEN Customer IN
NORMA.F(Msvt, Sigma,1) MINUTES

ELSE
FILE Customer IN Queue
REGARDLESS

SCHEDULE AN Arrival IN EXPONENTIAL.F(Miat, 2) MINUTES


RETURN
END

EVENT Departure GIVEN Departing.Costumer


LET Response.Time = TIME.V - Arrival.Time(Departing.Customer)
DESTROY A Customer CALLED Departing.Customer

IF Response.Time * HOURS.V * MINUTES.V IS NOT LESS THAN 4,


LET Is.RT.4 = 1
ELSE
LET Is.RT.4 = 0
ALWAYS

ADD TO Number.of.Departures

__________________________________________________________________
Ing. Carla Escobar Olivares
38
IF Number.of.Departures IS GE NCust,
CALL Report.Generator
ALWAYS

IF Queue IS EMPTY,
LET Server = Idle

OTHERWISE

REMOVE FIRST Customer FROM Queue


SCHEDULE A Departure GIVEN Customer IN
NORMAL.F(MVst, Sigma,1) MINUTES

REGARDLESS
RETURN
END

ROUTINE Report.Generator

PRINT 1 LINE THUS


SIMULACION DE UN SOLO SERVIDOR - CAJA DE SUPERMERCADO
SKIP 2 OUTPUT LINES

PRINT 4 LINES WITH Miat, Msvt, Sigma, Ncust THUS


Tiempo Medio entre Arribos **.**
Tiempo Mdeio de Servicio **.**
Dev. Estándar de Tiempo de Servicio **.**
Número de Clientes *****

SKIP 3 OUTPUT LINES

PRINT 7 LINES WITH Rho, Max.Q.Length, Avg.RT*HOUERS.V*MINUTES.V,


Number.of.Departures THUS
Utilización del Servidor **.**
Longitud Máxima de Cola *****
Tiempo de Respuesta Promedio **.** Minutos
Proporción de quién empleó 4
Minutos ó más en el Sistema **.**
Longitud de la Corrida ***.**
Número de Partidas *****
STOP
__________________________________________________________________
Ing. Carla Escobar Olivares
39
END

TABLA DE NÚMEROS ALEATORIOS

0.6335 0.0936 0.9102 0.7041 0.7446 0.2159


0.0178 0.5971 0.5925 0.3647 0.5794 0.5713
0.7122 0.2231 0.7747 0.1737 0.9012 0.9716
0.4138 0.9397 0.1495 0.2944 0.4723 0.7208
0.1730 0.4259 0.0147 0.6327 0.5121 0.1001
0.0528 0.7011 0.5803 0.2204 0.4514 0.5118
0.2791 0.6134 0.4665 0.8463 0.6095 0.7143
0.2926 0.2959 0.1266 0.4264 0.4890 0.6441
0.2730 0.8755 0.7943 0.0731 0.6610 0.4530
0.2988 0.1229 0.6741 0.5405 0.5684 0.2381
0.3180 0.4792 0.3066 0.6374 0.3587 0.4493
0.3512 0.3961 0.7007 0.6624 0.5032 0.0834
0.4420 0.2556 0.9839 0.8548 0.1224 0.9053
0.4680 0.5966 0.9334 0.1981 0.9174 0.1484
0.6245 0.6070 0.8081 0.6139 0.5073 0.3940
0.3293 0.7236 0.4246 0.8825 0.5902 0.0523
0.1249 0.6861 0.6140 0.8327 0.8284 0.4667
0.7250 0.4842 0.5709 0.7382 0.4745 0.5450
0.8078 0.1747 0.2667 0.7156 0.4262 0.2649
0.4930 0.1762 0.9928 0.7435 0.8466 0.5678

__________________________________________________________________
Ing. Carla Escobar Olivares
40

Das könnte Ihnen auch gefallen