teoria de modelos y simulacion cp4

16

Click here to load reader

Upload: brandito-mp

Post on 02-Aug-2015

77 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 1

Teoría de Modelos y Simulación Enrique Eduardo Tarifa

Facultad de Ingeniería - Universidad Nacional de Jujuy

Sistemas Estocásticos

Introducción En este capítulo se estudiarán métodos para simular sistemas estocásticos. En estos sistemas algún componente tiene una conducta aleatoria. Los sistemas que se estudiarán serán del tipo discreto. Aquí se analizará el enfoque orientado a eventos, dejando para un capítulo posterior la presentación del enfoque orientado a procesos. Un evento es la causa instantánea de un cambio de estado en un sistema discreto; por ejemplo, la llegada de un cliente. En el enfoque orientado a eventos el centro de atención son los eventos que pueden afectar al sistema. Para ello es necesario determinar los momentos en que los eventos ocurren y modificar adecuadamente el estado del sistema. Para determinar los momentos de ocurrencia de los eventos se estudiarán las dos principales estrategias utilizadas: paso de reloj constante y paso de reloj variable.

Cadenas de Markov Este tipo de modelo se utiliza cuando la probabilidad condicional de ocurrencia de un evento dado en un intervalo de tiempo ∆t es constante. Por lo tanto, la distribución de probabilidad incondicional de ocurrencia es exponencial. Una aplicación de este tipo de modelos es la simulación de fallas. Considere que una empresa posee dos equipos de computación que brindan idéntico servicio. Cada equipo tiene un tiempo medio de falla de 6 meses. Por cada mes que un equipo está fuera de servicio se pierden $2000. Cuando ambos equipos fallan, las pérdidas son de $10000 por mes. Estas pérdidas son causadas por multas que la empresa debe pagar a fin de mes dependiendo exclusivamente del estado de los equipos en ese momento sin importar en qué instante del mes fallaron. El costo de reparación es de $1000 por equipo, y se abona al final de la misma. El tiempo medio de reparación es de 2 meses. Se quiere determinar el fondo anual que la empresa deberá reservar para enfrentar los gastos provocados por las fallas de los equipos. Este sistema se puede modelar inicialmente con una máquina de estados finitos, donde los símbolos de entradas son los eventos:

• F1: Falla equipo 1. • F2: Falla equipo 2. • R1: Se repara equipo 1. • R2: Se repara equipo 2.

Los estados son:

• SS: Los dos equipos en servicio. • SR: El equipo 1 en servicio, el equipo 2 en reparación.

Page 2: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 2

• RS: El equipo 2 en servicio, el equipo 1 en reparación. • RR: Los dos equipos en reparación.

Las salidas son las pérdidas:

• 1000 $/reparación: Cuando se repara un equipo. • 2000 $/mes: Cuando un equipo falla. • 10000 $/mes: Cuando los dos equipos fallan.

Hasta aquí se trata de una máquina de estados finitos común. El elemento adicional es la probabilidad asociada a cada evento. En este ejemplo, las probabilidades son constantes dando origen a una cadena de Markov. Estas probabilidades se calcularán luego a partir de las velocidades medias de los eventos (el λ de la distribución exponencial), las cuales son:

• F1: 1/6 falla/mes. • F2: 1/6 falla/mes. • R1: ½ reparación/mes. • R2: ½ reparación/mes.

Otro elemento nuevo a considerar es que existe una variable determinística y continua: el tiempo. Esta variable origina un evento cada mes: FM (fin de mes). La Figura 1 muestra la máquina de estados finitos a utilizar para este ejemplo.

SS RS

SR RR

F1F2

R1

R2

R1

R2

F2

F1

$1000

$1000

$1000

$1000

$0 $2000

$10000$2000

$0 $0

$0

$0

FM

FM

FM

FM

Figura 1: Cadena de Markov para simulación de fallas.

En este modelo se desprecian las probabilidades de las transiciones SR-RS y RR-SS debido a que es improbable que dos eventos ocurran simultáneamente.

Simulación con paso de reloj constante Una opción para realizar la simulación es hacerlo con un paso de reloj constante. En esta alternativa el tiempo avanza a intervalos constantes )t, y se procede a verificar si se produce algún evento. Debido a que en general no se considera la ocurrencia de dos eventos simultáneos, es necesario que )t sea lo suficientemente pequeño como para mantener la validez de esta hipótesis. Por ejemplo, es probable que una máquina falle y sea reparada en un mismo mes; sin embargo, es improbable que esto ocurra en una misma hora.

Page 3: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 3

Como se verá en la sección siguiente, si el )t es suficientemente pequeño y la velocidad media de ocurrencia λ es constante, la probabilidad condicional de ocurrencia de un evento x en el instante t probado que no ocurrió antes es:

ttPcttxtxP ∆==∆− λ)())(Not)(( (1) Esta probabilidad será utilizada para determinar si el evento ocurre o no en cada intervalo de simulación. Retornando al ejemplo anterior, si se adopta un )t = 0.25 mes, las probabilidades condicionales de los eventos son:

• F1: 0.04. • F2: 0.04. • R1: 0.12. • R2: 0.12.

El estado inicial es SS y el mes 0. Se avanza 0.25 mes el reloj y se determina si el evento F1 ocurre o no; para ello se genera un número aleatorio R y se compara con la probabilidad de F1, si R es menor, el evento ocurre. De la misma forma se determina si ocurre F2. Si los dos eventos ocurren, el procedimiento se deberá repetir hasta que sólo ocurra un evento o ninguno debido a la hipótesis de trabajo adoptada anteriormente que impone que a lo sumo un evento puede ocurrir en cada intervalo de tiempo. Si el evento F2 ocurre, entonces el nuevo estado es SR. Los eventos posibles en este estado son FM, R2 y F1. FM ocurre al final de todos los meses; en cambio, los eventos R2 y F1 se determinan utilizando el método anterior que considera las correspondientes probabilidades. La Tabla 1 muestra la planilla de Excel utilizada para realizar el sorteo con la siguiente fórmula: =SI(ALEATORIO()<Probabilidad, “Sí”, “No”).

Tabla 1: Determinación de ocurrencia de los eventos.

Eventos F1 F2 R1 R2Probabilidades 0.04 0.04 0.12 0.12Ocurre No No Sí No

De esta forma se procede para los 12 meses. La Tabla 2 muestra los pasos de la simulación. Se supone que los eventos ocurren al final de los intervalos considerados. Para el primer mes se muestran todos los intervalos; como se puede apreciar, en la mayoría de ellos nada ocurre, por ese motivo en los meses siguientes sólo se muestran los intervalos donde algún evento ocurrió. Note también que al final del mes el evento FM evita que cualquier otro evento ocurra (por la hipótesis de trabajo); esto es un error, pero el impacto del mismo se reduce a voluntad disminuyendo el valor de ∆t, o modificando el algoritmo para permitir que otro evento pueda ocurrir al final del mes; en ese, caso se deberá decidir el orden de ocurrencia de esos dos eventos “simultáneos” para poder procesarlos adecuadamente. Como resultado de la simulación se puede estimar que las pérdidas anuales serán del “orden” de los $45000. Es necesario considerar que el resultado que se obtuvo cambiará cuando se realice nuevamente la simulación. Esto es precisamente el problema de los sistemas estocásticos. Esta situación obliga a desarrollar técnicas que permitan obtener resultados más

Page 4: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 4

confiables. Estas técnicas son métodos estadísticos que se utilizan para estudiar una muestra conformada por los resultados obtenidos de varias simulaciones. Dichos métodos serán estudiados en otro capítulo. Un problema adicional que presentan los sistemas estocásticos es el estudio de los datos. En este ejemplo, tanto las velocidades medias de fallas y reparaciones como sus distribuciones fueron provistas en el enunciado. Sin embargo, en un caso real estos datos deberán ser determinados a partir de mediciones, experimentos o datos históricos. Nuevamente, existen métodos estadísticos para este fin, y serán objeto de estudio de otro capítulo.

Tabla 2: Simulación con paso de reloj constante.

Mes Evento Estado Pérdida [$] 0.00 SS 0.25 SS 0.50 SS 0.75 SS 1.00 FM SS 0

… … … … 2.00 FM SS 0 2.25 F2 SR 0 3.00 FM SR 2000 4.00 FM SR 2000 4.50 F1 RR 0 5.00 FM RR 10000 5.25 R2 RS 1000 6.00 FM RS 2000 6.50 R1 SS 1000 7.00 FM SS 0 7.25 F1 RS 0 7.50 F2 RR 0 8.00 FM RR 10000 9.00 FM RR 10000 9.50 R2 RS 1000

10.00 FM RS 2000 11.00 FM RS 2000 12.00 FM RS 2000

Total $45000

Simulación con probabilidades variables En el ejemplo anterior se consideraron las probabilidades de los eventos como constantes, esto dio origen a una cadena de Markov. Ahora se estudiará el caso más general, cuando las probabilidades condicionales no son constantes. Para una completa analogía con el ejemplo anterior, se debe encontrar la probabilidad “condicional” de ocurrencia de un evento en el intervalo que se está simulando. Se puede demostrar que la probabilidad condicional de ocurrencia de un evento x en el instante t probado que no ocurrió antes es:

)(1)()(

)())(Not)((ttF

ttFtFtPcttxtxP

∆−−∆−−

==∆− (2)

donde F(t) es la función de probabilidad acumulada de la distribución deseada. Esta probabilidad se utiliza para determinar si el evento correspondiente ocurre o no en el intervalo que está siendo simulado. Note que t se mide desde el último momento en que el evento comenzó a ser posible sin que llegara a ocurrir todavía. Salvo la forma de calcular la

Page 5: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 5

probabilidad condicional, todos los restantes pasos de simulación son iguales a los realizados en el ejemplo anterior. En el caso especial de la distribución exponencial, se tiene:

tetf λλ −=)( (3)

tetF λ−−=1)( (4) La probabilidad condicional será:

tetFttF

ttFtFtPc ∆−−=∆=

∆−−∆−−

= λ1)()(1

)()()( (5)

El resultado es constante. Para λ.)t ≤ 0.1 la siguiente aproximación (que utiliza la serie de Taylor) es válida:

ttFtPc ∆=∆= λ)()( (6) Este resultado fue utilizado en la sección anterior. Para mostrar la estrategia de simulación cuando la probabilidad condicional es variable considere el siguiente problema. Se desea determinar la energía total diaria que deberá producir una usina para satisfacer la demanda variable. La usina cuenta con tres modos de generación, a saber:

• Baja potencia (BP): genera 10 MW. • Media potencia (MP): genera 30 MW. • Alta potencia(AP): genera 60 MW.

El modo de generación se elige de acuerdo a la demanda. En consecuencia, los cambios de modo de generación ocurren en el entorno de determinadas horas del día. Las distribuciones probabilísticas de estos cambios son uniformes, y abarcan los siguientes intervalos (Figura 2):

• Cambio de Baja a Media (BM): entre 5:00 y 6:00 h. • Cambio de Media a Alta (MA): entre 7:00 y 8:00 h. • Cambio de Alta a Media (AM): entre 13:00 y 14:00 h. • Cambio de Media a Baja (MB): entre 17:00 y 18:00 h.

1f(x)

0 t12

BM MA

24

AM MB

Figura 2: Distribución de los cambios de modo de generación.

El sistema puede ser modelado inicialmente con una máquina de estados finitos, donde los eventos son los cambios de modo de generación: BM, MA, AM y MB; y los estados son los modos de generación: BP, MP y AP. Las salidas reflejarán la energía producida en cada estado. La Figura 3 muestra la máquina de estados finitos correspondiente.

Page 6: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 6

La distribución de probabilidad de cada evento es uniforme en el correspondiente intervalo [tmin, tmax] de duración igual a 1 h, esto es:

1)( =tf (7)

ttF =)( (8) donde t se mide desde que el evento es posible; es decir, desde tmin. Entonces, la probabilidad condicional de cada evento es:

)(1)(

ttt

tPc∆−−

∆= (9)

Esta vez, la probabilidad condicional no es constante ya que varía con t.

BP MP

BM

MB

10*∆tBP

30*∆tMP

AP

MA

AM

30*∆tMP

60*∆tAP

Figura 3: Máquina de estados finitos de la usina.

La Tabla 4 contiene los resultados de una simulación realizada para un día con ∆t = 0.25 h. La determinación de la ocurrencia de un evento se hace con la planilla Excel mostrada en la Tabla 3. La columna Pc(∆te) corresponde al valor de la probabilidad condicional para el único evento que es posible desde tmin y que no ocurrió durante (∆te-∆t). El evento ocurre en t = tmin+∆te si el número aleatorio R es menor o igual a Pc(∆te). En la tabla de simulación sólo figuran los instantes en que el estado del sistema cambió. Debido a que se desea completar 24 hs de simulación, la misma se detiene cuando la usina está en el estado BP, y debe calcularse la energía producida en ese estado ya que todavía no fue computado por no haber abandonado dicho estado.

Tabla 3: Determinación de la ocurrencia de un evento.

∆∆ t ∆∆ te Pc(∆∆ te ) R

0.25 0.5 0.33 0.72Ocurre: No

Tabla 4: Simulación de la usina.

t tmin ∆∆te Pc(∆∆te) R Evento Estado Energía [MW.h]

0.00 5.00 BP 5.25 5.00 0.25 0.25 0.10 BM MP 52.50 7.75 7.00 0.75 0.50 0.32 MA AP 75.00

13.25 13.00 0.25 0.25 0.20 AM MP 330.00 17.50 17.00 0.50 0.33 0.17 MB BP 127.50 24.00 17.00 BP 65.00

Total = 650.00 Entonces, en el día simulado se produjeron 650.00 MW.h.

Page 7: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 7

Variante del método con paso de reloj constante Es posible plantear una variante del método con paso de reloj constante que emplee la probabilidad acumulada en lugar de la probabilidad condicional. Este método tiene la ventaja de no requerir el cálculo de la probabilidad condicional, y además sirve para presentar la idea en que se basa el método que se estudiará en la siguiente sección. Para plantear la variante se empleará un ejemplo. Considere que una empresa desea conocer el costo anual de reparación de un equipo de computación. Los eventos posibles con sus respectivas distribuciones son:

• F1: Distribución exponencial con media de 6 meses. • R1: Distribución exponencial con media de 2 meses.

Los estados posibles son:

• S: Equipo en servicio. • R: Equipo en reparación.

El costo de reparación es $1000. La Figura 4 representa la máquina de estados finitos correspondiente.

S RF1

R1

$0

$1000 Figura 4: Máquina de estado finito para una computadora.

La Tabla 5 presenta los resultados obtenidos de una simulación utilizando las probabilidades condicionales y ∆t = 1 mes. Las probabilidades condicionales son constantes debido a que las distribuciones son exponenciales. El procedimiento seguido es idéntico al empleado en los ejemplos anteriores. Para determinar si un evento ocurre se compara el número aleatorio R con la probabilidad condicional Pc correspondiente calculada con la ecuación (5). Si R es menor o igual que Pc, el evento ocurre. Nuevamente, se adopta la hipótesis de un único evento por ∆t. Dado el tamaño del paso utilizado, es difícil que esta hipótesis se cumpla, y seguramente el error es grande. Sin embargo, este error se puede reducir a voluntad reduciendo el paso.

Tabla 5: Simulación con probabilidad condicional.

Mes PcF PcR R Evento Estado Costo [$] 0 0 S 1 0.15 0.12 F1 R 0 2 0.39 0.24 R1 S 1000 3 0.15 0.66 S 4 0.15 0.83 S 5 0.15 0.92 S 6 0.15 0.12 F1 R 0 7 0.39 0.99 R 8 0.39 0.16 R1 S 1000 9 0.15 0.75 S 10 0.15 0.65 S 11 0.15 0.84 S 12 0.15 0.96 S

Total = $2000

Page 8: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 8

En la variante del método se emplea la probabilidad acumulada F(∆ta) en lugar de la condicional. La variante se basa en que F(∆ta) es la probabilidad de ocurrencia de un evento entre el tiempo t0 y el tiempo t0+∆ta, donde t0 es el tiempo en que el evento comienza a ser posible. Entonces, en lugar de generar un número aleatorio R en cada paso de reloj, sólo se genera un único número en el instante en que el evento comienza a ser posible; es decir, en t0. Este número R se compara en cada paso con el valor de F(∆ta). Cuando R es menor o igual a F(∆ta), el evento ocurre y se actualiza t0. La Tabla 6 muestra los resultados para una simulación de 12 meses y ∆t = 1 mes. Note que en este método es claro que el evento ocurrirá cuando se cumpla F(∆ta) = R. Entonces, en lugar de comparar en todos los intervalos estos dos valores, es posible despejar ∆ta = F-1(R) e incrementar el tiempo en dicha cantidad. De acuerdo al método de la transformada inversa, F-1(R) es el generador de variables aleatorias correspondiente a la distribución en cuestión; entonces, ∆ta es una variable aleatoria que tiene dicha distribución. Éste es el principio del método que se presentará en la siguiente sección.

Tabla 6: Simulación con probabilidad acumulada.

Mes ∆∆ta F(t)F F(t)R R Evento Estado Costo [$] 0 0 0 S 1 1 0.15 0.12 F1 R 0 2 1 0.39 0.24 R1 S 1000 3 1 0.15 0.44 S 4 2 0.28 S 5 3 0.39 S 6 4 0.49 F1 R 0 7 1 0.39 0.56 R 8 2 0.63 R1 S 1000 9 1 0.15 0.40 S 10 2 0.28 S 11 3 0.39 S 12 4 0.49 S

Total = $2000

Simulación con paso de reloj variable En la simulación anterior el reloj avanzaba a paso constante. Las ventajas de la simulación con paso de reloj constante son:

• Fácil programación. • Se puede utilizar para simular sistemas con componentes continuos y discretos. En ese

caso, el paso )t también será el paso de integración de las ecuaciones diferenciales que conforman los modelos de los componentes continuos.

Sin embargo, esta estrategia tiene algunos inconvenientes, los principales son:

• Lo más probable es que los eventos no se produzcan exactamente en un múltiplo de )t sino que ocurran en el interior de un intervalo. Esto ocasiona errores en los cálculos; por ejemplo, si se supone que un depósito de dinero se realiza al final de un intervalo cuando en realidad ocurre inmediatamente después del inicio del mismo, se cometerá un error al calcular los intereses.

• Puede ocurrir que durante varios )t no se produzca ningún evento; por lo tanto, los cálculos realizados para esos intervalos no aportarán ninguna información útil y sólo consumirán recursos informáticos; por ejemplo, en la simulación anterior fue necesario eliminar varios intervalos porque no se registraron cambios en el sistema durante los mismos.

Page 9: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 9

Para superar estos inconvenientes se desarrolló la estrategia de simulación con paso de reloj variable. La idea principal de esta estrategia es hacer que el reloj avance exactamente al tiempo donde ocurre el evento. Para determinar el tiempo de ocurrencia de un evento dado se utiliza un generador de variables aleatorias con la distribución correspondiente al evento que se desea simular. Ya no se trabaja con la probabilidad condicional ni se debe elegir un )t. Para implementar esta estrategia, el simulador está compuesto por los siguientes elementos:

• La agenda de eventos: En ella se registran todos los eventos futuros posibles junto con el correspondiente tiempo que resta hasta la ocurrencia de dichos eventos; por ejemplo, la próxima falla de la máquina 1 será dentro de 1.6 meses.

• El reloj: Indica el tiempo actual del sistema. Se inicializa con un cierto tiempo que debe ser dato.

• Estado inicial: Almacena el estado del sistema correspondiente al tiempo inicial, también debe ser conocido.

• Eventos iniciales: Son los eventos que ocurrirán en el tiempo inicial. Deben ser conocidos.

• El programa principal: Ejecuta una serie de rutinas para inicializar la simulación y desarrollarla.

• Rutinas: Destinadas a procesar los eventos. Los siguientes cuadros muestran el pseudo-código del programa principal y las rutinas más importantes.

Program Principal; Begin Inicializar_Simulación; Repeat Procesar_Agenda; Avanzar_Reloj Until Final End.

Procedure Procesar_Agenda; Begin For Evento 0 Agenda do If Evento.Tiempo = 0 then Begin Evento.Procesar; Evento.Free End End;

Procedure Inicializar_Simulación; Begin Agendar(Evento_Iniciales.Tiempos, Eventos_Iniciales.Nombres); tiempo := Tiempo_Inicial End;

Page 10: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 10

A fin de ilustrar este método, considere que una empresa dispone de un equipo de computación, y que los eventos posibles son:

• F1: Falla el equipo. Distribución exponencial con media de 6 meses. • R1: Reparación del equipo. Distribución exponencial con media de 2 meses.

Los estados posibles son:

• S: La computadora funciona. • R: La computadora está siendo reparada.

Las salidas son:

• 1000 $/reparación: Costo de la reparación. • 2000 $/mes: Pérdidas causadas por no contar con el equipo.

A diferencia del ejemplo anterior, las pérdidas causadas por no contar con el equipo ocurren en forma continua y no sólo a fin de mes. Para no perder la ventaja que brinda el paso variable se opta por calcular el total de la pérdida cuando el equipo termina de ser reparado; por lo tanto, se tiene una única salida: $1000+$2000*)tFalla, donde se considera el tiempo que la computadora estuvo sin funcionar.

S RF1

R1

$0

$1000+$2000*)tFalla Figura 5: Máquina de estados finitos para una computadora.

El punto de partida es el mes 0 con la computadora funcionando. A fin de inicializar la simulación, se programa un evento inicial ficticio denominado Inicio. La única misión de este evento es programar la primera ocurrencia de F1. Entonces, la rutina Inicializar_Simulación agenda el evento Inicio para que ocurra en el tiempo 0. Dado que el Inicio.Tiempo es igual a cero, la rutina Procesar_Agenda ejecuta la rutina Inicio.Procesar. Esta rutina programa la ocurrencia del evento F1. Para programar F1, éste debe ser introducido en la agenda junto con el tiempo que resta para que ocurra. El tiempo de ocurrencia se obtiene utilizando un generador de variables aleatorias con la distribución

Procedure Evento.Procesar; Begin Modificar_Estado; Procesar_Eventos_Asociados; Programar_Eventos_Futuros; Cancelar_Eventos_Futuros End;

Procedure Anvanzar_Reloj; Begin Paso := Mínimo(Eventos.Tiempos); tiempo := tiempo + Paso; For Evento 0 Agenda do Evento.Tiempo := Evento.Tiempo-Paso End;

Page 11: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 11

probabilística asociada a F1; en este ejemplo, se utiliza un generador con distribución exponencial y tiempo medio de 6 meses. Ahora es el turno de la rutina Avanzar_Reloj. El único evento que tiene agendado o programado es el evento F1. Entonces, el reloj avanza el paso indicado por F1.Tiempo y resta este valor a los tiempos de la agenda. Como resultado F1.Tiempo se vuelve igual a cero, lo que hace que la rutina Procesar_Agenda ejecute F1.Procesar. Debido a esta acción, el estado de la máquina cambia a R y se programa el próximo evento posible; en este caso, R1. Para programar R1, éste debe ser introducido en la agenda junto con el tiempo que resta para que ocurra. El tiempo de ocurrencia se obtiene utilizando un generador de variables aleatorias con la distribución probabilística asociada a R1; en este ejemplo, se utiliza un generador con distribución exponencial y tiempo medio de 2 meses. Si hubiera eventos asociados, se procesarían en este punto con la rutina Procesar_Eventos_Asociados. Además, debido al cambio de estado, es posible que algunos eventos agendados ya no sean posibles; entonces, se deben eliminar de la agenda con la rutina Cancelar_Eventos_Futuros. De esta manera se completa un ciclo de la simulación. En el próximo ciclo, el paso será igual al tiempo de ocurrencia del único evento programado, R1, el reloj avanzará y se ejecutarán las correspondientes rutinas. Los resultados obtenidos para un año de simulación se resumen en la Tabla 7.

Tabla 7: Simulación con paso de reloj variable.

Mes )) t Evento Futuro

Evento Estado Costo [$]

0.00 0.00 Inicio 0.00 3.20 F1 Inicio S 3.20 0.00 F1 S 3.20 1.08 R1 F1 R 0 4.28 0.00 R1 R 4.28 8.76 F1 R1 S 3160

13.04 --- --- Fin S 0 Total $3160

Ejemplo de una simulación completa Para analizar este tipo de sistemas, lo mejor es dar un ejemplo. Suponga que una empresa de transporte aéreo cumple con el siguiente programa de mantenimiento. Al inicio de cada día se revisa un avión, el tiempo de revisión es despreciable. Con los resultados de esa revisión se decide si la unidad necesita mantenimiento o no. Para realizar las tareas de mantenimiento, la empresa alquila un taller a $2500 por día. Por cada día que pasa sin operar un avión, la empresa pierde $5000. Se desea determinar si conviene alquilar un segundo taller. Los pasos a dar para realizar la simulación son:

• Definición de propósito: Determinar si conviene alquilar un segundo taller. • Sistema bajo estudio: El sistema de mantenimiento de la empresa. • Adquisición de datos: Registros de tiempo de ingreso de aviones al taller, tiempo de

reparación. • Construcción del modelo: Una maqueta y personas que manipulen los aviones de

acuerdo a los datos obtenidos de las mediciones puede servir como un modelo inicial. • Validación del modelo: Con las entradas medidas experimentales, verificar que se

obtengan los costos reales correspondientes al periodo de medición.

Page 12: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 12

• Experimentación: Estudiar los costos con un taller y con dos talleres. • Implementación de los resultados: Dejar un solo taller o alquilar otro.

Una notable mejora del proceso anterior se obtiene utilizando un modelo probabilístico en lugar de los datos experimentales. Este modelo surge de procesar dichos datos con métodos estadísticos como los que se estudiarán en otro capítulo. El resultado puede ser un conjunto de probabilidades condicionales:

• Probabilidad de Falla: 0.5 • Tiempo de Reparación: 0.5, 1, 1.5, 2, 2.5, 3 días con una probabilidad de 1/6.

Con este modelo estadístico se elimina el ruido de los datos experimentales, pero se deben generar variables aleatorias que cumplan con esas distribuciones. En este caso se puede usar una moneda para decidir si un avión necesita mantenimiento, y se puede utilizar un dado para determinar el tiempo de reparación. La Tabla 8 y la Figura 6 muestran los resultados obtenidos para una simulación de 10 días. Debido a que se desea comparar entre dos alternativas, es necesario implementar dos modelos, realizar dos conjuntos de simulaciones y finalmente comparar sus resulados. Inicialmente, los talleres están desocupados, sin ningún avión en reparación ni en la playa de espera. Si los aviones deben esperar por el servicio, se asigna un turno por orden de llegada. En ambos casos, existe una única playa de espera con capacidad máxima de 10 aviones. En el caso de dos talleres, la política de asignación de taller trata de equilibrar las actividades de ambos talleres; esto significa, salvo que un taller esté ocupado, se asignan en forma alternativa los aviones que requieren mantenimiento. Para el caso de un solo taller, en el día 0 un avión necesita reparación, debido a que el taller está vacío, el mismo ingresa inmediatamente; por este motivo, el tiempo de entrada al taller es igual al día de revisión 0. El tiempo de salida se calcula sumando los días en el taller más el tiempo de entrada, para el primer avión 0+2.5 = 2.5. El tiempo total que estuvo detenido el avión se calcula restando al día de salida, el día de revisión; para el primer avión 2.5-0 = 2.5. En el día 1 ningún avión necesita reparación. El día 2 un avión necesita mantenimiento, pero no puede ingresar porque el taller está todavía ocupado; por lo tanto, debe esperar. Recién ingresa cuando se desocupa el taller, el día 2.5. Este tiempo corresponde al tiempo de salida del avión que estaba siendo reparado. Entonces, el tiempo de salida del nuevo avión es 2.5+2 = 4.5, y el tiempo total es 4.5-2 = 2.5. Note que el avión estuvo esperando durante 2.5-2 = 0.5; este tiempo muerto genera pérdidas para la empresa, y puede ser reducido con el agregado de un taller adicional. Para tomar la decisión final se debe determinar cuál es el efecto predominante en los costos, la reducción del tiempo muerto (reducción de costos) o el nuevo alquiler a pagar (incremento de costo). Para poder comparar las dos alternativas (un taller vs. dos talleres) en forma justa se debe eliminar el elemento aleatorio; por esta razón, la simulación de los dos casos se hace con los mismos tiempos de arribo de los aviones (Tabla 8). Observe que el avión que llega el día 2 y que debe esperar 0.5 en el caso de un taller, ingresa inmediatamente en el caso de dos talleres. Es decir, se logra la reducción de los tiempos muertos; ahora resta determinar si esta reducción se impone sobre el aumento del alquiler.

Page 13: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 13

Tabla 8: Simulación de talleres de mantenimiento.

Un Taller Dos Talleres

Días Días en Taller

Entrada Salida Total Entrada Salida Total Taller

0 2.5 0 2.5 2.5 0 2.5 2.5 1 1 2 2 2.5 4.5 2.5 2 4 2 2 3 4 3 4.5 7.5 3.5 4 7 3 1 5 1.5 7.5 9 4 5 6.5 1.5 2 6 7 2 9 11 4 7 9 2 1 8 1 11 12 4 8 9 1 2 9

Días Totales perdidos 20.5 12.0

1 2 3 4 5 6

0 5 10

Taller 1

1

2

3

4

5

6

0 5 10

Taller 1

Taller 2

Figura 6: Tiempos de servicio de los talleres.

Los costos para esta simulación son: Costo Total 1 taller = 10 x 2500 + 20.5 x 5000 = $127500. Costo Total 2 talleres = 10 x 5000 + 12.0 x 5000 = $110000. Estos resultados no son definitivos porque se ha tomado una muestra de apenas 10 días. Para tener mayor seguridad es necesario ampliar la muestra. Esto significa, aumentar la cantidad de día simulados y la cantidad de simulaciones. Entonces, conviene desarrollar un simulador por computadora. Para ello, será necesario reemplazar el modelo físico por un modelo simbólico, y la moneda y el dado por un generador de variables aleatorias. Los eventos a considerar son:

• Llegada de un avión que necesita ser reparado. • Inicio de reparación. • Partida.

Además, se deberá decidir cómo será el paso del reloj, constante o variable. Debido al planteo anterior, la implementación de un simulador con paso constante es directa. Por este motivo, se elegirá por la otra alternativa para que sirva como ejemplo de un simulador con paso variable. A continuación se muestra el pseudo-código del simulador:

Page 14: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 14

Debido a que el paso del reloj es variable, es necesario reprocesar los datos para obtener las distribuciones de probabilidad incondicional necesarias para seleccionar el generador de variables aleatorias adecuado. Debido a que para programar un evento se coloca en la agenda el tiempo que resta desde el momento de la programación hasta la ocurrencia del evento, la programación de dicho evento sólo se debe hacer en el momento a partir del cuál dicho evento es posible. En consecuencia, se debe notar que el procedimiento Llegadas siempre programa la próxima llegada y puede programar la próxima partida. En cambio el procedimiento Partidas sólo puede programar la próxima partida. Es decir que a lo sumo sólo se tendrán dos eventos próximos a revisar para avanzar el reloj, ellos son:

• Una llegada. • Una llegada y una partida.

Completada la simulación, es necesario procesar los resultados obtenidos para elaborar el reporte final. Nuevamente, se aplican métodos estadísticos que serán objeto de otro capítulo. Como adelanto, se puede considerar que las estadísticas a elaborar son generalmente de dos tipos:

Program Taller; Begin Inicializar_Variables; Recibir_Datos; Revisar_Eventos; Reportar_Resultados End.

Procedure Llegadas; Begin Incrementar_Número_de_Aviones; Programar_la_Próxima_Llegada; If Taller.Estado = Libre then Begin Taller.Estado := Ocupado; Programar_Próxima_Partida End else Begin Incrementar_Fila_de_Espera; If Fila > Límite then Write_Error; Registrar_el_Tiempo_de_Llegada End End;

Procedure Partidas; Begin Incrementar_Número_de_Aviones_Reparados; If Fila.Estado = Vacía then Taller.Estado := Libre else Begin Calcular_el_Tiempo_de_Espera; Decrementar_Fila_de_Espera; Programar_Próxima_Partida End End;

Page 15: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 15

• Basadas en observaciones: El valor de un atributo se promedia de acuerdo a la cantidad de entidades que comparten ese valor; por ejemplo, el tiempo medio de espera.

• Basadas en el tiempo: El valor de un atributo se promedia de acuerdo a su duración; por ejemplo, la utilización media de un equipo.

Los parámetros básicos, promedio y varianza de una muestra compuesta por n elementos, para las estadísticas basadas en observaciones se calculan como sigue:

∑=

=n

iix

n 1

1µ (10)

∑=

−=n

iix

n 1

22 )(1 µσ (11)

Para las estadísticas basadas en tiempo considerando que cada valor xi tiene una duración ti:

∑=

=n

iitT

1

(12)

∑=

=n

iii tx

T 1

1µ (13)

i

n

ii tx

T ∑=

−=1

22 )(1 µσ (14)

Para el ejemplo que se está analizando, los resultados de la simulación pueden ser:

• Número de aviones que entraron. • Número de aviones que salieron. • Tiempo total de espera. • Tiempo medio de espera. • Longitud media de la fila o cola. • Tiempo de utilización del Taller.

La utilización media se calcula considerando que la utilización es una variable que vale 1 cuando el taller está ocupado y vale 0 cuando el taller está libre; entonces, la utilización media es un promedio basado en tiempo y se calcula como sigue: Taller 1 = (2.5 + 3 + 2)/10 = 0.75 Taller 2 = (2 + 1.5 + 1)/10 = 0.45 Talleres utilizados = 0.75 + 0.45 = 1.2 El tiempo ocupado medio (tiempo ocupado/servicios) es un promedio basado en observaciones: Taller 1 = (2.5 + 5)/2 = 3.25 días Taller 2 = (2 + 1.5 + 1)/3 = 1.5 días Talleres = (3.25 + 1.5)/2 = 2.375 días

Page 16: Teoria de Modelos y Simulacion Cp4

Teoría de Modelos y Simulación. Sistemas Estocásticos. 16

Tiempo ocioso medio (tiempo libre/paradas), es un promedio basado en observaciones: Taller 1 = (1.5 + 1)/2 = 1.25 días Taller 2 = (2 + 1 + 1.5 + 1)/4 = 1.375 días Talleres = (1.25 + 1.375)/2 = 1.3125 días Un enfoque diferente para desarrollar el simulador consiste en centrar la atención en los procesos que se llevan a cabo en el sistema en lugar de los eventos. Para el caso de un único taller, el sistema se puede representar con los siguientes procesos (Figura 7): una fuente que genere los aviones que requieren mantenimiento, una cola FIFO (first in, first out) que represente la playa de espera, un servidor que represente el taller, y un sumidero que retire los aviones del sistema. Entonces, en este enfoque primero se debe implementar un modelo para cada proceso; luego, estos modelos se vinculan para formar el modelo del sistema.

Cola Servidor SumideroFuente

Fila TallerEntrada Salida

Figura 7: Sistema cola-servidor.

El enfoque basado en procesos es más cómodo para el usuario, ya que es mucho más fácil trabajar con procesos que con eventos. Por este motivo, la gran mayoría del software comercial adopta el enfoque de procesos. Sin embargo, éste enfoque es sólo una interfaz, en el interior del software es el enfoque orientado a eventos el que está implementado.