Elementos de simulación. Apredizaje de todos los pasos de un

Anuncio
E LEMENTOS
DE
SIMULACI ÓN
Un enfoque práctico
con Witness
Marzo 2012
Universidad Politécnica de Madrid
Alvaro Garcı́a Sánchez
Miguel Ortega Mier
David Izquierdo Delgado
Índice general
Índice general
PROLOGO
A quién va dirigido el libro
Cómo utilizar el libro
No es un tratado exhaustivo de cómo utilizar Witness
No es un libro de teorı́a de simulación
De qué tipos de sistema se ocupa el libro
Explicar el formato del texto: cuadros grises, cuadros blancos, ¿más?
Sobre los materiales. Nomenclatura de los archivos, cómo están organizados,
etc.
Tipografı́as Criterio de tipografı́a:
Nombres de archivos Modelo.mod,Libro.xls
palabras resevadas de Witness PULL, PUSH
Palabras correspondientes a código: ((LOGNORML(2,0.2)))
Rutas para seguir menús: Menú / Submenú /Subsubmenú
Nombre de elementos en Witness Maquina001
3
Capı́tulo 1
INTRODUCCIÓN A LA SIMULACIÓN
1.1.
Introducción
Este libro se ocupa, con un carácter eminentemente práctico, de las estapas
que hay que realizar para desarrollar un estudio de simulación discreta. En este
capı́tulo se presentan los conceptos fundamentales sobre esta técnica a modo
de marco general para el conjunto de problemas y técnicas que se abordan en
el resto de los capı́tulos.
En primer lugar, se justifica la necesidad de recurrir a la simulación para estudiar determinados problemas (1.2). A continuación, se presenta un ejemplo
sencillo realizado con una hoja de cálculo para ilustrar cómo opera un modelo de simulación discreta (4.2). Sin embargo, un modelo de simulación es más
complejo que lo que se presenta en ese ejemplo, por lo que en el epı́grafe 1.4
se explica de qué elementos consta un modelo de simulación completo. Más
adelante, en el apartado 1.5, se explica con qué se alimenta y qué se obtiene de
un modelo de simulacı́ón. Además, junto con los aspectos relacionados con la
programación, un estudio de simulación implica otras actividades, las cuales
se presentan en el apartado 1.6. Finalmente, en el apartado 1.7 se describen
las alternativas disonibles para constuir un modelo de simulación.
1.2.
Estructura del
capı́tulo
Por qué simular
La utilización de modelos facilita el estudio de muchos sistemas. Generalmente, frente a la alternativa a ensayar directamente sobre el sistema estudidado,
resulta menos costoso y menos arriesgado elaborar un modelo del sistema y
estudiar su comportamiento mediante el análisis de ese modelo. Por ejemplo,
para el estudio del comportamiento de un edificio es recomendable elaborar
un modelo de la estructura correspondiente. A partir del análisis del modelo
se pueden establecer las caracterı́sticas de las vigas, los pilares, etc. para poder garantizar que la estructura cumplirá los requisitos establecidos para su
correcto funcionamiento.
La utilidad de
los modelos
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
5
Igualmente, el rediseño de una lı́nea de montaje de automóviles o la modificación de la operación de una empresa logı́stica se pueden estudiar mediante
modelos. Aunque la elaboración de un modelo puede ser relativamente costosa, con frecuencia, resulta menos costosa que los posibles costes derivados de
una decisión poco acertada.
Existen modelos de muy diferente naturaleza, tan diferentes entre sı́ como los
modelos fı́sicos y los modelos de simulación discreta. La naturaleza de dichos
problemas condiciona la idoneidad de los modelos utilizados y de las técnicas
apropiadas para explotar dichos modelos.
Existen multitud
de modelos
Los problemas que se plantean en Ingenierı́a de Organización consisten, en
con carácter muy general, obtener un buen (y si se puede, el mejor) funcionamiento de un sistema que opera con recursos limitados y sujeto a diferentes
restricciones. Por ejemplo, la Ingenierı́a de Organización se ocupa de la asignación de recursos a tareas, del rediseño de instalaciones, de la programación
de actividades, etc.
La Ingenierı́a de
Organización
Estos problemas se pueden abordar mediante modelos exactos. La Programación Lineal, la Teorı́a de Colas, la Programación Dinámica son ejemplos de
modelos para cuyo tratamiento existen técnicas exactas. Los modelos de este tipo permiten representar en términos analı́ticos tanto el problema como el
objetivo que se persigue con su estudio. Para muchos de estos modelos existen
técnias que permiten obtener la mejor solución para el problema estudiado. En
general, los métodos exactos son preferibles frente a otros.
Los métodos
exactos
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
6
UN MODELO EXACTO
Una empresa fabrica bicicletas y triciclos. Con la venta de una bicicleta obtienen un beneficio de 10 unidades monetarias (um) y con la de un triciclo 5
um. Como es natural, cada bicicleta necesita dos ruedas y cada triciclo tres.
Tanto las bicicletas como los triciclos necesitan el mismo tipo de manillar.
Si la empresa dispone de semanalmente de 100 ruedas y de 30 manillares,
¿cuál es la producción que le reporta un mayor beneficio?
Si se definen x1 como el número de bicicletas producidas semanalmente y
x2 el de triciclos, el beneficio se puede computar como 10x1 + 5x2 .
Por otro lado, el consumo de ruedas será 2x1 + 3x2 y no puede superar las
100 ruedas disponibles, con lo que deberá cumplirse 2x1 + 3x2 ≤ 100.
Igualmente, para los manillares deberá cumplirse x1 + x2 ≤ 30.
Por último, se debe cumplir que x1 , x2 ≥ 0.
El modelo siguiente es un modelo de Programación Lineal, para cuya resolución existen técnicas de resolución exactas, como el método del Simplex, que
permiten obtener la mejor solución al problema.
max z =10x1 + 5x2
sujeto a:
2x1 + 3x2 ≤ 100
(1.1)
x1 + x2 ≤ 30
x1 , x2 ≥ 0
Este es es un ejemplo muy sencillo de modelo de Programación Lineal, pero
exiten otros modelos de naturaleza diferente
Sin embargo, en ocasiones, no es posible construir modelos abordables con
métodos exactos. A veces, no es posible representar de la operación del sistema en términos analı́ticos o no es posible hacerlo en términos suficientemente
sencillos. En otras ocasiones, los modelos exactos son tan complejos que no
es posible obtener soluciones en tiempos de computación razonables. En estas
ocasiones, la simulación de eventos discretos puede ser muy interesante.
¿Cuándo
recurrir a la
simulación?
La simulación es especialmente adecuada en sistemas:
altamente complejos (donde no son válidos los modelos exactos),
de carácter dı́námico (es decir, el sistema estudiado evoluciona con el
tiempo) y
con fenómenos de carácter estocástico.
Existen muchos tipos de simulación y en muchas disciplinas. La dinámica de
sistemas o el método de Montecarlo, por ejemplo, son tipos de simulación
aplicados a problemas de Ingenierı́a de Organización.
Varios tipos de
simulación
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
La simulación de eventos discretos se caracteriza, fundamentalmente, por la
existencia de eventos (llegada de un cliente, finalización de la reparación de
una máquina), que desencadenan el cambio del estado de los elementos del
sistema (asignación de un vendedor al cliente, liberación del operario para
realizar otras tareas) y desencadenan nuevos eventos para los cuales se calcula
el instante en el que se producirán (llegada del nuevo cliente, nueva averı́a de
la máquina). Como resultado de lo anterior, en la simulación discreta el estado
del sistema cambia de forma discreta con el tiempo y no existen funciones que
dependan explı́citamente del tiempo.
7
Eventos y
estados
A continuación, en la sección (4.2), se presenta un ejemplo sencillo de simulación discreta mediante la utilización de una hoja de cálculo y, más adelante,
(en la sección 1.4) se presentan los elementos especı́ficos de un modelo de
simulación discreta.
Conviene señalar que los modelos de simulación son de carácter descriptivo.
Esto significa que permiten reproducir el comportamiento del sistema pero,
por sı́ solos, no ofrecen soluciones buenas u óptimas con respecto a algún
criterio. Los modelos normativos, como la Programación Lineal, permiten describir el comportamiento del sistema y sı́ guı́an el proceso de búsqueda de soluciones. Por ello, es importante la intervención del analista para la explotación
de un modelo de simulación. También, en ocasiones, se combina la simulación
con técnicas para la búsqueda de soluciones en lo que se conoce, en inglés,
como Simulation Optimization.
1.3.
Un ejemplo sencillo
En este epı́grafe se presenta un problema sencillo que puede ser tratado mediante el desarrollo de un modelo de simulación basado en una hoja de cálculo.
Este tipo de simulación se conoce como Método de Montecarlo, en el que se utilizan los números aleatorios distribuidos entre 0 y 1 para resolver problemas
en los que aparecen fenómenos tanto de carácter aleatorio como determinista.
Modelos
descriptivos
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Un depósito que contiene carbón atiende una demanda diaria de cantidad
variable, de manera que cada dı́a se expide con un camión con una carga de
entre 70 y 130 Tm. A partir de datos históricos se ha establecido la frecuencia
de ocurrencia para los distintas cantidades exedidas, que figuran en la tabla
siguiente.
Salidas (Tm)
% casos observados
70
7
80
10
90
18
100
28
110
21
120
10
130
6
El aprovisionamiento del depósito se realiza por medio de trenes que
transportan una cantidad de carbón constante, pero que llegan a intervalos
de tiempo variables (variando entre los 2 y los 8 dı́as). Las frecuencias de
ocurrencia de los diferentes valores para el intervalo de tiempo entre llegadas
figuran en la tabla siguiente.
Tiempo entre llegadas (dı́as)
% casos observados
2
5
3
13
4
17
5
27
6
23
7
10
8
5
Teniendo en cuenta los patrones de demanda y del intervalo entre trenes, se
ha fijado el lote con el que cada tren alimenta el depósito en 500 Tm. Por otra
parte, para cubrirse frente la aleatoriedad de la demanda y del tiempo entre
llegadas de los trenes, a primeros de año se puede comprar a un suministrador exterior una cierta cantidad que permite comenzar el año con un nivel de
inventario inicial.
La demanda no se puede diferir, es decir, la demanda que no se atiende un
dı́a no se sirve otro dı́a, se trata de demanda perdida.
El coste de almacenaje (CA) es 0,2 u.m./(dı́a y Tm) y el coste de carencia (CC)
es 100 u.m. cada dı́a que se produce una carencia, es decir, este coste es independiente de la cantidad no servida.
Se trata de determinar el nivel inicial de inventario que permita minimizar el
coste total.
Este problema es sencillo y se podrı́a abordar de forma exacta mediante la
aplicación de la Teorı́a de Colas. A modo de introducción, a continuación, se
presenta un modelo de simulación, realizado con Excel, bastante simple con
el que poder estudiar el comportamiento del sistema para diferentes valores
del nivel se stock inicial. El archivo Ejemplo1-1.xls está elaborado para facilitar la construcción dicho modelo y poder llegar al resultado, disponible en
Ejemplo1-1 Solucion.xls
8
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
9
Como en cualquier modelo (y en particular si es de simulación), es necesario
realizar hipótesis acerca del sistema. En primer lugar, se admite que la frecuencia relativa de los casos observados es igual a la probabilidad de que ocurra
cada valor. Es decir, se espera que la probabilidad de que la demanda de carbón
correspondiente a un dı́a cualquiera sea de 80 Tm es 0.1.
Hojas de cálculo
y simulación
Para reproducir el comportamiento del sistema se admite que el tiempo avanza
en intervalos de tiempo constantes e iguales a un dı́a. Ası́, para simular la
evolución del sistema se obtendrá el estado del sistema a lo largo de los 365
dı́as de un año.
Hipótesis del
modelo
El archivo consta de dos hojas:
una con las distribuciones (((Distribuciones))) y
otra con la simulación (((Simulacion)))
Estructura del
archivo .xls
La hoja ((Distribuciones)) contiene la información necesaria para generar valores de las variables aleatorias correspondientes a la llegada de trenes y a la
demanda diaria, conforme a las probabilidades que se han admitido como válidas. En la figura 1.1 aparecen las celdas correspondientes a la generación de
la demanda diaria. Las tres primeras columnas contienen la siguiente información: la función de probabilidad (primera columna), la función de distribución
(segunda columna) y los posibles valores que puede tomar la variable aleatoria
(tercera columna).
A partir de esas tres columnas, hay otras dos columnas dispuestas de tal manera que mediante la función de Excel ((CONSULTARV)) (o ((BUSCARV)) para
versiones anteriores a Office 2010) y a partir de un valor aleatorio entre 0 y
1 es posible generar valores de la demanda consistentes con la función de
probabilidad (ver cuadro 1.3).
Generación de
números
aleatorios
PENDIENTE: poner captión al cuadro, que aparece referenciado como cuadro 1.3
FUNCIÓN ((CONSULTARV)) EN EXCEL
La
((CONSULTARV(Valor buscado;Matriz buscar en;-
función
Indicador columnas;Ordenado))) busca en una tabla el Valor buscado
en
la
primera
columna,
situada
más
a
la
izquierda,
ve el valor que está en la fila del Valor buscado
na
para
situada
los
en
datos
la
de
posición
la
hoja
Indicador columnas.
Distribuciones,
al
y
devuel-
en la colum-
De
esta
invocar
((CONSULTARV(0.59;Distribuciones!G19:H26;2;VERDADERO))),
la
se
manera,
función
busca
en la primera columna de las celdas sombreadas de la figura 1.1 el primer
valor que supera 0.59 y devuelve el valor que está situado a su derecha: 100.
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
10
Figura 1.1: datos históricos para la demanda diaria (en Tm).
La hoja ((Simulación)) contiene la información relativa a la evolución del sistema. Por un lado, a modo de resumen, en la parte superior (figura 1.2) aparece
el valor del stock inicial (que es objeto de decisión) y los costes del stock, de las
carencias y la suma de los dos para un posible año de operación del sistema.
Figura 1.2: resumen del comportamiento del sistema.
El resto de la hoja contiene la información relativa a la simulación del sistema.
Existen cuatro grupos de columnas, que permiten estudiar diferentes aspectos.
Contador de tiempos (columna A), donde se registran los enteros entre 1
y 365, de manera que cada fila contiene la información correspondiente
a cada uno de los de los 365 dı́as del año.
Llegada de trenes (columnas B-E), que contiene el dı́a en en las que llegará el siguiente tren, información con la cual se actualiza el valor del
stock cuando corresponde.
Generación de la demanda (columnas F y G), en las que se genera la
demanda diaria de carbón.
Evolución del stock (columnas H-J), donde se calculan los valores del
stock.
Cómputo de los costes (columnas K y L, que permite calcular los costes
de stock y los costes de carencia.
Existen tantas filas como dı́as más una fila inicial en la que se genera la información relativa a la llegada del primer tren. Cada fila contiene la información
correspondiente a los trenes, la demanda, el stock y los costes de ese dı́a.
La simulación
propiamente
dicha
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
11
Las columnas B-E, sombreadas en azul, reproducen el la información relativa
a la llegada de trenes.
La primera fila sirve para realizar la inicialización del modelo. Para generar
cuándo tendrá lugar la llegada del primer tren. Para ello, tal y como se explica
en el epı́grafe 3.5 del capı́tulo 3, se genera un número aleatorio entre 0 y 1,
con lo que se genera el tiempo hasta la llegada del primer tren. Este mismo
proceso habrá que realizarlo cada vez que llegue un tren. El evento “llegada
de un tren” desencadena el siguiente evento llegada de tren. En la columna
B figuran los números aleatorios necesarios para generar los intervalos entre
trenes y en la columna C figuran los valores de los intervalos correspondientes
a los números aleatorios generados.
La columna D almacena el instante (no intervalo) en el que llegará el siguiente
tren. Para el caso del primer tren, ese instante coincide con el valor del intervalo (porque el instante inicial es 0). Para el resto de trenes, cada vez que llega
un tren se calcula el instante en el que llegará el siguiente como el dı́a actual
más los dı́as correspondientes al intervalo entre llegadas, valor generado en la
columna C. Cuando no hay llegada de tren, el dı́a en el que llegará el siguiente
tren no se modifica.
Por último, la columna E indica si el dı́a correspondiente llega o no llega tren.
Si llega, será necesario modificar el valor del stock y generar la llegada del
siguiente tren.
Figura 1.3: llegada de trenes.
Por ejemplo, el la figura 1.3 se observa que el dı́a 5 llega un tren. Cuando eso
ocurre, se genera un nuevo valor para la próxima llegada (columna D), el dı́a
11. Para ello, primero se genera un número aleatorio entre 0 y 1 (columna B),
a partir del cual se obtiene el número de dı́as hasta el siguiente tren (columna
C), en este caso es 5. Finalmente, el dı́a en el que llegará el siguiente tren se
obtiene como el dı́a actual (5) más el número de dı́as hasta el siguiente tren
(6). En las filas siguientes, el valor de dicha columna no cambia hasta que el
contador de dı́as (columna A) tiene el valor 11. Cuando esto es ası́, se realiza
la misma operación nuevamente.
Llegada de
trenes
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
12
Las columnas F y G, sombreadas en amarillo, permiten generar la demanda.
Todos los dı́as existe una demanda. Para cada dı́a (cada fila) se genera, primero
una número aleatorio entre 0 y 1 (columna F ), y con ese valor, se genera un
valor de la demanda (columna G)
Las columnas H-J, sombreadas en gris, reproducen la evolución del stock.
Consta de tres columnas que permiten registrar:
el stock teórico, columna H, como resultado de la diferencia entre lo que
entra al depósito y lo que sale, y que puede ser negativo;
el stock real, columna I, que es el máximo entre el stock teórico y 0; y
la existencia de carencia o no, columna J; se produce una carencia si el
stock teórico es menor que el real (es decir, cuando el stock real es igual
a 0 y no se ha podido atender la demanda de ese dı́a).
Generación de
la demanda
Evolución del
stock
Las columnas K y L, en color salmón, computan los de cada dı́a.
Costes de stock, columna K. Para cada dı́a se puede calcular el coste del
stock como el proucto del stock del depósito multimplicado por el coste
unitario por dı́a y Tm de carbón.
Costes de carencia, columna L. Cuando se producen una carencia (figura
un “SI” en la columna J se computa el coste de carencia, de 100 um.
Cómputo de los
costes
Las celdas B6 contiene el coste para la simulación de uño completo, que es la
suma de todos los costes de stock (computados en B4) y todos los cotes de
carencia (computados en B5).
En las opciones de Excel, se ha activado la opción de actualización manual. Se
puede modificar esta opción accediendo a Herramientas/Opciones/Calcular,
tal y como se puede observar en la figura 1.4. Al pulsar F 9 se generan
nuevos valores aleatorios en todas las celdas que contengan la expresión
((ALEATORIO())).
Análisis
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Figura 1.4: opciones de Excel. Calcular automática o manualmente.
Pulsando repetidamente F 9 se obtienen diferentes valores de los costes. Adicionalmente, se puede modificar la celda correspondiente al stock inicial B3
y obtener, igualmente, diferentes valores del coste para dicho stock inicial.
Realizando esto, se pueden comprobar varias cosas. En primer lugar, para un
determindado valor del stock inicial, cada vez que se actualizan los valores de
los números aleatorios, se producen eventos en instantes diferentes y, por lo
tanto, los costes son diferentes. Además, en general, para valores elevados del
stock inicial se obtienen costes de carencia altos y costes de stock reducidos.
Al contrario, si el stock inicial es elevado, el coste de carencia es reducido a
costa de asumir un coste de stock mayor
Se ha reproducido el comportamiento del sistema durante un año. Cada vez
que se modifican los números aleatorios se obtiene un posible comportamiento del sistema durante un año, se dice que realiza una replicación. A pesar
de poder observar varios fenómenos, como los que se han comentado, existen
algunas cosas que no quedan resueltas:
Para alimentar el modelo, la probabilidad de que cada variable aleatoria
tome un determinado valor es igual a la frecuencia relativa con la que se
ha observado dicho valor, pero ¿es esto válido?
Los valores de las variables aleatorias se he realizado a partir de la función ((ALEATORIO())), ¿es correcto?
Una sóla replicación puede no ser representativa del comportamiento
del sistema, y como no es posible saberlo, realizar una sola replicación
es insuficiente. Es necesario realizar varias repliaciones, pero ¿cuántas?
Incluso sabiendo el número de replicaciones adecuado, ¿basta con obtener la media de los costes de todas las repliaciones?
En este caso, interesarı́a comparar los costes para diferentes valores del
stock inicial. ¿Basta comparar las medias obtenidas para un conjunto de
replicaciones?
13
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Las cuestiones anteriores son algunos ejemplos de los aspectos que hay que
tener en cuenta al realizar un estudio de simulación. A lo largo de los capı́tulos
del libro se abordan las cuestiones más importantes para realizar de forma
correcta un estudio de simulación.
14
Algunas
cuestiones
pendientes
El ejemplo planteado es un caso sencillo de simulación discreta en el que la
realización de determinados eventos desencadena otros y modifica el estado
de los elementos del sistema. Por ejemplo, el evento llegada de un tren genera
otro evento (la llegada del siguiente tren) y modifica el estado de un elemento
(el stock se incrementa en 500 Tm. En el siguiente epı́grafe se describen todos
los elemntos de un modelo de simulación discreta.
1.4.
Elementos de un modelo de simulación
Los problemas que se abordan mediante simulación discreta son más complejos que el sistema del ejemplo anterior. En esos sistemas hay más elementos,
más eventos y más estados. Por ejemplo, un puesto en una lı́nea de montaje
puede estar en diferentes estados: ocioso, trabajando, averiado, esperando a
un operario, etc. Igualmente, puede haber diferentes eventos: averı́a del puesto, fin de operación, comienzo de operación, fin de reparación, etc. La generación de eventos y la modificación de estados son aspectos nucleares de la
simulación de eventos discretos. En el siguiente apartado se presentan todos
los elementos de un modelo de simulación de eventos discretos.
Eventos y
estados
Para gobernar de forma sistemática estos cambios, un modelo de simulación
consta de (ver [1], pág. 9):
El estado de sistema, es decir, un conjunto de variables que permitan
describir el estado de los diferentes elementos del sistema
El reloj de la simulación, que es un contador que guarda registro del
instante en el que se encuentra la simulación.
La lista de eventos, donde se almacenan los eventos que deben tener
lugar y cuándo deben ocurrir (por ejemplo, la lista de eventos puede
contener la inforamción siguiente “cuando el reloj de la simulación tome
el valor 32.27 el llegará una nueva llamada al sistema”).
Un procedimiento de inicialización, es decir, un programa para que el
estado del modelo de simulación sea el deseado.
Un procedimiento de actualización del reloj, para gobernar cómo avanza
el reloj de la simulación.
Un procedimiento para la generación de eventos, para generar eventos a
partir de la ejecución de eventos previos y del cambio de estado de los
elementos del sistema.
Procedimientos para la generación de valores de variables aleatorias.
Elementos de un
modelo de
simulación
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
15
Un generador de informes, que por defecto ofrece información sobre el
comportamiento del sistema (contadores, niveles de ocupación, etc.)
El programa principal, que gobierna la ejecución de todo el modelo e
invoca, cuando corresponde, a cada uno de los elementos interiores.
El ejemplo anterior, a pesar de ser muy sencillo, incluye una versión poco sofisticada de algunos de estos elementos. Por ejemplo, la celda que contiene el
valor del stock inicial forma parte de la inicialización. Las columnas donde se
almacenan tanto la demanda como el siguiente dı́a en el que se producirá una
llegada de tren actúan como las variables de un modelo de simulación. Por
último, la primera columna hace las veces del reloj de la simulación, y para
cada lı́nea se puede observar el estado del sistema.
Todos los paquetes de simulación comerciales incluyen estos elementos y facilitan enormemente el desarrollo y la explotación de modelos de simulación.
En particular, en el capı́tulo 2, se presentará la forma que adoptan estos elementos para el caso de Witness.
1.5.
Variables de entrada. Variables de salida. Parámetros
El ejemplo del apartado 4.2 se ha presentado un modelo que podrı́a utilizarse
para determinar el nivel del stock inicial necesario para conseguir el mı́nimo
valor posible de los costes de stock y de carencia. Y para ello, se disponı́a la
información relativa los comportamientos tanto de la demanda y como de la
llegada de trenes. Toda la información anterior se puee clasificar de la siguiente manera.
Datos de entrada, que son aquellos datos que sirven para alimentar el
modelo, dentro de los cuales se pueden distinguir dos tipos.
• Los datos relativos a los trenes y a la demanda, sobre los cuales el
decisor no tiene control. Para este problema, la demanda es algo
que no se puede moficiar, como tampoco la cantidad de carbón y
el tiempo entre llegada de los trenes
• El valor de stock inicial, sobre el cuál el decisor sı́ tiene control. De
hecho, el estudio se realiza para determinar el valor del stock inicial
más adecuado.
Datos de salida, que son los datos que se obtienen al ejecutar el modelo,
que son los costes de stock y de carencia.
Estos tres grupos de datos aparecen en cualquier estudio de simulación y se
denominan, respectivamente, variables de entrada, parámetros y variables de
salida (figura 1.5)
Variables y
parámetros
para el ejemplo
de la hoja de
cálculo
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Variables de entrada
MODELO
16
Variables de salida
Parámetros de diseño
Figura 1.5: variables y parámetros.
En general, los datos que alimentan y los que se obtienen de un modelo se
definen de la siguiente manera.
Variables de entrada. Las variables de entrada son todos aquellos datos
de entrada sobre los cuales el decisor no tiene control. Por ejemplo: la
frecuencia con la que llegan las llamadas de a un centro de atención
telefónica, el tiempo entre averı́as de una máquina, la demanda de un
determinado prodcuto, etc.
Parámetros. Los parámetros son aquellos datos de entrada sobre los cuales el decisor tiene control. Tı́picamente, en un estudio de simulación se
trata de obtener un conjunto de valores de los parámetros (es decir, una
configuración del sistema) satisfactoria o buena de acuerdo con algún
criterio. Por ejemplo: el número de puestos de atención al cliente en una
oficina, la cantidad de operarios con los que se cuenta en el sistema, el
orden en que se realiza un conjunto de operaciones (el emabarque a un
avión), etc.
Variables de salida. Las variables de salida son todos aquellos valores
que permiten conocer la bondad del funcionamiento del sistema estudido. Como se ha dicho, con el desarrollo de un estudio de simulación se
pretende obtener una buena solución con respecto a algún criterio. Los
valores de las variables de salida permiten evaluar el sistema. Por ejemplo: el beneficio derivado de una nueva instalación, el nivel de saturación
de los controladores aéreos, la productividad de una lı́nea de montaje,
etc.
Por último, conviene notar que según el estudio del que se trata un mismo
elemento puede ser o bien una variable de entrada o bien un parámetro. Por
ejemplo, en el diseño de las instalaciones de un nuevo aeropuerto, la tasa de
averı́as de las máquinas que realizan el escaneado de las maletas puede ser
un parámetro, ya que en ese tipo de estudio se pueden emplear diferentes tipos de máquina, cada una de ellas con su tasa de averı́as correspondiente. Sin
embargo, en el rediseño de las operaciones de control de equipaje de un aeropuerto existente (salvo si existe la posibilidad de invertir en nuevas máquinas),
el dato de la tasa de averı́as es una variable de entrada.
Definiciones y
ejemplos
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Para desarrollar de forma correca un estudio completo de simulación, es importante, en cada caso, identificar cuáles son las variables de cada tipo y cuáles
son los parámetros. A continuación se presentas todas las etapas que componen un estudio.
1.6.
Etapas de un estudio de simulación
Hasta el momento se han presentado algunos aspectos esenciales de la simulación discreta y se ha construido un primer ejemplo sencillo. El pequeño
ejercicio de modelado con la hoja de Excel representa sólo una etapa de todas
las que componen un estudio de simulación. En la figura 1.6 se presentan un
posible conjunto de etapas en las que se separan todas las tareas del estudio. A pesar de que la figura las muestra de forma secuencia, es frecuente que
los resultados de una etapa o la adquisición de nueva información obliguen a
volver a alguna etapa previa.
DE
O E
DE
O
DEL
EM
E O D DE
D O
MODELO
O E
L
MODELO
OM
O
MODELO
O M
O
E
LO
D E O DE
E E ME O
DO ME
M L
E L
DO
Figura 1.6: etapas de un estudio de simulación.
La definición del sitema y de los objetivos que se persiguen con el estudio es
una primera tarea que condiciona el resto del estudio. La definición del sistema
pasa por establecer cuáles son los elementos que son parte del sistema y cuáles
no.
17
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Por otro lado, los objetivos que se persiguen con el estudio de simulación condicionan la selección de variables de salida y el nivel de detalle del modelo. Por
ejemplo, un modelo de un operador logı́stico que quieres realizar un estudio
para determinar el tamaño de la flota de camiones es muy diferente un modelo
para establecer la forma de operación de los muelles de un almacén. Mientras
en el segundo caso será neceario reproducir con detalle los movimientos del
material destinado a la manutención de la mercancı́a, en el segundo no lo será.
Igualmente, las variables de salida de uno y otro modelo serán diferentes.
18
Definición del
sistema y de los
objetivos
Para poder continuar es necesario recopilar información relevante para la
construcción del modelo, relativas a las variables de entrada, a los posibles
valores de los parámetros, respecto a la forma en la que opera el sistema o las
formas en las que puede operar, etc.
La realización de cualquier modelo de un sistema real exige asumir ciertas
hipótesis simplificadoras. Lo deseable es disponer de un sistema sencillo y que
represente suficientemente bien el sistema estudiado. El conjunto de hipótesis
que se realizan al respecto del funcionamiento del sistema se conoce como
modelo conceptual. Por ejemplo, el tiempo de realizacion de una tarea por
parte de un opeario de una linea de montaje no es perfectamente determinista
y, sin embargo, se puede admitir como válido que sı́ lo es. Igualmente, a pesar
de que un proceso quı́mico es continuo, en un estudio se puede realizar un
tratamiento discreto, admitiendo que todas las cantidades de productos se
pueden representar en términos de paquetes de 100 m3 .
Recogida de
datos
En un estudio de simulación es habitual que participen profesionales muy diferentes: el responsable último que aprueba y toma decisiones a partir del
modelo, la persona que va a emplearlo cuando sea necesario, programador
del modelo, el interlocutor entre el programador y el decisor, etc. Los conocimientos sobre programación y simulación de todos los participantes es muy
dispar. Por ello y para garantizar que todas las partes comparten las directrices del trabajo que hay que realizar, se construye un modelo comunicativo,
que puede ser interpretado, modificado, utilizado, etc. por los participantes en
el proyecto.
Modelo
conceptual
La figura 1.7 ofrece un posible modelo comunicativo en el que se explicitan algunas de las hipótesis del modelo. Por ejemplo, se admite que la demanda tiene
lugar después de que llegue el tren, el dı́a en el que llega un tren. Podrı́a haberse admitido el orden inverso, y habrı́a tenido efectos sobre el resultado de la
simulación. Este modelo comunicativo no contiene expresiones matemáticas,
pero podrı́a haberlo incluı́do. Dependiendo de los participantes en el estudio,
convendrá utilizar diferentes elementos en el modelo comunicativo.
Modelo
comunicativo
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
19
Inicialización
Stock inicial
Costes
Actualización del reloj
de la simulación
sí
Aumento del stock en
500 Tm
¿Llega tren?
no
Generación de la
demanda
no
sí
¿Hay stock para atender
la demanda?
no
Actualización del nivel
de stock de acuerdo
con la demanda
Cómputo del coste de
carencia
Nivel del stock a 0
Cómputo del coste del
stock
¿Se ha simulado un
año?
sí
Informe con
costes
Figura 1.7: ejemplo de modelo comunicativo.
Una vez definido el estudio que se quiere realizar (habiendo realizado las etapas anteriores), es necesario construir el modelo informático. Dado que la
simulación de sistemas complejos implica la realización de numerosos cálculos, es absolutamente necesario desarrollar un programa que reproduzca el
comportamiento previsto por el modelo conceptual, alimentarlo con las variables de entrada adecuadas y con el que examinar diferentes valores de los
parámetros.
Cuando se dispone del modelo informático, es el momento de realizar su explotación. Para ello es necesario definir diferentes experimentos con los que
evaluar diferentes alternativas y extraer conclusiones al respecto del funcionamiento del sistema estudidado.
Modelo
informático
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
20
Tras haber realizado el estudio correctamente, es el momento de tomar decisiones consistentes con el análisis realizado gracias al modelo.
Explotación y
diseño de
experimentos
Finalemente, y como en proyectos de otra naturaleza, es neceario documentar el trabajo realizado. Para poder explotar de forma correcta el modelo en
ocasiones sucesivas, para poder introducir modificiaciones consistentes con
posibles cambios del sistema modelado, etc. conviene documentar de forma
exhaustiva el trabajo realizado. De no ser ası́, es altamente probable que el
modelo no sea de utilidad en el futuro.
Documentación
e implantación
de resultados
A lo largo de todo el proceso hay tres aspectos esenciales y que aparecen
reflejados en la figura 1.6, de los cuales depende el éxito de un estudio de
simulación
Validación. Se dice que un modelo es válido si ofrece una representación correcta para los objetivos perseguidos. Para que un modelo sea
válido debe “comportarse como la realidad”. En la figura 1.6 aparece en
dos puntos del proceso. Por un lado, el modelo conceptual debe ser adecuado para el sistema estudiado. Es decir, las hipótesis admitidas deben
ser aceptables. Sin embargo, algunas la validez de esas hipótesis no se
puede contrastar en esa etapa del proceso, sino que es necesario disoner
del modelo de simulación construido y, entonces, comparar el comportamiento del sistema real con los resultados que ofrece el modelo de
simulación. En el caso de que no exista el sistema, no es posible hacer
esto, porque no existe sistema real con el que comparar, por lo que conviene utilizar otras estrategias de validación.
Verificación. La verificación de un modelo consiste en depurar el modelo,
es decir, garantizar que el modelo “se comporte como nostros queremos
que lo haga”. El modelo debe ser consistente con el modelo conceptual
y, por lo tanto, con el modelo comunicativo donde está especificado.
Credibilidad. Por último, para que un estudio de simulación se realice
con éxito, es necesario que sea creı́ble, es decir, que la personas responsables del sistema concedan crédito a dicho modelo. Es relativamente
frecuente encontrar buenos estudios de simulación que no cuentan con
el apoyo de los directivos o de los responsables que deberı́an hacer uso
de ellos y de sus resultados. En esos casos, el modelo resulta inútil.
En este libro, a lo largo de los capı́tulos, se presentan los aspectos más imporantes de las etapas que se han comentado. En cada caso, se ofrecen las
técnicas más frencuentemente utilizadas, primero con una introducción teórica y después con ejercicios de aplicación práctica.
Verificación,
validación y
credibilidad
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
Algunos aspectos quedan fuera de o que se puede abordar en un texto de
la naturaleza de este. Por ejemplo, la credibilidad de un modelo es de difı́cil
tratamiento si no es es un caso real. Igualmente, la validación de un modelo
pasa por disponer de un sistema del cuál obtener datos para contrastar en
qué medida los resultados que ofrece el modelo de simulación correspondiente
se ajustan a aquellos datos.
1.7.
Software para la elaboración de modelos de simulación
La etapa central de un estudio de simulación es la construcción del modelo
informático. Existen diferentes alternativas para desarrollar el modelo.
Hojas de cálculo (como en el epı́grafe 4.2). Las hojas de cálculo, aun
cuando pueden incluir algún tipo de macro para modelar situaciones mas
compleas, permiten abordar sistemas poco sencillos y son demasiado
pobres para represenar medianamente complejas.
Software de propósito general. Lenguajes de programación como C++,
C#, Java, etc. permiten construir cualquier modelo de simulación, por
complejo que sea.
Software especı́fico. En los comienzos de la simulación discreta existı́an
lenguajes de programación desarrollados para la construcción de modelos de simulacion, algunos de los cuales existen y se siguen utilizando,
como GPSS o GPSS/H. Actualmente existen entornos de simulación basados en lenguajes parecidos y que incluyen elmentos especı́ficos y un
entorno gráfico para la construcción de modelos. Además, ofrecen más
prestaciones, como por ejemplo, módulos de representación en 3D, de
análisis de datos o paquetes de “optimización”. Witness, Arena, Promodel o Simul8 son algunos de ejemplos de estos tipos de entornos.)
21
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
-
Hojas de cálculo
Para casos muy sencillos
Lenguajes de propósito general
C++, C#, Java…
Lenguajes de simulación
Coste del software
Esfuerzo de programación
+
Entornos de simulación
Witness
-
Arena
Promodel
Simul8
+
Figura 1.8: alternativas de software para el desarrollo de modelos de simulación.
Tal y se indica en la figura 1.8 existe un compromiso entre el precio de la solución adoptada para construir el modelo y el esfuerzo necesario para construir
un modelo de simulación. Los entornos de simulación son relativamente caros
pero facilitan enormemente la construcción de elementos.
Todos los ejercicios prácticos que empleados en este libro (salvo el de este
capı́tulo) se han desarrollado usando Witness 2008, herramienta desarrollada
por Lanner Group, a cuyo estudio se dedica el capı́tulo siguiente.
1.8.
Resumen
La utlización de modelos facilita el estudio de muchos sistemas. En general, los
métodos exactos son preferibles, pero en muchos casos no es posible formular
modelos exactos o no es posible resolverlos. Principalmente en estos casos, la
simulación discreta consituye una herramienta muy valiosa.
La simulación de eventos discretos se caracterı́za por la descripción del sistema estudiado en términos del estado de sus elementos, que cambia con la
ocurrencia de eventos, que, a su vez, desencadenan nuevos eventos. Mediante
un modelo informático se incorporan estos aspectos, para lo cual se dispone
de diferentes alternativas. Sin embargo, la parte de construcción del modelo
informático es sólo una de las etapas de las que consta un estudio de simulación, que comienza con la definición del sistema y de los objetivos del estudio
y finaliza con la implementación de los resultados y la documentación del tra-
22
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
bajo realizado.
En los capı́tulos que siguen se presentan las técnicas más importantes para
la realización de un estudio de simulación de eventos discretos correspondientes a las etapas descritas en el epı́grafe 1.6. Cada capı́tulo consta de una
introducción de carácter teórico con la presentación de los aspectos esenciales. Después, se proponen ejemplos de aplicación sencillo desarrollados en
Witness.
23
Capı́tulo 1. INTRODUCCIÓN A LA SIMULACIÓN
dd
24
Capı́tulo 2
CONSTRUCCIÓN DE MODELOS CON WITNESS
2.1.
Introducción
Para la construcción de modelos de simulación existen diferentes alternativas,
tal y como se comentó en 1.7. Una de ellas, consiste en utilizar entornos especı́ficos de simulación. Estos entornos son más caros que las herramientas de
programación de carácter general. Como contrapartida, facilitan enormemente
la tarea de contrucción, verificación y explotación de los modelos. En primer
lugar, incorporan elmentos especı́ficos para construir los modelos. En segundo, disponen de múltiples funcionalidades para generar valores de variables
aleatorias, realizar animaciones, analizar los valores de las variables de salida,
etc.
Witness es uno de estos entornos profesionales, desarrollada por Lanner
Group Ltd, Witness permite construir modelos de forma sencilla y ofrece todas
herramientas para poder crear modelos complejos y representar multitud de
sistemas reales.
Witness
El el apartado siguiente, 2.2, se presenta el conjunto de módulos que acompañan a Witness y que permiten realizar diferentes tareas relacionadas con el
desarrollo de un estudio de simulación. En el apartado 2.3 se describen los
aspectos fundamentales relativos a la manera en la que se construyen los modelos usando Witness. A continuación, los elementos que permiten constuir
modelos se presentan en el epı́grafe 2.4. Finalmente, en los apartados 2.5 - 2.9
se desarrollan cinco modelos sencillos que ilustran todo lo anterior.
Estrucutra del
capitulo
Este capı́tulo no pretende ser un manual exhaustivo orientado al aprendizaje
de Witness. El objetivo es, por un lado, dar a conocer los aspectos fundamentales que permitan entender e, incluso, elaborar todos los modelo que se utilizan
en es texto. Además, este capı́tulo permite una primera toma de contacto con
Witness.
Objetivo del
capı́tulo
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
Para aprender más sobre la programación con Witness, recomendamos la lectura del documento Getting Started (referencia PENDIENTE), la consulta de la
ayuda de Witness y de los ejemplos que se proporcionan en la carpeta Demo
en el directorio de instalación de Witness. Para conocer más sobre la aplicación de Witness a diferentes situaciones, recomendamos visitar la página de
Lanner, http://www.lanner.com/.
2.2.
26
Para
profundizar
Witness 2008
Con Witness es posible desarrollar y explotar modelos de simulación. Para extender las posiblidades, Lanner ofrece un conjunto de módulos que se pueden
utilizar junto con Witness, que son las siguientes.
Witness Scenario Manager. Este módulo facilita la explotación de los resultados de los modelos elaborados. Permite, de forma sencilla, gestionar
el número y la longitud de las replicaciones, el tiempo de calentamiento.
Facilita el estudio de diferentes configuraciones, es decir, de diferfentes valores de las caracterı́sticas de un modelo. Por ejemplo, es sencillo
evaluar el tiempo medio de los clientes en una cola, para diferentes escenarios corresondientes a diferentes número de personas que atienden
la cola. Admemás, permite obtener de forma sencilla intervalos de confianza para diferntes valores. La información que obtiene del modelo se
puede exportar a otro software (hoja de cálculo, software de estadı́stica)
para realizar análisis más avanzados.
Witness Optmizer. Con este módulo es posible gobernar la búsqueda
de soluciones buenas para el modelo estudiado mediante algoritmos de
búsqueda eficientes. Por ejemplo, el tiempo que tarda un donante en
realizar todo el proceso de donación en un hospital puede depender,
del número de profesionales de cada tipo (administrativos, enfermeros,
médicos) del número de camas, del reparto de tareas entre el personal,
etc. Generalmente, el número de combinaciones es muy elevado y resulta inviable evaluar toda las combinaciones. El módulo Witness Optmizer
incluye diferentes algoritmos para explotar combinaciones y encontrar
buenas soluciones.
Witness Presentation Manager. Este módulo permite presentar de forma
muy visual los resultados de un modulo de simulación, con diferentes tipos de elementos parecidos al cuadro de mandos de una máquina. De
esta manera, se puede disponer de forma muy visual la información relevante del comportamiento del sistema, tanto durante su ejecución como
al final de la misma.
Realidad Virtual. El modelo de realidad virtual permite constuir animaciones en tres dimensiones de los modelos de Witness. Esto puede permitir disponer de una visión más realista del comportamiento del sistema.
En particular, los resonsables del sistema para el que se desarrolla el
Witness Suite
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
27
modelo de simulación pueden establecer más sencillamente la analogı́a
entre el modelo y su sistema.
Documentor. Por último, con el módulo Documentor se puede generar
un archivo .rtf que permite recopilar de forma sistemática toda la información de los elmentos de un modelo y de su comportamiento. Como
se verá a lo largo del texto, el código en un modelo de simulación aparece
en diferentes elementos y algunas caracterı́sticas pueden no quedar bien
documentadas. Este módulo facilita esta tarea.
Además, Lanner ofrece herramientas de simulación de carácter especı́fico para
algunas actividades, por ejemplo, para el sector farmacéutico. De todo el conjunto de productos, Witness es la herramienta más importante. A continuación
se presenta la lógica para constuir modelos.
2.3.
Otros productos
Cómo construir modelos
Al arrancar Witness desde el menú de Inicio, se abre el archivo StartUp.mod
por defecto, cuyo aspecto es el de la figura 2.1. Este archivo se encuentra en la
carpeta \ Demo, dentro de la carpeta de instalación de Witness
En esa primera pantalla se puede ver lo siguiente.
La ventana de Selección de elementos, a la izquierda, que contiene tres
pestañas, una de ellas, Modelo contiene diferentes tipos de elementos
para construir el modelo.
La Ventana 1, que ocupa la mayor parte de la pantalla, que es una de las
ventanas en las que aparece la representación gráfica del modelo.
La ventana de los Elementos predefinidos, que contiene varias pestañas.
Por defecto, aparece selccionada la pestaña Básico con algunos de los
elementos de Witness.
Un conjunto de barras de herramientas con botones para acceder a diferentes funciones
Una pequeña ventana con un reloj analógico que indica el instante en el
que se encuentra la simulación.
El entorno
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
28
Figura 2.1: aspecto de Witness al abrir el archivo StartUp.mod.
La lógica general con la que se construyen los modelos es la siguiete. Existen
entidades que circulan por el modelo. Las entidades pueden represetar muchos elementos de un sistema real; por ejepmlo, piezas de un taller de mecanizado, personas un centro comercial, llamadas telefónicas. Estas entidades se
pueden transformar, agrupar, separar, almacenar, transportar, etc. Las piezas
en un taller mecánico pueden ser torneadas, pulidas, etc. Los clientes de un
centro comercial pueden acumularse y esperar en las colas de las cajas. Las
llamadas telefónicas pueden ser atendidas, rechazadas, acumuladas en una
cola de llamadas, transferidas entre departamentos, etc.
Entidades o
piezas
El resto de los elementos actividades, colas, caminos, etc gobiernan el control del flujo de las entidades mediante lo que se conoce como reglas. Por
ejemplo, cuando un viajero (entidad) ha terminado de realizar la facturación
en un aeropuerto, debe haber alguna regla que conduzca a ese cliente hacia el
control de suguridad. La sintaxis de Witness permite constuir una regla equivalente a empujar al viajero a la cola del control de seguridad. Igualmente,
habrá que introducir alguna regla del tipo empujar el equipaje del viajero a la
zona de manutención de equipajes.
Reglas
Además, para completar la lógica del modelo, generalmente hay que utilizar
acciones, que modifican el estado de los elementos. Por ejemplo, tras finalizar
la facturación del viajero, una acción puede actualizar el contador que registra
cuántos viajeros han realizado la facturación para ese vuelo en particular. Para
Acciones
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
29
ello habrı́a que introducir alguna acción del tipo incrementar el contador del
número viajeros en una unidad.
2.4.
Tipos de elementos
Los modelos se construyen a partir de elementos de diferente tipo. Caracterizando de forma correcta el comportamiento de estos elementos, se puede
constuir un modelo que, en conjunto, represente de forma correcta el sistema estudiado. Configurar los elementos, significa, por un lado, indicar cómo
funcionan y, por otro, cómo se relacionan con el resto de los elmentos del
modelo.
Elementos
Existen dos ediciones de Witness, que se diferencia únicamente en la nomenclatura de los elementos. Por ejemplo, el elemento de tipo pieza en la edición
de fabricación es equivalente al elemento tipo entidad de la edición de servicios. Ambos elementos son idénticos y sólo se diferencian en el nombre. Igualmente, las versiones de edición y fabriación tienen algunas funciones idénticas pero con diferente nombre. Por ejemplo, la función ((NPARTS)) y ((NENTS))
devuelven el mismo valor. En cualquier caso, un modelo construido con una
edición se puede abrir, modificar y ejecutar con la otra. En el texto se emplean
ambas terminologı́as, en cada caso la que resulte más natural.
Servicios y
fabricación
Los elmentos se pueden dividir en tres grandes grupos atendiendo a su naturaleza:
Según su
naturaleza
Elementos de tı́po fı́sico. Son elementos pueden representar elementos
existente en un sistema real. Por ejemplo, los elementos de tipo pieza
o entidad (según la edición) pueden representar muchos elementos de
un sistema real, como se ha comentado. Los elementos de tipo máquina
o actividad realizan algún tipo de operación con las entidades y permiten representar, por ejemplo, un torno, una planta de fabricación entera, un puesto de atención al público... Un buffer o cola son lugares
donde se almacenan entidades y pueden representar, por ejemplo, un
área de almacenamiento de producto intermedio, una cola de personas
a la espera de ser atendidas, un lugar donde se somete a un proceso
de enfriamiento a las piezas que llegan. Otros elementos de tipo fı́sico
son: las cintas transportadoras, los recursos, las vı́as, los vehı́culos, los
caminos, etc. En los modelos de este texto, los elementos de este tipo
que se han utilizado son piezas, máquinas, buffers y caminos. Estos
elementos también pueden no representar elementos fı́sicos del sistma
real. Por ejemplo, una actividad puede servir para computar el valor de
determinadas variables cada cierto tiempo.
Elementos
fı́sicos
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
30
Elementos de tipo lógico. Son los elmentos que permiten gestionar la
información y la lógica del modelo. En particular, en este texto se utlizan:
variables, atributos, distribuciones (tanto predefinidas como definidas
por el usuario) y funciones (de usuario y predefinidas).
Elementos
logicos
Elementos de tipo gráfico. Son elementos que permiten visualizar gráficamente algún aspecto del modelo, como, por ejemplo, la evolución del
tiempo medio de entrega de pedidos o el número de productos enviados
a los clientes. En los modelos que siguen se han utilizado diagramas de
tarta e histogramas.
Elementos
gráficos
Los elementos también se pueden clasificar según la forma en la que se almacenan, que condiciona la forma en la que se utilizan. Estos tipos de elementos
están organizados en cuatro carpetas, cuyo contenido se puede visualizar en
la ventana de Seleción de elementos (figura ).
Según cómo se
almacenan
Figura 2.2: tipos de elementos.
La carpeta Tipo contiene todos los tipos de elementos básicos a partir de
los cuales se pueden contruir los modelos en Witness. Estos elementos
están disponibles en su versión más simple, es decir, sin ningún tipo
de caracterización. Por ejemplo, existe un elemento variable, pero no
está configurada como variable entera, real, etc.
Carpeta Tipo
La carpeta Sistema almacena un conjunto de elementos especiales. Por
ejemplo, el elemento TIME que almacena el tiempo del reloj de la simulación, el elemento WORLD que permite introducir piezas al modelo.
Carpeta Sistema
En la carpeta Predefinidos existen diferentes tipos de elementos, organizados por grupos, que aparecen, también, en diferentes pestañas en la
ventana de Elementos predefinidos. Cuando se selecciona una pestaña en
esta ventana, los elementos correspondientes se muestran en la carpeta
verde Predefinidos. Los elementos predefinidos, son elementos que pueden tener algún grado de configuración. Por ejemplo, una variable puede
estar definida como un vector de cinco componentes de tipo entero. Estos elementos están disponibles para, a partir de ellos, crear elementos
idénticos en el modelo. Por ejemplo, si una actividad representa una caja
en un centro comercial, es posible definir un elmento predefinido tipo
Carpeta
Predefinidos
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
31
actividad para representar una caja y, con ella, como se muestra más
adelante, crear tantas cajas como sean necesarias en uno o varios modelos.
Por último, la carpeta Simulación contiene los elementos de la simulación
propiamente dicha, es decir, aquellos que representan, efectivamente, el
comportamiento del sistema real. Esta carpeta, por defecto, está vacı́a,
ya que el archivo StartUp.mod está vacı́o. Para introducir elementos de
la simulación se pueden emplear los elementos de la carpeta Tipo o de la
carpeta Predefinidos.
Para introducir elementos en el modelo y caracterizar la forma en la que funcionan, hay que realizar tres pasos: definir, configurar y representar cada uno
de los elementos.
Definir. Esta operación consiste en introducir elementos en el modelo,
es decir, en la carpeta, Simulación. Existen dos formas de introducir un
elemento en el modelo. La primera consiste en hacer uso de los elementos predefinidos. Para ello hay que hacer clic con el botón principal en
un elemento de la ventana Elementos predefinidos y hacer clic de nuevo
(sin arrastar) en la Ventana 1. De esta manera se crea un elemento en la
carpeta Simulación que es idéntico al elemento predefinido correspondiente, con el mismo nombre seguido de “001”, por elemplo, Pieza001,
como en la figura 2.3.
Figura 2.3: definición de elementos a partir de elementos predefinidos.
La segunda manera consiste en hacer clic con el botón secundario del
ratón y, en menú contextual que aparece, seleccionar la opción Definir.
Carpeta
Simulación
Introducción de
elementos. Tres
pasos
Definir
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
32
Figura 2.4: definición de elementos.
Se abre una nueva ventana, como la de la figura 2.4, en la que hay que
introducir el nombre y seleccionar el tipo de elemento en el cuadro desplegable Tipo de elemento. Para algunos tipos de elementos hay que introducir algún dato más. En este segundo caso, se puede seleccionar (arriba)
si el elemento se crea como elemento de la simulación o como elemento
predefinido (para ser reutilizado de nuevo de la manera anterior).
Configurar Una vez que se ha definido el elemento, ya se puede configurar, es decir, establecer cuál es su comportamiento. Esto significa,
por ejemplo, determinar cuánto dura la realización de una actividad,
con qué frecuencia se producen las averı́as, cómo entran y salen las
entidades de las colas, etc. La configuración también incluye la introducción de las reglas que gobiernan el movimiento de las entidades y
las acciones que modifican los estados del sistema. Para configurar un
Configurar
elmento se puede hacer de dos maneras. La primera, haciendo doble clic
en el nombre correspondiente en la ventana de Selección de elementos
o bien haciendo clic con el botón secundario y seleccionando la opción
Configurar.
Representar La representación de un elemento no es un paso estrictamente necesario para que el elemento funcione dentro del modelo. De
hecho, se podrı́a construir un modelo sin ningún tipo de represéntación
gráfica. Sin embargo, la animación de la representación gráfica proporciona información tanto durante la construción como durante la explotación
del modelo. Los elementos creados a partir de elementos predefinidos incorporan la representación gráfica del elemento utilizado. Por ejemplo,
Representar
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
al crear el elemento Pieza001, la representación gráfica incorpora dos cosas: el nombre de la entidad y un sı́mbolo (un cı́rculo rojo) con el que
aparecerán representadas las entidades de ese tipo en todo el modelo
(figura 2.3. Tanto la representación de elementos que no han sido creados a partir de los elementos predefinidos como la actualización de la
representación de cualquier elemento se puede hacer de la siguiente manera. Haciendo clic con el botón secundario sobre el elemento (bien en su
nombre dentro de la carpeta Simulación o en cualquiera de sus elementos representados) y eligiendo Representar dentro del menú contextual,
se muestra la ventana de la figura 2.5
Figura 2.5: representación de elementos.
La ventana de representación permite, bien dibujar nuevos elementos en
la representación o bien actualizar los elementos existentes. Al seleccionar Dibujar en el primer menú desplegable, en el segundo se pueden
encontrar todos los elementos de representación que se pueden añadir y
que dependen del tipo de elemento. Cuando se selecciona Actualizar, en
segundo menú desplegable, aparecen los elementos de representación ya
existentes y que se pueden modificar. En el caso de la pieza Pieza001, se
puede actualizar el sı́mbolo, haciendo clic en el botón situado más a la
izquierda (con el icono de un lápiz) y aparece una nueva ventana como
la de la figura 2.7.
Figura 2.6: representación de elementos.
33
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
34
En los ejemplos siguientes, se realizan estas tres operaciones para introducir diferentes tipos de elementos en un modelo de simulación sencillo,
se indica cómo ejecutar el modelo y cómo obtener alguna información
preliminar sobre el resultado de la simulación.
2.5.
Ejemplo 1
Construir un modelo para representar un torno que tornea redondos
de acero y tarda 5 minutos por pieza. Siempre existen redondos para
tornear y, una vez procesados, se expulsan fuera del sistema.
En este ejemplo, se presentan los siguientes aspectos de Witness:
• máquinas de tipo simple,
• piezas pasivas,
• reglas ((PULL)), ((PUSH)) y ((WAIT)),
• ejecución paso a paso,
• representación del flujo de elementos.
Resumen
Para crear este modelo solo son necesarios dos elementos, uno de tipo
pieza para representar los redondos y otro de tipo máquina simple para
representar el torno.
En primer lugar, hay que definir un elemento pieza, por ejemplo, haciendo uso de los elementos predefinidos, como se ha indicado en el
apartado anterior. Entrando en la ventana de configuración (figura 2.9)
es posible modificar el nombre del elemento.
Piezas pasivas
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
35
Figura 2.7: ventana de configuración de la pieza Redondo.
Las piezas pasivas son aquellas que sólo entran en el modelo porque
algún elemento del modelo hace que entren. En este caso, cada vez que
el torno termine de realizar una operación, obtendrá una nueva pieza
Redondo del elemento de sistema WORLD y la introducirá en el modelo.
La ventana de configuración de un elemento tiene algunas pestañas especı́ficas y otras que son comunes a todos los elementos: General, Acciones, Costes, Notas e Informes.
La pestaña General de una pieza permite introducir el nombre de la
pieza (Redondo), el tipo (pasiva, en este caso) y permite configurar aspectos relativos a los eventos correspondientes a la entrada y a la salida
del sistema de cada pieza.
A contiunuación, hay que introducir una máquina a partir de los elementos predefinidos. La configuración de este nuevo elemento (figura 2.8)
también presenta varias pestañas (comúnes y especı́ficas). Por ejemplo,
la pestaña General, permite definir algunos aspectos básciso como el
nombre (Torno) o el tipo. Las másquinas simples toman las piezas de
una en una, las procesan y pasan a otro elemento del sistema. Existen
otros tipos de máquinas que, por ejemplo, producen piezas a partir de
una dada o trabajan con lotes. Torno es una máquina simple.
Máquinas
simples
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
36
Figura 2.8: ventana de configuración de la máquina Torno.
Además, en la pestaña General se pueden configurar aspectos relativos
a la entrada, a la salida de las piezas, y al proceso que son sometidas. En
particular, se puede configurar la regla de entrada de la máquina haciendo clic en el botón Desde....
Figura 2.9: regla de entrada de Torno.
La regla que aparece por defecto es ((WAIT)). Esta regla significa que
Torno no trata de conseguir piezas de entrada, sino que sólo procesa
piezas si algún otro elemento hace que le lleguen. Tecleando la regla
((PULL from Redondo out of WORLD)), como en la figura 2.9, Torno introducirá una pieza Redondo en el modelo e, inmediatamente, la comenzara a tornear.
Regla ((PULL))
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
37
Una vez que Redondo tiene una pieza puede comenzar su ciclo, cuya
duración se indica dentro del cuadro de texto Duración. En este caso,
el valor es 5. De esta manera, se admite que una unidad del reloj de la
simulación simula el transcurso de un minuto de la realidad, y será necesario mantener la consistencia a lo largo de todos los valores que se
introduzcan en el modelo.
Tiempo de ciclo
Por último, si la configuración de Torno se deja en este punto, lo que
ocurrirá es que tras tornear el primer Redondo, quedará bloqueada y no
realzará más operaciones, debido a que no tiene asignada una relga de
salida y no hay ningún otro elemento en el modelo que trate de tomar
el Redondo de Torno. Por eso es necesario introducir una regla de salida
haciendo clic en Hacia.... En este caso, con la regla ((PUSH to SERVED)) el
torno, tras finalizar el proceso de torneado, expulsa la pieza fuera del
modelo (al elemento de sistema SERVED) y está en condiciones de coger
una nueva pieza y repetir el ciclo.
Regla ((PUSH))
Existe una forma que facilita la comporobación de que las reglas se
han editado correctamente. Activando la opción Flujo de elementos del
menú Ver, haciendo clic en Aceptar, se puede muestra lı́neas que enlazan los elementos de acuerdo con las reglas del modelo. En este caso,
el aspecto del modelo tras activa el Flujo de elementos es el de la figura
2.10.
Flujo de
elementos
Figura 2.10: Ejecución del modelo Paso a paso.
Con esto el modelo ya tiene los dos elementos y está configurado para funcionar como se desea. Este modelo, ya construido, corresponde al
archivo Ejemplo2-1.mod. Existen diferentes formas de ejecución del modelo. Una de ellas es la opción Paso a paso. Al ejecutar el modelo de esta
manera se ejecutan los eventos uno tras otros y se muestra la evolución
del estado del sistema en una nueva ventana: la Ventana de interacción.
Ejecución paso
a paso
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
38
En la figura 2.10 se puede ver la barra de herramientas Ejecutar, en la
que aparece el botón Paso a paso dentro de un marco rojo. Al hacer clic
en él varias veces, aparecen mensajes en la Ventana de interacción, en las
que se describe la entrada de la primera pieza Redondo a Torno en el
instante 0,00. Después, simplemente, se actualiza el contador de tiempo
y no se produce ningún evento hasta que no finaliza la operación de
torneado en el instante 5,00. En ese instante, Torno finaliza con la pieza
que estaba procesando, la expulsa a SERVED y toma inmediatamente una
nueva pieza para procesar.
Figura 2.11: Representación gráfica del modelo con Flujo de elementos.
2.6.
Ejemplo 2
Modificar el modelo anterior para representar lo siguiente. Los redondos
llegan a un stock previo al torno con un tiempo entre llegadas que se
distribuye según una exponencial de media 8 minutos. El proceso de
torneado no es determinista, sino que sigue una distribución normal
logarı́tmica de media 5 minutos y desviación tı́pica de 0,2.
En este ejemplo, se presentan los siguientes aspectos de Witness:
• buffers,
• distribuciones,
• opción ejecutar,
• opción ejecución ralentizada e
• informes de Witness.
Resumen
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
39
Para modificar el modelo solo es necesario introducir un nuevo elemento
de tipo buffer para el stock de redondos a la espera de ser procesados.
El archivo Ejemplo2-2.mod contiene el modelo correspondiente a este
ejemplo, construido tal y como se indica a continuación.
En primer lugar, hay que añadir un elemento de tipo buffer al modelo, por ejemplo, utilizando los elementos predefinidos. Accediendo a la
Ventana de configuración del elemento, aparecen las pestañas de este
tipo de elemento. En particular, en la pestaña General es posible modificar el nombre (para llamarlo Cola), establecer el número de entidades
que puede albergar y los aspectos relativos a la entrada, la salida y la
permanencia de las piezas en el buffer (figura 2.12).
Figura 2.12: ventana de configuracion del elemento Cola.
Por defecto, las piezas entran por detrás y salen por delante, y no hay
ningún requisito con respecto al tiempo de permanencia en el buffer,
con lo que la disciplina de cola por defecto es FIFO. Se pueden establecer
condiciones tanto en la entrada como en la salida, para que las piezas
entren o salgan según alguna condición, por ejemplo. También se puede
establecer un tiempo máximo o un tiempo mı́nimo de permanencia. Por
ejemplo, esto permite representar el hecho de que los clientes que llevan
más de 10 minutos esperando en una cola abandonan el sistema.
Buffers
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
A diferencia del modelo anterior, ahora las piezas entran al sistema de
forma autónoma, de acuerdo con un tiempo entre llegadas. Para ello, es
necesario modificar la configuración de Redondo y convertirla en pieza
activa, con lo que la Ventana de configuración muestra un aspecto diferente, como el de la figura 2.13.
40
Piezas activas
Figura 2.13: ventana de configuracion de Redondo, pieza activa.
Para configurar una pieza activa, hay que establecer, entre otras cosas,
el número máximo de llegadas de ese tipo, el instante en el que llega la
primera, el tamaño de lote y la regla de salida, es decir a qué elemento
trata de acceder cuando llega al modelo. Para configurar esto último hay
que acceder a las reglas de salida, haciendo clic en el botón Hacia... En
este caso, estas piezas llegan a Cola, por lo que la regla serı́a: ((PUSH to
Cola)).
Además, hay que indicar, para Redondo, cual es el intervalo entre llegadas en el cuadro de texto correspondiente de su Ventana de configuración. Este valor no es determinista, sino que es una variable aleatoria:
una exponencial de media 8 minutos. Witness permite generar variables
aleatorias de diferentes tipos. En este caso, el valor para el el Intervalo
entre llegadas es ((NEGEXP(8))).
Aleatoriedad.
Distribuciones
Una vez construido el modelo, se puede ejecutar como se presentó en
el ejercicio anterior para comprobar su evolución paso a paso. Alternativamente, se puede utilizar la opción Ejecutar, mediante la cual, se pone
en marcha el modelo y se muestra cómo se modifica la representación
gráfica de los elementos a medida que transcurre el tiempo. Además, se
puede fijar un valor para el tiempo durante el cuál ejecutar el modelo.
Ejecución Run
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
41
Para ello, tal y como se puede ver en la figura 2.14, hay que dejar pulsado
el botón que contiene el icono de un reloj, a su derecha teclear el instante
en el que el modelo se detendra y, finalmente, pulsar en el botón Ejecutar
(un triángulo negro apuntando hacia la derecha).
Figura 2.14: ventana de configuracion de Redondo, pieza activa.
Adicionalmente, se pueden representar gráficamente los movimientos de
las entidades entre los diferentes elementos. Al pulsar en el botón que
contiene un icono de un muñeco se activa esta opción, ejecución ralentizada, y con la barra de desplazamiento que está a su derecha se establece
la velocidad con las que las entidades se mueven.
Ejecución
ralentizada
Una vez el modelo se ha ejecutado hasta el instante 100, se pueden obtener informes de tipo estándar de los elementos del modelo. Para ello,
en la ventana de selección de elementos se pueden marcar todos los elementos, hacer clic con el botón secundario y seleccionar Estadı́sticas.
Informes
Figura 2.15: informes estándar del modelo.
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
42
De esta manera se muestra una ventana parecida a la de la figura 2.15.
Por ejemplo, para el elemento Cola se indica cuántas entidades han
entrado (15), cuántas han salido 13, el número medio 0,46, el tiempo
medio de permenencia, 3,08, etc. Para conocer las estadı́sticas de otros
elementos, basta con hacer clic en los botones que tienen flechas hacia
la izquierda y hacia la derecha. Para cada elmeentos se ofrece diferente
tipo de información. Por ejemplo, para las máquinas se indica el número
de operaciones o el porcentaje de timpo que han permanecido en cada
uno de los posibles estados.
Conviene notar que los resultados que se obtienen con la ejecución del
modelo dependen de los números aleatorios que se utilicen para generar
los distintos eventos. Por eso, los números obtenidos pueden ser diferentes. En el capı́tulo 6 se comenta más detalle el efecto de los números
aleatorios sobre el análisis de los datos de salida.
2.7.
Ejemplo 3
Además de las piezas que llegaban antes (redondos de tipo A), ahora
llega también otros redondos (de tipo B) con otras caracterı́sticas. Al
llegar al sistema, cada tipo se almacena de forma independiente antes
de ser torneado. Los nuevos redondos llegan según una exponencial de
media 18 minutos. Cuando el torno termina una operación, toma un
redondo del stock que contenga más piezas.
Ambos tipos de piezas pueden ser o bien de calidad alta (el 20 %) o alta
(80 % baja), de manera que el tiempo de tornado depende de la calidad y
del tipo de redondo. En particular, los tiempos de torneado son variables
normales logarı́tmicas conlas medias y las desviaciones de la siguiente
tabla:
Pieza A
Pieza B
c. baja
(5,0, 0,10)
(4,5, 0, 12)
c. alta
(6, 0,15)
(5,2, 0,16)
Se pide modificar el modelo para representar esta nueva situación.
Informes y
aleatoriedad
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
En este ejemplo, se presentan los siguientes aspectos de Witness:
• atributos de sistema y atributos de usuario,
• sentencias de control ((IF... ELSE... ENDIF)),
• funciones de predefinidas y funciones de usuario,
• ejecución acelerada,
• acciones de elementos,
• modificaciones de la representación de los elementos.
43
Resumen
Para modificar el modelo solo es necesario introducir cuatro nuevos
elementos: una nueva entidad, un nuevo buffer, un atributo y una
función.
El archivo Ejemplo2-3.mod contiene el modelo correspondiente a este
ejemplo, construido tal y como se indica a continuación.
En primer lugar, para distinguir los dos tipos de redondo, se puede renombrar el elemento Redondo y llamarlo RedondoA, ası́ como llamar
ColaA a Cola. A contnuación, hay que definir una nueva entidad, RedondoB, y un nuevo buffer, ColaB. También es necesario que las reglas
de salida de RedondoA y RedondoB sean ((PUSH to ColaA)) y ((PUSH to
ColaB)), respectivamente.
Para distiguir unas piezas de otras durante la animación, se puede modificar el aspecto con el que aparece RedondoB. Para ello, se puede acceder
a la Representación (similar a la figura ). Se puede modificar el color (y
cambiar el rojo por el verde, por ejemplo) y mantener el icono de una
pequeño cı́rculo.
Cambio de la
representación
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
44
Figura 2.16: definición del atributo Calidad.
También es necesario definir un atributo. Tal y como se ha explicado ya con otros elementos, se puede definir un atributo de tipo cadena
de caracteres con el nombre Calidad (ver figura ). Cuando se define el
atributo Calidad, cada entidad que entra al modelo tiene asociada una
cadena de caracteres, que se puede leer y modificar. Un atributo opera
como una tarjeta adhesiva liagada a cada entidad donde se almacena
información especı́fica de dicha entidad, en este caso, la calidass cada
redondo. Cuando un redondo deba ser torneado, el tiempo que dure la
operación dependerá del valor de este atributo.
Atributos de
usuario
Cuando un RedondoA o un RedondoB entra al modelo, hay que asignar
un valor a su atributo Calidad, a través de las Acciones al crear cada
pieza, a las que se puede acceder a través de la ventana de configuración
de RedondoA y de RedondoB (figura 2.17).
Acciones a crear
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
45
Figura 2.17: acciones al crear RedondoA.
Para asignar un valor a Calidad, se genera un valor aleatorio entre 0 y 1
mediante la función predefinida ((RANDOM()))
Funciones
predefinidas.
RANDOM()
Cuando el valor devuelto por ((RANDOM())) es menor que 0.2 Calidad
toma el valor “alta” (lo que ocurre el 20 % de los casos) y toma el valor
“baja” el resto de los casos. Para esto se utiliza una sentencia ((IF... ELSE...
ENDIF)) tal y como aparecen en la figura 2.17.
Sentencia IF
Una posible forma de incorporar en el modelo la manera según la cual se
toman redondos de las respectivas colas, es utilizando una sentencia ((IF))
junto con la función ((NENTS())), que devuelve el número de entidades
dentro del elemento al que se aplica la función.
Funciones
predefinidas.
NENTS()
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
46
Figura 2.18: nueva regla para Torno.
De esta manera, cuando Torno queda libre, si hay más piezas en ColaA
o en ColaB y toma una del que tenga más, o de ColaA si la cantidad es la
misma.
La duración del tiempo de torneado depende de la calidad y del tipo de
redondo. Por ello, lo que se puede hacer es crear una función que devuelva el valor deseado dependiendo de los atributos correspondientes
y en la Duración de Torno, llamar a esta función con la información de
la pieza procesada.
Figura 2.19: Pestaña General de TiempoTorno.
Funciones de
usuario
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
47
Por lo tanto, hay que definir una función, TiempoTorno. Esta función
devuelve un valor real a partir de dos parámetros, uno de tipo cadena
(llamado CalidadPieza) y otro de tipo nombre (TipoPieza (ver figura 2.19).
El cuerpo de la función es el código que se ejecuta con los valores de
los parámetros. La función incluye sentencias de tipo ((RETURN)) con las
que se indica el valor devuelto por la función.
Figura 2.20: Cuerpo de TiempoTorno.
TYPE es un atributo de sistema de todas las entidades que almacena
el tipo de entidad. Para las entidades RedondoA, TYPE toma el valor RedondoA. Por último, en la Duración de Torno, se puede introducir
((TiempoTorno (Calidad,TYPE))). De esta manera se invoca a la función
TiempoTorno con los valores de los atributos Calidad y TYPE y se obtiene un valor de acuerdo con el código del cuerpo de la función TiempoTorno.
Atributos de
sistema. TYPE
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
Para finalizar este ejemplo, se puede ejecutar el modelo con la opción de
Ejecución acelerada. Como en el ejemplo anterior, señalando una instante para finalizar la simulación, se puede omitir la animación gráfica, de
manera que sólo se consumen recursos de computación para la generación de eventos y para la actualización de los estados de los elementos.
Para ello, se puede utilizar el botón con dos triángulos apuntando hacia
la derecha (botón de Ejecución acelerada).
2.8.
48
Ejecución
acelerada
Ejemplo 4
Una vez que los redondos son torneados, se acumulan en una zona de
almacenamiento intermedio. Para llegar hasta ese punto desde el torno,
siguen una trayectoria en la que se tarda 5 minutos.
Los palés torneados se agrupan en palés de cinco en cinco, del mismo
tipo (no necesariamente de la misma calidad). Existen dos máquinas que
montan los palés, una con redondos A y la otra con redondos B, y tardan
en montar cada palé exactamente 10 minutos, desde el momento en el
que los cinco redondos han entrado en la máquina. En ocasiones, con
un 1 % de probabilidad, al montar el palé, el procedimiento no realiza de
forma correcta, y ese palé se debe desechar.
Modificar el modelo del ejemplo anterior para representar la situación
anterior. Además:
• representar los elementos ColaA y ColaB como un único elemento,
(Cola), con cantidad 2 y
• sustituir la regla de entrada del torno por una regla de tipo ((MOST
ENTITIES)).
En este ejemplo, se presentan los siguientes aspectos de Witness:
• los elementos de tipo camino,
• las máquinas de tipo ensambladora
• las reglas ((PERCENT)) y ((MOST ENTITIES)),
• las funciones ((CHANGE)) y ((ELEMENT))
• gestión de elmentos con cantidad superior a 1,
El archivo ejemplo2-4.mod contiene una propuesta para representar
la situación descrita. Este modelo incorpora tres nuevos elementos: un
camino, una máquina, un buffer y dos nuevas piezas.
Resumen
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
49
Primero, como se ha hecho en los ejercicios anteriores, hay que definir:
• una máquina, que tendrá el nombre slPaletizadora,
• un buffer, con el nombre de ColaPaletizadora,
• dos nuevas entidades, llamadas PaleA y PaleB y
• un camino, con el nombre CaminoAPale.
Nuevos
elementos
En primer lugar, se puede renombrar el elemento ColaA, llamarlo Cola
y modificar su cantidad, de manera que sea 2. Al hacer todo esto, la representación de este elemento se modifica y aparecen dos flechas, una
correpondiente al lugar donde aparecerán acumuladas las entidades del
primer elemento de Cola y otro donde aparecen las del segundo elemento.
Cantidad de un
elemento
Ahora, es posible referirse a cada uno de los dos elementos con la sintaxis cola(1) y
Cantidad de un
elemento
, en definitiva, al tener un elemento con cantidad superior a 1 es parecido
a tener un vector de elementos con todas las componentes indénticas.
Cantidad de un
elemento
Para ser consistente con el cambio de notación, hay que mofificar las
reglas de salida de las piezas RedondoA y RedondoB. Ahora serán, respectivamente, ((PUSH to Cola(1))) y ((PUST to Cola(2))).
Cantidad de un
elemento
La regla de entrada del torno, que antes utilizaba una sentencia ((IF)) se
puede modificar por la siguiente regla ((MOST ENTITIES Cola(1), Cola(2))),
lo cual significa que Torno, al quedar libre, evaluará en cuál de los dos
elementos (Cola(1) y Cola(2)) hay más entidades y, de aqué que tenga
más, cogerá una.
Regla MOST
ENTITIES
El elemento ColaB ya no es necesario, porque ahora Cola(2) hace la función de stock de redondos de tipo B a la espera de ser torneados. Una
forma de eliminar un elemento consiste en hacer clic con el botón secundario sobre su nombre o sobre algún algún elemento de representación
del mismo y elegir la opción Eliminar del menú contextual que aparece.
Sólo es posible eliminar elementos que no estén referenciados en ninguna otra parte del modelo.
Eliminar
elementos
Los caminos permiten conectar dos elementos, de tal manera que al desplazarse las entidades entre esos dos elementos, pueden hacerlo siguiendo ese camino. Los aspectos más importantes de la configuración
de un camino son los dos elementos que conecta y el tiempo de tránsito
entre estos dos elementos.
Configuración
del camino
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
50
Tal y como aparece en la figura 2.21, el tiempo de recorrido es 5 minutos
y conecta los elmentos Torno (elemento de origen) y ColaPaletizadora
(elemento de destino)
Figura 2.21: Configuración de CaminoAPale.
Para que las piezas transiten por el camino, es necesario modificar la
regla de salida del Torno ((PUSH to Cola using Path)). Si no se modifica la
sintaxis, el desplazamiento se realiza de forma inmediata.
((Using Path))
Con respecto a la máquina que agrupa los redondos, como toma 5 redondos y devuelve un palé, se trata de una máquina de ensamblado. En
la ventana de configuración de Paletizadora se puede indicar el Tipo, y
en la cantidad de entrada, indicar 5. El tiempo de ciclo es de 10 minutos.
Por último, como existen 2 máquinas que montan los palés, la cantidad
de este elemento debe ser 2.
Configuración
Paletizadora
Paletizadora tiene cantidad igual a 2, pero no operan de forma idéntica,
sino que Paletizadora(1) monta palés de RedondoA y Paletizadora(2) de
RedondoB. Para poder introducir esta distinción en el código, una alternativa consiste en hacer uso de la variable de sistema N. Esta variable
opera de la siguiente manera: cada uno de los elementos que forman Paletizadora tiene asociado un valor de N, para Paletizadora(1), N = 1 y
para Paletizadora(2), N = 2.
Variable N
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
51
Figura 2.22: regla de entrada de Paletizadora.
Por eso, con la regla de la figura 2.22, Paletizadora(1) sólo busca
entidades de tipo RedondoA y Paletizadora(2) sólo busca entidades
de tipo RedondoB
Para que efecivamente, la regla anterior funcione correctamente es necesario modificar la opción de Salida de ColaPaletizadora y que sea Cualquiera. Con la opción Primero, sólo podrı́a salir la primera entidad (ya
fuera por delante o por detrás, según la configuración), y si esa entidad
no coincide con la que uno de los elementos de Paletizadora trata de
retirar, no podrı́a continuar montando el palé.
La regla de salida de Paletizadora se puede construir con una sentencia
de tipo ((IF)). Sin embargo, Witness proporciona una regla más compacta que opera tal y como se desea en este caso. Con ((PERCENT SERVED
99.00 ,LOST 1.00 )), todas las piezas salen del sistema, el 99 % se dirigen
a SERVED y el resto a LOST. Si fuera necesario, se pueden poner otros
destinos (más de dos), que pueden ser diferentes elementos del modelo.
Regla PERCENT
Por último, dado que la piezas que salen de Paletizadora ya no son redondos, sino que son palés, conviene reflejar ese cambio en el modelo.
Con la función CHANGE es posible cambiar un tipo de pieza en otra. Tal
y como aparece en la figura se puede realizar el cambio en las acciones
al finalizar el ciclo de Paletizadora
Función
CHANGE
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
52
Figura 2.23: acciones al finalizar el ciclo de Paletizadora.
2.9.
Ejemplo 5
Modificar el modelo del ejemplo anterior de la siguiente manera.
• Generalizar el tamaño de los palés, de forma que el la cantidad de
ensamblado de Paletizadora dependa de una variable.
• Representar en una serie temporal el palés servidos por hora.
• Representar en un diagrama de tarta la proporción de tiempo
que Paletizadora(1) ha estado montando palés y el tiempo que ha
estado sin operar.
• Representar gráficamente el número de redondos de tipo A y de
tipo B que contiene ColaPaletizadora.
• Detener la ejecución del modelo cuando, en total, han entrado al
modelo 200 redondos
En este ejemplo, se presentan los siguientes aspectos de Witness:
• elementos de representación gráfica: serie temporal y diagrama
de tarta,
• variables,
• funciones predefinidas ((NCREATE)), ((NSERVED)), ((STOP)) y
• acciones de inicialización.
Resumen
En primer lugar, para que el número de redondos que componen un
palé no sea neceariamente 5 se puede hacer lo siguiente. En primer lugar, haciendo uso de los elementos predefinidos se puede definir una
variable de tipo entero (VInteger en la pestaña Variables), con el nombre TamañoPale. Después, en Paletizadora, en vez de asignar a la cantdad
Variables
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
53
de entrada el valor 5, se puede introducir el nombre de la variable TamañoPale.
Si se ejecuta el modelo con esa modificación, se producirá un error por
el hecho de que, por defecto, las variables se inicializan a 0, y una
máquina de ensamblado no puede operar con una cantidad de entrada
igual a 0. A través del menú (Modelo / Acciones de inicialización) se puede acceder a una ventana en la que se pueden introducir todas aquellas
acciones que se deben realizar antes de comenzar la ejecución del modelo. En este caso se puede introducir, por ejemplo, la acción ((TamañoPale
= 6)). Se podrı́a solicitar por pantalla al usuario, mediante un cuadro de
diálogo, que indicara el valor de TamañoPale, o se podrı́a leer desde un
archivo .xls o desde un .mdb.
Acciones de
inicialización
Las series temporales permiten representar gráficamente al evolución de
algún valor del modelo mediante un eje de coordenadas, donde en las
abscisas se representa el tiempo y en las ordendadas los valores observados. Haciendo uso del elemento predefinido Serie temporal en
la pestaña de Informes se puede crear un elemento de este tipo con el
nombre PalesMontados.
Serie temporal
Para representar el número de palés servidos por hora, es necesario
computar todos los que se han servido hasta el momento y dividirlo
por el número de horas transcurridas. Para conocer el número de elementos PaleA y PaleB servidos, se puede utilizar la función ((NSERVED))
y el número de horas trascurridas es ((TIME/60)), de manera que las dos
magnitudes que hay que represenar son ((NSERVED(PaleA)/(TIME/60))))
Y ((NSERVED(PaleA)/(TIME/60)))). Estas expresiones son las que deben figurar en los campos Gráf.1 y Graf.2 del histograma (como en la figura
2.24).
NSERVED
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
54
Figura 2.24: ventana de configuración de PalesMontados.
Se puede modificar la representación de PalesMontados y actualizar el
elemento de representación Serie temporal, y acceder a la ventana de
representación. Existen diferentes valores que permiten modificar el aspecto de la serie temporal. Con los valores que aparecen en la figura
2.25 es aspecto de PalesMontados es adecuado.
Figura 2.25: representación de PalesMontados.
Representación
de series
temporales
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
55
Se puede definir un diagrama de tarta a partir de los elementos predefinidos y renombrarlo como TasaPaletizadora. Al hacer esto aparece
ya una primera representación gráfica de ese elemento.
Diagrama de
tarta
Con el Diagrama de tarta se pueden mostrar diferentes magnitudes,
este caso, la proporción del tiempo que Paletizadora(1) ha estado ocupada y la que ha estado operando. La forma de obtener estos valores es
mediante la fucción ((PUTIL)). Por ejemplo, la expresión ((PUTIL (Paletizadora(1),1))) devuelve la proporción del tiempo que Paletizadora(1) ha
estado estado en el estado de disponible, mientras que ((PUTIL (Paletizadora(1),2))) devuelve la proporción del tiempo que ha estado operando.
En la ayuda de Witness se pueden consultar los diferentes estados en los
que se puede encontrar cada uno de los diferentes elementos.
Función PUTIL.
Estados de un
elemento
Las dos expresiones anteriores deben aparecer en la configuración de
TasaPaletizadora1, tal y como aparece en la figura 2.26. En este caso, el
diagrama cuenta con dos sectores, pero se pueden añadir más haciendo
clic en el botón que tiene el icono de un rectángulo con lı́nea discontinua.
Figura 2.26: configuración de TasaPaletizadora1.
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
Para completar la representación gráfica, se puede mostrar el número de
piezas de cada tipo que contiene ColaPaletizadora. Para ello se puede
definir una variable de tipo entero con cantidad igual a 3 con el nombre
de RedondosEnCola. Esta variable tiene tres componentes. La primera
almacenará el número total de piezas en ColaPaletizadora, la segunda
el número de redondos de tipo A y la tercera los de tipo B.
56
Variables
Cada vez que una entidad entra o sale de ColaPaletizadora se modifica
el número total de entidades en ese elemento y el número que contiene
de alguno de los dos tipos de entidades, por lo que habrá que introducir
acciones al entrar y accones al salir de ColaPaletizadora para actualizar
los valores de la variable RedondosEnCola.
Las función ((NENTS)) devuelve el número de entidades del elemento al que se aplica. ((NENTS(ColaPaletizadora))) devuelve el número de
entidases en ColaPaletizadora. Por otro lado, para conocer el número de entidades de un determinado tipo se puede utilizar la función
((NENTS2)). ((NENTS(ColaPaletizadora, RedondoA, 0))) devuelve el número de entidades RedondoA que hay en ColaPaletizadora. De la manera
análoga se puede proceder con RedondoB.
Funciones
NENTS y
NENTS2
Figura 2.27: acciones al entrar de ColaPaletizadora.
Por último, para detner el modelo cuando ha entrado el redondo número
200 es necesario evaluar cual es el número total de entidades que ha
entrado cada vez que entra una nueva. Por ello, es necesario ampliar las
acciones al crear de las dos entidades RedondoA y RedondoB. La función ((NCREATE)) devuelve el número de entidades de un determinado
tipo que han sido creadas. Por otro lado, la función ((STOP)) detiene la
ejecución del modelo. Si se incluyen las acciones de la figura 2.28 en las
acciones al entrar de RedondoA y de RedondoB, el modelo se detiene
NCREATE. STOP
Capı́tulo 2. CONSTRUCCIÓN DE MODELOS CON WITNESS
cuando entra el redondo número 200.
Figura 2.28: ampliación de acciones al crear de RedondoA y RedondoB.
2.10.
Bla, bla
Resumen
57
Capı́tulo 3
REPASO DE ESTADÍSTICA
3.1.
Introducción
Como se comentó en 1.2, la mayorı́a de los sistemas que se estudian
mediante simulación presentan fenómenos de carácter estocástico. Para garantizar la validez de los resultados obtenidos es necesario tener
presente las caracterı́sticas que presentan estos fenómenos y aplicar las
técnicas estadı́sticas apropiadas. La necesidad de aplicar estas técnicas
se pone de manifiesto a largo de todo un estudio de simulación (ver figura 3.1). A continuación se comentan los aspectos más importantes.
• En primer lugar, para alimentar de forma correcta un modelo con
los valores correspondientes a las variables de entrada (ver 1.5) es
necesario, primero, analizar de forma correcta los datos históricos
del sistema estudiado para caracterizar los fenómenos a los que se
refieren dichos datos.
• Además, es necesario generar valores de las variables de entrada de
acuerdo con los resultado del análisis anterior para poder reproducir un comportamiento consistente con el comportamiento real del
sistema.
• Para validar del modelo se deben emplear técnicas para comparan
los resultados que ofrece el modelo con los datos históricos del
sistema real.
• Dado que, generalmente, las variables de entrada son estocásticas,
las variables de salida también lo son. Para una determinada configuración de un sistema, se debe caracterizar correctmente el comportamiento de una variable de salida. Una primera caracterización
consiste en una estimación puntual del valor esperado (junto al de
un intervalo de confianza de dicha estimación).
• Generalmente, en un estudio de simulación se evalúan diferentes
configuraciones alternativas, por lo que es necesario identificar si
hay diferencias siginificativas entre los comportamientos de dichas
configuraciones.
La estadı́stica a
lo largo de un
estudio de
simulación
Capı́tulo 3. REPASO DE ESTADÍSTICA
59
• Adicionalemnte, puede ser interesante evaluar la influencia de determinados factores sobre el funcionamiento del sistema. Para ello
es adecuado realizar un diseño de experimentos con varios factores.
Validación
EM
E L
Análisis de resultados
Generación de
variables aleatorias
O
MODELO
...
O
Test de ajuste
Experimentación
Figura 3.1: la simulación está presente en muchas etapas de un estudio de
simulación
Este capı́tulo no pretende ser un amplio tratado de estadı́stica. El objetivo
es proveer al lector de una guı́a clara y concisa (en la mayorı́a de los
casos sin entrar en demostraciones) de los principios de estadı́stica y
probabilidad necesarios para desarrollar un estudio de simulación.
3.2.
Variables aleatorias en simulación
Los estudios de simulación emplean tı́picamente variables aleatorias, es
decir, variables cuyos valores vienen determinados por el azar. Tanto
en el caso de las variables de entrada como en el de las variables de
salida, generalmente lo que se estudia es una muestra finita de una población infinita y el objetivo es inferir las propiedades de la población
a partir de dicha muestra. El objetivo es modelar el comportamiento de
un fenómeno mediante una función de distribución que establece una
relación entre lo observado (muestra) y lo desconocido (población).
Muestra y
población
El conjunto de posibles valores que puede tomar la variable estudiada
se conoce como espacio muestral, mientras que el valor que toma en un
caso concreto se conoce como valor puntual u observación. A lo largo los
capı́tulos que componen este texto, las variables aleatorias se denotan
mediante letras mayúsculas (X, Y , Z) mientras que las observaciones se
representan mediante letras minúsculas (x, y, z).
Notación
Capı́tulo 3. REPASO DE ESTADÍSTICA
Dos variables aleatorias X e Y son independientes cuando el conocimiento de los valores que toma una de ellas no aporta información respecto de los valores de la otra, y son dependientes en el caso contrario.
En otros términos, la probabilidad de que la variable X tome el valore x
no está condicionado por el valor que tome la variable Y . Además de esta
clasificación, las variables aleatorias pueden dividirse en dos categorı́as
que se explican a continuación: discretas y continuas.
3.2.1.
60
Variables
aleatorias
independientes
Variables aleatorias discretas
Se dice que una variable aleatoria es discreta cuando puede tomar un
número contable de valores. Algunos ejemplos de variables aleatorias
discretas son: el resultado del lanzamiento de una moneda al aire, cuyo
resultado puede ser cara o cruz o la nota entera correspondiente a la
calificación de un examen, que puede tomar valores enteros entre 0 y 10.
Definición
El comportamiento de una variable discreta se puede caracterizar mediante dos funciones: la función de probabilidad (de carácter puntual) y
la función de distribución (de carácter acumulativo).
Caracterización
de una variable
discreta
Función de probabilidad
La función de probabilidad de una variable discreta, que se deonta
por p(x), representa la probabilidad de que X tome un valor concreto
x, es decir:
p(xi ) = P (X = xi )
(3.1)
Si S representa el espacio muestral, debe cumplirse la siguiente propiedad:
p(xi ) = 1
(3.2)
i/xi ∈S
Función de distribución
Una forma equivalente de caracterizar el comportamiento de X es
a partir de la función de distribución, F (x), que en cada punto xi
representa la probabilidad de que la variable tome un valor menor o
igual que xi . Es decir:
F (xi ) = P (X ≤ xi )
(3.3)
Si X puede tomar los valores x1 , x2 , · · · , xn , la siguiente expresión indica
como calcular F (x) a partir de p(x):
Capı́tulo 3. REPASO DE ESTADÍSTICA
F (xi ) =
i
p(xj )
61
(3.4)
j=1
F (x) cumple las siguientes propiedades:
a) 0 ≤ F (x) ≤ 1 para todo x.
b) F (x) debe ser no decreciente en su dominio (es decir, si x1 < x2 ,
entonces F (x1 ) ≤ F (x2 )).
c) lı́m F (x) = 1 y lı́m F (x) = 0
x→∞
3.2.2.
x→−∞
Variables aleatorias continuas
Se dice que una variable aleatoria es continua cuando en un intervalo
puede tomar un número infinito e incontable de valores. Algunos ejemplos de este tipo de variables son: el volumen de agua que contiene un
recipiente o la tiempo entre llegadas de dos autobuses a una determinada estación.
Función de densidad
Es equivalente a la función de probabilidad en el caso de variables
aleatorias discretas. Se denota por f (x) y cumple las siguientes
propiedades:
a) f (x) ≥ 0
∞
b)
f (x)dx = 1
−∞
Estrictamente, la probabilidad de que una variable tome un valor exacto
es cero (por ejemplo, que una pieza mida 15,456324841... cm), y debe estudiarse la probabilidad dentro de un intervalo de valores (por ejemplo,
entre 15,450 cm y 15,455 cm). El conocimiento de la función de densidad
permite calcular, por integración, la probabilidad de que X pertenezca a
un determinado intervalo:
x0
x1
P (X ≤ x0 ) =
f (x)dx
;
P (x0 ≤ X ≤ x1 ) =
f (x)dx
−∞
x0
Función de distribución
La función de distribución de una variable aleatoria X, que se denota
por F (x), al igual que en el caso discreto, representa la probabilidad de
que la variable X tome un valor menor o igual que x, es decir:
F (x1 ) = P (X ≤ x1 )
Definición
Capı́tulo 3. REPASO DE ESTADÍSTICA
62
La relación entre la función de distribución y la de probabilidad se establece mediante la siguiente expresión (análoga a 3.4):
F (x1 ) = P (X ≤ x1 ) =
f (x) =
x1
−∞
f (x)dx
dF (x)
dx
(f (x) → F (x))
(3.5)
(F (x) → f (x))
(3.6)
Además, se verifican las siguientes propiedades:
a) lı́m F (x) = 0
x→−∞
b) lı́m F (x) = 1
x→∞
c) Es no decreciente en su dominio (si x1 < x2 , entonces F (x1 ) ≤
F (x2 )).
3.2.3.
Medidas caracterı́sticas de una variable aleatoria
Las funciones anteriores permiten suficiente para caracterizar el comportamiento de una variable. Existen otras medidas que permiten disponer de información derivada de dichas funciones que, entre otras cosas,
permite disponer de información más elaborada. A continuación, se presenta un conjunto de medidas que complementan a f (x) y F (x). Las
más importantes son las de centralización, que indican la tendencia del
valor medio de los datos, y las de dispersión, que miden su variabilidad.
Medidas de centralización
La medida de centralización más utilizada es la media, μ, o esperanza matemática, E(X). Se obtiene a partir de la suma de los posibles
valores que puede tomar la variable aleatoria ponderados por sus
respectivas posiblidades:
⎧
⎪
variables discretas
⎪
⎨ xi p(xi )
μ = E(X) =
(3.7)
⎪
⎪
⎩ ∞ xf (x)dx
variables continuas
−∞
Otra medida de centralización es la mediana, xme . Representa el valor
para el cual las probabilidades de que X sea mayor y de que sea menor
que xm son idénticas. Su expresión matemática es la siguiente:
revisar definicion
xme =
PENDIENTE
⎧
⎪
⎪
⎨F (x) ≤ 0, 5
variables discretas
⎪
⎪
⎩F (x) < 0, 5
variables continuas
(3.8)
Capı́tulo 3. REPASO DE ESTADÍSTICA
revisar definicion
Una medida menos utilizada es la moda, xmo , que representa el valor
más frecuente de X y su expresión matemática es 3.9:
xmo /f (xmo ) =
63
PENDIENTE
(3.9)
Medidas de dispersión
La medida de dispersón más utilizada es la varianza. Se denota
por σ 2 y mide la dispersión de X de los valores de X en torno a la media,
E(X), como muestra la figura 3.2. Se calcula de la siguiente manera:
2
σ = Var(X) =
⎧
2
⎪
⎪
⎨ (xi − μ) p(xi )
variables discretas
⎪
⎪
⎩ ∞ (x − μ)2 f (x)dx
−∞
variables continuas
(3.10)
La varianza cumple las siguientes propiedades:
1. Var(X) ≥ 0.
2. Var(cX) = c 2 Var(X).
n
n
3. Var( i=1 Xi ) = i=1 Var(Xi ), si las variables Xi son independientes.
Otra forma habitual de caracterizar la dispersión es mediante la desvia√
ción estándar, definida como σ = σ 2 . Conocer la media y la desviación
tı́pica de una variable aleatoria permite calcular la proporción de una distribución que está situada entre μ ± kσ , siendo k una constante positiva,
mediante la acotación de Tchebychev:
P (μ − kσ ≤ X ≤ μ + kσ ) ≥ 1 − 1/k2
(3.11)
Por ejemplo, la probablidad de que la variable X tome un valor perteneciente al intervalo μ ± 3σ es de, al menos, el 89 % y para μ ± 4σ es de, al
menos, el 94 %.
Interpretación
de la varianza:
la desviación
tı́pica
Capı́tulo 3. REPASO DE ESTADÍSTICA
σ2
baja
σ2
alta
μ
μ
(a)
(b)
Figura 3.2: funciones de densidad de una variable continua con varianza alta
(a) y baja (b)
Medidas de relación lineal de dos variables
Al estudiar dos variables aleatorias, X e Y , puede interesar conocer si existe una relación lineal entre ellas. La covarianza permite
cuantificar dicha relación y se define como sigue:
Cov(X, Y ) = E[(X − μX )(Y − μY )] = E[XY ] − μX μY
(3.12)
donde μX y μY son los valores de las medias de X e Y , respectivamente.
La interpretación de su valor es la siguiente:
• Si X e Y son independientes, su covarianza es nula. No se cumple lo contrario, es decir, la covarianza nula no indica, en general,
independencia (salvo en el caso de que ambas variables sigan una
distribución normal).
• Si Cov(X, Y ) > 0, se dice que X e Y están correlacionadas positivamente. En este caso, si x > μX en una determinada observación,
existe una tendencia a que y > μY , y si x < μX la tendencia es
y < μY . Cuando Cov(X, Y ) < 0 se dice que están correlacionadas
negativamente y la tendencia es la contraria a la del caso anterior
(x > μX ⇒ y < μY ; x < μX ⇒ y > μY )
La covarianza no es una medida adimensional, lo cual representa un incoveniente ya que varia al cambiar las unidades de medida de las variables.
Por ejemplo, la covarianza es diferente si X e Y representan longitudes
en cm que si se hace en m, por lo que, aunque su signo aporta información, su valor absoluto es difı́cil de interpretar.
64
Capı́tulo 3. REPASO DE ESTADÍSTICA
65
Para eliminar este inconveniente se define el coeficiente de correlación
como:
Cov(X, Y )
ρ(x, y) =
(3.13)
σX σY
Una medida
adimensional de
la dependencia
Se puede demostrar que −1 ≤ ρ(X, Y ) ≤ 1 y su signo tiene el mismo
significado que el de Cov(X, Y ). Además, cuanto más cerca esté ρ(X, Y )
de 1, mayor es la correlación positiva entre X e Y . Del mismo modo,
cuanto más se acerca ρ(X, Y ) a -1, mayor es la correlación negativa.
3.2.4.
Media y varianza de una combinación lineal de variables aleatorias
La obtención de un intervalo de confianza para la media de una variable de
salida es el análisis más sencillo de un modelo de simulación. La obtención
de dicho intervalo se basa, entre otras cosas, en la expresión de la meida y la
varianza correspondientes a variable aleatoria, Y , definida como una combinación lineal de n variables aleatorias independientes, X1 , X2 , · · · , Xn :
Y = k1 X1 + k2 X2 + · · · + kn Xn
A continuación se expresan las principales medidas de Y en función de las de
X1 , X2 , · · · , Xn :
Media:
E(Y ) = k1 E(X1 ) + k2 E(X2 ) + · · · + kn E(Xn ) =
n
ki E(Xi )
(3.14)
i=1
Varianza:
Var(Y ) = k21 Var(X1 ) + k22 Var(X2 ) + · · · + k2n Var(Xn ) =
n
k2i Var(Xi )
(3.15)
i=1
Varianza de sumas y diferencias de dos variables
La varianza de una variable Z definida como la suma o la diferencia de
X e Y puede calcularse mediante las siguientes expresiones:
Z = X + Y ⇒ Var(Z) = Var(X) + Var(Y ) + 2Covar(X, Y )
(3.16)
Z = X − Y ⇒ Var(Z) = Var(X) + Var(Y ) − 2Covar(X, Y )
(3.17)
Capı́tulo 3. REPASO DE ESTADÍSTICA
3.2.5.
66
Estimadores de máxima verosimilitud
En muchas ocasiones, se desea caracterizar algún fenómeno, que corresponde a una variable aleatoria, de la cual se conocen algunas observaciones. Por
ejemplo, el tiempo que se tarda en realizar el montaje de un subconjunto en
una planta de fabricación no es determinista, sino que es de carácter aleatorio.
En este caso, puede interesar caracterizar el comportamiento de dicho tiempo
en términos de una variable aleatoria. Si se admite, por ejemplo, que el tiemo
sigue una exponencial, será necesario estimar cuál es el parámetro de dicha exponencial. En general, interesa estimar los parámetros de la variable aleatoria
de la que se pueda tratar a partir de un conjunto de observaciones.
Justificación
Dado un conjunto de n observaciones x1 , x2 , ..., xn , y dada una función de
distribución, φ, con un parámetro, θ, la función de máxima verosmilitud, L(θ),
se define como
Función de
máxima
verosimilitud
L(θ) = pθ (x1 ) · pθ (x2 ) · · · pθ (xn )
(3.18)
si φ es discerta, donde pθ (x1 ) es la función de probabilidad de φ, o bien se
define como
L(θ) = fθ (x1 ) · fθ (x2 ) · · · fθ (xn )
(3.19)
si φ es continua, donde fθ (x1 ) es la función de densidad de φ, o bien se define
como
La función de verosimilitud, indica, para cada valor del parámetro θ, cuál es la
probabilidad de que obtener ese conjutnto valores x1 , x2 , ..., xn . El estimador
máximo verosı́mil es aquel valor de θ que hace máximo el valor de la función
φ, es decir, la probabilidad de que se obtengan los valores xi .
Interpretación
Por ello, para obtener el valor de θ, hay que resolver la siguiente ecuación:
Procdeimiento
dL(θ)
=0
dθ
(3.20)
En el caso de que existiera más de un parámetro, el razonamiento serı́a análogo, pero con una función de varias variables, en cuyo caso, habrı́a que igualar
a cero las derivadas parciales con respecto a cada uno de los parámetros.
En las funciones que se presentan más adelante se indica cuáles son los estimadores de máxima verosimilitud de los parámetros correspondientes.
Más de un
parámetro
Capı́tulo 3. REPASO DE ESTADÍSTICA
3.3.
Variables aleatorias frecuentes en simulación
En esta sección se presentan las variables aleatorias más frecuentemente empleadas en simulación, y se ofrece una breve descripción de sus propiedades.
Se han agrupado en dos bloques: continuas y discretas. Para cada una de ellas
se indica lo siguiente:
Principales aplicaciones de la distribución.
Función de densidad (variables continuas) o de probabilidad (discretas).
Función de distribución.
Descripción de sus parámetros.
Rango de valores que puede tomar la variable.
Media, varianza y moda.
Estimadores máximo-verosı́miles de sus parámetros.
Comentarios acerca de la distribución.
3.3.1.
Distribuciones continuas
Uniforme
Posibles
aplicaciones
U(a, b)
Se emplea cuando una variable toma valores en un
rango finito de valores equiprobables.
Sirve como primera aproximación cuando se conoce el
rango de valores de una variable pero no se tiene información acerca de su distribución.
Densidad
Distribución
f (x) =
F (x) =
⎧
1
⎪
⎪
⎨ b−a
si a ≤ x ≤ b
⎪
⎪
⎩0
resto de casos
⎧
⎪
0
⎪
⎪
⎪
⎪
⎨
x−a
⎪
⎪
b−a
⎪
⎪
⎪
⎩1
si x < a
si a ≤ x ≤ b
si x > b
Parámetros
a y b son números reales con a < b.
Rango
[a, b]
Media
a+b
2
67
Capı́tulo 3. REPASO DE ESTADÍSTICA
Varianza
(b − a)2
12
Moda
Todos los valores en (a, b) son equiprobables.
Estimadores
= máx xi
= mı́n xi , b
a
1≤i≤n
1≤i≤n
f (x)
1/(a − b)
0
a
b
x
Figura 3.3: función de densidad de U(a, b)
Triangular
Posibles
aplicaciones
Densidad
Distribución
triang(a, b, m)
Modelo aproximado en ausencia de datos.
f (x) =
F (x) =
⎧
2(x−a)
⎪
⎪
⎪
(b−a)(m−a)
⎪
⎪
⎪
⎪
⎪
⎨
2(b−x)
(b−a)(b−m)
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩0
si a ≤ x ≤ m
si m ≤ x ≤ b
resto de casos
⎧
⎪
0
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
(x−a)2
⎪
⎪
⎪
⎨ (b−a)(m−a)
⎪
⎪
⎪
⎪
⎪
⎪1 −
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩1
(b−x)2
(b−a)(b−m)
si x < a
si a ≤ x ≤ m
si m ≤ x ≤ b
si x > b
68
Capı́tulo 3. REPASO DE ESTADÍSTICA
Parámetros
a, b y m números reales con a < m < b.
Rango
[a, b]
Media
a+b+m
3
Varianza
a2 + b2 + m2 − ab − am − bm
18
Moda
m
Estimadores
Dado que se emplea en ausencia de datos, los estimadores no son relevantes.
f (x)
2/(b − a)
0
0
a
m
Figura 3.4: función de densidad de triang(a, b, m)
b
x
69
Capı́tulo 3. REPASO DE ESTADÍSTICA
Exponencial
Posibles
aplicaciones
Exp(β)
Tiempo entre llegadas de clientes o piezas a un sistema.
Tiempo entre averı́as de un equipo.
No resulta apropiada para tiempos de espera.
Densidad
Distribución
f (x) =
F (x) =
⎧
1 −x/β
⎪
⎪
⎨βe
si x ≥ 0
⎪
⎪
⎩0
resto de casos
⎧
−x/β
⎪
⎪
⎨1 − e
si x ≥ 0
⎪
⎪
⎩0
resto de casos
Parámetros
β>0
Rango
[0, ∞]
Media
β
Varianza
β2
Moda
0
Estimadores
= x(n)
β
Comentarios
Es un caso de especial de Gamma(1, β) y Weibull(1, β).
70
Capı́tulo 3. REPASO DE ESTADÍSTICA
f (x)
1
0.8
0.6
0.4
0.2
0
0
1
2
3
4
5
6
7 x
Figura 3.5: función de densidad de Exp(1)
Gamma
Posibles
aplicaciones
Densidad
Distribución
Gamma(α, β))
Tiempo para completar una tarea. Por ejemplo: duración de un servicio o de una reparación.
⎧ −α α−1 −x/β
⎪β x e
si x > 0
⎪
⎨
Γ (α)
f (x) =
⎪
⎪
⎩0
resto de casos
F (x) =
⎧
α−1
−x/β
⎪
⎪
j=0
⎨1 − e
(x/β)j
j!
⎪
⎪
⎩0
si x > 0
resto de casos
donde Γ(α) es la función gamma completa definida por
Γ (α) =
∞
t z−1 e−t .
0
Parámetros
α>0yβ>0
Rango
[0, ∞]
Media
αβ
Varianza
αβ2
Moda
β(α − 1) si α ≥ 1, 0 si α < 1 .
Estimadores
-
71
Capı́tulo 3. REPASO DE ESTADÍSTICA
1. Exp(β)=Gamma(1, β).
Comentarios
2. lı́m f (x) =
x→∞
⎧
⎪
⎪
∞
⎪
⎪
⎪
⎪
⎪
⎪
⎨
1
β
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩0
si α < 1
si α = 1
si α > 1
f (x)
1.2
1
α=
0.8
1
2
α=1
0.6
α=2
0.4
α=3
0.2
0
1
2
3
4
5
6
7
x
Figura 3.6: función de densidad de Gamma(α, 1) para algunos valores de α
Normal
Posibles
aplicaciones
N(μ, σ 2 )
Variables que representan la suma de otras variables.
Variables con distribución simétrica (por ejemplo,
tiempos de ciclo)
Dependiendo de los parámetros empleados, la función
puede devolver valores negativos.
Densidad
Distribución
f (x) =
⎧
⎪
⎪
⎪
⎨
√1
e
x 2π σ 2
⎪
⎪
⎪
⎩0
−(x−μ)2
2σ 2
si x > 0
resto de casos
No tiene expresión analı́tica.
72
Capı́tulo 3. REPASO DE ESTADÍSTICA
Parámetros
μ ∈ (−∞, ∞) , σ > 0
Rango
[0, ∞]
Media
μ
Varianza
σ2
Moda
μ
n
=
μ
Estimadores
i=1
n
xi
2 =
σ
,
n−1 2
S (n)
n
1. Si la correlación lineal entre dos variables distribuidas normalmente es nula, también son independientes.
Comentarios
2. A la función N(0, 1) = Φ(x) se conoce como normal estándar y se encuentra tabulada. Es sencillo
obtener el valor de cualquier normal a partir de
ella mediante la siguiente relación:
N(μ, σ 2 ) = Φ(
x−μ
)
σ
(3.21)
3. Si X N(μ, σ 2 ), entonces eX sigue una distribución lognormal.
f (x)
0.5
0.4
0.3
0.2
0.1
-3
-2
-1
0
1
2
Figura 3.7: función de densidad de N(0, 1)
3 x
73
Capı́tulo 3. REPASO DE ESTADÍSTICA
Lognormal
Posibles
aplicaciones
LN(μ, σ 2 )
Su principal aplicación se da en variables que son el
producto de un gran número de variables aleatorias
(por ejemplo, la producción total de un sistema en el
que hay varias categorı́as de piezas).
Tiempo para completar una tarea. Tiene una forma
similar a gamma(α, β) o weibull(α, β), pero con su
máximo más cerca de x = 0.
Modelos aproximados donde no hay muchos datos.
Densidad
f (x) =
⎧
⎪
⎪
⎪
⎨
√1
e
x 2π σ 2
−(ln x−μ)2
2σ 2
⎪
⎪
⎪
⎩0
si x > 0
resto de casos
Distribución
No tiene expresión analı́tica.
Parámetros
eμ > 0 y σ > 0
Rango
[0, ∞]
Media
eμ+σ
Varianza
e2μ+σ
Moda
eμ−σ
Estimadores
=
μ
2 /2
2 /2
2 /2
n
Comentarios
(eσ − 1)
ln xi
n
i=1
,
2 =
σ
n
i=1
2
ln xi − μ
n
1. Se dice que una variable X se distribuye según
una lognormal(μ, σ 2 ) cuando se cumple:
X LN(μ, σ 2 ) ⇐⇒ ln X N(μ, σ 2 )
Es decir, si x1 , x2 , · · · , xn se distribuyen según
una lognormal, ln x1 , ln x2 , · · · , ln xn lo hacen
según una normal. Esta relación afecta a: la
hipótesis de qué distribución sigue una muestra,
la estimación de parámetros y tests de bondad,
entre otras cosas.
74
Capı́tulo 3. REPASO DE ESTADÍSTICA
2. Mientras que en Excel (y en la mayorı́a de las
aplicaciones informáticas) los parámetros de
la función son los indicados anteriormente, en
Witness μ representa E(X) y σ 2 representa
2
Var(X). Por tanto, si (μe , σe2 ) y (μw , σw
) son los
parámetros en Excel y Witness respectivamente,
la relación entre ellos es la siguiente:
n
μw = e
μe
w =
⇒ μ
i=1
xi
n
2
2
e2 =
σw
= e2μe +σe /2 (eσe − 1) ⇒ σ
f (x)
1
σ =
n
i=1
2
w
xi − μ
n
3
2
σ =
0.8
0.6
1
2
σ =1
0.4
0.2
0
1
2
3
4
5
x
Figura 3.8: función de densidad de LN(0, σ 2 )
Weibull
Posibles
aplicaciones
Weibull(α, β)
Tiempo para completar alguna tarea.
Intervalo entre dos averı́as de un equipo.
Tiempo de vida de un dispositivo.
Modelos aproximados donde no hay muchos datos.
Densidad
f (x) =
⎧
−α α−1 −(x/β)α
⎪
e
⎪
⎨αβ x
si x > 0
⎪
⎪
⎩0
resto de casos
75
Capı́tulo 3. REPASO DE ESTADÍSTICA
Distribución
F (x) =
⎧
−(x/β)α
⎪
⎪
⎨1 − e
si x > 0
⎪
⎪
⎩0
resto de casos
Parámetros
α>0,β>0
Rango
[0, ∞]
Media
β
Γ
α
Varianza
β2
α
Moda
Estimadores
1
α
2Γ
2
α
2 1
1
−
Γ
α
α
⎧ α−1 1/α
⎪
⎪
β
⎪
α
⎨
si α ≥ 1
⎪
⎪
⎪
⎩0
si α < 1
Se deben cumplir las siguientes 2 ecuaciones1 :
n
α
i=1 xi ln xi
n
α
i=1 xi
=
β
Comentarios
1 la
n
i=1
xiα
−
1
=
α
n
ln xi
n
i=1
1/α
n
1. La distribución Weibull(2, β) también se conoce como distribución de Rayleigh, denotada por
Rayleigh(β) ⎧
⎪
⎪
∞ si α < 1
⎪
⎪
⎪
⎪
⎪
⎪
⎨
2. lı́m f (x) = β1 si α = 1
⎪
x→∞
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩0 si α > 1
primera de ellas debe resolverse numéricamente (ver [1], pág. 286)
76
Capı́tulo 3. REPASO DE ESTADÍSTICA
f (x)
1.4
α=3
1.2
1
α=2
0.8
0.6
α=1
0.4
α = 0,5
0.2
0
0
1
2
3
4
5
x
Figura 3.9: función de densidad de Weibull(α, 1).
3.3.2.
Distribuciones discretas
Bernoulli
Posibles
aplicaciones
Bernoulli(p)
Suceso aleatorio con dos posibles valores.
Base de otras distribuciones discretas (binomial,
geométrica, binomial negativa...)
Probabilidad
Distribución
⎧
⎪
⎪
1 − p si x = 0
⎪
⎪
⎪
⎪
⎪
⎪
⎨
p(x) = p
si x = 1
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩0
resto de casos
⎧
⎪
⎪
0
si x < 0
⎪
⎪
⎪
⎪
⎪
⎪
⎨
F (x) = 1 − p si 0 ≤ x < 1
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩0
si x ≥ 1
Parámetros
p ∈ (0, 1)
Rango
0, 1
Media
p
77
Capı́tulo 3. REPASO DE ESTADÍSTICA
p(1 − p)
Varianza
⎧
⎪
⎪
⎪0
⎪
⎪
⎪
⎪
⎪
⎨
0y1
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩1
Moda
si p <
1
2
si p =
1
2
si p >
1
2
= x(n)
p
Estimadores
1. La distribución Bernoulli(p) representa un experimento con dos posibles resultados: éxito (1) o
fracaso (0). A este tipo de experimentos se les conoce por ensayos de Bernoulli.
Comentarios
2. Si X1 , X2 , · · · , Xt son t variables aleatorias independientes distribuidas según Bernoulli(p), entonces X1 + X2 + · · · + Xt se distribuye según una
Binomial(t, p).
3. Si X representa el número de fracasos antes de
observar el primer éxito en ensayo de Bernoulli,
X geom(p). El numero de facrasos antes de observar el s-ésimo éxito se distribuye según una
binomial negativa con parámetros s y p.
p(x)
p
1−p
0
1
x
Figura 3.10: función de probabilidad de Bernoulli(p) con p > 0, 5.
78
Capı́tulo 3. REPASO DE ESTADÍSTICA
Binomial
Posibles
aplicaciones
Binomial(n, p)
Número de fallos en un lote de piezas.
Tamaño de un lote de piezas o de un grupo de personas.
Cantidad de piezas de un pedido.
Probabilidad
p(x) =
⎧ t
x
t−x
⎪
⎪
⎨ x p (1 − p)
si x ∈ 0, 1, · · · , t
⎪
⎪
⎩0
resto de casos
t
donde
es el coeficiente binomial expresado por:
x
t
t!
=
x
x!(t − x)!
Distribución
⎧
⎪
⎪
0
si x < 0
⎪
⎪
⎪
⎪
⎪
⎪
⎨
x t
i
1−i
F (x) =
si 0 ≤ x ≤ t
i=0
i p (1 − p)
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎪
⎩0
si x > t
donde x representa el mayor número entero menor
que x.
Parámetros
t entero positivo, p ∈ (0, 1)
Rango
0, 1, · · · , t
Media
tp
Varianza
tp(1 − p)
⎧
⎪
⎪
⎨p(t + 1) − 1
y
p(t + 1) si p(t + 1) es entero
Moda
⎪
⎪
⎩p(t + 1)resto de casos
Estimadores
=
p
x(n)
t
79
Capı́tulo 3. REPASO DE ESTADÍSTICA
1. Si X1 , X2 , · · · , Xt son t variables aleatorias independientes distribuidas según Bernoulli(p), entonces X1 + X2 + · · · + Xt Binomial(t, p).
Comentarios
2. Es simétrica si y solo si p = 1/2.
3. Binomial(1, p)=Bernoulli(p).
p(x)
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8 x
Figura 3.11: función de probabilidad de Binomial(8, 0, 2).
Geométrica
Posibles
aplicaciones
geom(p)
Número de piezas inspeccionadas antes de encontrar
la primera defectuosa.
Tamaño de un lote de piezas o de un grupo de personas.
Cantidad de piezas de un pedido.
Probabilidad
p(x) =
⎧
x
⎪
⎪
⎨p(1 − p)
si x ∈ 0, 1, · · ·
⎪
⎪
⎩0
resto de casos
80
Capı́tulo 3. REPASO DE ESTADÍSTICA
F (x) =
Distribución
⎧
x+1
⎪
⎪
⎨1 − (1 − p)
si x ≥ 0
⎪
⎪
⎩0
resto de casos
Parámetros
p ∈ (0, 1)
Rango
0, 1, · · ·
Media
1−p
p
Varianza
1−p
p2
Moda
0
Estimadores
=
p
1
x(n) + 1
1. Si X representa el número de fracasos antes de
observar el primer éxito en ensayo de Bernoulli,
X geom(p).
Comentarios
2. Es el equivalente a una distribución exponencial
en el caso de variables discretas.
p(x)
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
Figura 3.12: función de probabilidad de geom(0,5).
8 x
81
Capı́tulo 3. REPASO DE ESTADÍSTICA
Poisson
Posibles
aplicaciones
Poisson(λ)
Número de eventos que ocurren en u intervalo de
tiempo cuando esos eventos suceden de uno en uno y
con una tasa constante.
Tamaño de un lote de piezas o de un grupo de personas.
Cantidad de piezas de un pedido.
Probabilidad
Distribución
p(x) =
F (x) =
⎧ −λ x
e λ
⎪
⎪
⎨ x!
si x ∈ 0, 1, · · ·
⎪
⎪
⎩0
resto de casos
⎧
⎪
⎪
⎨0
si < 0
⎪
⎪
⎩−λ x
Parámetros
λ>0
Rango
0, 1, · · ·
Media
λ
Varianza
λ
Moda
Estimadores
λi
i=0 i!
si x ≥ 0
⎧
⎪
⎪
⎨λ − 1
si λ es entero
⎪
⎪
⎩
λ
resto de casos
=x
λ
82
Capı́tulo 3. REPASO DE ESTADÍSTICA
1. Si la distribución Poisson(λ) describe el número
de eventos por unidad de tiempo, la distribución
exp(1/λ) representa el tiempo que transcurre entre dos eventos sucesivos.
Comentarios
2. Si X1 , X2 , · · · , Xn son variables aleatorias independientes distribuidas según Poisson(λi ) respectivamente, entonces X1 + X2 + · · · + Xn se
distribuye según una Poisson(λ1 + λ2 + · · · + λn ).
p(x)
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
1
2
3
4
5
6
7
8
x
Figura 3.13: función de probabilidad de Poisson(0,2).
3.4.
3.4.1.
Estimación de la media y de la varianza
Estimación puntual
En muchos casos, sobre todo cuando se estudian variables de salida, no es
necesario conocer con profundidad como se comporta una variable aleatoria
X y basta con obtener información al respecto de sus caracterı́sticas principales: la media y la varianza. En este apartado se explica como estimar estas
propiedades de X.
83
Capı́tulo 3. REPASO DE ESTADÍSTICA
84
Se supone que se dispone de una muestra x1 , x2 , · · · , xn compuesta por valores independientes idénticamente distribuidos de X, donde μ y σ 2 son, respectivamente, la media y la varianza de la población de dicha variable. Para
estimar μ se puede emplear la media de la muestra expresada por:
n
xi
(3.22)
μ = x(n) = i=1
n
Estimación de la
media de una
variable
aleatoria
es un estimador centrado o insesgado de μ, es decir, independientedonde μ
mente del tamaño de la muestra:
=μ
E(μ)
La estimación de la varianza de X se puede realizar a partir de la varianza de
la muestra:
n
2
[xi − x(n)]
2 = S2 (n) = i=1
σ
(3.23)
n−1
Estimación de la
varianza de una
variable
aleatoria
que es un estimador centrado, es decir E(S2 (n)) = σ 2 .
aun siendo un estimador centrado, en k muestras
Por la propia definición de μ,
toma k valores que, en general, son diferentes. En unos casos, los valores
μ
también es
anteriores están más cerca de μ que en otros. Esto se debe a que μ
una variable aleatoria, que depende de los valores observados en la muestra,
cuya varianza Var[x(n)] se expresa por:
⎛
Var [x(n)]
=
⎛
⎞
⎞
n
n
1
1
Var ⎝
xi ⎠ = 2 Var ⎝
xi ⎠
n i=1
n
i=1
=
n
1 Var(xi )
n2 i=1
=
1
σ2
2
nσ
=
n2
n
(porque xi son independientes)
(3.24)
Dado que E[x(n)] = μ, cuanto menor es el valor de su varianza mayor es su
precisión como estimador, es decir, menor es la distancia esperada entre x(n)
y el verdadero valor de μ. El valor de Var[x(n)] se puede estimar aplicando la
ecuación 3.23 en la expresión anterior:
[x(n)] =
Var
S 2 (n)
=
n
n
[xi − x(n)]
n(n − 1)
i=1
2
(3.25)
Por todo ello, no se puede garantizar que la media de una muestra tome un
valor cercano a μ. Lo que sı́ es cierto es que, en general, a medida que aumenta
se acerque a μ. El método más
el tamaño de la muestra es más probable que μ
como estimador de μ es acompañar al
habitual de evaluar la precisión de μ
valor puntual de un rango de valores dentro del cual se encuentra μ con una
probabilidad determinada. A ese rango de valores se le conoce por intervalo
de confianza y se trata con más detalle en el siguiente apartado.
Un estimador
puntual no es
suficiente...
Capı́tulo 3. REPASO DE ESTADÍSTICA
3.4.2.
Intervalos de confianza para la media
Como se ha visto anteriormente, junto al valor del estimador de la media conviene dar un intervalo de valores entre los cuales se encuentre μ con una probabilidad alta, conocido como intervalo de confianza. A partir de ahora, cuando
se habla de un intervalo de confianza para μ con un nivel de confianza 1 − α
se hace referencia a un intervalo [a, b] que cumple que el 100 · (1 − α) % de los
intervalos ası́ construidos contienen al verdadero valor de μ (a y b dependen
de la muestra analizada).
A continuación, se indica cómo construir un intervalo de confianza para el
valor esperado de una variable aleatoria X a partir de un conjunto de n observaciones x1 , x2 , · · · , xn .
Sean μ y σ 2 los valores de la media y la varianza de X respectivamente. Para
ello se define una nueva variable aleatoria Zn mediante la siguiente expresión:
Zn =
|x(n) − μ|
σ 2 /n
(3.26)
y se denota por Fn (z) a la función de distribución de dicha variable. A continuación se enuncia el teorema central del lı́mite:
Teorema 1 Fn (z) → Φ(z) cuando n → ∞, independientemente de la distribución que siga la variable aleatoria X, donde Φ(z) es la función de distribución
normal con parámetros μ = 0 y σ 2 , también conocida como normal estándar
(ver apartado 3.3).
Según este teorema, si n es lo “suficientemente” grande, Zn se aproxima a
una distribución normal estándar. Pero la aplicación del teorema anterior para
construir un intervalo para μ tiene un inconveniente: generalmente no se conoce σ 2 . Sin embargo, como S2 (n) converge a σ 2 a medida qu crece n, el teorema
central del lı́mite sigue siendo cierto si en la expresión 3.26 se sustituye σ 2 por
S2 (n) como sigue:
|x(n) − μ|
Zn = S2 (n)/n
(3.27)
La variable Zn ası́ definida sigue una distribución N(0,1) para valores elevados
de n. Como se conoce su distribución, se puede construir un intervalo [a, b]
donde P (a ≤ z ≤ b) = 1 − α. Si el intervalo [a, b] se construye centrado en
x(n), entonces a = −z1−α/2 y b = z1+α/2 que tienen el siguiente significado
(ver figura 3.14):
P (Z < −z1−α/2 ) = 1 − α/2
P (Z > z1−α/2 ) = 1 − α/2
85
Capı́tulo 3. REPASO DE ESTADÍSTICA
86
f (x)
P (z ∈ área sombreada) = 1 − α
−z1−α/2
x(n)
x
z1−α/2
Figura 3.14: función de densidad normal estándar
Estos valores se pueden consultar en la tabla 1. Para valores altos de n se
cumple la siguiente expresión:
Cambiar tabla 1 por un comando ref.
PENDIENTE
x(n)−μ
P −z1−α/2 ≤ √ 2
≤ z1−α/2
S (n)/n
⎛
=
P ⎝x(n) − z1−α/2
≈
1−α
S 2 (n)
≤ μ ≤ x(n) + z1−α/2
n
⎞
S 2 (n) ⎠
n
(3.28)
Por lo tanto, para valores altos de n, con una probabilidad de (1−α), μ esté pertenecerá al intervalo:
S 2 (n)
(3.29)
x(n) ± z1−α/2
n
El intervalo de confianza para μ = E(X) se construye a partir de la expresión
anterior:
⎡
⎤
2 (n)
2 (n)
S
S
⎣x(n) − z1−α/2
⎦
, x(n) + z1−α/2
(3.30)
n
n
Su interpretación es la siguiente: si se dispone un número elevado de muestras de n observaciones, con n lo “suficientemente”grande, construyendo un
número elevado de intervalos de confianza con un nivel (1 − α) para cada una
de estas muestras, la proporción de intervalos que contienen a μ es aproximadamente (1 − α).
Capı́tulo 3. REPASO DE ESTADÍSTICA
El problema de las expresiones anteriores es que se considera que n es “suficientemente” grande. Normalmente, n toma un valor demasiado pequeño para
aplicar el teorema central del lı́mite. Si se considera que X sigue una distribución normal, entonces la variable definida por la siguiente expresión
87
¿Cuándo n es
“suficientemente” grande?
|x(n) − μ|
S2 (n)/n
se distribuye según una distribución t con n − 1 grados de libertad y se puede
calcular un intervalo para μ de la siguiente manera:
x(n) ± tn−1,1−α/2
S 2 (n)
n
(3.31)
donde el valor tn−1,1−α/2 se puede consultar en la tabla 2. En general, se considera que para n ≥ 30 se puede aplicar el teorema central del lı́mite.
Eliminar tabla 2 y poner comando ref
PENDIENTE
En realidad, lo más frecuente es que X no se distribuya normalmente. En estos casos la afirmación de que el intervalo dado por la expresión 3.31 cubre
el 100 · (1 − α) % de las casos se hace aún más aproximada, sobre todo si X
sigue una distribución asimétrica. A pesar de ello, como tn−1,1−α/2 > z1−α/2 , el
intervalo proporcionado por la expresión 3.31 es mayor que el que se obtiene
mediante 3.29, por lo que, generalmente, es más probable que cubra el nivel de
confianza (1 − α) y se puede considerar como válido. Por este motivo se recomienda emplear la expresión 3.31 para construir el intervalo de confianza para
la media de una variable aleatoria. En el capı́tulo 6 se aplica este procedimiento
de manera práctica mediante el cálculo de varios intervalos de confianza para
anlalizar variables de salida.
¿Y si X no sigue
una distribución
normal?
3.5.
Generación de valores de variables aleatorias
Los sistemas estudiados mediante simulación, tı́picamente, incluyen fenómenos de carácter estocástico. Como es necesario reproducir el comportamiento
de esos fenómenos, es necesario generar valores que se comoporten de forma consistente con dicho comportamiento. Por ejemplo, si se conoce que el
intervalo entre la llegada de dos clientes a una gasolinera sigue una exponencia de media 52 segundos, es necesario generar valores que se comorten de
esa manera. Una manera de obtener esos valroes es, primero, generar números
aleatorios entre 0 y 1 (U (0, 1)) y, con ellos, generar los valores deseados. A
continuación se presenta una forma de obtener valores de variables aleatorias.
Capı́tulo 3. REPASO DE ESTADÍSTICA
3.5.1.
88
Generación de números aleatorios para U(0,1)
Existen numerosos métodos para generar valores de una variable aleatoria. La
mayorı́a de ellos se basan en la utilización de números aleatorios, definidos
como valores independientes de una muestra uniforme continua en el intervalo (0,1). Si se considera una muestra de n números aleatorios, se denota
por ri el i-ésimo de estos valores. De su definición se deducen las siguientes
propiedades:
La probabilidad de que ri tome un valor concreto es independiente de
los valores que toma en el resto de la muestra.
Todos los puntos tienen la misma probabilidad de aparecer.
Si se considera una muestra de N observaciones y se divide el intervalo
(0,1) en n subintervalos de igual longitud, el número esperado de observaciones en cada intervalo es N/n.
En los sistemas reales, los números aleatorios aparecen de manera natural y se
pueden aprovechar esos fenómenos para conseguir secuencias de valores ri .
Por ejemplo, las primeras tablas de números aleatorios construidas en España
se obtuvieron a partir de la secuencia de números premiados en la loterı́a nacional. Otra posibilidad consiste en generarlos con algún método que no es, de
hecho, aleatorio. En la práctica, existen diversas técnicas para obtener secuencias de valores ri . A diferencia de lo que ocurre en la naturaleza, estos números
no son aleatorios ya que al conocerse el método mediante el cual son generados, la secuencia está perfectamente determinada. No obstante, se pueden
obtener valores que cumplen las principales propiedades de los números aleatorios: uniformidad e independencia. Por ello, son conocidos como números
pseudo-aleatorios y, a efectos prácticos, se pueden considerar números aleatorios (en adelante, salvo especificación previa, se consideran aleatorios).
Números
aleatorios y
pseudoaleatorios
Por lo tanto, una alternativa a la generación de números aleatorios es construir tablas de valores ri que se almacenen en el ordenador. El principal inconveniente es que, debido a la gran cantidad de valores necesarios, ocuparı́an
mucha memoria de almacenamiento (por ejemplo, Witness incluye cerca de
3 × 1057 números aleatorios). La generación de números aleatorios resuelve este problema ya que, en la mayorı́a de los casos, se generan mediante algoritmos
sencillos que permiten generar números aleatorios cuando son necesarios, con
un uso mucho más eficiente de los recursos de computación.
Si existen en la
naturaleza,
¿por
qué generarlos?
Capı́tulo 3. REPASO DE ESTADÍSTICA
Uno de los métodos más utilizados para la generación de números aleatorios
es el llamado de congruencia lineal. Con este método se obtiene una muestra
de números aleatorios en el intervalo de números naturales [0, m − 1] mediante un cálculo recurrente, en el cual un nuevo número aleatorio se obtiene
a partir del último generado aplicando la siguiente expresión:
zi = (a · zi−1 + b)mod(m)
donde el valor inicial z0 se denomina semilla, a es la constante multiplicativa,
c es el incremento, y m es el módulo2 , todos ellos enteros no negativos. El
i-ésimo número aleatorio entre 0 y 1 se obtiene a partir de zi de la siguiente
manera:
zi
ri =
m
Los números aleatorios ası́ generados tienen las siguientes propiedades:
La precisión de ri está limitada por 1/m, es decir, los posibles valores de
ri son: 0/m, 1/m, · · · , m − 1/m.
El número de valores diferentes que se pueden generar es finito y, como
máximo, igual al valor del parámetro m.
Ejemplo 1.1: generación de números aleatorios mediante el método de congruencia lineal con z0 = 53, a = 13, b = 38 y m = 100.
z1 = (a · z0 + b)mod(m) = (13 · 53 + 38)mod(100) = 727mod(100) = 27
r1 =
z1
100
=
27
100
= 0, 27
z2 = (13 · 27 + 31)mod(100) = 89
r2 =
89
100
= 0, 89
vdots
Cabe destacar que la selección de los parámetros del generador afecta considerablemente a las propiedades ideales y a la longitud del ciclo. Para obtener
más información acerca de el generador congruente lineal o de otros métodos
de generación de números aleatorios se recomienda consultar [1].
2 La
operación (x)mod(y) da como resultado el resto de la división de x entre y.
89
Método de
congruencia
lineal
Capı́tulo 3. REPASO DE ESTADÍSTICA
90
Los programas de simulación incorporan o bien algoritmos para generar números aleatorios, o listas de estos números. Por ejemplo, el paquete de simulación
Witness no genera valores ri cuando los necesita, si no que incorpora una lista
de números aleatorios organizados en series y subseries (para más información acerca de este tema se recomienda consultar la ayuda de Witness).
Números
aleatorios en los
programas de
simulación
Revisar si esto es cierto o no
PENDIENTE
3.5.2.
Generación de valores de variables aleatorias
Hasta ahora se ha visto un método para generar valores de una variable aleatoria que se distribuye uniformemente en el intervalo (0,1). Sin embargo, en
general, las variables aleatorias necesarias para construir un modelo de simulación tienen distribuciones diferentes de la uniforme. A continuación, se
explica uno de los numerosos métodos existentes para generar valores de una
variable aleatoria, cuya función de distribución es conocida: el método de la
transformada inversa.
¿Cómo se
utilizan los
números
aleatorios?
La idea en la que se fundamenta el método de la transformada inversa es la
siguiente: generar un número aleatorio ri entre 0 y 1, y evaluar la inversa de la
función de distribución, F (x), en ese punto. La figura 3.15 ilustra gráficamente
como se aplica el método. Se puede demostrar que los valores generados de
esta manera se distribuyen según F (x) y que si los valores ri son independientes entre sı́, también lo son los valores xi . Los números aleatorios introducen
la aleatoriedad que permite imitar el comportamiento estocástico de ciertos
fenómenos, mientras que mediante el método de la transformada inversa se
consigue que los valores generados se distribuyan según una función concreta.
Método de la
transformada
inversa
En el cuadro 3.12 se indica cómo aplicar el método anterior a varias funciones
de distribución utilizadas frecuentemente en simulación. En dichas expresiones, r indica siempre un número aleatorio (U (0, 1)), y x el valor de la variable
aleatoria que se desea generar.
Aplicación para
algunas
funciones
Los paquetes de simulación permiten controlar la generación de números aleatorios para garantizar que los valores generados sean independientes. En particular, Witness permite al analista elegir qué subserie de números aleatorios
se utilizan en cada variable. Mediante el control de la generación de números
aleatorios es posible obtener mejores resultados computacionales, como se explica en el capı́tulo 9 dedicado a la presentación de técncias de reducción de
la varianza.
Programas de
simulación
Capı́tulo 3. REPASO DE ESTADÍSTICA
F (x)
1
0.8
ri
0.6
0.4
0.2
0
0
1
2
xi
3
4
5
x
Figura 3.15: método de la transformada inversa para una función continua
91
Capı́tulo 3. REPASO DE ESTADÍSTICA
U(a,b)
x = a + (b − a)r
Exp(β)
x = −β ln r
1. v1 = 2r1 − 1
v2 = 2r2 − 1
2. w = v12 + v22
3. Si w < 1 volver al paso 1. Si w ≥ 1:
N(0,1)
y = −2 ln w/w
x1 = v1 y
x2 = v2 y
4. Si N(μ, σ 2 ), hacer:
x = μ + xσ
weibull(α, β)
x = β(− ln r )1/α
x = xj tal que se cumpla la siguiente expresión:
Funciones
discretas
j−1
i=1
p(xi ) ≤ r ≤
j
p(xi )
i=1
Cuadro 3.12: generación de variables aleatorias de varias funciones de distribución mediante el método de la transformada inversa.
92
Capı́tulo 4
ANÁLISIS DE DATOS DE ENTRADA
METER OTRAS FORMAS DE ALIMENTAR EL MODELO EN WITNESS: .PAR, DISTRIBUCIONES
4.1.
Introducción
Uno de los elementos de los que depende la calidad de un estudio de simulación es la calidad de los datos con los que se alimenta dicho modelo. Como
se explicó en el apartado 1.5, las variables de entrada son aquellos datos de
entrada sobre los que el decisor no tiene control. Sin embargo, las variables de
entrada no pueden tomar cualquier valor. Para representara de forma correcta
el comportamiento del sistema, conviene caracterizar bien cómo se comportan
las variables de entrada y generar valores de acuerdo con esa caracterización
Por ejemplo, si en el resideño de la distribución en planta de un taller no se
disonen de datos correctos respecto a la composición de la demanda de ese
taller, el resultado puede ser muy poco válido, bien infradimensionando o bien
sobredimensionando las instalaciones.
En los sistema objetos de estudio, genralmente no se conoce en términos
analı́ticos o precisos el comportamiento de las variables de entrada. En ocasiones sı́ se dispone de datos históricos en más o menos cantidad (no ası́ si
el sistema no existe). A partir de los datos históricos o de alguna otra manera conviene establecer de forma adecuada el comportamiento de las variables
de entrada. En este capı́tulo se muestran diferentes formas de alimentar un
modelo de simulación y se presentan técnicas para obtener distribuciones que
permitan alimentar bien el modelo.
Cuando se dispone de datos históricos del sistema estudiado, existen tres posibles maneras de alimentar el modelo de simulación corresondiente: con los
propios datos históricos, con una función de distribución empı́rica o con una
función de distribución teórica.
1. La primera posibilidad consiste en alimentar al modelo con los datos
históricos tal y como se han recogido. Por ejemplo, si se estudia el modelo de un muelle de descarga de camiones, en la simulación se utilizan
Formas de
alimentar un
modelo de
simulación
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
los valores observados correspondientes a la operación de descarga, de
manera que cada operación de descarga tiene una duración idéntica a
una operación real que tuvo lugar en algún momento.
Figura 4.1: alimentación del modelo mediante datos históricos
2. Una segunda alternativa consiste en construir una distribución empı́rica
a partir de los datos históricos y, con ella, generar valores de la variable de entrada. Para ello, se divide el espacio muestral en intervalos (o
valores puntuales en caso de las variables discretas) y se asigna a cada
uno de ellos una probabilidad proporcional a la frecuencia con la que
aparecen en la muestra histórica. A diferencia de la alternativa anterior,
esta permite obtener un número infinito de valores comprendidos entre
el máximo y el mı́nimo de los valores históricos.
Figura 4.2: alimentación del modelo con datos obtenidos de una distribución
empı́rica
3. La última alternativa consiste en obtener una distribución teórica, mediante un test de ajuste, que caracterice de forma aceptable el comportamiento de la variable de entrada. Por ejemplo, dada una muestra del
número de clientes que llegan a una tienda en una hora, se comprueba
si el número de clientes que llegan en cada intervalo de tiempo se puede
caracterizar suficientemente bien mediante una distribución de Poisson.
Figura 4.3: alimentación del modelo con datos obtenidos mediante una distribución teórica
La primera alternativa no es muy interesante desde el punto de vista de la explotación del modelo de simulación ya que presenta las siguientes desventajas.
Se dispone de un número limitado de valores para utilizar durante la
ejecución el modelo, por lo que se podrán obtener un número limitado
94
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
95
de valores de salida que, además, sólo representan algunas situaciones
de todas las posibles.
Por otro lado, ya se conoce la respuesta del sistema en esos casos debido
a que han ocurrido en la realidad. Por lo tanto, en el mejor de los casos
obtendremos un conjunto de resultados parecidos a lo que sucedió en el
sistema real.
Sin embargo, los datos históricos son muy valiosos para la validación del modelo, es decir, para confirmar que el modelo representa de forma adecuada el
sistema estudiado, contrastando los resultados obtenidos en la simulación con
lo ocurrido en el sistema real.
En el caso de formar una distribución empı́rica con las observaciones se pueden generar todos los valores entre los el menor y el mayor valor. Por lo tanto,
en términos de su utilidad para la explotación del modelo no presentan los
inconvenientes que aparecen con la alimentación del modelo con los datos
históricos. Las principales desventajas de este método son dos.
Distribución
empı́rica
Debido a la aleatoriedad del fenómeno observado, la muestra puede presentar irregularidades, sobre todo si se han recogido pocos datos.
Al emplear una distribución empı́rica solo se pueden generar valores
dentro del rango de los datos recogidos, y quizá la probabilidad de obtener valores fuera de ese rango no sea cero.
El uso de una función teórica presenta ventajas sobre el uso de una distribución empı́rica, sobre todo si el número de datos no es muy elevado.
Distribución
teórica
Se obtiene una función consistente en todo el rango, sin posibles irregularidades.
Mediante distribuciones teóricas se pueden generar valores fuera de los
lı́mites de los datos observados durante el periodo de muestreo.
Es más compacta y fácilmente modificable en el caso de querer estudiar
el efecto de cambios en las condiciones de entrada.
Por todo lo anterior, esta última suele ser la mejor opción y sólo en caso de no
encontrar una distribución teórica que se ajuste bien a los datos históricos se
justifica el uso de funciones empı́ricas.
A continuación, se muestra cómo alimentar con distribuciones empı́ricas un
modelo de simulación construido con Witness. A continuación se presenta el
proceso de ajuste de los datos históricos a distribuciones teóricas. En la sección 4.3 se indican los pasos del ajuste y en un cuadro se resume el proceso.
En la sección ?? se explica como hacer este ajuste usando una hoja de cálculo
mediante un ejemplo práctico. Para finalizar, en el último apartado se resuelve
el mismo problema usando una aplicación especı́fica.
Estructura del
capı́tulo
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
fr elativa
0.4
0.3
0.2
0.1
0
0
2.5
5
7.5
x
7.5
x
(a) Distribución empı́rica
fr elativa
0.4
0.3
0.2
0.1
0
0
2.5
5
(b) Distribución teórica
Figura 4.4: representación gráfica para una muestra de 50 datos de la función
empı́rica y de una posible función teórica.
4.2.
Ejemplo 1. Distribuciones empı́ricas en Witness
A partir de los datos correspondientes al tiempo entre llegadas del ejemplo
4.2 del capitulo 1, construir una función de distribución empı́rica en Witness.
Tiempo entre llegadas (dı́as)
% casos observados
2
5
3
13
4
17
5
27
6
23
7
10
8
5
96
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
Witness dispone de un tipo de elemento, llamado distribución para introducir variables aleatorias empı́ricas. Se puede crear un elemento de tipo con la opción Definir (como en la figura 4.5). Existen diferentes tipos de
distribuciones, según devuelva un número entero, un número real o un
nombre y según sea discreta, continua o se defina de acuerdo a una curva de
probabilidad acumulada. En este caso, se trata de una distribución discreta
que devuelve valores enteros.
97
Elemento
Distribución
Figura 4.5: definición de la distribución TiempoEntreCamiones.
Esta función se puede configurar introduciendo los datos correspondientes a
las frecuencia obsevada para cada uno de los valores de la variable “tiempo
entre camiones”. Ası́, se pueden introducir todos los pares Valor-Peso, 2 − 5,
3 − 13, ..., 8 − 5. La suma de todos los pesos no tiene que ser necesariamente
100. La figura 4.6 muestra cómo el aspecto de la ventana de configuración tras
introducir todos los datos.
Configuración
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
98
Figura 4.6: configuración de la distribución TiempoEntreCamiones.
Una vez definida y configurada la distribución, se puede utilizar en el modelo, de la misma manera que, por ejemplo, se utiliza la distribución predefinida ((NEGEXP(10))). Como se ha comentado, tal y como se ha definido la
distribución no es posible obtener valores menores que 2 ni mayores que
8. Por otro lado, modificar una distribución empı́rica exige un poco más de
trabajo que modificar una función teórica. Por eso, en la medida de lo posible,
es preferible utilizar distribuciones teóricas, para lo cual es necesario realizar
un test de ajuste a partir de los datos históricos, tal y como se indica en el
próximo epı́grafe.
4.3.
Utilización
Tests de ajuste
Tal y como se ha discutido, cuando es posible, conviene alimentar el modelo
con distribuciones teóricas. Para ello, es necesario disponer de un conjunto de
n datos históricos, x1 , x2 , · · · , xn correspondientes a una variable de entrada,
X. El objetivo es ajustar el comportamiento de X a una función de densidad
(o probabilidad en el caso de que X sea discreta) poder generar valores con
los que ejecutar el modelo. Para ello, en primer lugar se estudia la manera en
la que se distribuyen los valores de la muestra para establecer una hipótesis
como la siguiente:
H0 :
H1 :
La variable X se ajusta a la distribución de probabilidad f (x)
con parámetros α, β, · · · .
La variable X no se ajusta a la distribución anterior.
Contraste de
hipótesis
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
El siguiente paso es comprobar, mediante un test de ajuste, si la hipótesis
H0 es cierta. Si no se puede demostrar que sea falsa, se acepta como cierta.
Para realizar estos tests se establece un nivel de confianza, α, que representa
la probabilidad de rechazar H0 siendo cierta. A continuación se presenta de
forma detallada todo el procedimiento.
99
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
1. Comprobar la independencia de los datos históricos. Se agrupan los datos en parejas (xi , xi+1 ) y se representan en el espacio XY. Se puede apreciar gráficamente si los
datos están correlacionados (ver figura 4.7).
2. Identificar la distribución. Se divide el rango de las observaciones en k intervalos
√
de igual amplitud (se recomienda k > n). A partir de esta división se construye un
histograma donde la altura de cada barra representa la frecuencia relativa con la que
aparecen los valores de la muestra en ese intervalo. A partir del aspecto de esta gráfica
se eligen las posibles distribuciones para el ajuste.
3. Estimar los parámetros. Para ello se aconseja emplear los estimadores máximo
verosı́miles. En el capı́tulo dedicado a repaso de estadı́stica se detalla ampliamente
como llevar a cabo este paso para cada distribución (ver 3.2.5).
4. Formular la hipótesis del test. Se formula la hipótesis nula conforme a la elección
de la distribución y la estimación de sus parámetros.
Test de la χ 2
Test de Kolmogorov-Smirnov
4. Dividir el rango de las observaciones
en k intervalos. Es aconsejable que estos
intervalos sean equiprobables para la función f (x) considerada. En este caso la probabilidad de que una valor de la variable X
pertenezca a cada intervalo es p = 1/k y se
recomienda tomar k tal que np > 5
5. Construir el estadı́stico:
χ2 =
k
(Ni − npi )2
npi
i=1
(4.1)
donde Nj es el número de observaciones
pertenecientes al intervalo i-ésimo y pi es
la probabilidad (según la función teórica
elegida) de que un valor pertenezca a ese
mismo intervalo.
6. Aplicar el criterio de decisión. No se rechaza H0 si:
2
χ 2 < χk−m−1,1−α
2
donde χk−m−1,1−α
es el valor obtenido en la
tabla 3, α el nivel de confianza y m representa el número de parámetros estimados.
4. Ordenar las observaciones en orden
creciente (asignando a x(1) el menor valor
de xi y a x(n) el mayor).
5. Calcular la función de distribución
empı́rica de la muestra, Fn (x), que se define como:
⎧
⎪
⎪
0, si x ≤ x(1) ,
⎪
⎨
Fn (x) = ni , si x(i) ≤ x ≤ x(i+1) , (4.2)
⎪
⎪
⎪
⎩1, si x ≥ X
(n)
6. Calcular para cada observación x(i) :
Di = máx
% %
%&
$%
% %
%
%
%Fn (X(i−1) ) − F̂ (X(i) )% , %Fn (X(i) ) − F̂ (X(i) )%
7. Aplicar el criterio de decisión. No se rechaza H0 si:
D(α, n) ≥ máx Di
donde D(α, n) es un valor obtenido en la
tabla 4 y α el nivel de confianza.
100
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
Cuáles son las tabla 3 y 4 (a la que se refiere el cuadro resumen del test)
Figura 4.7: diagrama de dispersión de una muestra no correlacionada y de otra
correlacionada linealmente
4.4.
Ejemplo 2
En este apartado se presentan un ejemplo en el que se emplea una hoja de
cálculo para reproducir todos los cálculos resumidos anteriormente.
En este apartado, se presenta el análisis de un conjunto de datos históricos,
y se realizan los dos tests de ajuste presentados haciendo uso de Excel para
reproducir los cálculos.
Para seguir la explicación se recomienda trabajar sobre los siguientes archivos:
Ejemplo2-1.xls, que contiene los datos de partida y las hojas necesarias para reproducir todos los cálculos.
Ejemplo2-1 solucion.xls, donde están todos cálculos ya hechos.
4.4.0.1. Primer paso: comprobación de la independencia
En la hoja ((Datos)) del archivo Ejemplo2-1.xls se muestran los valores de las
500 observaciones que se analizan en este ejemplo. De acuerdo con el cuadro
de la sección 4.3, en primer lugar, hay que comprobar la independencia de las
observaciones. Para ello hay que hacer lo siguiente.
1. Agrupar los valores en parejas (xi , xi+1 ) para formar puntos en el espacio XY, de manera que queden n − 1 puntos (x1 , x2 ), (x2 , x3 ), · · · ,
(xn−1 , xn ). Para ello, lo que hay que hacer es copiar en dos columnas
adyacentes los valores observados de tal modo que cada xi tenga a su
derecha el valor xi+1 .
101
PENDIENTE
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
2. Representar gráficamente estos puntos para decidir, de manera visual, si
la muestra está compuesta por datos independientes. Para ello, es necesario crear un gráfico en Excel: ( Gráfico / Tipo de gráfico / XY (Dispersión)
).
En la figura 4.8 se muestra el resultado de este proceso. No se observa que
los puntos se agrupen de acuerdo con ninguna relación particular, y se puede
admitir que los datos de la muestra son independientes.
xi+1
200
150
100
50
0
0
50
100
150
200 xi
Figura 4.8: ejemplo de gráfico de dispersión XY
4.4.0.2. Segundo paso: identificación de la función de probabilidad
A continuación hay que identificar, mediante un histograma, a qué posibles
funciones pueden asociarse los datos de la muestra. Para construir dicho histograma hay que agrupar las observaciones en k intervalos de igual amplitud.
√
Una orientación a la hora de elegir el k es escoger un valor cercano a n. En
√
este caso se ha elegido dividir en 20 intervalos ( 500 = 22, 36) cuya longitud
es:
172, 93 − 0, 01
= 8, 646
20
Para completar el histograma se recomienda seguir los siguientes pasos:
1. Ordenar los datos en orden creciente y copiarlos en la hoja
((Identificación función)).
2. Encontrar el número de datos de la muestra que pertenecen a cada intervalo. Mediante la función matricial de Excel ((FRECUENCIA)) (ver cuadro
102
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
4.4.0.2 o la ayuda de Excel) se obtiene el número de valores pertenecientes a cada intervalo. Para obtener la frecuencia relativa se divide cada
uno de estos valores entre el tamaño de la muestra, n = 500.
3. Representar las frecuencias relativas en un histograma como el de la
figura 4.9 ( Gráfico / Tipo de gráfico / Columnas ).
Figura 4.9: tabla de frecuencias e histograma en Excel
La forma del histograma sugiere como variables potencialmente interesantes,
entre otras, una distribución lognormal o una exponencial. En adelante se analizan cada una de estas posibilidades, comparando los resultados para ambos
casos.
103
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
FUNCIÓN FRECUENCIA EN EXCEL
La función ((FRECUENCIA(datos;grupos))) calcula la frecuencia con la que se
repiten los valores de un rango en un conjunto de datos. Se trata de una
función matricial, ya que da como resultado un conjunto de valores en forma
de matriz. Por lo que su uso es diferente al de una función normal. Para
introducirla en una celda, hay que seguir los siguientes pasos.
1. Seleccionar las celdas donde se quieren obtener las frecuencias observadas para cada intervalo.
2. Introducir ((=frecuencia()).
3. Seleccionar las celdas donde se encuentran los datos de la muestra.
4. Introducir ((;)).
5. Seleccionar las celdas donde se encuentran los lı́mites superiores de
los intervalos.
6. Mantener pulsadas las teclas Ctrl+Mayúsculas+Enter.
Como resultado se obtienen las frecuencias absolutas con las que se repiten
las observaciones en cada rango de valores.
Para este caso concreto, la expresión es ((FRECUENCIA(B2:B501;F6:F25))).
4.4.0.3. Tercer paso: estimación de parámetros
Dependiendo de la función considerada, se deben estimar parámetros diferentes. En la sección 3.3 pueden encontrarse estimadores máximo verosı́miles
para las distribuciones teóricas más comunes. En este caso, los estimadores
son:
Lognormal (LN(μ, σ 2 ))
n
σˆ2 =
ln xi
n
i=1
μ̂ =
n
i=1
Exponencial (exp(β))
β̂ = x(n)
ln xi − μ̂ 2
n
Cuadro 4.1: estimadores MLE para lognormal y exponencial
Mediante estas expresiones se obtienen los paráemtros corresponeientes a la
lognormal, μ̂ = 2, 62 y σˆ2 = 1, 89, y el correspondiente a la exponencial β̂ =
26, 09.
4.4.0.4. Cuarto Paso: test de ajuste
Test χ 2
104
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
En primer lugar se realiza el test χ 2 para la hipótesis lognormal y después para
la exponencial. En el primer caso, la formulación de la hipótesis es la siguiente:
H0 :
La variable X se ajusta a la distribución de probabilidad
LN(2, 62, 1, 89).
H1 :
La variable X no se ajusta a la hipótesis anterior.
A continuación se presenta como realizar el contraste χ 2 de H0 paso a paso:
1. Calcular la amplitud de los intervalos. Se divide la función en k intervalos equiprobables y para cumplir la recomendación np > 5 se toman
20 intervalos (p = 1/k = 0, 05 ⇒ np = 500 · 0, 05 = 25 > 5). Los intervalos se constituyen de tal manera que la probabilidad de que una variable
que se distribuya según una LN(2, 62, 1, 89) tome valor dentro de él sea
p = 1/20 = 0, 05.
2. Calcular el extremo superior e inferior de cada intervalo. Para cada
intervalo i hay que evaluar la inversa de la función de distribución en
x = 0, 05 · (i − 1) y en x = 0, 05 · i. La inversa de una distribución
de probabilidad se obtiene despejando la variable x en la función de
distribución:
y = F (x) ⇒ x = F −1 (y)
En el caso de la lognormal, no se puede despejar directamente debido a la forma de la función de distribución. Excel dispone de la función ((DISTR.LOG.INV(probabilidad;media;desv-estándar))) que proporciona directamente el valor de x tal que P (X < x) = probabilidad. La expresión para calcular los extremos del intervalo i es la siguiente:
lı́mite inferior → DISTR.LOG.INV(0,05 * (i-1) ;2,62;RAIZ(1,89))
lı́mite superior → DISTR.LOG.INV(0,05 * i ;2,62;RAIZ(1,89))
Procediendo de este modo se obtienen unos intervalos como los del cuadro 4.2.
3. Calcular el número de observaciones pertenecientes a cada intervalo.
Se lleva a cabo aplicando de nuevo la función matricial ((FRECUENCIA)),
esta vez con los lı́mites superiores obtenidos en el paso anterior. El resultado se muestra en la columna Ni del cuadro 4.1.
4. Calcular el estadı́stico χ 2 mediante la ecuación 4.1.
2
para α = 0,9, α = 0,95, y α = 0,99.
5. Obtener el nivel crı́tico χk−m−1,1−α
Para ello se emplea la función de Excel ((PRUEBA.CHI.INV(probabilidad ;
grados-de-libertad))), donde probabilidad toma el valor 1 − α (nótese que
el número de grados de libertad es 20-1-1=18).
105
χ 2 , lognormal
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
Intervalo Limite
inferior
Limite
superior
Frecuencia observada (Ni )
Frecuencia esperada (npi )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1,43
2,36
3,30
4,32
5,43
6,67
8,08
9,69
11,55
13,72
16,31
19,44
23,31
28,22
34,68
43,64
57,05
79,90
131,66
∞
30
21
18
16
25
20
22
15
21
20
37
27
27
33
32
38
40
30
25
3
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
0,00
1,43
2,36
3,30
4,32
5,43
6,67
8,08
9,69
11,55
13,72
16,31
19,44
23,31
28,22
34,68
43,64
57,05
79,90
131,66
106
(Ni − npi )2
npi
1,00
0,64
1,96
3,24
0,00
1,00
0,36
4,00
0,64
1,00
5,76
0,16
0,16
2,56
1,96
6,76
9,00
1,00
0,00
19,36
χ 2 = 60, 56
Cuadro 4.2: intervalos equiprobables, frecuencias y estadı́stico
hipótesis lognormal
Comparando el estadı́stico experimental con el nivel crı́tico (cuadro 4.4) se
rechaza la hipótesis de que la muestra siga una distribución lognormal con
parámetros μ̂ = 2, 62 y σ̂ 2 = 1, 89 con un nivel de confianza 90 %.
Alternativamente, se puden formular las hipótesis correspondientes a la distribución exponencial:
H0 :
La variable X se ajusta a la distribución de probabilidad
Exp(26, 09).
H1 :
La variable X no se ajusta a la hipótesis anterior.
Al contrario que en el caso anterior, la inversa de la exponencial se puede despejar directamente y no existe una función en Excel para calcularla. Por tanto,
para obtener los extremos de los intervalos debe introducirse la expresión matemática que se obtiene despejando de su distribución de distribución:
y = F (x) =
⎧
⎨1 − e−x/β
si x ≥ 0
⎩0
otros casos
χ 2 , exponencial
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
x = F −1 (y) = −β ln(1 − p)
(4.3)
donde p es el valor en el que se evalúa dicha función. Procediendo como en el
caso anterior se obtiene un cuadro como 4.3:
Intervalo Limite
inferior
Limite
superior
Frecuencia observada (Ni )
Frecuencia esperada (npi )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1,33
2,74
4,24
5,82
7,50
9,30
11,23
13,32
15,59
18,08
20,83
23,90
27,38
31,41
36,16
41,99
49,49
60,07
78,15
∞
28
31
24
35
28
19
18
21
34
24
22
20
24
15
29
21
31
24
24
28
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
0,00
1,33
2,74
4,24
5,82
7,50
9,30
11,23
13,32
15,59
18,08
20,83
23,90
27,38
31,41
36,16
41,99
49,49
60,07
78,15
(Ni − npi )2
npi
0,36
1,44
0,04
4,00
0,36
1,44
1,96
0,64
3,24
0,04
0,36
1,00
0,04
4,00
0,64
0,64
1,44
0,04
0,04
0,36
χ 2 = 22, 08
Cuadro 4.3: intervalos equiprobables, frecuencias y estadı́stico
hipótesis exponencial
Como el estadı́stico χ 2 es menor que χ18,0,99 (cuadro 4.4), se deduce que la
hipótesis de que la muestra sigue una distribución exponencial con β̂ = 26, 09
no se puede rechazar al nivel 99 % por lo que, según este test de ajuste, esta
distribución podrı́a ser suficientemente buena para alimentar al modelo de
simulación al que se refieren los datos históricos disponibles.
107
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
χ18,0,9
χ18,0,95
χ18,0,99
25,989
28,869
34,805
Lognormal
χ 2 = 127, 6
RECHAZADA
RECHAZADA
RECHAZADA
108
Exponencial
χ 2 = 22, 08
ACEPTADA
ACEPTADA
ACEPTADA
Cuadro 4.4: criterio de decisión del test χ 2 .
Test de Kolmogorov-Smirnov
Igual que con es test anterior, en primer lugar se realiza el contraste correspondiente a la distribución lognormal. El procedimiento para realizar el test
de Kolmogorov-Smirnov es el que sigue.
K-S, lognormal
1. Ordenar los valores de la muestra en orden creciente y copiarlos en el
lugar correspondiente de la hoja ((Test K-S)). A partir de ahora, x(1) es el
primero de estos valores y x(n) el último.
2. Calcular la función Fn (x) en cada punto x(i) . En la celda i-ésima de la
columna Fn (x) se calcula el valor de esta función para x(i) ) mediante la
expresión:
i
Fn =
500
3. Obtener Di para cada valor xi . Para ello, se calculan en cada x(i) las dos
siguientes expresiones1 :
%
%
a) %Fn (x(i−1) ) − F (x(i) )%
%
%
b) %Fn (x(i) ) − F (x(i) )%
y en cada punto Di toma el mayor de los valores anteriores.
4. Obtener el valor del estadı́stico de contraste D(α, n) de la tabla 4. En
el cuadro 4.5 se muestran los valores de D(0, 9, 500), D(0, 95, 500) y
D(0, 99, 500) con los que se compara máx Di .
Referencias a la tabla 4
Como D > D(0, 9, 500), se rechaza la hipótesis de que la muestra sigue una
distribución lognormal con parámetros μ = 2, 62 y σ 2 = 1, 89 (ver cuadro 4.6).
1 para
evaluar LN(μ, σ 2 ) en x en Excel se emplea la expresión ((DISTR.LOG.NORM(x; μ, σ ))).
PENDIENTE
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
109
i
x(i)
Fn (x(i) )
F (xi )
%
%
%Fn (x(i−1 ) − F (xi )%
%
%
%Fn (x(i ) − F (xi )%
Di
1
0,01
0,002
0,000
-
0,002
0,002
2
0,03
0,004
0,000
0,002
0,004
0,004
3
0,05
0,006
0,000
0,004
0,006
0,006
4
0,08
0,008
0,000
0,006
0,008
0,008
5
0,23
0,010
0,001
0,007
0,009
0,009
..
.
..
.
..
.
..
.
..
.
..
.
..
.
496
127,34
0,992
0,947
0,043
0,045
0,045
497
128,19
0,994
0,948
0,044
0,046
0,046
498
136,26
0,996
0,953
0,041
0,043
0,043
499
158,80
0,998
0,963
0,033
0,035
0,035
500
172,93
1,000
0,967
0,031
0,033
D = máx Di = 0, 087
Cuadro 4.5: test de Kolmogorov-Smirnov para la hipótesis LN(2, 62, 1, 89).
D0, 9, 500
D0, 95, 500
D0, 99, 500
0,055
0,061
0,073
Lognormal
D = 0, 124
RECHAZADA
RECHAZADA
RECHAZADA
Exponencial
D = 0, 044
ACEPTADA
ACEPTADA
ACEPTADA
Cuadro 4.6: criterio de decisión del test K-S.
Procediendo de manera análoga para la hipótesis exponencial2 se obtiene que
según este test no se puede rechazar con un nivel de confianza del 99 % que la
muestra siga una distribución Exp(26, 9). Por lo tanto, al igual que sucede en
el test χ 2 , se rechaza la hipótesis lognormal y se acepta la exponencial.
K-S, Exponencial
Cabe destacar que, aunque en este caso coincidan, los resultados de los dos
tests pueden ser diferentes. En estos casos se puede recurrir a otros tests como
Anderson-Darling (ver Law 2001 [1], págs. 351-352).
Comentarios
2 para
evaluar exp(β) en x en Excel se emplea la expresión ((DISTR.EXP(x; 1/β;VERDADERO)))).
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
4.5.
Ejemplo 3. Test de ajuste empleando Bestfit
A continuación muestra una herramienta, Bestfit, que permite realizar un test
de ajuste para el conjunto de datos anterior, x1 , x2 , · · · , x500 . Bestfit, desarrollado por Palisade, forma parte del paquete @Risk, del cual es posible descargar
versiones de prueba desde la página de Palisade (www.Palisade.com)
Para obtener los resultados del test, hay que realizar lo siguiente.
1. Introducir los datos de entrada. El programa permite analizar tres tipos
de datos: muestras, curvas de densidad o curvas de distribución (Fitting /
Input Data Options...) Igualmente, permite elegir entre variables discretas
o continuas. En este caso, el tipo de datos coincide con la configuración
por defecto (muestra de una variable continua). Para introducir los 500
datos, basta con copiar directamente desde Excel y se pegar sobre la
columna Sample.
2. Seleccionar la función para realizar el ajuste. Bestfit permite hacerlo de
dos maneras: o bien se especifica la función que se desea ajustar y sus
parámetros, o se deja que sea el programa el que estime los parámetros
de las funciones que elija el usuario. Esto se selecciona en (Fitting / Specify Distributions to Fit...) En este ejemplo se deja que el programa estime
los parámetros y compare las siguientes funciones: beta, exponencial,
gamma, lognormal23 , normal, triangular, uniforme y weibull.
3. Realizar el ajuste. Para realizar el ajuste se elige Run Fit en el menú Fitting.
4. Interpretar los resultados. Después del paso anterior se abre una ventana como la de la figura 4.10. En ella se pueden distinguir tres bloques de
información.
a) A la izquierda se enumeran las distribuciones seleccionadas
en orden creciente de bondad del ajuste según tres tests: χ 2 ,
Kolmogorov-Smirnov y Anderson-Darling. El test se selecciona en
la pestaña desplegable de la parte inferior del bloque.
b) En la parte central aparece una gráfica que compara el histograma
de la muestra con las función teórica. Además se pueden seleccionar otros tres tipos de gráficos: Difference, que muestra la diferencia en cada punto entre la muestra y la función teórica, P-P, donde
se representa la probabilidad de la función empı́rica de la muestra frente a la función de densidad considerada (interesa que sea
lo más lineal posible), y Q-Q, donde se representan los percentiles
3 Besfit tiene dos formatos para esta función y este es el que coincide con el utilizado en este
texto.
110
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
de la muestra frente a los de la inversa de la función de densidad
considerada.
c) En la parte derecha aparece un informe de las caracterı́sticas principales de la función ajustada como son: valor de los parámetros
estimados, rango, media, varianza... Seleccionando la opción GOF
se muestran los resultados de los 3 tests de ajuste.
Figura 4.10: ventana de resumen de los resultados del ajuste en Bestfit
Los resultados de cada test se presentan en el cuadro 4.7. No existe una regla para decidir qué test es mejor en cada caso. Cada uno tiene sus ventajas
e inconvenientes por lo que una buena opción es estudiar los resultados de
los tres conjuntamente. En este caso, por ejemplo, no hay ninguna razón para
pensar que la muestra no se ajusta a una Exp(26,08), ya que los resultados de
los tres para esta función son aceptables. Aunque también es razonable aceptar que se distribuye según una Beta(0,88 , 27,35), que es la que proporciona
un ajuste mejor según los test χ 2 y K-S.
111
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
Orden
χ2
K-S
A-D
1o
beta
beta
exp
2o
exp
exp
lognormal
3o
lognormal
lognormal
normal
4o
normal
normal
uniforme
o
triangular
triangular
beta
6o
uniforme
uniforme
triangular
5
Cuadro 4.7: orden de las funciones en función de la bondad del ajuste.
La estimación de los parámetros se realiza mediante una versión mejorada de
los estimadores máximo verosı́miles (para obtener más información acerca de
ello ver la ayuda del programa). En algunas funciones los parámetros de Bestfit
no coinciden con los presentados en la sección 3.3, por lo que es conveniente
consultar la ayuda para saber que representan exactamente en cada.
4.6.
Resumen
Alimentar un modelo de simulación de la forma correcta es un requisito imprescindible (aunque no el único) para realizar un análisis correcta del sistema
estudiado.
Existen tres formas de alimentar un modelo. Con datos históricos, con datos
generados a partir de una distribución empı́rica y con datos generados a través
de una distribución teórica.
Con los datos históricos es posible realizar la validación del modelo. Sin emgargo, como el número de valores de los datos históricos no suele ser muy
grande, no resultan útiles para explorar diferentes configuraciones y evaluar
el comportamiento del sistema para tomar una decisión.
Al utilizar variables aleatorias se resuelve el problema anterior. Sin embargo,
generalmente, es preferible utilizar distribuciones teóricas. Por un lado, permiten generar valores dentro de un rango más amplio, son más manejables y
permiten evitar los errores derivados de las observaciones históricas atı́picas.
Para alimentar un modelo con una función de distribución teórica, es necesario
realizar un test de ajuste, tal y como se realizado, primero con Excel y, después,
con Bestfit.
112
Capı́tulo 4. ANÁLISIS DE DATOS DE ENTRADA
En el siguiente capı́tulo se presentan diferentes estrategias de verificación y
validación, para lo cual es necesario disponer de buenos datos de entrada, tal
y como se ha presentado en este capı́tulo.
113
Capı́tulo 5
VERIFICACIÓN Y VALIDACIÓN DE MODELOS
PENDIENTE: REVISAR CALIDAD IMÁGENES
5.1.
Introducción
Para que un modelo sea de utilidad debe estar “bien hecho”. Esto significa dos
cosas: primero, debe estar bien programado y, segundo, debe representar bien
la realidad. Al proceso que garantiza que un modelo está bien programado, se
le denomina verificación, mientras que el que se refiere a la representación
adecuada del sistema estudiado, se denomina validación.
Dicho de otra manera, en términos de las etapas de un estudio de simulación,
la verificación garantiza que el modelo informático es coherente con el modelo
comunicactivo desarrollado, que es reflejo del modelo conceptual. Por su parte, la validación garantiza el modelo conceptual representa de forma correcta
el sistema estudiado para los objetivos fijados. En la figura 5.4, el término validación aparece reflejando esto último y aparece también en la etapa de explotación. La explicación es que si se desea comparar los resultados que ofrece
el modelo con los del sistema real (cuando existe) es necesario disponer del
modelo informático construido para comprobar que, efectivamente, es válido.
Finalemente, la credibilidad de un modelo está relacionada con la confianza
que se deposita en él en términos de la puesta en práctica de las conclusiones
que se obtienen a partir de su análisis.
PENDIENTE: mejorar calidad figura
Definiciones
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
DE
O E
115
DE
O
DEL
EM
E O D DE
D O
MODELO
O E
L
MODELO
OM
O
MODELO
O M
O
E
LO
D E O DE
E E ME O
DO ME
M L
E L
DO
Figura 5.1: verificación, validadación y credibilidad en un estudio de simulación.
Un modelo no verificado difı́cilmente puede ser válido. Sin embargo, un modelo
bien verificado no necesariamente es válido, ya que un modelo puede estar
muy bien programado para representar un modelo conceptual muy alejado
del sistema real.
A lo largo del capı́tulo se presentan algunas técnicas relativas a la verficación y
la validación de modelos, se plantean algunos ejemplos sencillos para ilustrar
cómo verificar modelos y se presentan las caracterı́sticas más importantes de
Witness para facilitar la verificación de modelos.
5.2.
Cómo verificar un modelo
A continuación se presentan algunas técnicas de carácter general para verificar
modelos (consultar Law para profundizar más).
Emplear, cuando sea posible, una estructura modular. Al construir un
modelo conviene identificar subsistemas independientes, modelarlos y
verificarlos por separado. Además, estos subsistemas se pueden repetir
en un modelo o se pueden reutilizar para otros modelos, de forma que si
se dispone de un módulo bien verificado, se podrá reutilizar con buenos
resultados. Por ejemplo, al modelar una planta de montaje de automóviles, puede ser interesante modelar de forma independiente, el montaje
en bruto, la sección de pintura y el montaje final, depurar cada módulo
Técnicas de
verificación
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
por separado y, finalmente, construir el modelo con todos los elementos.
Es recomendable elaborar los modelos con un grado creciente de detalle, comenzando con modelos sencillos e incrementando la complejidad
a medida que se comprueba que el modelo está bien programado en cada caso. En el ejemplo anterior, en una primera aproximación, la linea
auxiliar que prepara los motores puede representarse como una única
actividad, tras comprobar que el modelo es correcto, se puede sustituir
esa actividad por un conjunto de actividades que representen los puestos
de dicha linea.
La participación de varias personas puede facilitar la detección de errores, el intercambio de impresiones al respecto de cómo elaborar el modelo de forma más eficaz y eficiente, etc. Por otra parte, esto facilitará que
el modelo sea más legible, ya que si varias personas deben trabajar sobre
el mismo código, será más sencillo que este se elabore de tal manera que
sea fácilmente inteligible por otros programadores.
Si se dispone de suficiente información, se puede ejecutar el modelo asignando valores a los parámetros para los cuales se conocen los resultados que deberı́an obtenerse. Por ejemplo, un sistema de espera, para
determinadas pautas para los tiempos de servicio y para las llegadas de
los clientes puede modelarse con teorı́a de colas. Por ello, si se alimenta
el modelo de acuerdo con esos suspuestos, se podrı́an comparar con los
resultados teóricos. Tras verificarlo, se deberı́an introducir los valores
origninales.
Para conocer en detalle cómo se comporta el modelo, se puede realizar
un seguimiento de los eventos a medida que se ejecutan y ası́ comprobar
que el modelo informático reproduce el comportamiento deseado.
También se pueden utilizar hipótesis simplificadoras, para las cuales
se conoce el comportamiento del sistema y comprobar si el resultado
es correcto. Una forma sencilla puede ser establecer todos los tiempos
como deterministas y observar si el comportamiento es el esperado.
Los entornos de simulación comerciales ofrecen la posiblidad de crear
una animación, cuya observación puede permitir identificar posibles
errores del modelo. Por ejemplo, al representar el movimientos de las
traspaletas en un almacén, puede ocurrir que existan colisiones que no
se identifiquen si no es a través de la representación gráfica de sus movimientos.
La generación de números aleatorios debe ser consistente con las distribuciones seleccionadas y, en general, se deben generar valors independientes. Por ello, se puede comprobar que la media y la varianza de los
valores generados corresponden a los espeardos y, adicionalmente, se
puede realizar algún test de independencia de los valores generados.
116
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
En general, las herramientas comerciales ofrecen herramientas especı́ficas para realizar la verificación, lo cual constituye una ventaja con respecto a los lenguajes de programación general a la hora de construir un
modelo.
En el siguiente apartado se muestran algunos ejemplos de verificación para
modelos sencillos construidos con Witness y, además, se comentan las herramientas especı́ficas de este entorno que resultan útiles para la depuración.
5.3.
Ejemplos de verificación
Los ejemplos que se muestran en este epı́grafe son sencillos, con lo cual, muchas de las comprobaciones pueden parecer triviales, pero en modelos complejos, son extremadamente útiles.
5.3.1.
Ejemplo 1
El siguiente ejemplo ilustra la estrategia de verificación consistente en configurar el modelo con datos de entrada para los cuales se conoce el resultado
teórico.
Un centro de atención telefónica recibe dos tipos de llamadas: llamadas VIP y
llamadas normales. Los tiempos entre llegadas de dichas llamadas siguen dos
exponenciales, de medias 20 y 1.5 minutos, respectivamente. A medida que
las llamadas llegan quedan en una única cola.
Existen cuatro operadores de nivel 1 que atienden las llamadas de la cola, de
manera que las lamadas VIP tienen preferencia sobre las llamadas normales.
Tiempo de atención de las llamadas sigue una exponencial de media 4 minutos, independientemente del tipo de llamada.
Después se derivan a otros operadores especı́ficos. El tiempo que permanecen después en el sistema sigue una normal logarı́tmica de media 6 minutos
y desviación tı́pica 0.5.
Se pide constuir el modelo, realizar una analogı́a con la teorı́a de colas y comprobar que el modelo es correcto.
El archivo Ejemplo5-1.mod ofrece un posible modelo para representar el sistema anterior. Este modelo consta de los siguientes elementos:
LlamadaVIP y LlamadaNormal, elementos tipo entidad activa con un intervalo entre llegadas de ((NEGEXP(20))) Y ((NEGEXP(1.5))), respectivamente.
117
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
LlamadasEnEspera es una cola donde se almacenan todas las llamadas,
donde la opción de salida es ((Cualquiera)), para permitir que el elemento
que representa a los operadores de nivel 1 pueda atender las llamadas
VIP de forma preferente.
La actividad OperadoresNivel1, con cantidad igual a 4, mediante la regla ((PULL from LlamadaVIP out of LlamadasEnEspera, LlamadaNormal
out of LlamadasEnEspera)) atienden primero las llamadas VIP y, al finalizar, las envı́an al resto del sistema.
La cola RestoSistema tiene un tiempo de permanencia máximo de
((LOGNORML (6,0.5))) para representar el tiempo durante el cual las llamadas permancen aún en el sistema. Finalmente, tras ese tiempo, las
llamadas se expulsan del modelo.
Según la Teorı́a de Colas, si n servidores en paralelo cuyos tiempos de servicio
siguen exponenciales de media μ atienden a clientes que llegan según una
exponencial de media λ, su nivel de ocupación, ρ, viene dado por la expresión
siguiente:
ρ=
μ
nλ
(5.1)
En el caso del ejercicio, no existe la llegada de un sólo cliente, sino dos diferentes, que siguen distribuciones exponenciales. En una hora, por término
medio, llegan 3 llamadas VIP y 40 llamadas normales, es decir, 43 llamadas en
conjunto. El tiempo entre llamadas (independientemente del tipo) es 60
43 , que
es el valor de λ para la expresión 5.1. Por otra parte, n = 4 y μ = 4, por lo que
el tiempo medio de ocupación esperado será:
ρ=
4
60
4 43
= 71,67
(5.2)
Una posible forma de comprobar si esto es ası́ es la que se ofrece en el archivo
Ejemplo5-1 solucion.mod. La solución consiste en lo siguiente.
Existe un nuevo elemento, de tipo Diagrama de tarta, con dos sectores, uno con el valor ((PUTIL(OperadoresNivel1,2))) (para mostrar la proporción del tiempo durante el cual los operadores de nivel 1 han estado
ocupados) y el otro con el complemento a 100 de dicho valor. En la figura 5.2 aparece la ventana de configuración del diagrama de tarta. Para
generar nuevos sectores es necesario hacer clic en el botón sobre el cual
está el cursor en dicha figura.
PENDIENTE mejorar calidad imagen
118
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Figura 5.2: configuración del diagrama de tarta
Se han creado nuevos elementos en la representación del elemento
OperadoresNivel1. El más importante es el elemento de representación
de tipo expresión, para representar ((PUTIL(OperadoresNivel1,2))).
Figura 5.3: tasa de ocupación de OperariosNivel1
La figura 5.3 muestra el valor de la tasa de ocupación de OperadoresNivel1
cuando se ha ejecutado el modelo durante un tiempo relativamente grande y,
se observa, que el valor obtenido (71.59 %) es muy próximo al valor esperado
según la teorı́a de colas (71,67 %).
119
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
El tiempo de servicio no suele ser exponencial. Incluso el tiempo entre las llegadas de los clientes podrı́a no seguir una distribución exponencial. En este
caso, una posible forma de proceder serı́a modificar el modelo e introducir
distribuciones exponenciales, comprobar que el resultado es correcto para esa
configuración y, después, volver a introducir las distribuciones originales. Se
entiende que si los valores son correctos cuando las distribucinoes son exponenciales, la lógica del modelo es correcta y los seguirá siendo al cambiar las
expresión de los tiempos de servicio y del tiempo entre llegadas de clientes.
5.3.2.
Ejemplo 2
Otra manera de verificar el modelo es examinar qué eventos y en qué instante
se producen cuando se ejecuta el modelo.
Confirmar mediante la Ventana de interacción que, efectivamente, tal y como
está programado el modelo, las llamadas VIP se atienden preferentemente.
Una posible propuesta, correspondiente al modelo del archivo Ejemplo5-2
solucion.mod, consiste en los siguiente:
Modificar el código en acciones al entrar y en acciones al salir de LlamadasEnEspera para registrar y mostrar la cantidad de llamadas de cada
tipo que existe cuando entra y cuando sale, respectivamente, una llamada a la cola LlamadasEnEspera.
Ejecutar el modelo Paso a paso
Analizar el resultado en la Ventana de interaccion
La figura 5.4 muestra el código correspondiente a las acciones al entrar. Este código opera de la siguiente manera. Si la llamada que entra es Normal
(((TYPE=LlamadaNormal))) se imprime una cadena de caracteres donde aparece
un texto seguido del número de entidades que hay en el Cola de un determinado tipo (utilizando la función ((NENTS)), ver el apartado 2.7).
IF TYPE = LlamadaNormal
PRINT "\n" + "Llamadas VIP en espera " + NENTS2 (ELEMENT,LlamadaVIP,0)
PRINT "Llamadas normales en espera " + STR (NENTS2 (ELEMENT,LlamadaNormal,0))
ELSE
PRINT "\n" + "Llamadas VIP en espera " + STR (NENTS2 (ELEMENT,LlamadaVIP,0))
PRINT "Llamadas normales en espera " + NENTS2 (ELEMENT,LlamadaNormal,0)
ENDIF
Figura 5.4: acciones al entrar del elemento LlamadasEnEspera
120
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
121
El código correspondiente a las acciones al salir es de naturaleza similar, con la
única diferencia de que hay que restar una unidad al valor obtenido mediante
((NENTS)) para el tipo de pieza que sale de ColaLlamadas.
La instrucción ((Print)) muestra en la Ventana de interacción aquello que le
sigue.
((PRINT \n)) introduce un retorno de carro y permite separar texto el lı́neas
diferentes.
((PRINT \f)) borra todo el contenido de la Ventana de interacción
La figura 5.5 muestra parte de lo que se puede visualizar en la Ventana de
interacción. En el instante 16.73 llega una llamada VIP , entra en LlamadasEnEspera y se muestra por pantalla el contenido del este elemento. Como hay
una llamada VIP, esta es la primera que deberı́a salir en cuanto un operador
se desocupe. Efectivamente, en 16.90 el segundo operador queda libre y de las
cuatro llamadas que hay en cola, la que se atiende es la llamada VIP.
Acciones de
entrada y salida
Para este caso, se puede comprobar visualmente el comportamiento del sistema. Sin embargo, en sistemas más complejos no es tan sencillo y la ejecución
del modelo siguiendo la ejecución de eventos puede ser muy útil.
Figura 5.5: análisis de los eventos en la Ventana de Interacción
5.3.3.
Ejemplo 3
Otra estrategia de depuración es el análisis detallado de la animación. En los
ejercicios anteriores, se ha hecho uso de las herramientas de carácter gráfico para mostrar información, como por ejemplo, al utilizar un diagrama de
tarta o introduciendo la representación gráfica del valor de una variable.
Ejecución paso
a paso
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
A modo de ilustración, en el archivo Ejemplo5-3.mod se muestra un ejemplo
muy sencillo de una intersección de carreteras en T, representadas por elementos de tipo camino. Los coches entran al modelo desde tres localizaciones
en los extremos de la T y se dirigen a alguno de los otros dos extremos. Simplemente, al representar los coches con iconos sencillo, se puede comprobar
que la animación permite identificar visualmente colisiones entre esos iconos.
Una representación más detallada, permitirı́a evaluar esas posbiles colisiones
para casos más realistas.
5.3.4.
Ejemplo 4. Funcionalidades de Witness
En este apartado se presentan algunas funcionalidades adicionales de Witness
que facilitan la verificación de modelos.
En una parte de una planta pintan y secan productos para servidos a otra parte de la fábrica. Los productos que hay que pintar llegan a un almacén previo
a la zona de pintado según una exponencial de media 4 minutos.
El proceso de pintado puede realizarse con tres calidades: baja, media y alta.
Las proporciones en las que deben pintar productos con estas calidades son
20, 40 y 40 %, respectivamente.
Igualmente, los productos son de tres tamaños: pequeño, mediano y grande,
en proporciones del 15, 50 y 35 %. Los tiempos de pintado siguen distribucinoes lognormales de parámetros (μ, σ ) dependientes del tamaño y de la
calidad, y son los que se indican en la siguiente tabla
t. pequeño
t. mediano
t. grande
c. baja
(2,0, 0,22)
(2,3, 0, 2)
(2,5, 0,2)
c. media
(2,5, 0,30)
(2,6, 0,24)
(2,8, 0,30)
c. alta
(3,0, 0,3)
(3,2, 0,30)
(3,6, 0,35)
El tiempo de secado es de 30 minutos y es independiente de las caracterı́sticas
del producto. Los productos se transportan a la siguiente área de trabajo en
palés completos de cinco unidades, donde los palés puede estar formados por
productos de diferente tipo.
Una posible forma de representar el sistema descrito es el correspondiente al
archivo Ejemplo5-4.mod, cuyas caracterı́sticas son las siguientes:
Tamaño y Calidad son dos atributos de tipo cadena de caracteres, donde se registrarán las caracterı́sticas de los productos que se pintan.
Producto es una entidad que llega al sistema según una distribución
((NEGEXP(4))). En las Acciones a la entrada hay un código que asigna valores a los atributos anteriores de acuerdo con las proporciones dadas.
122
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
ColaPintura y ColaEnvio son dos colas que almacenan, respectivamente,
las entidades a la espera de ser pintadas y las piezas pintadas y secas.
Secado es un un colas con tiempos de permanencia máximo y mı́nimo e
iguales a 30 minutos. Esto junto con la regla de salida ((PUSH to ColaEnvio)) hace que las entidades, una vez que han pasado 30 minutos en este
cola se dirijan a ColaEnvio a la espera de salir del sistema.
TiempoPintura es una función que devuelve el valor del tiempo de pintado, en función de dos argumentos Cal y Tam.
Pintura es una actividad que representa el proceso de pintado. El
tiempo de ciclo se obtiene invocando la función interior con los valores de los atributos del Producto que se va a pintar.
Figura 5.6: regla de entrada para Envio
Por último, Envio es una actividad que permite retirar cinco unidades
de Producto cuando están cinco o más disponible. Para ello, la Regla de
entrada es ((PULL from ColaEnvio)) cuando se cumple ((IF NENTS (Envio)
+ NENTS (ColaEnvio) >= 5)) (ver la figura 5.6).
5.3.4.1. Acciones inmediatas
1. Mostrar en la Ventana de interacción diferentes valores del tiempo de
ciclo dePintura y comprobar que los valores parecen correctos.
2. Analizar el contenido del cola Secado. En particular, detener el modelo
cuando haya más de dos productos en este almacén y mostrar en la
Ventana de interacción el valor del atributo Calidad para el producto
situado en la segunda posición del cola Secado.
3. Modificar el valor del atributo Calidad del una pieza almacenada en
ColaPintura.
Witness dispone de un tipo de acciones conocidas como Acciones inmediatas.
Con estas acciones se puede ejecutar código cuando el modelo está detenido.
Para ejecutar Acciones inmediatas, es necesario utilizar la barra de herramientas Modelo, que tiene el aspecto de la figura 5.7. Si esta barra no está visible, se
puede mostrar haciendo clic en Ver / Barras de Herramientas / Modelo.
123
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
124
En el cuadro de texto se puede teclear el código de la acción. Al hacer clic en el
icono situado inmediatamente a la izquierda del cuadro de texto (con un rayo)
se ejecuta dicho código. Alternativamente, se puede hacer clic en Ejecutar /
Acciones inmediatas.
Figura 5.7: barra de herramientas Modelo
Mediante la instrucción ((Print)) es posible mostrar en la Ventana de interacción
aquello que sigue a dicha expresión. Por ejemplo, al ejecutar ((Print TiempoPintura(“grande”,“alta”))) varias veces, se obtiene una secuencia de valores como
los que se muestran en la figura 5.8, que no parecen inconsistentes con los
valores esperados.
Figura 5.8: resultado de la acción ((Print)).
También se pueden utilizar las Acciones inmedaitas para modificar el estado
de algún elmento del sistema. Para comprobar esto, se recomienda ejecutar el
modelo hasta que haya, por ejemplo, dos entidades en Secado. La expresión
((Nombre Elemento at Numero Entero:Nombre Atributo)) se refiere al valor del
atributo Nombre-Atributo de la pieza situada en la posición Numero-Entero
del elemento Nombre-Elemento.
En particular, ((Secado at 2:Calidad)) se refiere al atributo Calidad de la pieza
situada en la segunda posición de Secado. Si en la ventana de Acciones inmediatas se teclea ((Print Secado at 2:Calidad)) aparecerá en la Ventana de interacción
el valor de dicho atributo.
Alternativamente, para conocer el contenido de un elemento, se puede utilizar la opción Examinar. En concreto, haciendo clic con el botón derecho en
cualquier elemento aparece un menú contextual que contiene la opción Examinar.... Al seleccionar esta opción para Secado, aparece una ventana con el
contenido de dicho elemento, tal y como aparece en la figura 5.9
print
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Figura 5.9: opción Examinar...
La figura 5.9 muestra el contenido de Secado. Su estado es normal y contiene dos entidades Producto, en las posiciones 1 y 2 respectivamente. Para
cada una de las entidades, se indican, entre otras cosas, los valores de sus
atributos y, entre ellos, Calidad y Tamaño.
Por último, mediante las Acciones inmediatas es posible modificar el estado de
algún elemento del modelo. Siguiendo el ejemplo previo, al teclear ((Secado at
2:Calidad=“alta”)) se accede al atributo Calidad de la entidad situada en la
segunda posición de Secado y se modifica su valor para que sea “alta”.
En definitiva, para obtener información del modelo en un determinado instante
se puede utilizar la instrucción ((Print)) combinanda con las Acciones inmediatas y la Ventana de interacción. También se puede modificar el estado de los
elementos mediante las Acciones inmediatas.
5.3.4.2. Acciones de usuario
Otra forma de ejecutar códido en un instante determinado, con el modelo detenido, es mediante las Acciones de Usuario. La cadena de caracteres que se
puede escribir en las Acciones inmediatas tiene un lı́mite, por lo que no sirve
para comprobar el comportamiento de un conjunto de acciones relativamente
grande.
Haciendo uso de las Acciones de usuario imprimir por pantalla los valores de
los atributos Calidad y Tamaño de las entidades que están en Secado.
125
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Seleccionando la opción Modelo / Acciones de usuario se abre una ventana
similar a otras ventanas en las que se introducen acciones.
Figura 5.10: código de las Acciones de usuario
Si se introduce y ejecuta el código de la figura 5.10 se mostrará en la Ventana
de Interacción el contenido de Secado: el número de entidades y dos de los
atributos de esas entidades, tal y como se puede observar en la figura 5.11.
Para ejecutar estas acciones hay que hacer clic en el icono situado a la izquierda, en la barra de herramientas Modelo (con los iconos de un rayo y un icono).
Alternativamente, se puede hacer clic en Ejecutar / Acciones de usuario.
Figura 5.11: resultado tras la ejecución de las Acciones de usuario.
5.3.4.3. Archivos .trc. Registro en archivo
Se puede disponer de un archivo .trc que ofrece el resultado que se obtiene
en la Ventana de interacción cuando se ejecuta el modelo Paso a paso. Esto
se puede hacer de dos maneras, bien haciendo clic en el icono que se muestra
en la figura 5.12 o bien activando la opción Ejecutar / Registro en archivo
Figura 5.12: activación y desactivación de generación de archivo .trc
126
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Al activar esta opción se solicita el nombre del archivo al que se enviará la
información. Una vez activado, se puede ejecutar el modelo hasta un determinado instante. El resultado es un archivo como Ejemplo5-4-3.trc.
5.3.4.4. Archivo .log. Registro de piezas y fluidos
Se puede generar un archivo .log en el que se registran todas las moficicaciones relativas a las entidades y a los fluidos del modelo. La activación de
esta opción también se puede hacer de dos maneras, bien haciendo clic en el
icono que se muestra en la figura 5.13 o bien activando la opción Ejecutar /
Registro de piezas y fluidos
Figura 5.13: activación y desactivación de generación de archivo .log.
Operando de forma similar al caso anterior, se puede generar un archivo como
Ejemplo5-4-4.log. Este archivo ofrece la información a cada entidad que se
ha generado. La figura 5.14, por ejemplo, muestra la información correspondiente a una entidad de tipo Producto. Esta entidad se creo en el instante 0,
fue empujada a ColaPintura, de donde fue capturada por Pintura(1), ası́ hasta
ser enviada fuera del sistema en el instante 68.34. Adicionalmente, se indica
el tiempo que ha permanecido en el modelo (que en este caso coincide con el
valor del instante en el que se envı́a fuera del sistema).
Adicionalemnte, al final del archivo .log se puede encontrar un resumen de la
información de las entidades del modelo.
Figura 5.14: contenido del archivo .log.
5.3.4.5. Archivo .txt. Seguimiento de variables
Existe un tercer tipo de archivo que devuelve información al respecto de cómo
ha evolucionado el sistema y que muestra los diferentes valores que toman
algunas o todas las variables definidas en el modelo.
127
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
128
Crear una variable que registre el número de entidades que se han servido de
tipo calidad alta y tamaño grande. Comprobar que representa la proporción
esperada, dadas las probabilidades con las que llegan ese tipo de productos.
Una posilbe forma de computar la cantidad y la proporción de entidades de
tipo Producto que son grandes y de calidad alta es la siguiente (y que figura en
el archivo Ejemplo5-4-5.mod).
Crear dos variables: Contador, de tipo entero, y Proporcion, de tipo
real.
En las acciones al salir de Envio se actualiza Contador si la entidad que
se sirve es grande y con calidad de pitado alta. Y en cualquier caso, se actualiza Proporcion como ((Proporcion = Contador/NCREATE(Producto))).
Figura 5.15: activación y desactivación de generación de archivo .txt
Una vez creadas las variables, para obtener el archivo de seguimiento de
variables, hay que activar esa opción, bien haciendo clic en el botón de la figura
5.15 o mediante Ejecutar / Seguimiento. Además, es necesario seleccionar las
variables de las cuales se va a realizar el seguimiento, accediendo al fomulario
que se muestra en la figura 5.16.
Figura 5.16: selección de las variables para hacer su seguimiento
Información del
archivo .log
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Después de hacer todo lo anterior se puede ejecutar el modelo durante un
tiempo determinado y se obtiene un archivo como Ejemplo5-4-5.txt, del
que se ofrece un fragmento en la figura 5.17.
Figura 5.17: contenido del archivo de Seguimiento .txt
5.3.4.6. Depurador
Witness ofrece también la herramienta del Depurador, que sirve para ejecutar el código de manera que sea más sencillo evaluar si ha sido programado
correctamente.
A modo de ejemplo, se puede utilizar el depurador para comprobar cómo se
ejecuta el código de la función TiempoPintura. Para activar el depurador, es
necesario activar la opción Detener y abrir depurador al entrar, tal y como
aparece en la figura 5.18.
Figura 5.18: activación del depurador.
129
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Después de activar el depurador, al ejecutar el modelo, cuando sea invocada la
función se motrará un formulario como el de la figura 5.19. A la derecha aparecen algunos botones que permiten gobernar el avance de la ejecución del código. Por ejemplo, se puede ejecutar el código Paso a paso y comprobar cuáles
instrucciones se ejecutan y cuáles no. Además, se muestran la información local del código que se está ejecutando, que en este caso son los argumentos
de la función Tam y Cal, de manera que, en este caso, se puede comprobar si
el valor devuelto por la función es el deseado de acuerdo con los valores de
dichos argumentos. Adicionalmente, se puede realizar el seguimiento de otros
valores
Figura 5.19: depurador para el cuerpo de la función TiempoPintura.
5.3.4.7. Estructura modular
Por último, otra práctica que facilita la construcción de modelos bien verificados es mediante el uso de módulos, que, una vez verificados, se pueden
reutilizar bien en un mismo modelo o bien en diferentes modelos.
Crear un módulo con Pintura, Secado, ColaEnvio y Envio y duplicar estos elementos.
130
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
La forma más sencilla para crear un módulo consiste en seleccionar los elementos que se desea que formen parte del módulo en y hacer clic en el botón
como el de la figura 5.19. A continuación, Witness solicita el nombre del nuevo módulo. En el archivo Ejemplo5-4-7.mod a este módulo se le ha dado el
nombre PinturaSecado.
Figura 5.20: botón para crear módulos
Al igual que se puede hacer con cualquier elemento que forma parte del modelo de simulación, es posible clonar módulos. Seleccionando el elemento, en este caso el módulo PinturaSecado, con Elementos / Clonar se genera un módulo
idéntico al anterior, pero con un nombre distinto, PinturaSecado01, como se
muestra en la figura 5.21.
Figura 5.21: elementos de la simulación tras clonar el módulo.
Los módulos se pueden almacenar como archivos de tipo .mdl, añadirlos al
conjunto de elementos predefinidos y reutilizarlos en nuevos modelos donde
ese módulo forme parte de los elementos predefinidos. Se recomienda consular
la ayuda de Witness para conocer las diferentes maneras de crear y gestionar
módulos.
5.3.4.8. Documentor
Uno de los aspectos más importantes para mantener un modelo bien verificado es disponer de una buena documentación del mismo. Como se ha podido
comprobar, el código de un modelo de Witness aparece en diferentes elementos y, dentro de cada elemento, en diferentes ventanas. El módulo Documentor
permite recopilar toda esta información de manera sistemática en un archivo
de texto .rtf.
131
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
Figura 5.22: ventana para configurar el informe .rtf
Para ello, se puede acceder al menú (Modelo / Documentor...) y aparece una
ventana como la de la figura 5.22. El informe que se genera puede contener
información de carácter general, como el nombre del modelo, las notas, las
acciones de inicialización, etc. y también información relativa a cada uno de los
elementos. De cada uno de los elementos del modelo, se puede elegir documentar diferentes aspectos, como las caracterı́sticas generales (pestaña General de
la configuración), las reglas. etc.
En la imagen 5.22 se muestra la ventana para obtrener un informe correspondiente al modelo del elemplo 5.3.1 y en la imagen
Figura 5.23: fragmento de un informe .rtf correspondiente a la entidad LlamadaNormal.
132
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
5.4.
133
Validación y credibilidad
La validación de un modelo consiste en el proceso mediante el cual se garantiza la adecuación de este al sistema estudiado para los objetivos propuestos.
Por la propia naturaleza de la tarea, no es posible ofrecer, de manera sencilla, ejemplos de carácter práctico como el resto de los que se proponen en
este libro. A continuación se citan algunas técnicas para mejorar la validez de
losmodelos construidos (para más detalle, consultar Law).
Es necesario recopilar información de calidad y de las fuentes adecuadas. En ocasiones esto puede significar hablar con las personas que trabajan en el sistema estudiado. Por ejemplo, para conocer el detalle de
la operación de un stock intermedio en una lı́nea de montaje, puede ser
muy interesante preguntar al encargado de esa operación en la propia
planta. En otras ocasiones, será necesario preguntar a los gestores del
sistema en cuestión.
Cuando la información no está disponible puede ser adecuado tomar medidas de la operación del propio sistema o revisar literatura existente al
respecto, bien de carácter teórico o bien a través de trabajos de naturaleza similar.
Los directivos o responsables de la decisiones relacionadas con el modelo deben estar implicados en el proceso. En la medida en la que esto
sea ası́, los objetivos estarán mejor definidos, se dispondrá de acceso a
más y mejor información, etc.
Es muy valioso explicitar las hipótesis del modelo y documentarlas de
forma exhaustiva. Existen muchos motivos por los cuales se deben documentar los modelos. En primer lugar, dado que existen diferentes participantes en un estudio de simulación, si se explicitan las hipótesis, es
posible que alguno de ellos identifique asunciones no válidas. Como es
posible que diferentes personas programen el código, de esta manera se
evitan inconsistencias en el desarrllo del modelo. Igualmente, cuando se
modifica un modelo previamente desarrollado, conviene tener presentes
todas las hipótesis que se admitieron cuando se construyó inicialmente,
para comprobar si esas hipótesis siguen siendo válidas o no.
Se deben utilizar técnicas cuantitativas para validar el modelo. Por ejemplo, cuando se generan números aleatorios para fenómenos que son independientes, conviene garantizar que esto sea ası́. Para ello, se pueden
realizar tests sobre los valores correspondientes a dichos fenómenos.
Por otro lado, para aspectos relativamente importantes del modelo es
interesante realizar un análisis de sensibilidad. Por ejemplo, el análisis
de sensibilidad se puede referir al nivel de detalle. Si se representa un
conjunto de procesos quı́micos, se puede discretizar el problema y representar todo el fluido en paquetes de determinado volumen. El análisis
Configuración
del informe
Capı́tulo 5. VERIFICACIÓN Y VALIDACIÓN DE MODELOS
134
de sensibilidad permitirı́a obtener un tamaño adecuado de los paquetes
sin un consumo de recursos de computación demasiado elevado.
Cuando el modelo está finalmente construido hay que analizar los resultados finales con detalle. Es posible constrastar los resultados del
modelo con datos históricos del mismo. Para esta tarea es adecuado alimentar al modelo con datos históricos, y comparar los valores de las
variables de salida que ofrece el modelo con los que se dieron en la realidad. En caso de que el sistema no exista, conviene discutir los resultados
con expertos, conocedores del comportamiento de sistemas parecidos al
estudiado o, incluso, comparar los resultados de ese modelo con el de
otros de naturaleza parecida y que hayan sido validados previamente.
La animación puede ser de gran utilidad para realizar el estudio, ya que
puede permitir observar la evolución del modelo y que las personas que
pueden contribuir a la validación del modelo dispongan de más información.
Por último, la credibilidad de un modelo consiste en la confianza que depositan
en ese modelo las personas responsables de tomar decisiones. Queda fuera del
alcance de este texto discutir en profundidad cómo construir modelos creı́bles,
aunque es una tarea de gran importancia. Algunas de las pautas relativas a la
validación también contribuyen positivamente a la credibilidad de un modelo.
Por ejemplo, la implicación de los directivos o la aprobación por parte de algún
experto con crédito para los directivos pueden concederle más credibilidad
al modelo. Por último, conviene señalar que un modelo podrá ser tanto más
creı́ble cuanto más válido sea, aunque no existen garantı́as de que un modelo
perfectamente validado resulte creı́ble.
5.5.
Resumen
Los procesos de verificación y validación garantizan, respectivamente, que un
modelo de simulación está bien programado y que un modelo representa de
forma adecuada el sistema estudiado para los objetivos propuestos. Existen
diferentes técnicas, algunas de las cuales se han presentado brevemente en
este capı́tulo. En particular, se han mostrado algunos ejemplos de verificación
y se han presentado las herramientas más importantes de las que dispone
Witness para realizar las tareas de verificación.
Validación
Un modelo bien verificado y validado se pueden explotar para ayudar a la
toma de decisiones. Para ello, es necesario realizar el análisis de las variables
de salida de forma rigurosa, que es a lo que se dedica el capı́tulo siguiente.
Técnicas para la
validación
Capı́tulo 6
ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS
DE UNA ALTERNATIVA
6.1.
Introducción
En un estudio de simulación, cuando se dispone de un modelo bien construido
y alimentado con datos de entrada correctos, es posible realizar la explotación
del modelo. Realizar el análisis de comportamiento de las variables de salida
de forma correcta es especialmente importante, ya que de ese análisis dependerán las decisiones que se adopten. El propósito más frecuente de un estudio
de simulación suele ser analizar el comportamiento de un sistema (para una
configuración determinada) o comparar dos o más configuraciones alternativas para dicho sistema. En este capı́tulo se trata el primer caso, y en el capı́tulo
7 se aborda cómo realizar la comparación de alternativas.
Durante la simulación, para reproducir el comportamiento del sistema estudiad se usan valores aleatorios de las variables de entrada, que siguen distribuciones conocidas (por ejemplo, la frecuencia de llegada de clientes a un banco
puede seguir una exponencial). Los resultados de la simulación dependen de
estos valores y, debido a ello, las variables de salida también son aleatorias
pero con el inconveniente de que en este caso no se conoce su distribución.
Es necesario
analizar con
rigor los datos
de salida
Existen dos errores que se cometen con frecuencia en relación con la naturaleza estocástica de los sistemas que se analizan mediante simulación. El primero
consiste en analizar el comportamiento durante un solo periodo de tiempo, es
decir, realizar una sola replicación. Por ejemplo, serı́a erroneo extraer conclusiones sobre el funcionamiento de un puerto mediante en análisis del modelo
durante un solo mes. Los datos correspondientes a ese mes pueden no ser representativos. Es necesario realizar varias replicaciones y obtener información
significativa a patir de ellas. El segundo error consiste en realizar la experimentación de forma poco rigurosa y estadı́sticamente errónea. Por ejemplo, si
existe correlación entre los datos obtenidos en una replicación y los datos de
la anterior, en análisis que se propone aquı́ no tiene validez y las conclusiones
pueden ser equivocadas.
Dos errores
comunes
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
136
En primera aproximación, se puede caracterizar una variable aleatoria mediante un valor puntual acompañado de un intervalo de confianza que mida el
error de esta estimación. También se pueden realizar análisis de otra naturaleza para caracterizar aspectos diferentes del valor esperado para las variables
de salida, como, por ejemplo, la probabilidad de que ocurra un determinado fenómeno (la probabilidad de que se produzca, por ejemplo, un rotura de
stock).
Caracterización
de un sistema
A lo largo del resto del capı́tulo se presenta cómo realizar el análisis de una
alternativa. En primer lugar, en la sección 6.2 se presenta la diferencia entre
le régimen permanente y el régimen transitorio. En la sigiente sección, 6.3, se
describen los tipos de simulación atendiendo al tipo de análisis que requiere
cada una de ellas: las simulaciones con terminación, cuyo análisis se presenta
con detalle en la sección 6.4 y las simulaciones sin terminación, a las que se
dedica la sección 6.5. En la sección 6.6 se proponen dos ejemplo, uno para
cada tipo de simulación. Finalmente, se resumen las ideas más importantes
del capı́tulo en la sección 6.7.
Estructura del
capı́tulo
6.2.
Régimen transitorio y régimen estacionario
Para ilustrar el concepto de régimen permanente, vamos a emplear un ejemplo
sencillo. Imaginemos una lı́nea de montaje de electrodomésticos. Una variable
de salida para en un estudio de simulación de dicha lı́nea podrı́a ser la producción de electrodomésticos. Podrı́amos, en particular, considerar las variables
de salida Yi como el número de productos finalizados en la hora i-ésima. Existen varias consideraciones importantes al respecto de estas variables.
Yi en una variable aleatoria, es decir, la producción de durante la hora i
no es un valor determinista. Dado que la evolución del sistema depende
de fenómenos aleatorios, la producción en cada hora no se puede determinar de forma inequı́voca. Sin embargo, sı́ que existe una función de
distribución para las variables Yi , FYi (y) = p(Yi ≤ y).
Siempre existen condiciones inciales del sistema, I. Para este ejemplo, las
condiciones iniciales podrı́an ser: el contenido de la lı́nea al comienzo de
la simulación, el tiempo restante hasta la siguiente averı́a de cada una
de las máquinas, etc. La producción horaria dependerá de las condiciones iniciales del sistema durante un determinado periodo de tiempo. En
efecto, si la lı́nea está inicialmente vacı́a, la producción correspondiente
a las primeras horas será menor que si está llena.
Tı́picamente, a patir de cierto instante, el comportamiento de Yi no depende de las condiciones iniciales y, además, no cambia con el tiempo.
Es decir, FYi (y) = FYi−1 (y), lo que siginifica que el comportamiento de
la variable de salida se ha estabilizado. Es decir, la función de distribución de la variable de salida no cambia. Esto no siginifica que el valor de
la variable de salida ya no se modifique. Para cada valor de i, una vez
Comportamiento
de las variables
de salida
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
137
estabilizado el comportamiento de Y , se obtendrá un posible valor de
acuerdo con la función de distribución FY (y)
{PENDIENTE: poner figura con evolución de las Fs y referencia a ella en el texto}
En los sistemas en los que, efectivamente, el comportamiento de las variables
se estabiliza a partir de un cierto instante, se puede distinguir entre el régimen transitorio y el régimen permanente. El régimen transitorio es el tiempo
durante el cual las funciones de distribución de Yi cambian con el tiempo. El
régimen permanente se alcanza una vez que dichas variables aleatorias ya no
se modifican con el tiempo. El régimen transitorio sı́ depende de las condiciones iniciales. El tiempo en el que se tarda en alcanzar el régimen permanente
depende de las condiciones iniciales, pero no ası́ el régimen permanente propiamente dicho.
6.3.
Régimen
transitorio y
régimen
permanente
Tipos de simulación
La importancia relativa y el tratamiento de los regı́menes transitorio y estacionario dependen del tipo de simulación. En este sentido, existen dos tipos de
simulación: simulación sin terminación y simulación con terminación.
Una simulación con terminación es aquella en la que el final de la misma
está definido por un evento interno que sucede en t = TE y, por lo tanto,
tiene una duración definida en el intervalo temporal [0, TE ]. Tı́picamente, tras
este instante el sistema es devuelto un estado determinado, a partir del cual
vuelve a comenzar a operar. Por ejemplo, la operación de la sucursal de un
banco puede ser una simulación terminación, donde al final de cada joranada
el banco se vacı́a y al dı́a siguiente se comienza de nuevo con la sucursal vacı́a.
Simulaciones
con terminación
Por otro lado, una simulación sin terminación es aquella en la que no hay
un evento que marque el fin de la misma y en la que el inicio tampoco suele
una parte representativa del mismo. Las simulaciones sin terminación pueden
ser de tres tipos. Con régimen permanente, en las que, como se ha comentado
antes, el comportamiento de las variables de salida se estabiliza y a partir
de cierto instante ya no varı́a. Con régimen permanente periódico, en que se
puede observar un comportamiento cı́clico de las variables de salida. Otros
tipos en los que no se puede hablar de ningún régimen permanente ni cı́clico.
Simulaciones sin
terminación
En este texto nos ocuparemos de las simulaciones sin terminación y las similuaciones con terminación y con régimen permanente.
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
Los problemas especı́ficos de los que depende el análisis de las simulaciones
con terminación son dos: establecer las condiciones inciales y caracterizar las
variables de salida.
Condiciones inciales. Para obtener resultados fiables, es necesario representar, con la herramienta de software correspondiente, las condiciones
iniciales a partir de las cuales opera el sistema.
Estimación de media y de otros parámetros. Tı́picamente, en un primer
análisis se obtiene una estimación de la media de la variable de salida
estudiada y un intervalo de confianza para la misma. Por supuesto, se
pueden realizar análisis más amplios.
En el caso de las las simulaciones sin terminación, los problemas son los siguientes.
Estimar cuándo se ha alcanzado el régimen permanente para deterimnar cuál es el tiempo de calentamiento durante el cual se debe correr el
modelo y a partir del cual se deben tomar resultados.
Estimación de media y de otros parámetros, como en el caso de las simulaciones con terminación. En este caso, como se comentará, existen dos
alternativas.
138
Análisis de las
simulaciones
conn
terminación
Análisis de las
simulaciones sin
terminación
A continuación se trata detalladamente cómo realizar estos dos tipos de análisis, explicando cómo caracterizar los resultados de la simulación.
6.4.
Análisis de los datos de salida de simulaciones con terminación
Partiendo de n replicaciones de un modelo con terminación, donde cada una
empieza con las mismas condiciones iniciales y termina con el evento E, la independencia de estas replicaciones depende de la independencia de los números aleatorios usados en cada una de ellas. Por simplicidad, se supone a partir de ahora que únicamente interesa el resultado de una variable del modelo Y , donde el valor tomado en cada replicación se expresa mediante yj
(j = 1, · · · , n). A continuación se detalla cómo llevar a cabo el análisis de este
tipo de simulaciones.
6.4.1.
Estimación de parámetros
Generalmente, la primera forma de caracterizar un sistema es mediante la estimación del valor esperado (media) de la variable de salida estudiada, μY . Realizando n replicaciones independientes, se obtiene una muestra y1 , · · · , yn
cuya media Y (n) es un estimador sin sesgo del valor esperado de la variable de salida. Sin embargo, aunque sea un estimador sin sesgo, como se ha
Estimación de la
media
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
139
obtenido a partir de una muestra finita de valores, se desconoce cómo de cerca está Y (n) de μY . Por este motivo conviene acompañar a este valor de un
intervalo de confianza cuya expresión es:
⎡
⎣Y (n) − tn−1,1−α/2
donde Y (n) =
n
i=1
n
yi
y S2 =
n
i=1
S 2 (n)
, Y (n) + tn−1,1−α/2
n
⎤
S 2 (n) ⎦
n
(6.1)
2
(yi −Y (n))
n−1
La probabilidad de que μY esté contenido en el intervalo anterior es cercana
a 1 − α (tanto más cuanto más cerca esté Y de una distribución normal). En
general, se obtienen mejores resultados con variables que siguen una distribución simétrica y con valores de n altos (consultar el capı́tulo 3, de repaso de
estadı́stica).
Cuanto mayor es el nivel de confianza, 1 − α, mayor es la amplitud del intervalo que acompaña al valor puntual y, por lo tanto, menor la precisión de la
estimación de la variable deseada. Explicado de otra manera, para un determinado número n de observaciones de la variable de salida, cuanto mayor es la
amplitud del intervalo mayor será la probabilidad de que dicho intervalo contenga, efectivamente, a la media. Para aumentar esta precisión, o lo que es lo
mismo reducir la amplitud del intervalo para un α determinado, existen dos
alternativas:
Intervalo de
confianza para
la media
Obtener una
precisión
concreta
Aumentar el número de observaciones de la variable de salida, es decir,
aumentar el número de replicaciones n.
Reducir la varianza de la muestra. Este punto es ampliamente descrito
en el capı́tulo 9
A continuación se explica cómo determinar el número de replicaciones necesarias para estimar μY con un error de precisión concreto.
Estimación de la media con un determinado error absoluto máximo
El error en la estimación de la media es β = |Y (n) − μY |, por
2lo que el error
absoluto máximo de la estimación de la media es tn−1,1−α/2 S (n) . En efecto,
si la media pertenece al intervalo de confianza dado por la expresión 6.1, en
el peor de los casos, el error máximo se comete si la media μY es igual a uno
de los dos extremos del intervalo, en cuyo caso, el error cometido al estimar la
media con Y (n) es igual a la semiamplitud del intervalo. Por lo tanto el número
de replicaciones necesarias, na (β), para obtener un error absoluto máximo en
la estimación, β :
⎧
⎨
na (β) = min i ≥ n tal que
⎩
ti−1,1−α/2
⎫
⎬
S 2 (n)
≤β
⎭
i
(6.2)
Número de
replicaciones
para obtener un
error absoluto
máximo
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
140
Para calcular na (β) hay que seguir los siguientes pasos:
1. Realizar n ≥ 2 replicaciones y calcular S 2 (n).
2. Para ese valor de S 2 (n), iterar incrementando i hasta encontrar un valor
que cumpla
ti−1,1−α/2
S 2 (n)
≤β
i
3. Una vez encontrado ese valor de i, realizar na (β) − n replicaciones adicionales. Con las na (β) observaciones de Y , calcular un intervalo como
el de la expresión 6.1
La precisión de 6.2 depende de la efectividad de S 2 (n) como estimador de
V ar (Y ), por lo que n debe ser suficientemente alto.
Estimación de la media con un determinado error relativo máximo
Alternativamente se puede perseguir un intervalo de confianza con un error
relativo máximo,
que %viene dado por la expresión Y (n) tiene un error relativo
%
%
%
γ, donde %Y (n) − μY % / |μY | = γ. Para encontrar el número de replicaciones
necesarias para obtener esa precisión se calcula:
⎫
⎧
2
⎪
⎪
S (n)
⎨
ti−1,1−α/2
γ ⎬
i
na (γ) = min i ≥ n tal que
(6.3)
≤
⎪
1−γ⎪
Y (n)
⎭
⎩
Número de
replicaciones
para obtener un
error relativo
máximo
El proceso para obtener una estimación de μY , con un error relativo γ y un
nivel de confianza 1 − α, es el siguiente:
1. Realizar n ≥ 2 replicaciones y calcular S 2 (n).
2. Para ese valor de S(n)2 , calcular na (γ), según 6.3.
3. Realizar na (γ) − n replicaciones adicionales y tomar Y (na (γ)) como
estimador puntual de μY con un intervalo de confianza:
+
*
S 2 (na (γ))
S 2 (na (γ))
, Y (na (γ)) + tna (γ)−1,1−α/2
Y (na (γ)) − tna (γ)−1,1−α/2
na (γ)
na (γ)
Estimación de otros parámetros
Hay casos en los que interesa estudiar otros valores relativos al comportamiento del sistema diferentes al valor esperado de una variable. Por
ejemplo, si se analiza el funcionamiento de una cola, puede interesar, además
del tiempo medio de espera, conocer en profundidad como se distribuye esa
espera: la probabilidad de que el tiempo en cola supere un valor concreto, la
tasa de ocupación de los puestos de servicio, etc. En otro caso, por ejemplo,
puede ser interesante conocer la probabilidad de que un pedido se rechace
porque el sistema de fabricación esté saturado.
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
141
Aunque queda fuera del alcance de este texto revisar en profundidad este tipo
de análisis, a continuación, a tı́tulo ilustrativo, se comenta un ejemplo. Para
estimar la probabilidad p de que una variable Y tome algún valor dentro del
intervalo B, es decir, P (Y∈ B) basta con realizar n replicaciones independientes, con las que se obtiene una muestra y1 , · · · yn . Sea S el número de observaciones que caen dentro del intervalo B. La variable S se distribuye según
una binomial de parámetros p y n. El valor de p y su intervalo de confianza
asociado (con un nivel 1 − α) se estima mediante las expresiones:
Estimación del
parámetro de
una distribución
binomial
S
n
⎡
⎤
p̂(1
−
p̂)
p̂(1
−
p̂)
⎣p̂ − z1−α/2
⎦
, p̂ − z1−α/2
n
n
p̂ =
(6.4)
donde z1−α/2 es la probabilidad de que una variable que se distribuye según
un normal estándar sea menor que 1 − α/2.
6.4.2.
Elección de las condiciones iniciales
Como se indica en la sección 6.3, la elección de las condiciones iniciales es
una parte importante en el análisis de simulaciones con terminación, ya que
el comportamiento durante el régimen transitorio es relevante para el análisis.
En algunos casos las condiciones iniciales están bien definidas y su elección
no constituye un problema. En ejemplo de la sucursal bancaria, al comienzo de
cada jornada no hay clientes ni en las colas de espera ni en los puestos. Pero en
otros casos esta elección no es tan sencilla. Por ejemplo, si se pretende estudiar
el funcionamiento de la oficina bancaria solo entre las doce del mediodı́a y el
cierre de la misma. A continuación se explican dos métodos para la elección
de las condiciones iniciales, ilustradas con el ejemplo anterior.
El primero de ellos consiste en comenzar la simulación desde un estado previo conocido y ejecutar el modelo hasta el instante a partir del
cual se desea realizar el análisis del modelo. En el ejemplo del banco,
se simuları́a desde la apertura de la oficina hasta el cierre, pero solo
se tendrı́an en cuenta los tiempos de espera a partir las 12:00 pm. Este
método presenta dos desventajas: la primera de ellas es el coste de un
tiempo de simulación ya que el modelo corre durante un tiempo solo
para que esté las condiciones iniciales adecuadas a partir del instante
inicial del periodo que se desea analizar; la segunda desventaja es que
no ofrece garantı́as de que el estado a partir del cual comienza la toma
de datos sea representativo de las verdaderas condiciones iniciales del
sistema.
El problema de
establecer las
condiciones
iniciales
Comenzar
desde un estado
previo conocido
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
El segundo método consiste en recoger datos del estado de las variables
en el sistema real y modelar las condiciones iniciales a partir de las distribuciones de probabilidad que mejor se ajusten a los mismos. De este
modo, las condiciones iniciales de cada replicación vendrán determinadas por variables aleatorias independientes. Aplicándolo al ejemplo, se
tratarı́a de tomar muestras en el sistema del número de clientes a las
12:00 pm, e intentar ajustar estos datos mediante una función de probabilidad para, posteriormente, al iniciar cada replicación generar valores
de dichas variables con los cuales configurar el estado inicial del modelo.
6.5.
142
Reproducir el
estado inicial a
patir de datos
históricos
Análisis de los datos de salida de simulaciones sin terminación
En las simulaciones sin terminación, las condiciones iniciales y la duración de
la simulación no son relevantes para la evaluación del comportamiento del
sistema y, generalmente, interesa el comportamiento durante el régimen estacionario. En estos casos, hay que aislar la parte de la simulación perteneciente
al régimen transitorio, que depende del estado inicial del modelo, para no incluirla en el análisis. Si no se hace ası́, dado que el valor esperado de la variable
de salida es diferente en el régimen transitorio con respecto al estacionario, la
estimación obtenida tiene un sesgo respecto al verdadero valor esperado durante el régimen estacionario. Independientemente de las condiciones iniciales
elegidas, pasado un tiempo, la simulación converge al régimen estacionario sin
afectar al valor esperado, aunque el tiempo que tarda en converger sı́ depende
de las condiciones iniciales. Por lo tanto, es necesario identificar el régimen
transitorio y ejecutar el modelo durante un periodo de tiempo hasta que el
comportamiento de la variable de salida (y en particular su valor esperado) se
estabilice. Cuando se alcanza este momento, a partir del estado en el que se
encuentra el modelo, se comienza la toma de datos de las variables de salida
para el análisis del sistema. El tiempo durante el cual hay que correr el modelo
antes de tomar datos se conoce como tiempo de calentamiento del modelo.
El problema del
tiempo de
calentamiento
Si se denomina Y(j) a la variable aleatoria que caracteriza el comportamiento
de la variable de salida Y en el j-ésimo valor observado en la simulación, el
objetivo es encontrar:
μY = lı́m E(Y(j) )
Expresión
matemática del
problema
j→∞
Si se dispone de un conjunto de m valores de la variable de salida Y ,
y(1) , · · · , y(m) , correspondientes a los instantes
el valor
1, 2, · · · , m, estimar
de μY a patir de la media de todos esos valores Y (m) =
m
y(j)
m
j=1
es claramen-
te erróneo ya que existen observaciones que pertenecen al régimen transitorio
y, por lo tanto, no corresponden a valores de la variable aleatoria Y una vez su
comportamiento de ha estabilizado.
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
143
Un estimador menos sesgado que el anterior consistirı́a en eliminar todos
aquellos valores que pertenecen al régimen transitorio. Es decir, obtener el
siguiente estimador, donde l representa el conjunto de observaciones que pertenecen al régimen permanente:
m
Y (m, l) =
j=l+1
y(j)
m−l
(0 ≤ l ≤ m − 1)
Y (m, l) es un estimador de μY menos sesgado que Y (m) al haber eliminado las
observaciones dependientes de condiciones iniciales. El problema del tiempo
de calentamiento consiste, entonces, en determinar l, es decir cuanto tarda el
sistema en alcanzar aproximadamente el régimen estacionario.
Convierte señalar, que la elección de un valor demasiado elevado para l se
traduicirı́a en una menor eficiencia de computación, ya que se descartarı́an
valores de la variable de salida que sı́ pertenecen al régimen permanente, con lo
que se estarı́a empleando un tiempo de computación mayor del estrictamente
necesario para obtener un estimador de la media. Por otro lado, la elección de
un valor de l demasiado pequeño harı́a que el estimador fuera sesgado, que
es, precisamente, lo que se trata de evitar. Por ello, es importante disponer de
una técnica que permita obtener un valor de l suficientemente grande como
para evitar el incluir observaciones del régiment tansitorio pero sin incurrir en
elevados tiempo de computación.
6.5.1.
Errores en el
cálculo del
tiempo de
calentamiento
Cálculo del tiempo de calentamiento
El método de Welch es un método sencillo, de carácter gráfico, que permite
determinar el tiempo de calentamiento. En general, es difı́cil determinar l ya
que, a pesar de que con la evolución de la simulación E(y(j) ) → μY , cualquier
muestra analizada y(1) , y(2) , · · · está compuesta por valores aleatorios y esta
tendencia, generalmente, no se aprecia de forma nı́tida (ver figura 6.1).
El método de
Welch
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
Figura 6.1: representación de una muestra y(j) .
El método de Welch se basa en contrarrestar esta aleatoriedad estudiando, en
vez de una sola muestra, el promedio de las observaciones de varias replicaciones. En lo que sigue, se denota con yi(j) a la j-ésima observación de la
replicación i-ésima (i = 1, · · · , n y j = 1, · · · , m). El método de Welch consta
de cuatro pasos:
1. Realizar n replicaciones (n ≥ 5) de longitud m, donde m debe ser grande
en relación al valor esperado de l.
2. Obtener:
n
y (j) =
yi(j)
n
i=1
para i = 1, 2, · · · , m. La serie y (1) , y (2) , · · · , y (n) tiene un valor esperado E(Y (j) ) = E(Y(j) ) y varianza V ar (Y (j) ) = V ar (Y(j) )/n.
3. Para alisar las oscilaciones de alta frecuencia de y (1) , y (2) , · · · (pero
manteniendo la tendencia de su evolución) se define la media móvil
y (j) (w) como:
y (j) (w) =
⎧ w
⎪
⎨ s=−w y (j+s) ,
si j = w + 1, · · · , m − w,
⎪
⎩
si j = 1, · · · , w
2w+1
j−1
s=−(j−1) y (j+s)
,
2j−1
(6.5)
4. Representar Y (j) (w) para j = 1, 2, · · · , m − w y darle a l el valor de j
para el que la serie y (1) (w), y (2) (w), · · · parezca converger (ver figura
6.3).
144
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
145
Figura 6.2: cálculo de la media móvil para w = 1.
{PENDIENTE.Ampliar la figura, cambiar el PIE para que quede mejor ilustrado}
Figura 6.3: representación gráfica de una media móvil (w = 20).
Al aplicar este método es recomendable:
Realizar 5 ó 10 replicaciones con m mucho mayor que el valor previsto
para l. En particular, m debe ser lo bastante grande para permitir que
ocurran eventos poco frecuentes (p.e. averı́as en las máquinas).
Representar Y (i) (w), aumentando el valor de w hasta que la curva aparezca razonablemente lisa. A partir de esta gráfica elegir l.
Si no se encuentra ningún w que alise la gráfica lo suficiente, aumentar
el número de replicaciones y repetir el proceso desde el paso 2.
El principal inconveniente de este método es que el número de replicaciones
necesarias para elegir l puede ser relativamente alto si la variable Y presenta
mucha variabilidad. A esto hay que sumar que la elección de l no se realiza de
una manera objetiva.
Recomendaciones
para el método
de Welch
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
6.5.2.
Estimación de parámetros
Para estimar el valor esperado de una variable de salida, existen dos alternativas: realizar varias replicaciones o realizar una única replicación de mayor
longitud. A continuación se presentan estas dos alternativas.
Múltiples replicaciones
Una primera forma de obtener estimación de parámetros consiste en lo que
se denomiena método de replicación/eliminación, que consiste en realizar n
replicaciones independientes de longitud m, descartando la parte correspondiente al tiempo de calentamiento en cada una de ellas. Los datos restantes se
analizan como en el caso de simulaciones con terminación (ver apartado 6.4).
Suponiendo que se realizan n replicaciones de longitud m cada una (donde m
es mucho mayor que l), se define yi como:
m
yi =
j=l+1
yi(j)
m−l
con i = 1, 2, · · · , n, entonces E(yi ) ≈ μY y para dar una estimación acompañada de un intervalo de confianza al (1 − α) para la variable de salida se
emplea la siguiente expresión:
⎡
⎤
2 (n)
2 (n)
S
S
⎣Y (n) − tn−1,1−α/2
⎦
, Y (n) + tn−1,1−α/2
(6.6)
n
n
donde Y (n) y S 2 tiene la misma expresión que en 6.1.
{PENDIENTE. Cambiar figura, que ponga Y mayúscula}
146
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
Figura 6.4: estimación de parámetros en simulaciones sin terminación. Método
de múltiples replicaciones.
Replicación única
En el método de replicación única sólo se hace una replicación pero con un
tamaño muy superior a las anteriores. Una vez eliminadas las primeras l observaciones, se agrupan los datos restantes en k lotes de longitud m que se
analizan de la misma forma que en el método replicación/eliminación. Por lo
tanto, la duración total de la replicación es l + k · · · m (ver figura 6.5). Como
ventaja, solamente hay que eliminar un tiempo de calentamiento que tiene la
misma duración que el eliminado en cada una de las replicaciones anteriores.
{PENDIENTE. Cambiar figura, que ponga Y mayúscula}
147
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
148
Figura 6.5: estimación de parámetros en simulaciones sin terminación. Método
de replicación única.
La dificultad de este método se encuentra en la elección de m, por la siguiente
razón. Dado que el comienzo de cada conjunto de datos está obtenido a partir
de la situación en la que quedó el modelo después del conjunto de datos inmediatamente anterior, existe correlación entre los valores de la variable de salida
de un lote y del inmediatamente anterior. Cuanto mayor es el valor de m, más
debil es la correlación, de manera que para valores relativamente grandes, la
correlación es despreciable y el análisis propuesto es válido. El problema consiste, por lo tanto, en escoger un valor de m suficientemente elevado para que
la correlación no sea apreciable pero no tan elevado como para que el esfuerzo computacional resulte ineficiente. Para obtener más información acerca de
cómo elegir k se recomienda consultar Banks, 2000.
6.6.
Ejemplos de aplicación
A continuación se proponen dos ejemplos. En el primero, se estima la media
y la probabilidad de que una variable de salida tome valores dentro de un
determinado intervalo. En el segundo se calcula el tiempo de calentamiento
para un sistema dado.
El inconveniente
de realizar una
única
replicación
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
6.6.1.
149
Ejemplo 6.1: análisis de los datos de salida de un estudio de
simulación sin terminación
Una sucursal bancaria abre a las 9:00 de la mañana y cierra sus puertas a
las 14:00, pero la sucursal no termina el servicio hasta que son atendidos
todos los clientes que están dentro en el momento del cierre. La oficina
tiene tres puestos de servicio: dos cajas, donde se atienden las operaciones
más rápidas, y una mesa, donde se llevan a cabo los servicios de mayor
importancia que, además, requieren más tiempo. Los clientes se pueden
agrupar en tres tipos, cuya caracterización viene dada por la tabla siguiente:
Tiempo entre llegadas (min)
Tiempo servicio caja (min)
Tiempo servicio en mesa (min)
Cliente A
Exp(4)
Gamma(6,1)
-
Cliente B
Exp(20)
Gamma(4,2)
Gamma(3,5)
Cliente C
Exp(50)
Gamma(6,5)
Se pide estimar:
el tiempo medio que los clientes pasan en la cola, acompañado de un
intervalo de confianza al 90 % con un error relativo máximo para la
estimación de la media menor del 15 %;
la probabilidad de que el servicio se extienda más allá de las 14:00.
Calcular el valor puntual acompañado de un intervalo de confianza al
90 %.
Para resolver el ejemplo, inicialmente se realizan 20 replicaciones del modelo,
y a partir de S 2 (n) de esta muestra se calcula el número total de replicaciones
necesarias para conseguir la precisión pedida. Con los valores de la variable
de salida obtenidos se estima el valor esperado del tiempo de espera, acompañado de su intervalo de confianza. Para completar el ejemplo se calcula la
probabilidad de que en un dı́a concreto haya clientes esperando a ser servidos
a la hora de cerrar las puertas.
Para seguir la resolución del ejemplo se recomienda trabajar sobre los siguientes ficheros:
Ejemplo1-1.mod: contiene el modelo del sistema en Witness.
Ejemplo6-1.xls: es la hoja de cálculo donde se propone resolver el
ejemplo.
Ejemplo6-1 experimento1.xpt: archivo preparado para obtener 20 replicaciones independientes.
Ejemplo6-1 experimento2.xpt: archivo preparado para obtener las replicaciones adicionales.
Planteamiento
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
150
Ejemplo6-1 solucion.xls: muestra cómo debe quedar la hoja de
cálculo una vez resuelto el ejemplo.
El experimento
El primer paso es abrir el modelo Ejemplo1-1.mod. Se compone, principalmente, de:
Tres elementos de tipo entidadpara modelan los tres tipos de clientes.
Tres elementos actividadpara los puestos de servicio.
Un elemento colaque representa la cola antes del servicio.
La variableTcierre, que registra la hora en la que se termina de atender
al último cliente.
A continuación se debe abrir el experimento Ejemplo1-1 experimento.xpt
(Modelo / Experimento / Abrir...) y se puede ejecutar la simulación (Modelo /
Experimento / Ejec. acel.)
Salida csv modelo
Al realizar el experimento, se vuelcan los informes del experimento en un archivo csv (en este caso Ej611.csv, tal y como está configurado el archivo xpt).
Tal y como está configurado el modelo, en este csv de salida solo se guardan
los informes de dos elementos: la cola y la variable Tcierre.
Archivos
disponibles
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
151
La ayuda de Witness ofrece la información que los archivos csv contienen
para cada tipo de elemento. Para acceder a esta información, tras abrir la
ayuda (F1), hay que seleccionar la pestaña de “Buscar” y realizar una búsqueda del término csv. El sistema de ayuda ofrece un conjunto de entradas: “CSV
output for buffers”, “CSV output for carrieres”, etc.
Seleccionando cada una de las entradas se puede acceder la explicación del
contenido del csv, como, por ejemplo, al de las entidades (parts).
El tiempo medio que los elementos entidad pasan en un elemento tipo cola
se almacena en la columna número 13 del archivo de salida csv. Esta información se utiliza para obtener el tiempo medio que los clientes pasan en la
cola en cada replicación. Con la variable Tcierre se registra la salida del último cliente para comprobar si la duración de esa replicación es mayor de 300
minutos (columna 9 del fichero csv).
Contenido del
archivo csv
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
El análisis estadı́stico
Se recomienda seguir los siguientes pasos:
1. Importar el archivo Ej611.csv en la primera hoja del fichero (Datos /
Obtener datos externos / Importar datos ...) de manera que el primer dato
quede en la celda A1. Para hacerlo correctamente, marcar ((Delimitados))
en la primera ventana del asistente; en la segunda ((Coma)) como separador y en la tercera, dentro de la opción ((Avanzadas)), seleccionar como
separador decimal (( . )) y como separador de miles (( , )).
2. Ordenar los datos importados, primero por ((columna E)) y después de
((columna B)) (Datos / Ordenar). De esta manera queda agrupada la información de Cola y la de Tcierre y, a su vez, quedan ordenadas por orden
creciente de replicaciones.
3. Copiar los 20 valores del tiempo medio de espera en la hoja ((Cálculo rep.
adicionales)) (columna 13 del csv, ((columna M)) una vez importado).
4. Rellenar esta hoja de acuerdo con el contenido del cuadro 1 6.1. Como el
cociente entre la semiamplitud del intervalo y la estimación de la media
γ
(0.2) es mayor que 1−γ = 0,15 es necesario realizar replicaciones adicionales.
5. Para hallar el número de replicaciones necesarias se aplica la expresión
√
t
(S 2 (n)/i)
6.2. En particular, se trata de evaluar el valor del cociente i−1,0,95Y (n)
,
donde se admite que Y (n) y S 2 (n), obtenidas con las n primeras replicaciones, son buenas estimaciones de la media y de la varianza de Y ,
respectivamente. Examinando diferentes valores de i, se obtiene que, si
la varianza se mantiene, es suficiente realizar un total de 25 replicaciones:
√
ti−1,0,95 (S 2 (n)/i)
i
Y (n)
21
24
25
0.194
0.180
0.176
6. Realizar cinco nuevas replicaciones (cargando el experimento
Ejemplo6-1 experimento2.xpt ) y repetir los pasos anteriores.
Con cuatro replicaciones podrı́a ser suficiente, ya que para n = 24, se
alcanza exactamente el valor de 0.18, pero con ánimo conservador se
realiza una replicación adicional a las que en teorı́a son estrictamente
necesarias. El cociente entre la semiamplitud del intervalo y la estimación de la media es igual a 0.18, por lo que el nuevo intervalo cumple con
el requisito establecido en términos del error relativo máximo admitido.
1 A la hora de calcular t
n−1,1−α/2 hay que tener en cuenta que los parámetros de esta función
en Excel son ((DISTR.T.INV(α,grados de libertad)))
152
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
Función en Excel(n=20)
Valor(n=20)
Valor(n=25)
Y (n)
PROMEDIO(D14:D33)
4.98
4.98
S 2 (n)
VAR(D14:D33)
6.56
7.00
t49,0,95
DISTR.T.INV(0.1;19)
1.73
1.71
D7*RAIZ(D6/20)
0.99
0.91
Limite sup.
D5-D8
3.99
4.08
Limite inf.
D5+D8
5.97
5.89
Semi-ampl/Promedio
D8/D5
0.20
0.18
Semi-amplitud intervalo
153
Cuadro 6.1: resultado del análisis estadı́stico del ejemplo 6.1.
Según el análisis realizado, con un 90 % de probabilidad, el valor esperado para
el tiempo medio de espera de los clentes está comprendido en el intervalo
[5,10, 6,75].
Para completar el ejemplo, hay que estimar la probabilidad de que queden
clientes por servir a las 14:00. Si en una replicación el valor de la variable
Tcierre es mayor que 300 minutos (tiempo transcurrido desde las 9:00 a las
14:00), el banco presta servicio después de cerrar sus puertas. En primer lugar,
se copian los valores de la variable Tcierre en las 25 replicaciones anteriores
en la hoja ((Probabilidad cierre)). En segundo lugar, se calcula el número de
veces que Tcierre>300 (función de Excel ((CONTAR.SI(B8:B68;”>300”)))). Según
la expresión 6.4 se obtiene:
9
S
=
= 0,36
n
25
0,36 · 0,64
p̂(1 − p̂)
= 0,36 ± 1,64
= 0,36 ± 0,16
p̂ ± z1−α/2
n
25
p̂ =
Se estima que la probabilidad de que en un dı́a el banco cierre más tarde de las
14:00 se encuentra en el intervalo [0,20, 0,52], con un 90 % de probabilidad.
La función en Excel para calcular z0,95 es ((DISTR.NORM.ESTAND.INV(0.95))).
Probabilidad de
queden clientes
a las 14h
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
6.6.2.
Ejemplo 6.2: análisis de los datos de salida de un estudio de simulación con terminación. Cálculo del tiempo de calentamiento
Se pretende estimar el número medio de piezas producidas por hora en un
pequeño taller de fabricación. El taller consta de un centro de mecanizado y
un centro de inspección colocados en serie como muestra la figura 6.6. Se sabe
que los pedidos llegan a la fábrica con un tiempo entre llegadas que sigue una
distribución exponencial de media 1.3 minutos. El tiempo de procesado en el
centro de mecanizado puede aproximarse mediante una distribución uniforme en el intervalo [0,65, 0,7] minutos, mientras que el tiempo necesario para
inspeccionar una pieza es uniforme en el intervalo [0,75, 0,8] minutos. El 90 %
de las piezas inspeccionadas se aceptan como válidas, mientras que el 10 %
restante deben ser mecanizadas de nuevo. El centro de mecanizado a veces
se averı́a. El tiempo entre cada dos averı́as consecutivas sigue una distribución exponencial de media 6 horas. El tiempo de reparación es uniforme en
el intervalo [8, 12] minutos. Si el centro de mecanizado está procesando una
pieza cuando ocurre una averı́a, esta se termina de mecanizar cuando acaba
la reparación.
A partir de los datos anteriores se pide proporcionar un intervalo de confianza al 95 % que contenga el valor esperado del número de piezas producidas
por hora calculando, previamente, el tiempo de calentamiento del modelo.
Figura 6.6: esquema del taller de fabricación.
Se trata de una simulación sin terminación de un sistema del que interesa, básicamente, su comportamiento una vez alcanzado el régimen permanente. Por lo tanto,
el primer paso para estimar la producción media por hora en régimen estacionario,
μY , consisten en el cálculo del tiempo de calentamiento, expresado por el número de
horas l que hay que dejar pasar para superar el régimen transitorio. Una vez que se
conozca l, se puede estimar el valor esperado de la variable de salida acompañado de
un intervalo de confianza.
154
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
155
Para abordar el problema que se recomienda utilizar los archivos siguientes:
Ejemplo6-2.mod: contiene el modelo del sistema en Witness.
Ejemplo6-2 Experimento.xpt: es el experimento para realizar 10 replicaciones de 160 horas (9600 minutos) de duración de manera que en el archivo csv
de salida se recojan datos cada 60 minutos).
Ejemplo6-2.xls: es la hoja de cálculo donde se propone abordar el problema.
Ejemplo6-2 solucion.xls: muestra cómo debe quedar la hoja de cálculo una
vez resuelto el ejemplo.
El experimento
Planteamiento
Primero, es necesario obtener la muestra yi(j) (donde yi(j) representa el número de piezas producidas en la hora j-ésima en la replicación i-ésima, i = 0. · · · , 10 y
j = · · · , 160). A partir de esa muestra se obtendrán los valores de y (j) y, finalmente,
los valores alisados y(j) (w). Para ello, se deben seguir los siguientes pasos.
1. Abrir el archivo Ejemplo1-2.mod.
2. Cargar el experimento Ejemplo1-2 experimento.xpt y ejecutarlo (Modelo /
Experimento / Ejec. acel.)
3. Los datos de la simulación se almacenan en el fichero Ej62.csv. Importar dicho
archivo a la hoja ((CSV)) del archivo Ejemplo6-2.xls.
(a) Datos / Ordenar
(b) Datos / Filtro / Autofiltro
Figura 6.7: ordenar y filtrar los datos del ejemplo en Excel.
Cálculo del tiempo de calentamiento: método de Welch
1. Ordenar los datos de la hoja ((CSV)) primero por el instante al que corresponden
los datos (columna D) y después por replicación (columna C), como en la figura
6.7(a).
Archivos
disponibles
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
2. Copiar los 10 × 160 valores de yi(j) en el lugar correspondiente de la hoja
((Tiempo de calentamiento)). Estos valores se encuentran en la columna 8 (ver
ayuda de Witness para achivos csv corresondientes a entidades). La columna C
de la hoja ((Tiempo de calentamiento)) debe contener la producción de entidades
de tipo pieza cada hora para cada una de las replicaciones. Por ejemplo, el rango
C4:C13 debe contener la producción de entidades durante la primera hora para
las diez replicaciones (C4 contendrá la producción para la primera hora de la
primera replicación y C13 contendrá la producción para la primera hora de la
décima replicación). Igualmente, el rango C14:C23 contendrá la producción de
entidades durante la segunda hora para las diez replicaciones, y ası́ sucesivamente con las 160 horas.
3. Calcular, en las celdas sombreadas de la columna D, 2 el promedio, para cada
hora j, del número de piezas producidas en las 10 replicaciones (y(j) ). De esta
manera se obiene la media para los grupos de valores correspondientes a los
rangos C4:C13 (primera hora, j = 1), C14:C23 (segunda hora), C24:C33 (tercera
hora), etc.
4. Filtrar las celdas no vacı́as (figura 6.7(b)) y copiar los 160 valores y(j) en la
columna G.
5. Calcular, según la expresión 6.5, la media alisada del conjunto y(j) aumentando
w hasta apreciar con claridad el paso de régimen transitorio a estacionario. En
concreto, tomar w = 5, w = 10 y w = 15. y representar gráficamente dichos
valores (figura 6.8).
Figura 6.8: medias alisadas para w = 5, w = 10 y w = 15.
A patir del gráfico correspondiente a y (j) (15) (w = 15) se puede admitir que tras 25
horas para que el sistema ha alcanzardo el régimen permanente. Es decir, l = 25.
2 función
en Excel ((=SI(B5=B4;;PROMEDIO(C5:C14))))
156
Capı́tulo 6. ANÁLISIS DE DATOS DE SALIDA. ANÁLISIS DE UNA ALTERNATIVA
Estimación del valor esperado
Para estimar el número de piezas producidas por hora, solo se tienen en cuenta los valores yi(j) con i = 1, · · · , 10 y j = 26, · · · , 160:
1. Ordenar los datos de la hoja CSV primero por replicación y después por hora
(al contrario que para el tiempo de calentamiento).
2. Copiar los 10 × 135 valores de yi(j) en el lugar correspondiente de la hoja
((Estimación de la producción)).
3. Calcular, para cada replicación, el promedio de las piezas producidas en una
hora. Copiar los valores obtenidos en la columna yi
4. Para concluir el análisis, completar un cuadro como 6.2.
Función en Excel
Valor
Y (n)
PROMEDIO(H13:H22)
59.58
S 2 (n)
VAR(H13:H22)
0.49
t9,0,975
DISTR.T.INV(0.05;9)
2.26
H5*RAIZ(H4/10)
0.50
Lı́mite sup.
H3-H6
59.07
Lı́mite inf.
H3+H6
60.08
Semi-amplitud intervalo
Cuadro 6.2: resultados del análisis estadı́stico del ejemplo 6.2.
Como conclusión del análisis, el valor esperado del número de piezas que se producen
por hora se encuentra en el intervalo [59,07, 60,08], con una probabilidad de 95 %.
6.7.
Resumen
En análisis riguroso y de un modelo de simulación es de gran importancia. Existen
diferentes formas de caracterizar el comportamiento de sistema. Uno de los aspectos
más importantes es estimar el valor esperado de las variables de salida y construir un
intervalo de confianza para dicho valor. Exiten dos tipos de simulación que requieren
anñalisis especı́ficos: las simulaciones con terminación (en las que hay que determinar
las condiciones iniciales de la simulación) y las simulaciones sin terminación (para las
cuales, si existe un régimen permanente, es necesario estimar el tiempo de calentamiento).
Este capitulo se ha dedicado al análisis de una configuración. En otras ocasiones, es
necesario comparar el comportamiento de un sistema para diferentes configuraciones,
que es a lo que se dedica el capı́tulo 7.
157
Capı́tulo 7
ANÁLISIS DE DATOS DE SALIDA.
COMPARACIÓN DE VARIAS ALTERNATIVAS
7.1.
Introducción
En el capı́tulo anterior se ha explicado la importancia de completar el estudio de simulación de un sistema con un análisis estadı́stico para extraer conclusiones correctas.
En este capı́tulo se explica cómo llevar a cabo ese análisis cuando se comparan varios
sistemas con el objetivo de identificar el mejor. Este tipo de estudios tienen una gran
importancia ya que una de las utilidades de la simulación es ayudar a tomar la decisión
de qué alternativa implementar cuando se tienen varias opciones.
Una manera intuitiva de tratar este problema es ejecutar los modelos durante un tiempo determinado y, dependiendo de si interesa un valor alto o bajo de la variable de
salida, elegir el que tenga mejor respuesta. Pero, al igual que sucede en el caso de estudiar una configuración única, la salida de estos modelos es un fenómeno estocástico
y no hay garantı́as de que la alternativa elegida por este método sea la adecuada.
En este capı́tulo se presentan varios métodos para resolver problemas de comparación de configuraciones alternativas. En la sección 7.2 se trata el caso de comparar
dos alternativas mediante el intervalo de confianza de la diferencia de sus variables
de salida. En la sección 7.3 se discute cómo hacer la comparación cuando se tienen
más de 2 alternativas. Estos conceptos se ponen en práctica en la sección 7.4 mediante la resolución de dos ejercicios sencillos. Para finalizar el capı́tulo, se proponen 2
problemas acompañados de su solución.
7.2.
Comparación de dos configuraciones alternativas
En esta sección se explica cómo comparar dos alternativas suponiendo que se evalúa
su comportamiento a través de una única variable de salida1 . A partir de ahora y1i
representa el valor en la i-ésima replicación de la variable de salida en la primera alternativa (Y1 ) y que su valor esperado es υ1 = E(Y1 ) (υ2 = E(Y2 ) para la segunda
alternativa). La comparación se hace a partir de una nueva variable aleatoria, Z, definida como la diferencia de la variable de salida en las alternativas 1 y 2, Z = Y1 − Y2 .
1 cuando
se quiere estudiar el comportamiento de más de una variable simultáneamente, el
problema se conoce como decisión multicriterio y su resolución se escapa del objetivo de este
texto. Para más información se recomienda consultar la referencia Law, 2001
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
El problema de comparar las dos alternativas consiste entonces en calcular el signo
de E(Z) = ζ = υ1 − υ2 . Construyendo un intervalo de confianza para esa variable se
considera que existe una diferencia significativa entre ambas configuraciones si dicho
intervalo no contiene al cero.
A continuación se explica detalladamente este proceso suponiendo que se trata
de un modelo de simulación con terminación (ver sección ??). En el caso de que
interese el comportamiento en estado estacionario se procede de forma similar pero
teniendo en cuenta el problema del tiempo de calentamiento de cada configuración
por separado.
NOTA: Y1 e Y2 son variables aleatorias que representan un fenómeno a lo largo
de una replicación completa. Por ejemplo, y1i puede ser el tiempo medio de espera de
los barcos que quieren amarrar en un puerto a lo largo de un dı́a (considerando que
la duración de cada replicación es de un dı́a), pero no el tiempo que tiene que esperar
un único barco.
En caso de querer comparar dos configuraciones que se representan mediante modelos
de simulación con terminación se aconseja seguir los siguientes pasos:
1. Obtener un conjunto de observaciones independientes [(y11 , · · · , y1n ) ,
(y21 , · · · , y2n )]. Se consigue haciendo n replicaciones independientes de cada
modelo.
2. Calcular (z1 , · · · , zn ), donde zi = y1i − y2i .
3. Construir un intervalo de confianza para ζ a partir de (z1 , · · · , zn ):
S 2 (n)
z(n) ± tn−1,1−α/2
n
donde:
n
z(n) =
i=1
n
zi
n
y
S 2 (n) =
i=1
(7.1)
[zi − z(n)]2
n−1
Si Z está normalmente distribuida, la probabilidad de que ζ esté contenido en este
intervalo es de (1 − α); en el resto de casos esta probabilidad se aproxima para valores
altos de n (teorema central del lı́mite, sección 3.4.2). Por tanto, si el intervalo no contiene a 0, la probabilidad de que el valor esperado de ambas alternativas sea diferente
es de 1 − α. En este caso se considera que la diferencia es significativa y según su
signo se elige la más favorable.
7.3.
Comparación de varias alternativas
En la sección 7.2 se explica como comparar dos alternativas mediante el intervalo de
confianza de su diferencia. Pero es frecuente encontrar problemas donde se barajen
más de dos alternativas y en este caso el proceso de selección es más complejo.
159
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
Una manera intuitiva de resolver el problema es hacer varios intervalos de confianza
comparando todas las alternativas dos a dos. Pero este método tiene una limitación: si
se forman k intervalos de confianza Is para las variables νs , donde el nivel de confianza
en cada uno de ellos es αs , puede demostrarse que la probabilidad de que se cumplan
todos simultáneamente está limitada por la desigualdad de Bonferroni:
P (νs ∈ Is para todos = 1, 2, · · · , k) ≥ 1 −
k
αs
(7.2)
s=1
Por lo tanto si queremos que el nivel de confianza asociado a k intervalos sea al menos
1−α, el nivel de confianza de cada intervalo particular se debe elegir de manera que se
k
cumpla s=1 αs = α. Si se toma el mismo valor para todos ellos, αs = α/k. Por ejemplo,
suponiendo que se quieren comparar 5 alternativas mediante este método es necesario
hacer 10 intervalos Iij (donde i y j representan las alternativas comparadas). Para
conseguir que el nivel de confianza de la elección sea 90 %, es decir que la probabilidad
de que se cumplan simultáneamente todos los Iij sea del 90 %, y considerando que se
toma el mismo nivel de confianza:
10 · αij = α ⇒ αij =
0, 1
= 0, 01
10
por lo que el nivel de confianza de cada intervalo individual es 99 %. El resultado es
que los intervalos son más amplios y posiblemente no significativos, ya que es más
probable que contengan a 0. Esto hace que este método sea poco aconsejable.
A continuación se exponen dos métodos: el primero de ellos para comparar varios
sistemas respecto a uno que se considera la referencia, y el segundo para seleccionar
la mejor alternativa cuando se dispone de varias.
7.3.1.
Comparación de varias alternativas frente a una referencia
A partir de ahora se supone que se tienen k alternativas y se pretende comparar su
rendimiento con una de ellas que se toma como referencia (por ejemplo, porque es
la que actualmente existe y se estudia la posibilidad de reemplazarla por otra del
conjunto). En este caso, y siempre que k no sea muy grande, se puede aplicar el método
anterior construyendo k − 1 intervalos de confianza para las diferencias ν2 − ν1 ,ν3 −
ν1 · · · , νk − ν1 . Teniendo en cuenta la ecuación 7.2, para que la probabilidad de que
todos ellos se cumplan simultaneamente sea al menos 1 − α, el nivel de confianza de
los intervalos individuales debe ser 1 − α/(k − 1). La interpretación de los resultados
obtenidos es la siguiente: si ningún intervalo contiene el valor 0, la probabilidad de
que todas las alternativas sean significativamente diferentes a la de referencia es al
menos 1 − α. Por el contrario, si el intervalo Ii contiene el valor 0 se puede decir que
no existe diferencia significativa entre la alternativa i y a la de referencia.
Otra forma de aplicar este método, además del caso en el que se quiera contrastar
posibles alternativas frente a una existente, es comparar varias alternativas tomando
como referencia la que tenga una media menor (o mayor, depende de que se busque).
De este modo se comprueba si la alternativa aparentemente mejor realmente es significativamente diferente al resto.
160
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
7.3.2.
Clasificación y selección de la mejor alternativa
Hasta ahora se ha explicado cómo comparar varias alternativas entre sı́ cuando el
número de opciones disponibles es mayor de dos. El objetivo de esta sección es más
ambicioso: se expone un método para elegir la mejor alternativa de k posibles con un
nivel de confianza determinado.
Sea Yji la variable de interés de la alternativa j en la replicación i y sea νj = E(Yji ).
Para aplicar este método es necesario que los valores Yji se hayan obtenido a partir de
replicaciones independientes para cada sistema y que se distribuyan normalmente2 .
Debido a la aleatoriedad de Yji no se puede asegurar al 100 % que la elección a partir
de una muestra sea la correcta, pero si es posible fijar una probabilidad de acierto
P ∗ . Del mismo modo, no tiene sentido complicar en exceso los cálculos para discernir
qué alternativa es la mejor si la diferencia entre las 2 mejores es muy pequeña. Por
tanto es aceptable fijar un d∗ tal que si la alternativa elegida es ν1 , la diferencia entre
esta y cualquier otra no supere dicho valor (es decir, νi − ν1 ≤ d∗ para todo i). En resumen, aplicando este método se puede afirmar que, con probabilidad P ∗ , la diferencia
de las medias de la alternativa elegida y la mejor del conjunto no supera el valor
d∗ .
Planteamiento del
método
El método se estructura en dos etapas claramente diferenciadas: en la primera, a
partir de los resultados de n replicaciones, se busca el número de replicaciones
necesarias para elegir una alternativa. En la segunda se realizan las replicaciones
adicionales necesarias y, a partir de una media ponderada de los resultados de las
replicaciones de las dos etapas, se elige la mejor. A continuación se enumeran los
pasos para aplicarlo.
Aplicación
Primera etapa
1. Realizar n0 replicaciones independientes de las k alternativas y calcular la media
y la varianza de cada muestra obtenida:
(1)
y j (n0 )
n 0
=
i=1
yji
n0
n 0
y
Sj2 (n)
=
i=1
(1)
[yji − y j (n0 )]2
n0 − 1
Se recomienda que como mı́nimo n0 = 20.
2. Calcular el número total de replicaciones, Nj , necesarias para llevar a cabo la
selección:
-
, 2 2
h1 Sj (n0 )
(7.3)
Nj = máx n0 + 1,
(d∗ )2
donde x es el mayor entero menor o igual que x y h1 es una constante tabulada que se puede consultar en la tabla 5.
Segunda etapa
2 Aunque esta última suposición parezca un problema no lo es en realidad ya que no es muy
sensible ante pequeñas variaciones
161
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
1. Realizar las Nj − n0 replicaciones que faltan para alcanzar Nj y calcular su
media:
Nj
(2)
Y j (Nj − n0 ) =
i=n0 +1
Yji
Nj − n0
(7.4)
2. Calcular los pesos Wj1 y Wj2 para i = 1, 2, · · · , k:
Wj1
.
⎡
/
/
(Nj − n0 )(d∗ )2
Nj
n0 ⎣
0
1+ 1−
1−
=
Nj
n0
h21 Sj2 (n0 )
Wj2 = 1 − Wj1
⎤
⎦
(7.5)
(7.6)
3. Calcular la media ponderada de cada alternativa:
(1)
(2)
X̃j (Nj ) = Wj1 Y j (n0 ) + Wj2 Y j (Nj − n0 )
4. Finalmente se elige la alternativa con menor (o mayor) X̃j (Nj ).
Los valores de P ∗ y d∗ son elección del analista y dependerán de los objetivos del
estudio de simulación. Logicamente, cuanto mayor sea P ∗ y menor d∗ mayor será el
coste de computación pero mejores los resultados obtenidos.
162
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
7.4.
Ejemplos de aplicación
7.4.1.
Ejemplo 4.1: comparación de dos alternativas
La empresa municipal de transportes de una ciudad se plantea internalizar
el servicio de mantenimiento de sus vehı́culos. El ingeniero responsable del
proyecto, después de recoger toda la información necesaria y analizar el problema, considera dos posibles soluciones para el taller de reparaciones (figura
7.1):
1. Un puesto de inspección y dos de reparación.
2. Dos puestos de inspección y uno único de reparación.
La llegada de vehı́culos al taller se puede modelar mediante una distribución
exponencial de media 1 hora. El tiempo medio de inspección de cada autobús
se aproxima a una distribución uniforme entre 0,5 y 1,1 horas mientras que
el tiempo de reparación lo hace según una gamma de parámetros α = 2, 2 y
β = 1. A partir de los datos históricos se estima que el 30 % de los vehı́culos
que se revisan necesitan alguna reparación, mientras que el resto sale del
taller sin ser sometidos a ninguna otra operación. Todas las colas siguen una
disciplina FIFO.
Dado que el coste de un centro de inspección y de uno de reparación
es muy parecido, se decide seleccionar la alternativa en la que el tiempo
medio que los vehı́culos pasan en el taller sea menor. Si fuese el encargado
de tomar la decisión, ¿qué alternativa elegirı́a?
Figura 7.1: configuraciones alternativas para el taller del ejemplo 4.1
La variable de salida es el tiempo medio que cada vehı́culo pasa en el sistema una vez que la simulación alcanza el estado estacionario. Para resolver el
problema, se toma como tiempo de calentamiento 720 horas (se deja su cálculo como ejercicio) y se realiza un experimento como el que se muestra en el
cuadro 7.1. La resolución del problema consiste, básicamente, en obtener un
intervalo de confianza (en este caso al 99 %) de la diferencia de la variable de
salida en cada modelo, Y1 e Y2 .
El ejemplo se desarrolla siguiendo los siguientes archivos:
Planteamiento
163
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
Número de replicaciones
Tiempo de calentamiento
Longitud de cada replicación
Variable de salida
40
720 horas
4000 horas
Tiempo medio en el sistema
Cuadro 7.1: caracterı́sticas del estudio de simulación. La duración de replicación no incluye el tiempo de calentamiento
Ejemplo4-1a.mod : contiene el modelo de la primera alternativa en Witness.
Ejemplo4-1b.mod : contiene el modelo de la segunda alternativa en Witness.
Ejemplo4-1.xls : es la hoja de cálculo donde se debe resolver el ejemplo.
Ejemplo4-1 experimento.txt : Preparado para obtener 40 replicaciones independientes de longitud 4000 horas y un tiempo de calentamiento
de 120 horas.
Ejemplo4-1 solucion.xls : muestra como debe quedar la hoja de
cálculo una vez resuelto el ejemplo.
(a) Alternativa 1
(b) Alternativa 2
Figura 7.2: modelo en Witness de las dos alternativas
El experimento
El primer paso es obtener las dos muestras (y11 , y12 , · · · , y140 ) e
(y21 , y22 , · · · , y240 ) a partir de las que se evalúan las configuraciones
alternativas. Estos valores se obtienen del informe del elemento ((Autobus)) del
archivo de salida CSV de la simulación. Se deben seguir los siguientes pasos:
1. Abrir el modelo de la primera alternativa, Ejemplo4-1a.mod , y cargar
el experimento Ejemplo4-1 experimento.txt (Model / Experiment
/ Open).
164
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
2. Seleccionar Ejemplo4-1a.mod como el modelo de ejecución del experimento (Model / Experiment / Define / Situations).
3. Importar los datos del archivo ((Ej4-1.csv)) en la hoja ((CSV alternativa 1))
del archivo Ejemplo4-1.xls .
4. Los tiempos medios de espera en la cola se guardan en la columna N. Ordenar los datos por número de replicación ( Datos / Ordenar / Columna
B) y copiarlos en el lugar correspondiente de la hoja ((Comparación de
alternativas)).
5. Repetir el proceso para la segunda configuración (Ejemplo4-1b.mod).
Análisis estadı́stico
1. Calcular, en la hoja ((Comparación de alternativas)), la diferencia de los
valores de salida en las dos alternativas en cada replicación (zi ).
2. Completar el análisis calculando un cuadro como 7.2.
Función Excel
Valor
z(n)
PROMEDIO(F13:F52)
0,68
S 2 (n)
VAR(F13:F52)
0,04
t39,0,995
DISTR.T.INV(0,01;39)
2,71
Semi-longitud del
intervalo 99 %
F6*RAIZ(F5/60)
0,07
Lı́mite superior
F4+F7
0,61
Lı́mite inferior
F4-F7
0,75
Cuadro 7.2: resultado de la comparación de las dos alternativas. El análisis es
significativo.
Según este análisis, el valor esperado de la variable Z = Y1 −Y2 se encuentra en
el intervalo (0, 61, 0, 75) con una probabilidad del 99 % y su estimación puntual
es ζ̂ = 0, 68 . Como el objetivo es elgir la alternativa con menor valor esperado
y según este análisis, conviene poner en funcionamiento la segunda alternativa
(2 centros de inspección y uno de reparación).
165
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
7.4.2.
Ejemplo 4.2: comparación de varias configuraciones alternativas
Un sistema de fabricación esta compuesto por 5 máquinas iguales que trabajan de manera independiente. La máquinas operan continuamente con la única excepción de las paradas por averı́as y en la actualidad un único mecánico
se encarga de las reparaciones de todas las máquinas. El tiempo que cada
máquina funciona sin tener una averı́a puede aproximarse a una distribución
exponencial de media 8 horas y la duración de una reparación se asemeja a
una exponencial de media 2 horas.
El mecánico encargado de las reparaciones ha sugerido a su superior que el
coste de mantenimiento se reducirı́a si la plantilla de mecánicos se ampliase,
ya que considera que es muy frecuente que más de una máquina esté averiada a la vez. Ante esta situación el departamento de mantenimiento decide
hacer un estudio de simulación para comparar la respuesta del sistema cuando varı́a el número de mecánicos, hasta un máximo de 4. Se considera que los
únicos costes de mantenimiento son el coste por parada de las máquinas (55
€/h·máquina) y el coste de la mano de obra de reparación (10€/hora·mecánico). Se pide hacer un estudio de simulación para averiguar cuál es el número
óptimo de mecánicos para minimizar dicho coste.
En este caso, se consideran 4 configuraciones alternativas donde la única
diferencia entre ellas es el número de mecánicos. Al igual que en el ejercicio
anterior interesa el comportamiento durante el estado estacionario y para ello
basta con tomar un tiempo de calentamiento de 200 horas (se deja su cálculo
como ejercicio). El coste de mantemiento, que es la variable de salida que hay
que comparar, se calcula de la siguiente manera:
Y = Tpar ada × 55 + Thor as × nmecanicos × 10
En primer lugar, se compara el sistema actual de un solo mecánico con el resto
de alternativas mediante intervalos de confianza individuales (apartado 7.3.1).
Después se utiliza el método explicado en 7.3.2 para clasificar las alternativas
y seleccionar la mejor.
A continuación se presentan los archivos que acmpañan al enunciado:
Ejemplo4-2.mod : contiene el modelo del sistema en Witness.
Ejemplo4-2a.xls : es la hoja de cálculo donde se debe resolver el ejemplo tomando el sistema actual como referencia.
Ejemplo4-2a solucion.xls : muestra como debe quedar la hoja de
cálculo anterior una vez resuelto el ejemplo.
Planteamiento
166
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
Ejemplo4-2b.xls : es la hoja de cálculo donde se debe resolver el ejemplo mediante el método de selección de la mejor alternativa.
Ejemplo4-2b solucion.xls : muestra como debe quedar la hoja de
cálculo anterior una vez resuelto el ejemplo.
Ejemplo4-2a experimento.txt : Preparado para obtener 40 replicaciones independientes de longitud 4000 horas y un tiempo de calentamiento de 200 horas.
Ejemplo4-2b experimento1.txt : Preparado para obtener las replicaciones adicionales en el método de selección de una alternativa de la
configuración 1.
Ejemplo4-2b experimento2.txt : Preparado para obtener las replicaciones adicionales en el método de selección de una alternativa de la
configuración 2.
Ejemplo4-2b experimento3.txt : Preparado para obtener las replicaciones adicionales en el método de selección de una alternativa de las
configuraciones 3 y 4.
Figura 7.3: modelo en Witness del sistema del ejemplo 4.2.
SISTEMA ACTUAL COMO REFERENCIA
El experimento
Para cambiar el número de mecánicos (y ası́ cambiar de alternativa), se modifica la propiedad ((Quantity)) del elemento mecanicos. En la variable Tparada
se almacena el número total de horas que las máquinas han estado paradas
debido a una averı́a una vez superado el tiempo de calentamiento, que es el
único valor que se extrae de cada replicación.
167
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
Los pasos para realizar obtener los datos de la simulación son los siguientes:
1. Abrir el modelo Ejemplo4-2.mod y comprobar que el número de
mecánicos es 1.
2. Abrir el experimento Ejemplo4-2a experimento.txt (Model / Experiment / Open) y ejecutarlo (Model / Experiment / Batch).
3. Importar los datos del archivo Ej4-2.csv en la hoja ((CSV alternativa 1))
del archivo Ejemplo4-2a.xls .
4. El tiempo total que han estado paradas las 5 máquinas en cada replicación se guarda en la columna I. Ordenar los datos por número de replicación ( Datos / Ordenar / Columna B) y copiarlos en el lugar correspondiente de la hoja ((Comparación de alternativas)).
5. Repetir el proceso anterior cambiando el número de mecánicos (2, 3, y
4).
Cálculo del coste de mantenimiento
A primera vista se aprecia que el tiempo de parada se reduce considerablemente al pasar de 1 mecánico a 2. También se observa que al aumentar
el número de mecánicos a 3 y 4, aunque también se produce una reducción,
el efecto no es tan alto. A pesar de ello, lo que realmente interesa es la
repercusión en el coste de mantemiento. Los siguientes pasos son:
1. Calcular el coste de mantenimiento de cada replicación en la columna
y1i . Por ejemplo, para la y11 , el coste de mantenimiento (expresado en
miles de €) se calcula de la siguiente manera:
y11 = (976, 33 × 55 + 800 × 1 × 10)/1000 = 61, 70
2. Repetir el proceso anterior cambiando el número de mecánicos (2, 3, y
4) para obtener el coste de mantemiento en el resto de configuraciones
(y2i , y3i e y4i ).
Análisis estadı́stico
La comparación se realiza sobre la diferencia de las alternativas (2, 3 y
4) con la de referencia (1). Para ello se deben seguir los siguientes puntos:
1. Calcular las diferencias z2i = y2i − y1i , z3i = y3i − y1i y z4i = y4i − y1i .
Estos valores representan el coste de mantenimiento en miles de euros.
168
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
2. Realizar para cada una de estas diferencias un intervalo de confianza al
97 %, de manera análoga al ejemplo anterior. Los resultados se presentan
en el cuadro 7.3.
Función Excel alternativa 1
z2i
z2i
z2i
-14,15
-8,26
-0,44
z(n)
PROMEDIO(M13:M32)
S 2 (n)
VAR(M13:M32)
8,34
10,41
10,51
t19,0,985
DISTR.T.INV(0,03;19)
2,35
2,35
2,35
Semi-longitud
del intervalo 99 %
M6*RAIZ(M5/60)
0,07
0,98
0,98
Lı́mite superior
M4+M7
0,61
-9,24
-1,42
Lı́mite inferior
M4-M7
0,75
-7,28
0,54
Cuadro 7.3: intervalos individuales al 97 % para las comparaciones con el sistema actual. Valores en miles de euros
Los dos primeros intervalos no contienen al cero y son negativos por lo que
se puede decir que hay una mejora significativa al tener un total de 2 ó 3
mecánicos en plantilla. Por otro lado, con estos datos no se pude afirmar que
exista una diferencia significativa entre el sistema actual y tener 4 mecánicos.
NOTA: la probabilidad de que se cumpla cada una de las afirmaciones
anteriores por separado es del 97 % mientras que la probabilidad de que se
cumplan conjuntamente es del 90 %.
SELECCIÓN DE LA MEJOR ALTERNATIVA
Con el método anterior se sabe que el coste de mantenimiento al contratar
más mecánicos se reduce, pero no permite elegir entre tener 2 ó 3 mecánicos.
Dado que el coste de mantenimiento ronda los 60.000€, parece suficiente tomar d∗ = 1,000; para P ∗ se elige 90 %. A continuación se aplica el método de
selección visto en 7.3.2.
Primera etapa
Para la primera etapa se pueden aprovechar los valores de yji obtenidos anteriormente. Por tanto n0 = 20 y se siguen los siguientes pasos:
1. Copiar la matriz de valores 3 × 20 de yji en la hoja ((Primera etapa)) del
archivo Ejemplo4-2b.xls .
Conclusión
169
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
2. Calcular la media y la varianza de cada muestra yji :
j
y ( 1)j (20)
Sj2 (20)
1
68,79
19,72
2
54,63
3,66
3
60,53
1,86
4
68,34
1,88
3. Obtener de la tabla h1 el valor de h21 . Para k = 5, n0 = 20 y P ∗ = 0, 90,
h1 = 2, 583.
4. Calcular Ni , que representa el mayor valor3 entre n0 + 1 (21 en este caso)
y el valor de la expresión 4 :
⎡
⎤
h2 S 2 (n )
⎢ 1 j 0 ⎥
⎢ (d∗ )2 ⎥
⎢
⎥
Para cada alternativa, Nj toma los siguientes valores:
3
j
n0
h21 Sj2 (n0 )
(d∗ )2
1
21
2
4
Nj
replicaciones adicionales
131,55
132
112
21
24,40
25
5
3
21
12,42
21
1
4
21
12,57
21
1
5. Realizar, para cada alternativa, las replicaciones adicionales necesarias para la segunda etapa. Para ello ejecutar los experimentos
Ejemplo4-2b experimento1.xls para
1
mecánico,
Ejemplo4-2b experimento2.xls para 2 mecánicos y Ejemplo4-2b
experimento4.xls para 3 y 4 mecánicos e importar los datos generados en las hojas ((CSV adicional j )).
6. Calcular para los valores obtenidos en las nuevas replicaciones el coste
de mantenimiento como se hizo en para las 20 replicaciones originales.
3 la
función de EXCEL ((MAX(n1; n2; · · · ))) devuelve el valor máximo del conjunto n1, n2, · · ·
calcular x puede emplearse, entre otras, la función ((MULTIPLO.SUPERIOR(x;1)))
4 para
170
Capı́tulo 7. ANÁLISIS DE DATOS DE SALIDA. COMPARACIÓN DE VARIAS ALTERNATIVAS
Segunda etapa
1. Calcular las medias de las nuevas observaciones:
j
1
2
3
4
(2)
y j (Nj − 20)
69,96
55,21
58,75
66,64
2. Calcular los pesos W1i y W2i a partir de la ecuación 7.6 (ver cuadro 7.4).
3. Calcular el coste medio ponderado de cada alternativa.
Primera etapa
no mec.
1
2
3
4
(1)
y i (20)
68,79
54,63
60,53
68,34
Si2 (20)
19,72
3,66
1,86
1,88
Segunda etapa
Ni
132
25
21
21
(2)
y i (20)
69,96
55,21
58,75
66,64
W1i
0,17
0,86
1,13
1,13
W2i
0,83
0,14
-0,13
-0,13
ỹi
69,76
54,71
60,76
68,56
Cuadro 7.4: intervalos individuales al 97 % para las comparaciones con el sistema actual
Como se aprecia en el cuadro 7.4, la mejor opción es tener en plantilla 2
mecánicos (con una probabilidad del 90 %).
Conclusión
171
Capı́tulo 8
DISEÑO DE EXPERIMENTOS Y SUPERFICIES
DE RESPUESTA
8.1.
EL MODELO HA CAMBIADO Y HAY QUE REPETIR TODA LA
EXPERIMENTAICÓN Y CAMBIAR IMÁGENES Y TODO
8.2.
Introducción
Un estudio de simulación se puede realizar para evaluar un conjunto de alternativas ya conocidas. Por ejemplo, para el diseño de una gasolinera se pueden
estudiar varias configuraciones para la disposición de los surtidores y de los
productos que se sirven en cada uno. En estos casos, el análisis que se debe
realizar debe ser conforme lo que se ha presentado en el capı́tulo 7.
Sin embargo, en otros estudios las alternativas pueden estar menos claramente definidas. Por ejemplo, puede ser interesante estudiar cuál es el tamaño de
lote de transferencia´más ventajoso en un taller, es decir, el número de piezas
que componen cada lote, de tal manera que hasta que no se procesan todas
las piezas de ese lote en una parte del taller, no se envı́a el conjunto a la siguiente etapa. Pueden existir, de hecho, diferentes factores que condicionan el
comportamiento del sistema. En este caso, el interés puede ser buscar un conjunto de valores para dicho parámetros que de lugar a un comportamiento del
sistema suficientemente bueno (si no el mejor). Sin embargo, evaluar todas las
posibles combinaciones de todos los factores puede ser computacionalmente
inviabel, por el elevadı́simo número de alternativas. En este capı́tulo se presenta, primero, una metodologı́a para evaluar la influencia de los parámetros,
para conocer si su influencia es significativa (diseño de experimentos), y, después, una forma de obtener un modelo del propio modelo de simulación para
poder precedir el comportamiento del modelo y elegir una buena combinación
de factores (superficie de respuesta).
Naturaleza de
las alternativas
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
173
Cuando se realizan diseños de experimentos, se habla de factores y de respuestas. Los factores son aquellos datos de entrada que condicionan los valores de las variables de salida y cuyo efecto se pretende estudiar. Los factores
generalmente se refieren a los parámetros del modelo de simulación, es decir,
a aquellos datos sobre los que el decisor tiene contro. Sin embargo, una variable de entrada podrı́a ser un parámetro (por ejemplo, puede ser interesante
realizar un análisis de sensibilidad y evaluar el comportamiento del sistema
frente a diferentes valores de la demanda).
Factores
En una lı́nea de montaje, un factor puede ser el tamaño de los stocks intermedios; el un centro de atención telefónica, el número de teleoperadores de los
que se dispone en cada nivel; en un supermercado, la disciplina de colas que
se adopta en las cajas.
Ejemplos
Por otra parte, la respuesta del sistema es el valor que toma la variable de
salida considerada. Cuando existen varios factores que pueden condicionar la
respuesta del sistema, el objetivo es evaluar el efecto de estos factores para
alcanzar una combinación de sus valores que ofrezca una buen valor de la
respuesta.
Respuestas
Cuando sólo hay un parámetro que modificar, evaluar su efecto pasa por ejecutar el modelo para cada uno de los posibles valores de ese parámetro (o para
un conjunto de valores) y emplear las técnicas presentadas en el capı́tulo 7.
Un solo
parámetro
Cuando existen más de dos parámetros, factores de ahora en adelante, una
posible estrategia podrı́a consistir en fijar el valores de todos los parámetros
menos uno, Fi . A continuación, modificar el valor de Fi y evaluar si tiene un
impacto significativo sobre la respuesta del sistema. Este enfoque tiene dos
deficiencias:
Varios factores
primero, es muy poco eficiente, porque si el número de factores es relativamente algo, el número de combinaciones que hay que estudiar es muy
alto y hace que el análisis sea computacionalmente inviable;
segundo, este análisis sólo permite evaluar el efecto de la modificación
de cada factor por separado, pero no evalua las interacciones. Por ejemplo, aumentar la plantilla o aumentar la capacidad de la maquinaria en
una planta, por separado, no permitan aumentar la producción, pero al
hacerlo de forma conjunta sı́ se obtenga un incrementos significativo.
En el siguiente epı́grafe se presenta una manera de salvar estas dos deficiencias, mediante el diseño de un conjunto de experimentos que permiten, de
forma más eficiente, estudiar el efecto de cada uno de los factores y, también,
el de sus intreacciones.
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
8.3.
174
Diseños factoriales
En este epı́grafe se explica cómo realizar un disñeo factorial 2k . Existen otros
diseños de experimentos más complejos, que quedan fuera del alcance de este
texto.
Para realizar el diseño de experimentos, se siguen los siguientes pasos:
1. Se identifcan k factores y se seleccionan dos niveles para cada unos de
ellos. Se suele representar con signo menos al nivel inferior de los factores y signo más para el valor superior de los factores.
2. Se estudia el valor de la respuesta para cada una de las posibles combinaciones de valores, que en total son 2k . En un entorno determinista,
bastarı́a con calcular una vez la respuesta para cada combinación. En
un modelo de simulación con fenómenos estocásticos es necesario realizar varias replicaciones (n) para cada combinación. Por ejemplo, Para un
estudio con tres factores, la tabla 8.3 muestra todas las posibles combinaciones.
3. Se identifica el efecto de cada uno de los factores y de sus interacciones.
Cuadro 8.1: Combinaciones de factores para un diseño factorial 23 .
Combinación c
1
2
3
4
5
6
7
8
F1
−
+
−
+
−
+
−
+
F2
−
−
+
+
−
−
+
+
F3
−
−
−
−
+
+
+
+
Rc
R1
R2
R3
R4
R5
R6
R7
R8
A continuación se presenta cómo se pueden calcular los efectos a partir de
las respuestas Rc , con c = 1, ..., 2k obtenidas al realizar los diferentes experimentos. Primero, se admitirá que el sistema es determinista, con lo cual la
respuesta que se obtiene al analizar una determinada combinación de factores
es siempre el mismo. Después se extiende la metodologı́a al caso estocástico.
Procedimiento
general
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
El efecto principal del factor Fi , que se denota por ei , mide el efecto en la
respuesta al modificar modificar el factor Fi del nivel − al nivel +, mientras el
resto de factores mantienen sus niveles. En particular, los valores de e1 , e2 y
e3 vendrı́an dado por la expresiones 8.1
e1 =
(R2 − R1 ) + (R4 − R3 ) + (R6 − R5 ) + (R8 − R7 )
4
e2 =
(R3 − R1 ) + (R4 − R2 ) + (R7 − R5 ) + (R8 − R6 )
4
e3 =
(R5 − R1 ) + (R6 − R2 ) + (R7 − R3 ) + (R8 − R4 )
4
−R1 + R2 − R3 + R4 − R5 + R6 − R7 + R8
4
1
2
e13 =
1
2
e23 =
1
2
(R4 − R3 ) + (R8 − R7 )
(R2 − R1 ) + (R6 − R5 )
−
2
2
(R6 − R5 ) + (R8 − R7 )
(R2 − R1 ) + (R4 − R3 )
−
2
2
(R7 − R5 ) + (R8 − R6 )
(R3 − R1 ) + (R4 − R2 )
−
2
2
Regla sencilla
(8.2)
Existe la posiblidad de que la influencia de un factor Fi dependa del nivel de
otro factor Fj , es decir, que exista interacción entre ellos. La interacción entre
estos dos factores se calcula como la diferencia entre el efecto del factor Fi
cuando Fj está en su nivel + y el efecto del factor Fi cuando Fj está un su
nivel −, en ambos casos mateniéndose al mismo nivel el resto de los factores.
Por convención, se divide esta diferencia, entre dos, tal y como aparece en las
expresiones 8.3.
e12 =
Efectos
principales
(8.1)
Existe una forma sencilla de computar los efectos principales con ayuda de
la tabla 8.3. Por ejemplo, si se reordenan los términos que aparecen en e1 en
la expresión 8.1, se puede obtener la expresión 8.2, en la que cada respuesta
aparece con el signo con el que aparece el nivel del F1 en dicha tabla.
e1 =
175
Interacciones
i×j
(8.3)
De nuevo, existe una forma sencilla de computar estos efectos. En la tabla 8.3
se muestran tres nuevas columnas, en particular, aparece una nueva con la
cabecera F1 × F2 , donde, para combinación de factores aparece el producto del
signo correspondiente al nivel del factor F1 por el signo correspondiente a F2 .
Aplicando estos signos a cada una de las respuestas Rc , se obiene la expresión
Regla sencilla
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
176
8.4 que es la misma que se obtendrı́a ordenando la que aparece en 8.3
e12 =
R1 − R2 − R3 + R4 + R5 − R6 − R7 + R8
4
(8.4)
Cuadro 8.2: Tabla para construir los efectos principales y ls interacciones de
los factores para un diseño factorial 23
Combinación c
1
2
3
4
5
6
7
8
F1
−
+
−
+
−
+
−
+
F2
−
−
+
+
−
−
+
+
F3
−
−
−
−
+
+
+
+
F1 × F2
+
−
−
+
+
−
−
+
F1 × F3
+
−
+
−
−
+
−
+
F2 × F3
+
+
−
−
−
−
+
+
F1 × F2 × F3
−
+
+
−
+
−
−
+
Rc
R1
R2
R3
R4
R5
R6
R7
R8
Por último, para este ejemplo, se puede evaluar el efecto de la interacción de
los tres factores, que se define como la semidiferencia entre la interacción de
los factores F1 y F2 cuando el factor F3 está en su nivel + y la interacción de
los factores F1 y F2 cuando el factor F3 está en su nivel −, tal y como se puede
ver en la expresión 8.5.
e123 =
1
2
(R8 − R7 ) + (R6 − R5 )
(R4 − R3 ) + (R2 − R1 )
−
2
2
(8.5)
Reorganizando la expresión anterior, se puede comprobar que los signos de la
columna F1 × F2 × F3 permiten reconstruir de forma sencilla la expresión e123 ,
asignando a cada término Rc el signo que indica aquella columna.
e123 =
−R1 + R2 + R3 − R4 + R5 − R6 − R7 + R8
4
Interacciones
i×j×k
Regla sencilla
(8.6)
En este ejemplo sólo hay tres factores, de manera que no existen interacciones
de nivel superior. Sin embargo en diseños con 4, 5, etc factores se podrı́an definir de forma análoga y evaluar, todas y cada una de las posibles interacciones.
Más
interacciones
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
Tı́picamente, en un modelo de simulación cada vez que se calcula Rc para una
combinación de factores se obtiene un valor dierente. La forma de abordar un
estudio con respuestas estocásticas es la siguiente.
1. Realizar n replicaciones para cada combinación de factores. Ası́ Rcn serı́a
la respuesta del sistema para la replicación r -ésima de la combinación c
(r = 1, ..., n y c = 1, ..,2k ).
2. Estimar tantos valores de ei , eij . etc. como replicaciones: eir , eijr , etc.
con r = 1...n. Por ejemplo, para el efecto principal del factor F1 en un
diseño 23 y realizando 10 replicaciones (k = 3, n = 10), se obtendrı́an 10
valores e1r :
e1r =
−R1r + R2r − R3r + R4r − R5r + R6r − R7r + R8r
4
(8.7)
Eso mismo se podrı́a realizar con el resto de factores y con sus interacciones.
3. Caluclar, para cada factor y para cada una de sus interacciones, un intervalo de confianza con un determinado nivel de confianza. La expresión
corresponde al intervalo para el mismo efecto principal F1 .
⎛
⎝e1 (n) − tn−1,1−α/2
Se21 (n)
, e1 (n) + tn−1,1−α/2
n
⎞
Se21 (n) ⎠
n
(8.8)
donde:
e1 (n) =
n
Se21 ( n)
=
r =1
n
e1r
r =1
2
(e1r − e1 (n))
n−1
(8.9)
.
En el siguiente apartado se propone un ejercicio para elaborar un diseño de
experimentos con dos factores para una polı́tica de gestión de stocks.
177
Carácter
aleatorio de Rc
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
8.4.
178
Ejemplo 1
Una empresa mayorista sirve productos a sus cliente, que son minoristas. La
empresa compra productos a un proveedor, los almacena, y de ahı́ sirve a sus
clientes.
La demanda diaria agragada para todos los minoristas sigue una distribución
uniforme entre 240 y 260 productos.
El Lead time del proveedor sigue una lognormal de media 2 dı́as y desviación
tı́pica 0.5.
Existe relacionados con la gestión de stocks para atender la demanda son los
siguientes.
Coste unitario de stock o de almacenamiento: 1 unidad monetaria (um)
por unidad de producto (up) y por dı́a.
Coste de carencia 10 um por unidad de producto no servido.
Coste de emisión de un pedido: 250 um.
d
La demanda no atendida en un dı́a determinado se pierde, es decir, la empresa
no entrega productos con retraso.
La polı́tica que se quiere evaluar consiste en pedir un lote de productos al
proveedor cuando el stock disponible, que es la cantidad de productos en el
almacén más la cantidad de productos pendientes de recibir, cae por debajo
de un determinado nivel. Las diferentes formas que puede adptar esta polı́tica
se caracteriza mediante los dos parámetros siguientes:
el tamaño de pedido, Q y
el nivel de reaprovisionamiento, s, que es el valor tal que cuando el
stock disponible es inferior a él, se lanza un pedido al proveedor.
Se pide realizar un diseño de experimentos para analizar el efecto de los factores s y Q.
Para realizar este análisis, se recomienda el uso de lo siguientes archivos:
Ejemplo8-1.mod, que contiene un modelo para representar la polı́tica
estudiada,
Ejemplo8-1.xls, con lo que se facilita reproducir los cálculos que siguen a continuación.
Ejemplo8-1 solucion.xls, donde se puede encontrar el análisis realizado.
Ejemplo8-10R.xpt, para facilitar la realización de las replicaciones de
las diferentes combinaciones de factores.
Material
disponible
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
8.4.1.
El modelo
El modelo que se ofrece en Ejemplo8-1.mod, y cuya representación gráfica se
muestra en la figura 8.1, está contruido de la siguiente manera:
En primer lugar, existen dos variables de tipo entero: s y Q que son los
parámetros del modelo, los factores del diseño de experimentos.
Dos piezas, Producto y NoServido, representan, respectivamente, las
unidades de producto servidas y las unidades de producto no servidas.
El buffer Stock representa el stock fı́sico del que dispone la empresa.
Desde este buffer se retiran los productos para atender la demanda y
es adonde llegan los productos que entrega el proveedor.
La Máquina Clientes reproduce el comportamiento de la demanda. Cada dı́a genera un valor de la demanda. Y con ese valor, trata de retirar unidades de producto de Stock. Cuando no hay suficientes, obtiene
piezas NoServido de ((WORLD)). Al final de cada operación (de cada dı́a)
se computan los costes (esto se comenta con más detalle más adelante).
El buffer StockProveedor permite reproducir el lead time del proveedor. Cuando un Producto enviado desde el proveedor al stock del cliente,
permanece un tiempo en este buffer correspondiente al lead time.
La máquina Proveedor gobierna la resposición del stock. Cuando la cantidad de Productos que hay en Stock más la cantidad de productos que
hay en StockProveedor cae por debajo del valor de s, se lanza un pedido
de tamaño Q, que Proveedor genera y empuja hacia StockProveedor.
Además, existen todos las variables para calcular los costes de cada
tipo y el coste total y las variables correspondientes a los valores de la
demanda y del lead time.
Para representar la evolución del stock fı́sico y del stock disponible, hay
un histograma que se actualiza cada dı́a simulado.
Por último, en Acciones de inicialización es donde se da valores a los
parámetros y donde se genera el primer valor de Demanda.
179
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
180
Figura 8.1: representación gráfica correspondiente al modelo.
Para computar los costes, se calculan los tres costes: carencia, emisión y almacenamiento como con el código de la figura . En particular:
El coste de almacenamiento (CosteStock) se calcula como sigue. El producto del número medio de Productos en Stock por el valor de TIME es
igual a la suma, para todas las piezas producto del tiempo que ha permanecido cada una de ellas en Stock. Al multiplicar el valor anterior por
el coste unitario de almacenamiento, se obtiene el coste total de almacenamiento hasta el instante TIME.
El costes de carencia se computa, simplemente, como el número de
piezas de tipo NoServido por el coste unitario de carencia, ya que cada vez que se deja de atender la demanda de un Producto se genera una
pieza de tipo NoServido.
El coste de emisión se calculan como el producto de las veces que se
ha realizado un pedido (que es igual al número de ciclos de la máquina
Proveedor por el coste unitario de emitir un pedido.
El coste total se actualiza cada dı́a calculando la suma de los tres costes
anteriores.
Figura 8.2: código para el cómputo de los costes.
Cómputo de los
costes
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
8.4.2.
181
Experimentación
Si el problema fuera determinista, se puede demostrar (PENDIENTE, buscar
referencia) que el tamaño de lote óptimo, Q∗ es igual a la siguiente expresión:
∗
Q =
2 × D × CE CA + CC
CA
CC
Estimaciones
preliminares
(8.10)
Si el problema fuera determinista con los valores medios, entonces D = 250.
Los datos correspondientes a los costes son CE = 200, CC = 10 y CA = 1,
por lo que, de acuerdo con la expresión , el tamaño de lote económico óptimo
serı́a, redondeando, Q∗ = 331.
Estimación de Q
Por otro lado, si el lead time del proveedor fuera determinista e igual a 2 dı́as,
el nivel de reaprovisionamiento serı́a igual a la demanda correspondiente a ese
periodo, es decir, s = 2 × 250 = 500.
Estimación de s
Para determinar el efecto de los factores s y Q, se pueden estudiar dos valores
para cada factor, uno inferior y otro superior al valor teórico que se habrı́a
obtenido en el caso no estocástico. Estos valores se muestran en el cuadro
8.4.2.
Niveles de s y Q
Cuadro 8.3: combinaciones de los factores s y Q.
Q(−)
Q(+)
s(−)
450
R1
R2
315
345
s(+)
550
R3
R4
Por último, se puede construir la tabla correpondiente a estas combinaciones
de factores tal y como se muestra en el cuadro .
Cuadro 8.4: tabla con los experimentos para los factores s y Q.
Combinación c
1
2
3
4
s
−
+
−
+
Q
−
−
+
+
s×Q
+
−
−
+
Rc
R1
R2
R3
R4
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
182
En primer lugar, como se trata de un modelo de simulación sin terminación,
hay que calcular en tiempo de calentamiento. Se deja al lector como ejercicio
que lo calcule. Empleando el método de Welch, se comprueba que un tiempo de
calentamiento de 60 dı́as es suficiente para alcanzar el régimen permanente.
Con respecto a la longitud de las replicaciones, es razonable estudiar los costes
asociados a un periodo de un año. Con ello, cada replicación tendrá un tiempo
de calentamiento de 60 dı́as y una duración (una vez alcanzado el régimen
permanente) de 365 dı́as.
Tiempo de
calentamiento y
longitud de las
replicaciones
Lo primero que hay que hacer es realizar un conjunto de diez replicaciones
(n = 10) para cada una de las combinaciones de factores. Para eso hay que
hacer los siguiente:
Replicaciones
1. Abrir el archivo Ejemplo8-1.mod, y modificar las Acciones de inicialización para fijar los valores deseados de s y Q.
2. Abrir el libro Ejemplo8-1.xls y seleccionar la hoja Experimentos y
superficie.
3. Abrir (si no está ya abierto) el archivo de experimentación Ejemplo8-1
10R.xpt.
4. Ejecutar el archivo anterior (Modelo / Experimento / Ejec. acel.)
5. Importar el contenido del archivo Exp.csv a una hoja auxiliar.
6. Seleccionar los valores correspondientes a la variable CosteTotal para
cada replicación y copiarla en las celdas con fondo azul del libro de Excel,
en la fila que corresponda según la combinación de factores estudiada.
Imágenes del xls
PENDIENTE
A continuación, hay que calcular los efectos principales y la interacción de
los dos efectos para las diez replicaciones, para lo cual se puede usar zona
sombreada de color amarillo. En la figura , por ejemplo, se han introducido
las fórmulas, de manera que los valores −63,55, −41,67 y 22,71 se calculan a
partir de los valores para la primera replicación de cada combinación: 293,18,
250,05, 260,99 y 240,57. Por ejemplo: −63,55 = −293,18 + 250,05, −260,99 +
240,57.
Cálculo de es ,
eQ y eSQ
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
183
Figura 8.3: cálculo de los efectos para cada replicación
Una vez que se dispone de los valores de los efectos para cada replicación,
se puede calcular un intervalo de confianza para cada uno de ellos, como se
muestra en la figura 8.4. Para ello, de la misma manera que en el capı́tulo 6,
se calcula estiman la media y la varianza, se establece un nivel de confianza
y se obtiene la semiamplitud del intervalo, con lo que, finalmente, se pueden
calcular los extremos superior e inferior del intervalo.
Intervalos para
es , eQ y eSQ
Figura 8.4: intervalos de confianza para los efectos
Los intervalos que se han obtenido para los efectos principales y para la interacción de los dos factores son:
Análisis de
resultados
es ∈ (−68,78, −53,51)
eQ ∈ (−43,20, −16,74)
(8.11)
esQ ∈ (−10,89, −6,59)
Se puede concluir que cuando sı́ que existe PENDIENTE.
Intepretación
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
Cuidado con
8.5.
184
PENDIENTE
Superficies de respuestas
Como se ha mostrado en los apartados anteriores, con el diseño de experimentos se puede evaluar si el efecto de los factores (F1 , F2 , ..., Fk ) y los efectos
de sus interacciones sobre la respuesta del modelo (R) son significativos o no.
Un paso más puede consiste en disponer de un metamodelo: un modelo que
relacione el valor de los factores con el valor de la respuesta del modelo de
simulación, de la forma E[R] = ϕ(F1 , F2 , ..., Fk )
Un metamodelo
Con un metamodelo bien construido es posible
Optimización
1. predecir el comportamiento del sistema para diferentes valores de los
factores (especialmente interesante cuando el la ejecución de un modelo
lleva mucho tiempo) y
2. buscar los valores de dichos factores que proporcionen un valor óptimo
de la respuesta.
A partir del diseño de experimentos con dos factores a dos niveles del ejemplo
anterior, se puede construir un primer modelo de regresión de primer orden
de la siguiente forma:
E [R(s, Q)] = β0 + βs xs + βQ xQ + βsQ xs xQ
(8.12)
Donde las variables xs y xQ se definen de la siguiente manera:
2(s − s)
Δs
2(Q − Q)
xQ =
ΔQ
xs =
(8.13)
y s y Q representan, respectivamente, la media corresondiente a los dos niveles
para el factor s y el factor Q; y Δs y ΔQ representan, respectivamente, la
diferencia entre los dos valores de los factores s y Q.
Las definiciones de xs y xQ son tales que cuando s y Q toman, respectivamente
el valor correspondient al nivel − en el diseño de experimentos (en el ejemplo
(450 y 315), xs y xQ toman el valor −1. Cuando s y Q alcanzan el nivel +, xs y
xQ toman el valor −1
Modelo de
regresión
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
185
Al sustituir las expresión de xs y xQ en 8.17, se obtiene un modelo donde la
respuesta es función de los valores de s y Q:
E [R(s, Q)] = β0 + βs
2(s − s)
2(Q − Q)
2(s − s) 2(Q − Q)
+ βQ
+ βsQ
(8.14)
Δs
ΔQ
Δs
ΔQ
Se puede demostrar que los mejores estimadores de los valores de β0 , βs , βQ
y βsQ son los siguientes (ver Montgomery [?]):
Estimadores
0 = R F (n)
β
s = es (n)
β
2
e
(n)
Q
Q =
β
2
e
(n)
sQ
sQ =
β
2
(8.15)
Donde es (n), eQ (n) y esQ (n) son los valores medios de las respuesta correspondientes a las cuatro combinaciones de los niveles de los factores al realizar
n replicaciones. R F (n) es el valor medio de la respuesta para todas las combinaciones y para las n replicaciones.
El metamodelo anterior es un modelo de regresión de primer orden. Sin embargo, no existen garantı́as de que la superficie se ajuste bien al verdadero
comportamiento de la respuestas dentro de los valores correspondientes a los
niveles − y + de los factores. Para comprobar si, efectivamente, la aproximación es válida, una alternativa consiste en reproducir la propia superficie de
respuestas reales del modelo y comparar con las previsiones que se pueden
realizar con el metamodelo. Obviamente, precisamente es esto de lo que se
prentende huir con la construcción de la superficie.
Validez de la
superficie
Figura con el punto C y comentarios
PENDIENTE
Como solución alternativa, se puede estudiar en qué medida el metamodelo
predice bien el comportamiento del sistema para el punto central C, definido
por s = s y Q = Q. Con las n replicaciones realizadas para construir la superficie de respuesta se puede realizar la predicción del metamodelo, E[R(s, Q)]
que cuando s = s y Q = Q toma el valor E[R(s, Q)] = RF (n). Por otro lado,
se pueden realizar n repliaciones del modelo para el punto central, RC (n).
Se podrı́a calcular la diferencia entre RC (n) y RF (n). Sin embargo esta serı́a
una posible observación de la variable aleatorio D(n) = RF (n) − RC (n), que
mide la diferencia entre el comportamiento del modelo y del metamodelo, y
comprobar si esta diferencia es significativa, para lo cual hay que construir un
intervalo de confianza para la media de D(n).
Comprobación
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
Para obtener un intervalo de confianza para la media de la variable D(n) =
RF (n) − RC (n). Para ello es necesario, obtener m observaciones de RF (n) y
otras tantas de RC (n) y obtener un intervalo de confianza a partir de estos
valores. Si el intervalo contiene al 0, no existe diferencia significativa entre los
valores que ofrecen el modelo y el metamodelo para el punto C: la curva se
considera suficientemente buena.
186
Diferencia
significativa
Para cada dos de los 2 × m valores anteriores, se puede calcular D j (n) como
j
j
la diferencia entre los valores del modelo RC (n) y del metamodelo RF (n), con
j = 1, ..., m, de manera que el intervalo para la media de D(n) = RF (n)−RC (n),
con un nivel de confianza α vendrı́a dado por la expresión siguiente:
.
.
⎞
/ 2
/ 2
/S
/S
(m)
0 Dj (n)
0 Dj (n) (m) ⎟
⎜
, D(n) + tm−1,1−α/2
⎝D(n) − tm−1,1−α/2
⎠
m
m
⎛
(8.16)
Para cada una de los m valores anteriores es necesario realizar n replicaciones
para cada una de las combinaciones de lo factores (4) y para el punto C. Es
decir, hay que realizar m × n × 5 repliaciones.
En el caso de que se identificara que hay diferencia significativa entre el modelo
y la superficie para el punto C, habrı́a que evaluar la posibilidad de contruir
un modelo de regresión de segundo orden o cuadrático, de la forma siguiente:
2
E [R(s, Q)] = β0 + βs xs + βQ xQ + βsQ xs xQ + βss xs2 + βQQ xQ
Otras
superficies
(8.17)
Para obtener los coeficientes βss y βQQ es necesario definir nuevas combinaciones de los valores de los factores adicionales a las utilizadas para la superficie
de primer orden. Para conocer cómo construir la superficie, se recomienda
consultar Montgomery [?].
Por último y admitiendo que la superficie fuera adecuada es posible explotar
el modelo para buscar óptimos locales cercanos a los puntos correspondientes
a las combinaciones de las factores estudiadas.
Incluso si la superficie no es suficientemente buena se puede hacer lo siguiente.
A partir de la expresión corresondiente al modelo de regresión de primer orden
sin el término no lineal, E [R(s, Q)] = β0 + βs xs + βQ xQ ) se puede, operando,
expresar la superficia en función de los factores s y Q, E [R(s, Q)] = γ0 +γs xs +
γQ xQ ) . A continuación se puede proceder de la siguiente manera.
A partir del punto central C, identificar la dirección en la que disminuye
más rápidamente el valor de la respuesta: (−γs , −γQ ) (gradiente).
Explotación del
metamodelo
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
187
Desplazarse desde el punto considerado (inicialmente C) hacia otro punto según la dirección anteior (o a un lugar punto próximo, dada la condición de integralidad de s y Q).
Ejecutar el modelo para esa configuración. Si el el valor de la respuesta es
significativamente menor, continuar avanzando en esa dirección. En caso
de que no sea ası́, realizar de nuevo un diseño factorial en el entorno del
último punto evaluado. A continuación avanzar de acuerdo con el nuevo
gradiente hasta que no se pueda reducir el valor de la respuesta.
Detener el proceso cuando al obtener una superficie de respuestas se
obtiene una superficie plana.
8.6.
Ejemplo 2
Para la situación del ejemplo 1:
Obtener una superficie de respuesta, tanto dependiendo de xs y sQ y
de s y Q
Comprobar el comportamiento de la superficie para el punto C (xs = 0
y xQ = 0).
Para realizar este ejercicio, además del material disponible para el ejercicio
anterior, se puede utilizar el archivo Ejemplo8-1 100R.xpt para facilitar la
j
realización de las replicaciones que permiten obtener las diferencias RC (n) y
j
RF (n)
En primer lugar, para obtener la expresión de la superficie 8.17, hay que obtener la estimación de β0 , βs , βQ y βsQ de acuerdo con las expresiones 8.15. Para
ello, en la fila 20 de la hoja Experimentos y superficie hay que introducir
las fómulas, que se refieren a los efectos de los factores calculados en las celdas P13:P15. Haciendo esto se obtienen los valores β0 = 263,65,βs = −30,57,
βQ = −14,99 y βsQ = −1,08, de manera que la superficie, en función de xs y
de xQ tiene la forma siguiente:
E [R(s, Q)] = 263,25 − 30,57xs − 14,99xQ − 1,08xs xQ
(8.18)
Estimación de
las βs
Superficie en
función de xs y
xQ
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
Para poder hacer predicciones a partir del metamodelo, si se utiliza la expresión anterior, es necesario obtener los valores de xs y sQ a partir de s y Q.
2(s − 500)
s − 500
2(s − s)
=
=
Δs
100
50
2(Q − 330)
Q − 330
2(Q − Q)
=
=
xQ =
ΔQ
30
15
188
Valores de xs y
sQ
xs =
(8.19)
En términos del archivo de Excel, se puede hacer los siguiete:
Introducir en las celdas correspondientes Cálculos auxiliares
Introducir en las celdas corresopndientes a Valores de loo factores algunos puntos que se desee evaluar. En la hoja con la solución aparecen los
vértices y el centro del cuadro de la figura PENDIENTE. Para cada par de
valores de s y Q, obtener los valores de las variables xs y sQ en las celdas
Variables Auxiliares.
Finalmente, en la fila Previsión del metamodelo se puede construir la expresión de la respeusta prevista para cada par de valores de los factores.
Adicionalmente, existen algunas celdas de fondo blando para poder evaluar en qué medida la predicción fue correcta. Se trata de un cálculo de
carácter académico. En un estudio de un modelo complejo, se realzarı́a
una comprobación del punto central, C a través de un intervalo de confianza. En este caso se ilustra la diferencia para varias observaciones.
Para hacer esto hay que realizar lo siguiente:
• Modificar las Acciones de inicialización del modelo para que las variables s y Q tomen los valroes deseados.
• Abrir y ejecutar el experimento contenido en Ejemplo1-10R.xpt,
con lo que se dispondrá de 10 valores de la respuesta del modelo.
• Importar los dat0s del archivo csv resultante a la hoja de cálculo
(la hoja CSV tiene incorporada la búsqueda de datos). Copiar los
valores de las 10 observaciones de CosteTotal a la columna correspondiente en la hoja Experimentos y superficie.
Figura 8.5: previsiones realizadas con la superficie.
Predicciones
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
189
Alternativamente, se puede obtener la superficie en función de los valores de
s y Q, operando a partir de los valores de xs y xQ y se podrı́an realizar previsiones, igualmente, con esta expresión.
Superficie en
función de s y Q
E [R(s, Q)] = 662,095 − 0,138s − 0,282Q − 0,001sQ
(8.20)
Para la comprobación de la validez de la superficie hay que caluclar un intervalo de confianza para la variable D(n) = RF (n) − RC (n). La hoja Comprobacion
punto C está diseñada para facilitar la tarea.
Comprobaciones
Existen 10 cuadros azules, cada uno correspondiente las m = 10 observacioj
j
nes de RF (n) y las m = 10 observaciones de RC (n). Cada cuadro contiene
cinco filas corresondientes a cuatro combinaciones de los factores de experimentación. Los cuatro primeros, correspondientes a un diseño 22 y la quinta
corresondiente al punto C. Cada cuadro tiene además tantas columnas disponibles como las replicaciones que hay que realizar en cada caso (n = 10). Para
j
j
cada cuadro, es posible obtener los valores de RF (n) y RF (n)
Estructura hoja
Comprobacion
punto C
En la parte superior aparecen tres filas corresondientes a los diferentes valoj
j
res de RF (n), RC (n) y D j (n), a partir de los cuales obtener el intervalo de
confianza y comprobar si existe diferencia significativa o no.
Figura 8.6: Cálculo de RF1 (10) y RC1 (10).
Para obtener el intervalo, se recomienda hacer lo siguiente:
1. Seleccionar una combinación de factores y modificar las Acciones de inicialización.
2. Abrir y ejecutar el experimento Ejemplo8-1 100R.xpt e importar los
datos del archivo .csv generado.
3. Emplear los datos corresondientes a las diez primeras replicaciones para
j = 1, las diez siguientes para j = 2 y ası́ sucesivamente hasta j = m.
Para ello, copiar los valores en
4. Hacer todo lo anterior para las cinco combinaciones.
j
j
5. Para cada valor de j = 1, ..., m, calcular RC (10) y RF (10)
Procedimiento
Capı́tulo 8. DISEÑO DE EXPERIMENTOS Y SUPERFICIES DE RESPUESTA
190
6. Con los valores anteriores, en las celdas superiores, construir un el intervalo de confianza para la media de D(10), como se ha hecho en otras
ocasiones para otras variables.
j
j
Figura 8.7: Diferenicias entre RF (10) y RC (10).
El intervalo obtenido en el archivo Ejemplo8-1 solucion.xls es (7,11, 7,86),
que no contiene al 0, con lo que sı́ existe diferencia significativa entre la estimación realizada con la superficie para el punto C y el comportamiento del
sistema para ese valor. Para disponer de una superficie más fiel a la realidad
2
serı́a necesario introducir los términos en xs2 y xQ
, y habrı́a que estimar nuevos coeficientes. Para ello se deben realizar cálculos parecidos a los que se han
presentado en este capı́tulo y se remite al lector al texto Montgomery [?] para
profundizar más.
8.7.
Resumen
El análisis del comportamiento de un sistema puede estar condicionado por
los varores de diferentes datos de entrada. Es decir, la respuesta del sistema
(variable de salida) puede depender de varios datos de entrada (variables de
entrada o parámetros). Mediante el disñeo de experimentos se puede estudiar
de forma eficaz y eficiente la existencia o no de influencia significativa del valor
de dichos factores sobre la respuesta del sistema. El caso más sencillo es el del
diseño factorial 2k donde se estudian k factores, para cada uno de los cuales
se consideran dos posibles niveles (alto y bajo).
Si los modelos son muy pesados, y su ejecución lleva mucho tiempo, puede
resultar interesante disponer de un metamodelo que permita predecir el comportamiento del modelo para diferentes valores de los factores sin necesidad
de realizar replicaciones. En primera aproximación, un modelo de regresión de
primer orden puede ser suficiente. Si no lo fuera, se pueden construir metamodelos de orden superior, que son más fieles al modelo pero exigen un mayor
tiempo de computación.
Análisis de los
resultados
Capı́tulo 9
REDUCCIÓN DE LA VARIANZA
9.1.
Introducción
Como se ha dicho en capı́tulos anteriores, el resultado de alimentar un modelo con entradas aleatorias son salidas también aleatorias. Por tanto, para
extraer conclusiones correctas, es necesario aplicar técnicas estadı́sticas para
caracterizar estos datos de salida. Pero la mayorı́a de los modelos complejos
requieren una gran cantidad de recursos para ser simulados (tanto en tiempo
de computación como espacio para almacenar datos) y las técnicas estadı́sticas generalmente se basan en la realización de múltiples replicaciones. Por
este motivo, en algunos casos, el coste de un análisis estadı́stico es demasiado
alto en relación a los resultados que se obtienen (medidos por la amplitud del
intervalo de confianza).
La calidad de los resultados se puede medir según la amplitud del intervalo de
confianza que acompaña al valor estimado, expresado por:
y(n) ± tn−1,1−α/2
S 2 (n)
n
(9.1)
Uno de los caminos para aumentar la eficiencia de la simulación es mejorar
la programación para conseguir modelos que requieran menos recursos para
su ejecución. De este modo, con el mismo esfuerzo de computación, se puede
aumentar el número de replicaciones (n) por lo que el intervalo anterior se
estrecha. Otro camino se dirige a mejorar la , es decir, que los datos de salida
de la simulación tengan una varianza menor. Si se consiguen datos con menor varianza, S 2 (n) disminuye y el intervalo de confianza será más estrecho.
Por tanto la precisión de los resultados crece sin aumentar la duración de la
simulación. Al conjunto de técnicas empleadas para lograr este propósito se
les conoce como técnicas de reducción de la varianza (en inglés de ((Variance
Reduction Techniques)), VRT ) y su aplicación puede ser la única manera de
obtener resultados útiles de un proyecto.
Cómo mejorar
la eficiencia
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
192
Como se explica más adelante, la forma de aplicar estas técnicas depende de
cada modelo en particular y no se puede saber de antemano los beneficios
en la reducción de la varianza de aplicarlas. Como consecuencia, la mayorı́a
de las estas técnicas necesitan un estudio previo para saber si su aplicación
contribuye a una mejora en la eficiencia de los recursos o si, por el contrario,
conllevan una pérdida de rendimiento.
¡Las VRT no
siempre
funcionan!
En la secciones 9.2 y 9.3 se desarrollan brevemente los fundamentos de dos
técnicas de reducción de la varianza (números aleatorios comunes y variables
antitéticas). Estas técnicas se desarrollan de forma práctica en la resolución de
un problema real mediante simulación (sección 9.4).
Estructura del
capı́tulo
9.2.
9.2.1.
Números aleatorios comunes
Fundamentos
La primera de las técnicas de reducción de la varianza que se expone en este capı́tulo se conoce como números aleatorios comunes (en
inglés ((Common Random Numbers)), CRN ) y se aplica para comparar
dos o más configuraciones alternativas. Se basa en la idea de estudiar el comportamiento de las alternativas bajo ((condiciones de simulación similares)), es
decir, alimentándolas con entradas lo más parecidas posible. De este modo,
se asegura que las diferencias en los datos de salida se deben principalmente al comportamiento de los modelos y no a fluctuaciones en el valor de las
variables de entrada.
A partir de ahora se considera que se quieren comparar dos alternativas (1
y 2) en función del comportamiento de una variable de salida (Y1 e Y2 ). Se
denota por y1i e y2i los valores de estas variables en la i-ésima replicación. La
comparación se lleva a cabo a través de una nueva variable, (Y ), que representa
la diferencia de las anteriores, Y = Y1 − Y2 , y que toma los valores yi = y1i −
y2i ). El análisis se realiza mediante el siguiente intervalo:
n
n
yi
y1i − y2i
= i=1
y(n) = i=1
n
n
y(n) ± tn−1,1−α/2 S 2 (n)
Para más información acerca de este intervalo se recomienda ver el capı́tulo
6 de este texto. Por tanto, para mejorar la precisión del análisis es necesario
reducir la varianza de y(n), que se puede expresar mediante la expresión (ver
el apartado 3.2.4):
V ar [y(n)] =
V ar (y1i ) + V ar (y2i ) − 2Cov(y1i , y2i )
V ar (yi )
=
n
n
(9.2)
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
Por tanto, si se consigue que los valores de cada par (y1i , y2i ) se correlacionen
positavemente, V ar [y(n)] se reduce, y el intervalo de confianza se estrecha.
Se puede conseguir esta correlación si en cada replicación i se usan los mismos
números aleatorios para generar1 las variables de entrada de ambas alternativas. De este modo se simulan situaciones similares en ambos modelos por
lo que es de esperar que las salidas también estén relacionadas. Cada número aleatorio ri (0, 1) se utiliza para generar variables equivalentes en las dos
alternativas.
Ejemplo 5.2.1 Una empresa decide instalar un sistema telefónico de atención al
cliente (a partir de ahora SAT). Para ello cuenta con dos propuestas y realiza un
estudio de simulación para elegir aquella que ofrezca un tiempo total medio de
llamada menor. En ambos modelos existen dos variables de entrada: tiempo entre llamadas (T ) y duración de cada llamada (D). Si cada replicación se finaliza
tras 100 llamadas, serán necesarios 100 valores tj y otros 100 dj (donde j toma
valores entre 1 y 100) que se generan a partir de 200 números aleatorios. Para
aplicar CRN se utilizan los mismos 200 números aleatorios en ambas alternativas
de manera que cada pareja (y1i , y2i ) comparte los 100 valores (tj , dj ). Si en una
replicación el conjunto d1 , · · · , d100 , por ejemplo, toma valores altos tanto y1i
como y2i tenderán a ser mayores y de este modo se introduce una correlación
positiva en cada par.
9.2.2.
Sincronización
La mayor dificultad de aplicar esta técnica reside en conseguir utilizar los mismos números aleatorios con el mismo propósito en ambas configuraciones. Si
se utiliza el número aleatorio ri (0, 1) en la primera alternativa con un propósito determinado debe utilizarse con ese mismo propósito también en la segunda. A diferencia del ejemplo anterior, cada configuración puede necesitar un
número diferente de ri (0, 1), y si se quieren hacer n replicaciones se complica
localizar donde se ha empleado cada número aleatorio. Para solucionar este
problema la mayorı́a de los programas de simulación agrupan sus números
aleatorios en series numeradas a las que se puede acceder selectivamente. De
este modo se puede sincronizar el uso de los números aleatorios empleando
una serie concreta con un el mismo propósito en las dos configuraciones. Este
método de sincronización se conoce como series dedicadas.
1 ver
sección 3
193
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
Ejemplo 5.2.2 En el cuadro 9.2.2 se organiza el uso de los números aleatorios
para el caso del SAT del ejemplo anterior en el caso de hacer 10 replicaciones. Se
utilizan los primeros 100 números de cada serie para generar 100 valores de tj o
de dj .
Rep.
1
2
3
4
5
6
7
8
9
10
9.2.3.
Configuración 1
t
d
Serie 10 Serie 20
Serie 11 Serie 21
Serie 12 Serie 22
Serie 13 Serie 23
Serie 14 Serie 24
Serie 15 Serie 25
Serie 16 Serie 26
Serie 17 Serie 27
Serie 18 Serie 28
Serie 19 Serie 29
Configuración 2
t
d
Serie 10 Serie 20
Serie 11 Serie 21
Serie 12 Serie 22
Serie 13 Serie 23
Serie 14 Serie 24
Serie 15 Serie 25
Serie 16 Serie 26
Serie 17 Serie 27
Serie 18 Serie 28
Serie 19 Serie 29
Estudio preliminar
Como se ha dicho anteriormente, no se sabe de antemano si con la aplicación
de esta técnica se mejora la precisión del análisis o por el contrario empeora.
Además, en el caso de funcione, no se sabe que mejora se puede esperar. Por
tanto, si es posible, se recomienda hacer un pequeño estudio preliminar para
asegurar que su aplicación es útil. En el caso de dos configuraciones alternativas los pasos son:
1. Realizar n replicaciones de cada modelo aplicando CRN. Se obtienen y1i
e y2i .
2. Calcular para cada replicación yi = y1i − y2j y Sy2 (n).
3. Hacer n replicaciones de cada modelo sin aplicar CRN y calcular Sy2 1 (n)
y Sy2 2 (n).
4. Si Sy2 (n) < Sy2 1 (n) + Sy2 2 (n) se recomienda usar CRN.
9.3.
9.3.1.
Variables antitéticas
Fundamentos
La técnica de variables antitéticas (en inglés ((Antithetic Variables)) , AV ) es
aplicable al análisis de resultados de una única configuración. La idea básica
(1)
(2)
es estudiar el promedio de la salida de dos replicaciones (yi , yi ), agrupadas de tal modo que si la salida en una de ellas tiene un valor bajo, se
194
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
compense con un valor alto en la otra (es decir, que estén correlacionadas negativamente). El promedio de estas parejas tiene el mismo valor esperado que
la salida del modelo pero con una varianza menor. Esta idea se fundamenta
matemáticamente de la siguiente manera:
(1)
mi =
yi
(2)
+ yi
2
⇒ E(M) = E
(1)
V ar [m(n)] =
Y (1) + Y (2)
2
=
μY + μY
= μY
2
(2)
(1)
(2)
V ar (yi ) + V ar (yi ) + 2Covar (yi , yi )
V ar (mj )
=
n
n
(1)
(2)
y, por tanto, cuanto mayor sea la correlación negativa entre yi e yi menor
es la varianza de m(n). Como E(M) = E(Y ), M(n) es un estimador sin sesgo
de μ = E(Y ) y los resultados del análisis de M son aplicables a Y . Como ventaja, tiene una varianza menor por lo que se obtiene un intervalo de confianza
más estrecho.
9.3.2.
Aplicación
Para conseguir esta correlación se utilizan números aleatorios complementarios en las replicaciones que forman cada par. Ası́, si se emplea rk para generar
(1)
el valor de una variable de entrada en Yi , se utiliza 1 − rk para su equivalen(2)
te en Yi
. Suponiendo que las variables se generan mediante el método de la
(1)
transformada inversa, si rk genera un tiempo de servicio alto en Yi
(2)
, 1 − rk ge-
nera uno bajo en Yi . Haciendo lo mismo con todos los valores de entrada de
cada pareja se consigue la correlación negativa buscada. A las variables generadas a partir de los números aleatorios originales se les denomina regulares
mientras que a las generadas a partir de sus complementarios se les conocen
como antitéticas. La mayorı́a de programas de simulación permiten elegir con
qué tipo de variables alimentar al modelo. Para aplicar AV es necesario utilizar
series dedicadas para cada propósito, empleando las mismas series para obte(1)
(2)
ner yi e yi pero seleccionando el modo ((variables regulares)) y ((variables
antitéticas)) respectivamente.
195
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
Rep.
1
2
3
4
5
6
7
8
9
10
Y (1)
Variables: regulares
t
d
Serie 10
Serie 20
Serie 11
Serie 21
Serie 12
Serie 22
Serie 13
Serie 23
Serie 14
Serie 24
Serie 15
Serie 25
Serie 16
Serie 26
Serie 17
Serie 27
Serie 18
Serie 28
Serie 19
Serie 29
Y (2)
Variables: antitéticas
t
d
Serie 10
Serie 20
Serie 11
Serie 21
Serie 12
Serie 22
Serie 13
Serie 23
Serie 14
Serie 24
Serie 15
Serie 25
Serie 16
Serie 26
Serie 17
Serie 27
Serie 18
Serie 28
Serie 19
Serie 29
Cuadro 9.1: aplicación de AV para una de las configuraciones del ejemplo 5.2.1
9.4.
Ejemplos de aplicación
9.4.1.
Ejemplo 5.1: aplicación de CRN
La sucursal de un banco decide cambiar su cajero automático y debe elegir
entre dos alternativas: un cajero modelo Zippy o dos modelo Klunky. Aunque
el primer modelo Zippy permite realizar las operaciones más rápidamente
que el Klunky, su coste es aproximadamente el doble, por lo que no se
considera el coste como criterio de decisión. El director encarga un estudio
de simulación al departamento de asesorı́a y desarrollo de la sede central
para elegir la alternativa que reduzca el tiempo que los clientes esperan para
ser atendidos, ya que considera que este es el punto más molesto para ellos.
La llegada de clientes a la sucursal puede aproximarse a una distribución de Poisson con un ratio de un cliente por minuto. Según los datos
recogidos en otras sucursales del grupo, el tiempo de servicio por cliente
de un cajero Zippy se puede aproximar a una exponencial con media 0,9
minutos. El comportamiento de los cajeros Klunky es similar pero con media
1,8 minutos cada uno. Se considera que en las dos alternativas se forma una
única cola de tipo FIFO. Se elegirá la alternativa que tenga un tiempo medio
de espera en cola menor para los 100 primeros clientes. Si fuese el analista al
que se encarga dicho trabajo, ¿qué alternativa aconsejarı́a instalar?
Fuente: Law A, 2001
196
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
197
En primer lugar se resuelve el ejemplo anterior sin aplicar ninguna técnica de
reducción de la varianza y después se resuelve aplicando CRN. Como conclusión se comparan los resultados obtenidos por ambos métodos. Por tanto, el
objetivo de esta sección es doble: por un lado, exponer de manera práctica
como aplicar el método CRN y, por otro, demostrar el gran beneficio que en
algunos casos supone aplicar este tipo de técnicas.
Objetivos del
ejemplo
En la figura 9.1 se muestra un esquema del procedimiento para resolver el
problema. Se define la variable Y como la diferencia entre el tiempo medio
de espera de los 100 primeros clientes en la alternativa 1, Y1 , y en la 2, Y2 ,
es decir, Y = Y1 − Y2 . A partir de 100 replicaciones de cada alternativa se
calcula un intervalo de confianza al 90 % para E(Y ). Si E(Y ) > 0 en todo el
intervalo, se considera que el tiempo de espera de la primera alternativa es
significativamente mayor que el de la segunda, en cuyo caso se elige la segunda
alternativa. Si, por el contrario, E(Y ) < 0, es de esperar que los clientes pasen
menos tiempo en cola en la alternativa 1, por lo que esta será la elegida. Si el
intervalo de confianza contiene al cero, la diferencia entre ambas alternativas
se considera no significativa.
Planteamiento
Figura 9.1: esquema del procedimiento para obtener un intervalo de confianza
para E(Y ).
El problema del ejemplo puede resolverse analı́ticamente aplicando teorı́a de
colas (para más información acerca de esta disciplina se recomienda consultar
Saaty, 1983). De este modo se obtiene que los valores esperados del tiempo medio de espera de los 100 primeros clientes en las dos alternativas son:
E(Y1 ) = 4, 13 y E(Y2 ) = 3, 70. Por lo tanto, se debe elegir la alternativa 2 ya que
la espera de cada cliente se reduce en 0,43 minutos de media respecto a la alternativa 1. Mediante estos valores se pueden evaluar los resultados obtenidos
mediante simulación.
El resultado se
conoce de
antemano...
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
A continuación se presentan los archivos necesarios para seguir la resolución
de este ejemplo:
Ejemplo5-1a.mod : contiene el modelo la alternativa de 1 en Witness.
Ejemplo5-1b.mod : contiene el modelo la alternativa de 2 en Witness.
Ejemplo5-1 Experimento.txt : con este experimento se consiguen
100 replicaciones independientes.
Ejemplo5-1.xls : es la hoja de cálculo donde se debe resolver el ejemplo.
Ejemplo5-1 solucion.xls : muestra como debe quedar la hoja de
cálculo una vez resuelto el ejemplo.
(a) Vista del modelo en Witness de la alternativa 1
(b) Datos / Filtro / Autofiltro
Figura 9.2: vista del modelo en Witness de la alternativa 2
198
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
199
Primer experimento (sin aplicar CRN)
Si se desconocen las técnicas de reducción de la varianza, la simulación
se realiza sin controlar el uso de semillas, es decir, del mismo modo que
en los ejemplos de los capı́tulos anteriores. Los pasos para realizar las 100
replicaciones independientes de la primera alternativa son los siguientes:
1. Abrir el modelo Ejemplo5-1a.mod.
2. Cargar el experimento Ejemplo5-1 Experimento.txt (Model / Experiment / Open).
3. Ejecutar el experimento (Model / Experiment / Batch).
4. Importar los datos del archivo generado Ej5-1.csv en la hoja ((CSV
1)) del archivo Ejemplo5-1.xls .
5. Ordenar los datos importados según el número de replicación (columna
B).
6. En la columna M se almacenan los tiempos medios de espera en cola, y1i .
Copiarlos en la columna correspondiente de la hoja ((Análisis CRN)).
A continuación se describe el proceso para obtener los tiempos medios de
espera de la segunda alternativa, y2i :
1. Abrir el modelo Ejemplo5-1b.mod .
2. Cargar el experimento Ejemplo5-1 Experimento.txt (Model / Experiment / Open).
3. Seleccionar el modelo Ejemplo5-1b.mod en (Model / Experiment / Define).
4. Proceder como en el caso anterior para llevar los datos generados al lugar
correspondiente de la hoja ((Análisis CRN)).
Segundo experimento (aplicando CRN)
Las semillas de Witness se organizan en series y subseries tal y como muestra
la figura 9.3. Hay un total de 400.000 series, divididas a su vez en 10.000 subseries. Cada subserie contiene 7, 5x1047 números aleatorios. Estos números aleatorios se usan como semillas para generar valores de las variables aleatorias
del modelo (ver sección 3.5). Se puede controlar el uso de semillas asignando
series concretas las funciones. La sintaxis para hacerlo es la siguiente:
FUNCIÓN(parámetros, serie)
FUNCIÓN(parámetros, serie,subseries)
Los argumentos serie y subserie son opcionales, es posible asignar la serie y la
subserie, solamente la serie o ninguna de las dos. Si no se especifica ninguna
Semillas en
Witness
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
200
de las dos, Witness asigna automáticamente una serie que no se emplea en
ninguna otra función (para obtener más información acerca del uso de semillas
se recomienda consultar la ayuda de Witness)
Como se explica en la sección 9.2, la base de la técnica CRN es la sincronización. En los dos modelos se utilizan números aleatorios con los mismos
propósitos: generar tiempos entre llegadas de nuevos clientes y generar duraciones de servicio. La sincronización se consigue asignando la misma serie en
las dos alternativas, para cada uno de estos propósitos.
Figura 9.3: estructura de las series de semillas en Witness.
Los pasos para resolver el ejemplo aplicando CRN son los siguientes:
Primera alternativa:
1. Abrir el modelo Ejemplo5-1a.mod .
2. Asignar una serie a la función mediante la que se generan los tiempos
entre llegadas de clientes. Para ello, sustituir, por ejemplo, POISSON(1)
por POISSON(1,100) en Cliente / Inter arrival time.
3. Asignar una serie a la función mediante la que se generan las duraciones de los servicios. Para evitar qué se solapen2 las series utilizadas en
esta función y la anterior hay que dejar como mı́nimo 100 series entre
ambas (tantas como replicaciones). Por tanto, sustituir, por ejemplo, NEGEXP(0.9,200) por NEGEXP(0.9,200)) en Zippy / Cycle Time.
4. Guardar los cambios
Experimento.txt .
y
cargar
el
experimento
Ejemplo5-1
5. Seleccionar el modelo Ejemplo5-1a.mod en (Model / Experiment / Define).
6. Ejecutar el experimento (Model / Experiment / Batch).
7. Importar los datos del archivo Ej5-1.csv generado en la hoja ((CSV CRN
1)) del archivo Ejemplo5-1.xls .
8. Ordenar los datos importados según el número de replicación (columna
B).
2 Debido a la estructura del archivo Ejemplo5-1 Experimento.txt , al cambiar de replicación también se cambia de serie. Por ejemplo, si en una función se emplea la serie 50 en la
replicación 1, al pasar a la replicación 2 se emplea la serie 51
Como asignar
las series para
aplicar CRN en
el ejemplo
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
201
9. Como en el experimento anterior, los tiempos medios de espera en cola
se almacenan en la columna M. Copiarlos en el lugar correspondiente de
la hoja ((Análisis CRN)).
Segunda alternativa:
1. Abrir el modelo Ejemplo5-1b.mod .
2. Asignar las mismas series que en la alternativa anterior (cambiar POISSON(1) por POISSON(1,100) en ((Cliente)) y NEGEXP(1.8,200) por NEGEXP(1.8,200) en los elementos ((Klunky1)) y ((Klunky2))).
3. Guardar los cambios
Experimento.txt .
y
cargar
el
experimento
Ejemplo5-1
4. Seleccionar el modelo Ejemplo5-1b.mod en (Model / Experiment / Define).
5. Ejecutar el experimento (Model / Experiment / Batch).
6. Proceder como en el caso anterior para copiar los datos generados al
lugar correspondiente de la hoja ((Análisis CRN)).
El análisis de los datos
Una vez que se tienen los datos y1,1 , · · · , y1,100 e y2,1 , · · · , y2,100 , se
calculan los 100 valores de Y . Se obtienen dos conjuntos de 100 de yi , que
representan la diferencia del tiempo medio de espera de los 100 primeros
clientes en la replicación i aplicando CRN y sin aplicarlo. A partir de estos
valores se obtiene un cuadro como 9.2 donde se presentan los resultados del
análisis.
NOTA: Existe una fuerte correlación entre y1i e y2i (0,72) a pesar de no
haberla inducido intencionadamente. Se debe a que con la asignación automática de Witness se consigue una sincronización parcial debido a la
sencillez del modelo. Para apreciar este concepto se presentan los resultados
para un experimento donde las series se han escogido intencionadamente
para que y1i e y2i sean completamente independientes.
Como se menciona en el planteamiento del ejemplo, si se resuelve el mismo
problema analı́ticamente se obtiene que E(Y1 ) = 4, 13 y E(Y2 ) = 3, 70, por lo
que E(Y ) = 0, 43. De este modo se pueden evaluar los resultados obtenidos
mediante los dos métodos:
Si no se aplica CRN el valor estimado de la diferencia en ambas alternativas es 0,16 , mientras que si se aplica CRN este valor coincide con el
valor esperado, 0,43.
Conclusiones
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
Función Excel
Independ.
Sin CRN
Con CRN
0,72
0,16
0,43
4,88
0,08
y(n)
PROMEDIO(F14:F113)
S 2 (n)
VAR(F14:F113)
19,94
t99,0,95
DISTR.T.INV(0,1;99)
2,26
Semi-amplitud
al 90 %
F7*RAIZ(F6/60)
0,74
0,37
0,05
Lim. inferior
F5-F8
0,02
-0,32
0,37
Lim. superior
F5+F8
1,47
0,63
0,49
Covar(y1i , y2i )
COVAR
(D16:D115;E16:E115)
1,43
6,05
11,16
ρ(y1i , y2i )
COEF.DE.CORREL
(D16:D115;E16:E115)
0,13
0,72
1,00
Proporción de
aciertos
CONTAR.SI
(F16:F115; > 0 )/100
56 %
55 %
96 %
NO
NO
SI
Resultado
significativo
Cuadro 9.2: resultados estadı́sticos de la aplicación de CRN
Al aplicar CRN la varianza de yi se reduce de 4,88 a 0,08, es decir un
98,41 %. Esta reducción repercute en la semi-longitud del intervalo de
confianza, que pasa de 0,37 a 0,05, una reducción del 87 %.
Si no se aplica CRN solo el 55 % de los valores yi son positivos, mientras
que aplicando CRN esta cifra se eleva hasta el 95 %. De esta cifra se deduce que, en el caso de realizar menos replicaciones, si no se aplica CRN
la probabilidad de cometer una elección equivocada es mayor.
Esta reducción de la varianza es consecuencia del aumento de la covarianza que pasa de 6,05 a 11,16. Analizando este aspecto adimensionalmente, el coeficiente de correlación pasa de 0,72 a 1,00. Los gráficos 9.4
y 9.5 ayudan a comprender la mejora experimentada.
Además, como conclusión final, si no se aplica CRN los resultados obtenidos
son no significativos por lo que no se podrı́a elegir una de las alternativas. Es
un ejemplo de como, a partir de CRN, se pueden extraer resultados relevantes
de un proyecto que, de otra manera, no se podrı́a.
202
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
Figura 9.4: gráfico de correlación entre Y2i (eje vertical) e Y1i (eje horizontal)
Figura 9.5: comparación del valor de los pares (Y1i , Y2i ) ordenados por replicación
9.4.2.
Ejercicio 5.2: Aplicación de AV
Después de ver los resultados del estudio de comparación de ambas alternativas, el director del banco del ejercicio 11.1 decide optar por la segunda
alternativa, instalar dos cajeros Klunky. Debido a los buenos resultados
obtenidos en el primer estudio decide encargar otro estudio para asegurarse
de que el servicio prestado será correcto en términos del tiempo de espera.
¿Cuál serı́a su estimación del tiempo medio que pasarán los clientes en
la cola antes de poder utilizar uno de los cajeros? El resultado debe
expresarse en forma de un intervalo de confianza al 90 %.
203
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
204
Al igual que en el ejemplo anterior, en primer lugar se resuelve el problema como si
no se conociese ninguna técnica de reducción de la varianza y después se resuelva
aplicando una técnica de reducción de la varianza, en este caso AV. Para finalizar, se
comparan los resultados obtenidos por los dos caminos anteriores.
En este caso solo se considera una única alternativa, por lo que el problema consiste en
estimar el tiempo medio de espera del servicio (como en el caso anterior se consideran
solo los 100 primeros clientes). Para observar la reducción de la varianza resultante de
aplicar AV , se lleva a cabo el estudio de simulación mediante dos experimentos con
la misma duración:
Planteamiento
El primero de ellos consta de 200 replicaciones sin controlar la asignación de
números aleatorios. Los valores obtenidos se analizan como 200 observaciones
del tiempo medio de espera. El resultado se da en forma de un intervalo de
confianza al 90 % para la media de esta variable.
En el segundo, se realizan 100 pares de replicaciones aplicando AV. Promediando los dos resultados de cada par, se obtienen 100 observaciones de una variable
que tiene la misma media que la del experimento anterior, pero menor varianza.
Si se construye un intervalo a partir de estos datos también res válido para el
valor esperado del tiempo medio de espera.
Como se comentó en el ejemplo anterior, este problema se puede resolver analı́ticamente y el valor esperado de la variable de salida es E(Y ) = 3, 70. La comparación de
los dos métodos se hace en función del valor puntual obtenido y de la amplitud del
intervalo de confianza al 90 % que lo acompaña.
Los archivos necesarios para seguir la resolución de este ejemplo son los siguientes:
Ejemplo5-2.mod : coincide con el modelo Ejemplo5-2.mod .
Ejemplo5-2 Experimento1.txt : es el experimento para conseguir 200 replicaciones sin aplicar CRN.
Ejemplo5-2 Experimento2.txt : es el experimento para conseguir 200 replicaciones aplicando CRN. En las 100 primeras replicaciones se emplean valores
regulares de las semillas y de la 101 a la 200 se emplean los valores antitéticos.
Ejemplo5-2.xls : es la hoja de cálculo donde se debe resolver el ejemplo.
Ejemplo5-2 solucion.xls : muestra como debe quedar la hoja de cálculo una
vez resuelto el ejemplo.
Experimento 1 (sin aplicar AV)
Si no se aplica ninguna técnica de reducción de la varianza, la manera habitual
de llevar a cabo el estudio de simulación es hacer un número n de replicaciones
independientes y tratar cada observación como un valor de la variable de salida. Para
hacer un experimento con 200 replicaciones independientes de la alternativa elegida
hay que seguir los siguientes pasos:
1. Abrir el modelo Ejemplo5-2.mod .
2. Cargar el experimento Ejemplo5-2 Experimento1.txt (Model / Experiment /
Open).y ejecutarlo (Model / Experiment / Batch).
Ya se sabe el
resultado...
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
3. Importar los datos del archivo generado Ej5-2.csv en la hoja ((CSV)) del
archivo Ejemplo5-2.xls .
4. Ordenar los datos importados según el número de replicación (columna B).
5. Copiar los tiempos medios de espera (columna M) en la columna correspondiente de la hoja ((Análisis de los datos)).
Experimento 2 (aplicando AV)
Para aplicar la técnica AV se realizan 100 pares de replicaciones (200 en total)
(1)
(2)
de las que se obtienen 100 parejas (yi , yi ). Para obtener cada pareja se utilizan
las mismas series de números aleatorios, pero en el primer caso con valores regulares
y en el segundo con antitéticos. Esta diferencia se indica en la definición de los experimentos, dentro de los archivos Ejemplo5-2 Experimento1.txt y Ejemplo5-2
Experimento2.txt (figura 9.6).
Figura 9.6: ejemplo de definición en Witness de un par de replicaciones:
(1)
(2)
(Y8 , Y8 )
A continuación se enumeran los pasos para ejecutar correctamente el experimento:
1. Abrir el modelo Ejemplo5-2.mod .
2. Asignar una serie a la función mediante la que se generan los tiempos entre
llegadas de clientes, tal y como se hizo en el ejemplo anterior (por ejemplo,
POISSON(1) por POISSON(1,100)).
3. Del mismo modo, asignar una serie a la función mediante la que se generan las
duraciones de los servicios. Para evitar qué se solapen sustituir, por ejemplo,
NEGEXP(0.9,200) por NEGEXP(0.9,200).
4. Cargar el experimento Ejemplo5-2 Experimento2.txt (Model / Experiment /
Open).y ejecutarlo (Model / Experiment / Batch).
5. Importar los datos del archivo generado Ej5-2.csv en la hoja ((CSV AV))
del archivo Ejemplo5-2.xls .
205
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
206
6. Ordenar los datos importados según el número de replicación (columna B).
7. Copiar los tiempos medios de espera (columna M) en la columna correspondiente de la hoja ((Análisis de los datos)), teniendo en cuenta que las 100 primeras
(1)
replicaciones son los valores obtenidos mediante semillas regulares, yi y de la
(2)
101 a la 200 los obtenidos mediante semillas antitéticas, yi .
El análisis de los datos
Para analizar los datos del primer experimento se calcula directamente un intervalo de confianza de su media al 90 %. En el segundo experimento. Por otro lado,
en el segundo experimento el intervalo ed confianza se calcula para el conjunto de
(1)
(2)
valores obtenidos promediando cada par (yi , yi ). En el cuadro 9.3 se presentan
los intervalos obtenidos mediante los dos métodos.
Sin AV
Con AV
y(n)
PROMEDIO(D14:D213)
4,11
PROMEDIO(H14:H113)
4,04
S 2 (n)
VAR(D14:D213)
9,08
VAR(H14:H113)
3,79
t99,0,95
DISTR.T.INV(0,1;199)
1,65
DISTR.T.INV(0,1;99)
1,66
Semi-amplitud
al 90 %
D7*RAIZ(D6/100)
0,64
H7*RAIZ(H6/100)
0,42
Lim. inferior
F5-F8
3,47
H5-H8
3,62
Lim. superior
F5+F8
4,75
H5+H8
4,46
Covar(y1i , y2i )
COVAR
(F15:F114;G15:G114)
-4,53
ρ(y ( 1)i , y ( 2)i )
COEF.DE.CORREL
(F15:F114;G15:G114)
-0,38
Pronóstico
acertado
SI
SI
Cuadro 9.3: resultados estadı́sticos de la aplicación de AV
Además, se observa que aunque en ambos casos el valor real esperado (Y = 3, 70)
está contenido en el intervalo de confianza, el valor puntual se acerca más en el caso
de aplicar AV.
Capı́tulo 9. REDUCCIÓN DE LA VARIANZA
5
207
Capı́tulo 10
OPTIMIZACIÓN Y SIMULACIÓN
10.1.
La simulación: una técnica descriptiva
10.2.
Simulación y optimización
10.3.
Ejemplo
Descargar