Documente Academic
Documente Profesional
Documente Cultură
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 oc urren 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 mod elo 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 equ ipos 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 re paració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 sist ema 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.
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 nuev o 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.
$0 $2000
FM
$1000 R1
SS RS
FM
F1 $0
F2 F2
$0 $1000 $0 $1000
R2 R2
F1 $0
FM
SR RR
$1000 R1
FM
$2000 $10000
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.
Esta probabilidad será utilizada para determinar si el evento ocurre o no en cada intervalo de
simulación.
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 R2
Probabilidades 0.04 0.04 0.12 0.12
Ocurre 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 permit ir 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 permita n obtener resultados más
Teoría de Modelos y Simulación. Sistemas Estocásticos. 3
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
F (t ) = 1 − e − λ t (4)
La probabilidad condicional será:
F (t ) − F (t − ∆t )
Pc (t ) = = F (∆t ) = 1 − e− λ ∆ t (5)
1 − F (t − ∆t )
El resultado es constante. Para λ.)t ≤ 0.1 la siguiente aproximación (que utiliza la serie de
Taylor) es válida:
Pc (t ) = F (∆t ) = λ ∆t (6)
f(x)
BM MA AM MB
1
0 12 24 t
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.
F (t ) = t (8)
donde t se mide desde que el evento es posible; es decir, desde tmin . Entonces, la probabilidad
condicional de cada evento es:
∆t
Pc (t ) = (9)
1 − (t − ∆t )
BM 10*∆tBP MA 30*∆t MP
BP MP AP
30*∆tMP MB 60*∆t AP AM
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 deb e calcularse
la energía producida en ese estado ya que todavía no fue computado por no haber abandonado
dicho estado.
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.
La Tabla 5 presenta los resultados obtenidos de una simulación utilizando las probabilidades
condicionales y ∆t = 1 mes. Las proba bilidades 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
Sin embargo, esta estrategia tiene algunos inconvenientes, los principales son:
• Lo más probable es que los eventos no se produzc an 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 des pué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.
Teoría de Modelos y Simulación. Sistemas Estocásticos. 8
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 registr an 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 Inicializar_Simulación;
Begin
Agendar(Evento_Iniciales.Tiempos,
Eventos_Iniciales.Nombres);
tiempo := Tiempo_Inicial
End;
Procedure Procesar_Agenda;
Begin
For Evento 0 Agenda do
If Evento.Tiempo = 0
then
Begin
Evento.Procesar;
Evento.Free
End
End;
Procedure Anvanzar_Reloj;
Begin
Paso := Mínimo(Eventos.Tiempos);
tiempo := tiempo + Paso;
For Evento 0 Agenda do
Evento.Tiempo := Evento.Tiempo-Paso
End;
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.
A di ferencia 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* ) Falla
t , donde se considera el tiempo que la
computadora estuvo sin funcionar.
F1 $0
S R
$1000+$2000*)t Falla R1
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 Evento Estado Costo
Futuro [$]
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
Una notable mejora del pro ceso 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 a viones. 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 repa ració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 alqu iler.
Taller 1 1 2 3 4 5 6
0 5 10
Taller 2 2 4 6
Taller 1 1 3 5
0 5 10
Figura 6: Tiempos de servicio de los talleres.
Estos resultados no son definitivos porque se ha tomado una muestra de apenas 10 días. Para
tener ma yor 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 mo delo 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:
Teoría de Modelos y Simulación. Sistemas Estocásticos. 13
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;
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 ev ento
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.
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:
1 n
µ = ∑ xi (10)
n i =1
1 n
σ2 = ∑
n i =1
( x i − µ )2 (11)
Para las estadísticas basadas en tiempo considerando que cada valor xi tiene una duración ti:
n
T = ∑ ti (12)
i =1
1 n
µ=
T
∑ xi t i (13)
i =1
1 n
σ2 =
T
∑ ( xi − µ ) 2 ti (14)
i =1
Para el ejemplo que se está analizando, los resultados de la simulación pued en 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
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.