You are on page 1of 15

Simulación

1 Introducción
La Simulación está dirigida muchos tipos de problemas, aunque los más habituales son los llamados
problemas de colas o fenómenos de espera que en general tratan sobre el tiempo de espera de ciertos
objetos, mientras que esperan a ser procesados dentro del sistema.

La simulación está basada en la aleatoriedad de procesos reales. Estudiaremos por tanto la forma de
generar algunas de las distribuciones más usuales. Aunque también la técnica Monte-Carlo puede servir
para abordar problemas tradicionalmente deterministas, reduciendo en ocasiones el costo computacional.

En los últimos temas introduciremos a grandes rasgos los modelos de eventos discretos más comunes y
profundizaremos en los aspectos prácticos de la simulación como son la verificación y validación de los
modelos.

2 Generación de Números Aleatorios


La simulación de cualquier sistema en el que se tengan en cuenta efectos no determinísticos necesita
disponer de una gran cantidad de números aleatorios, y en general, de sucesiones de realizaciones de
variables aleatorias.
Existen muchos métodos para generar una variable aleatoria con una determinada función de distribución a
partir de una sucesión de números aleatorios. Es conveniente, por tanto, encontrar métodos eficientes para
generarlos. En primer lugar tenemos que tener en cuenta que se entiende por sucesión de números
aleatorios. En teoría, es una sucesión de variables aleatorias independientes distribuidas uniformemente
dentro del intervalo [0, 1).
Para que una sucesión se considere aleatoria tienen que cumplirse una serie de requisitos como que una
persona que no conozca el método de generación no pueda determinar el siguiente término, o que la
sucesión supere una serie de contrastes estadísticos adecuados al uso que se va a hacer de ella.

2.1 Métodos mecánicos


La generación de números aleatorios de forma totalmente aleatoria, es muy sencilla con alguno de los
siguientes métodos:
1. Mediante una ruleta. Si estamos interesados en obtener números aleatorios discretos de una
cifra (0,1,2,. . .,9), se hace girar una ruleta numerando los sectores del 0 al 9 y posteriormente se
de1tiene anotándose el número de sector. La probabilidad de obtener cualquier número de la
secuencia anterior es 1/10.
Si en lugar de generar números aleatorios de una cifra, necesitamos generar números aleatorios
uniformes de k cifras, con valores de la variable aleatoria en el conjunto , con
probabilidad 1/10 , no tenemos nada más que partir de una tabla de números aleatorios de una
cifra, y agruparlos de en ; los números resultantes son aleatorios de cifras.
La generación de números aleatorios de una variable aleatoria uniforme (0, 1) constituye el paso
siguiente, ya que esa distribución juega un papel fundamental en la generación de variables
aleatorias con otras distribuciones. Supongamos que estamos interesados en la generación de
números aleatorios con cifras decimales y uniformes en el intervalo (0, 1). El primer paso será
generar números ( ), uniformes de cifras para posteriormente, a través de una transformación =
/10 , pasarlos al dominio (0, 1)
2. Mediante una moneda o un dado: Se lanza una moneda o un dado y se anota el resultado.
3. Uso de guías telefónicas: Coger la guía telefónica de una provincia, abrir una página al azar y
anotar de cada número de teléfono las cuatro últimas cifras.
4. Recurrir a tablas de números aleatorios. La utilización de tablas de números aleatorios tiene
lugar cuando se resuelven problemas de forma manual.
Obviamente, después de obtener una sucesión de números aleatorios resulta conveniente ver si se
comportan como tales, para ello se recurre a pruebas estadísticas.
2.2 Métodos de generación aritméticos
Los procedimientos de generación de números aleatorios más utilizados son de tipo aritmético y suelen ser
de tipo recursivo. Cada número aleatorio se obtiene en función del último número obtenido, o de un número
relativamente pequeño de los números obtenidos previamente. Si se considera el caso en el que cada
número depende exclusivamente del anterior, la fórmula de generación será

donde incialmente se ha indicado el valor de , que se denomina semilla.


Pero la generación de números aleatorios mediante la ecuación (1) no son aleatorios, ya que estamos
generando dichos números de forma determinista, mediante una regla aritmética. Este tipo de sucesiones
se denomina pseudoaleatoria. Se puede demostrar que la sucesión de números generados mediante la
fórmula (1) es necesariamente cíclica.

Método de los cuadrados medios


El primer método aritmético para generar números aleatorios fue propuesto por Von Neumann en 1946 y se
conoce como método de los cuadrados medios. Consiste en tomar un número de 2n dígitos y elevarlo al
cuadrado. El resultado tendrá 4n dígitos (si no es así se completa con ceros a la izquierda). Los 2n dígitos
centrales de este producto se toman como el número aleatorio siguiente. Esto es, se eliminan los n dígitos
menos significativos y los n mas significativos (incluyendo ceros). El procedimiento se vuelve a repetir para
este nuevo número, y así sucesivamente.

Ejemplo Si tomamos = 4879, el procedimiento sería el siguiente

Método congruencia lineal


Para un número natural positivo m, al que llamaremos módulo, se generan sucesiones de números
utilizando la fórmula de recurrencia:
≡ ≥

donde (multiplicador), (incremento) (valor inicial o semilla) son números naturales menores que m, se
dice en este caso que es congruente con . La fórmula indica que y dan el
mismo resto al dividir por el número natural m; i.e., que es un múltiplo de m. La sucesión
≥ proporciona, en consecuencia, números naturales entre 0 y m 1. Para la elección de los parámetros
hay que tener en cuenta que en primer lugar que m tiene que ser tan grande como sea posible para evitar
la aparición de ciclos tempranos, ya que el periodo es siempre menor o igual que m. Una opción razonable
es tomar m tan grande como permita el ordenador en el que se va a trabajar, de manera que si el
ordenador es binario con una palabra de 32 bits, este número será m = 232 = 42949 67296, o un valor
próximo a este.
Se demuestra que los métodos congruenciales son los que producen sucesiones de números aleatorios
que parecen estadísticamente aleatorios, siempre que y se elijan apropiadamente. No hay una regla
general para la elección de , m y . El método depende de varios factores incluido el hardware y el
software disponible. La mayoría de los lenguajes de programación y simulación proporcionan un generador
de números aletorios.

3 Generación de Variables Aleatorias


Los modelos que se construyen para poder simular situaciones reales de naturaleza aleatoria utilizan para
la modelización de fenómenos aleatorios una gran variedad de variables aleatorias, no sólo variables
aleatorias uniformes.
A partir de un generador de números aleatorios, y por tanto de un simulador de variables aleatorias
uniformes en [0, 1), podemos centrarnos en el problema de generar una muestra con una distribución de
probabilidad específica para nuestra simulación.

3.1 Simulación de variables aleatorias discretas


Aunque existen métodos particulares para ciertas variables aleatorias discretas, el siguiente problema nos
proporciona un método directo para simular cualquiera de ellas.

Método de la transformación inversa (v.a. Discreta) Sea U una variable aleatoria uniformemente distribuida
sobre el intervalo unidad, U (0, 1), y sea una variable aleatoria con función puntual de probabilidad
, = 1, 2, . . . ,. La variable aleatoria definida a partir de U, como
= si U ≤
= si + + <U≤ + +

tiene la misma distribución de probabilidad que .


Este método proporciona un método utilizable para simular cualquier variable aleatoria discreta.

Ejemplo Supongamos por ejemplo una variable aleatoria discreta , que toma los valores y probabilidades
asignados en la siguiente tabla

Intervalo
0 0.10 0.10 [0.00,0.10)
1 0.20 0.30 [0.10,0.30)
2 0.25 0.55 [0.30,0.55)
3 0.20 0.75 [0.55,0.75)
4 0.25 1.00 [0.75,1.00)

Ahora, considerando una secuencia de números aleatorios generada mediante la fórmula de congruencia
lineal ( ),

0 4 27 3 0.375
1 3 22 6 0.750
2 6 37 5 0.625
3 5 32 0 0.000
4 0 7 7 0.875
5 7 42 2 0.250
Los valores de la variables que se obtienen serían

0 0.375 ∈ [0.30, 0.55) 2


1 0.750 ∈ [0.75, 1.00) 4
2 0.625 ∈ [0.55, 0.75) 3
3 0.000 ∈ [0.00, 0.10) 0
4 0.875 ∈ [0.75, 1.00) 4
5 0.250 ∈ [0.10, 0.30) 1

y en la última columna tendríamos la simulación de una variable aleatoria con la misma distribución que .

Algunas variables aleatorias discretas:


• Variable aleatoria de Bernouilli
• Variable aleatoria de Poisson
• Variable aleatoria Geométrica
3.3 Simulación de variables aleatorias continuas
En este apartado seguimos un método análogo al del apartado anterior para el caso discreto, en concreto
se presenta el método de la transformación inversa.

Método de transformación Inversa (v.a. Continua) Sea U una variable aleatoria U (0, 1)
y una variable aleatoria absolutamente continua con función de densidad ( ) y función de distribución
( ), ∈ ⊆ . Supongamos que existe la función inversa (u) para 0 ≤u ≤1. Entonces la variable
aleatoria definida a partir de U como tiene la misma distribución de probabilidad que .

A diferencia del caso discreto, aquí este método no siempre puede utilizarse para generar una variable
aleatoria continua puesto que puede que no exista la función . Podemos sin embargo utilizar el siguiente
método alternativo:

Método de rechazo con entorno finito (a, b) Sean U1 y U2 variables aleatorias U (0, 1) independientes y
una variable aleatoria absolutamente continua con función de densidad ( ), ∈(a, b), -∞ < a < b < ∞. La
variable aleatoria definida a partir de U1 y U2, para cualquier constante c, con 0 < c ≤1/ ( ) como
+ − ≤ + −
=
> + −
tiene la misma distribución de probabilidad que

Algunas variables aleatorias continuas:


• Variable aleatoria uniforme
• Variable aleatoria exponencial
• Variable aleatoria normal

4 El método de simulación Monte-Carlo


Una de las aplicaciones más habituales del método Monte-Carlo es el cálculo de series o integrales. En
esencia el método consiste en la estimación de una media muestral. Debemos fijarnos en que cualquier
serie o integral se puede representar como la esperanza matemática de una función de una variable
aleatoria (discreta para series y absolutamente continua para integrales).

Por ejemplo la serie Σ g (x), se puede considerar una variable aleatoria discreta que tome valores en C,
con distribución de probabilidad ( ), ∈C y se transforma la serie en

= =

Y de forma similar podríamos considerar para una integral:

! = ! =

En ambos casos, el cálculo de la integral o la serie se reduce al cálculo de una esperanza matemática. La
fundamentación teórica para esta aproximación la proporciona el Teorema de Khintchine, consecuencia de
la ley débil de los grandes números:

Teorema de Khintchine: Si { }∞= es una sucesión de variables aleatorias independientes e


idénticamente distribuidas, con media µ < ∞, entonces se tiene la convergencia en probabilidad siguiente:

" → µ
"= →∞

La convergencia en probabilidad significa lo siguiente:


∀ε > # " −µ >ε =
→∞ "=

Mientras que para determinar el tamaño que debe tener la muestra de la variable aleatoria , para acotar el
error cometido en la estimación, se puede utilizar el resultado que proporciona la desigualdad de
Tchebychev:

Desigualdad de Tchebychev Cualquier variable aleatoria con media µ y desviación típica σ < ∞, satisface
la siguiente desigualdad,
σ
( − µ > ε )≤
ε
para ε>0.

Ejemplo Sea el cálculo de la integral:

= − !
con una probabilidad de al menos 0.9 de tener una cifra decimal exacta. Para la resolución consideraremos
el estimador $ La cota del error escogida es ε<0.1 Como Var($)=σ / entonces:

( )
− <ε =δ ≥
σ
ε
por otro lado σ = ! < ! − ! = , así el tamaño muestral que se ha de utilizar ha de

ser:
σ
≥ = ≥
⋅ δε
por lo que =667 satisface esa condición.

5. Simulación de eventos discretos


Los objetos o componentes de un modelo de simulación de eventos discretos se conocen como entidades
(entities). Estas entidades son objetos discretos, cada uno separado del otro, y que poseen unos atributos,
que pueden ser cualidades, características o propiedades que afectan a la conducta de las entidades
dentro del modelo. Las entidades pueden tener dos tipos de estado: unas están ocupadas (busy) en alguna
actividad, o están desocupadas (idle), sin hacer nada pero esperando en la cola. Una cola indica un estado
consistente en el número de entidades que se encuentra después de acabar una actividad y antes de
realizar la siguiente. Cuando una entidad se mueve desde una actividad hacia la cola, o viceversa, el
estado del sistema cambia. Este instante de cambio se denomina evento.

El movimiento de entidades a través de los diferentes puntos de un modelo constituye la conducta dinámica
del modelo. La conducta dinámica dentro del modelo depende del movimiento de las entidades de diferente
tipo. Estas entidades entran en el entorno del sistema, posiblemente en puntos diferentes, y salen del
sistema, de nuevo en puntos diferentes. Esas llegadas al modelo son las que permiten al modelo funcionar.

Los sucesos son instantes en los que el estado del modelo cambia a través de los desplazamientos de las
entidades entre puntos a través del entorno del modelo. El estado del sistema permanece constante en
cualquier otro instante de tiempo. La dinámica del modelo, pues, estará determinada por la forma de
incorporarse las identidades. Normalmente esta llegada es una variable aleatoria con una determinada
distribución.
Los tipos de modelos más importantes de simulación de eventos discretos se pueden clasificar en:
• Manufactura
• Servicios
• Manipulación de materiales
• Redes
• Negocios

5.1. Sistemas de manufactura.


Engloban procesos de producción en los que a partir de materias primas se obtienen productos
comerciales tras su procesamiento. Aspectos de interés para estos modelos suele ser el nivel de inventario,
programación de cuotas de producción o la satisfacción de los encargos de clientes.

Los sistemas de manufactura se pueden clasificar en:


• Modelos de flujo: típico de sistemas en serie.
• Modelos de taller: típico de sistemas con procesos alternativos según la disponibilidad de recursos.
• Modelos flexibles: típico de sistemas con procesos en paralelo.

Algunos criterios de evaluación de este tipo de sistemas pueden ser:


• Tiempo de elaboración. El tiempo invertido en la fabricación de un producto desde que es
encargado hasta que es servido.
• Tiempo de fabricación. Es la parte del tiempo de elaboración que involucra únicamente la
transformación de las materias primas en el producto.
• Numero de encargos pendientes de ser procesados a partir de las longitudes de buffers.
• Tiempo de proceso. El tiempo concreto de una actividad.
• Tasa de utilización. Relación entre el tiempo de proceso y el tiempo total disponible.
• Tasa de producción. Número de unidades producidas por unidad de tiempo.
• Tasa de defectuosos. Número de unidades defectuosas sobre la producción total.
• Cuello de botella. Actividad crítica que tiene la mayor tasa de utilización.
• Trabajo en progreso. Capacidad de producción en un instante dado.
• Entrega dentro de plazo. Porcentaje de producto entregado dentro del plazo solicitado.

5.2. Modelos de servicios.


El objetivo de los modelos que representan la prestación de servicios suele ser satisfacer la demanda de un
conjunto de clientes cuando esta se produce. Algunos ejemplos de este tipo de modelos son:
• Servicios financieros: en bancos, entidades de crédito.
• Servicios sanitarios: en hospitales, mutuas, clínicas dentistas.
• Tiendas y comercios: almacenes, talleres de reparación, supermercados.
• Servicios varios de gas, teléfono, televisión, proveedor Internet.
• Servicios profesionales: contables, asesores fiscales, gestarías, abogados.
• Transporte y reparto: sistemas de correos, líneas aéreas, ferrocarril.

En este tipo de modelos el personal disponible juega un papel importante y se suelen planteas modelos
para ajustar plantillas o mejorar los procesos con vistas a reducir costes y satisfacer a los clientes. En este
sentido, algunos de los criterios que se suelen estudiar ene ste tipo de modelos son:
• Tiempo de atención: tiempo transcurrido entre la llegada de un cliente y su salida.
• Tiempo de espera: parte del tiempo de atención en que el cliente está esperando ser atendido por
el personal.
• Longitud de cola: longitud de la cola de espera.
• Tiempo de servicio: tiempo efectivo en que el cliente es servido.
• Tasa de utilización: tiempo en que el suministrador del servicio está ocupado frente al tiempo que
está disponible.
• Tasa de servicio: numero de clientes que son atendidos por unidad de tiempo.
• Porcentaje de clientes que se pierden por efecto de presentar colas largas.
• Porcentaje de clientes que desisten por exceso de tiempo de espera.
• Costo de los recursos empleados en el proceso.

5.3. Modelos de manipulación de materiales.


Los modelos de manipulación de materiales básicamente representan el traslado de unos recursos de una
localización a otra para su procesamiento. Suelen constituir submodelos dentro de modelos de
manufactura.
Aspectos interesantes de estos modelos es la velocidad en los transportes, la longitud del traslado, la
capacidad del medio de transporte, los buffers necesarios antes y después del transporte, la posibilidad de
transporte en el retorno de los viajes. Así los criterios que se pueden utilizar para evaluar estos sistemas
son:
• Tiempo invertido en el transporte
• Tiempo de respuesta, tiempo en que el elemento transportador está disponible a partir de que se le
solicita.
• Tiempo efectivo de transporte del material.
• Capacidad de carga.
• Tasa de utilización. Porcentaje de tiempo que un elemento transportador está en uso.
• Tasa de producción. Número de elementos que pueden ser desplazados por unidad de tiempo.
• Porcentaje de saturación o bloqueo. Porcentaje de tiempo en que el material no puede ser
transportado por falta de capacidad de procesamiento en el centro receptor.
• Cuello de botella. Movimiento con una tasa de utilización elevada.

5.4. Modelos de redes.


Los modelos más representativos de este tipo son los sistemas de comunicación en donde se incluye por
ejemplo el teléfono o los ordenadores. Algunos de los criterios que pueden resultar útiles en el estudio de
estos modelos son:
• Duración del envío de un mensaje. Tiempo que tarda un mensaje en ser transmitido.
• Establecimiento de conexión. Tiempo que se tarda ene establecer una conexión.
• Longitud de buffer: capacidad de almacenamiento de mensajes en origen, destino o en partes
intermedias.
• Tasa de utilización de la red: porcentaje de tiempo en que la red está en uso.

5.5. Negocios.
Este tipo de modelos se concentra básicamente en el análisis de sistemas en base a la ingeniería de
procesos en base a la que se articula una actividad económica. Algunos de estos procesos pueden
representar el desarrollo de un nuevo producto, el flujo de producción, la adquisición del producto, política
de personal.
Debido a la falta de información por parte de las empresas y al escaso control de los procesos principales
de una empresa resulta difícil establecer criterios universales para evaluar este tipo de procesos siendo uno
de los objetivos de estos modelos justamente el proponer medidas objetivas de control que mejoren la
organización del negocio.

6. Qué es la validación de la simulación y porqué es importante.


La utilización de un modelo o de la simulación, es una alternativa a la experimentación con un sistema real
(auténtico o proyectado) cuando la experimentación con dicho sistema puede resultar destructiva, costosa
o imposible. Si el modelo o la simulación no es capaz de proporcionar una representación válida del
sistema actual, cualquier conclusión que se derive probablemente será errónea y de poca ayuda para
tomar decisiones. La validación se puede plantear para todos los modelos, independientemente de si el
respectivo sistema real existe o ha de ser construido. La validación se debe centrar siempre en el uso que
se pretende dar al modelo.

Definición: la validación es el proceso que sirve para determinar el grado de semejanza entre el modelo de
simulación y la realidad que pretende representar considerando la finalidad para la que se implementa.

La validación se puede abordar desde varias perspectivas:


• Conceptualmente, si un modelo es válido, entonces debe permitir tomar decisiones sobre el
sistema real.
• La facilidad o dificultad de validar un modelo dependerá de su complejidad y de si existen versiones
anteriores del sistema representado.

Ejemplo: El modelo de una oficina bancaria puede ser fácilmente validado ya que se puede observar. Sin
embargo, un modelo sobre la efectividad de la fuerza naval en 2025 sería virtualmente imposible de validar
completamente ya que la localización de la batalla, caracterización del enemigo o determinación de las
armas disponibles sería desconocida. A pesar de ello a menudo es posible recoger datos sobre un sistema
existente que pueda ser usado para validar el modelo.

• La simulación de un sistema complejo no deja de ser una aproximación al sistema real. No se


puede pensar en una validez global del modelo, ni tampoco se pretende. Los modelos mejores no
tiene porque ser los más costosos o los más detallados. Por ejemplo puede haber un nivel de
detalle a partir del cual el costo de desarrollo se dispare sin ganar mucha más precisión en los
resultados.
• Un modelo de simulación se ha de desarrollar siempre para satisfacer un conjunto de objetivos.
Puede ocurrir que un modelo válido para unos objetivos concretos no lo sea para otro conjunto de
objetivos distintos a los que determinaron su desarrollo.
• La medida y acceptabilidad de un criterio (p.e., medidas de producción) para la validación de un
modelo debería incluir aquellos que el decisor utiliza realmente en el sistema real.
• La validación de un modelo autónomo debe llevarse a cabo de forma simultánea a su desarrollo, no
es un proceso que deba dejarse para cuando el modelo ya esté completamente desarrollado.
• Un modelo de simulación compuesto por varios modelos de simulación individuales también debe
ser validada en su conjunto, la validación no se debe restringir a cada una de las unidades
componentes del total.

Ejemplo: Un organismo militar encarga a una consultaría un estudio de simulación. Una vez acabado el
trabajo el representante del organismo pregunta a la consultoría “¿Me puede decir en cinco minutos
cómo validar el modelo?”

Un modelo de simulación, sus datos y sus resultados son creíbles cuando los usuarios del mismo lo
aceptan como correcto. La credibilidad no implica necesariamente validez y viceversa. La credibilidad se
puede establecer según los siguientes criterios:

• El decisor comprende y está de acuerdo con las hipótesis del modelo.


• Demostrando que el modelo ha sido validado y verificado.
• El decisor está directamente involucrado en el desarrollo del proyecto.
• El reconocimiento de los investigadores.

Un modelo de simulación que es a la vez válido y creíble es muy probable que sea usado en
condiciones prácticas.

6.1. Etapas de desarrollo de un modelo de simulación


Podemos dividir el desarrollo de un modelo de simulación en siete etapas tal y como se muestra en la
Figura. Estas etapas resultan importantes en el desarrollo correcto del modelo.

Etapa 1. Formular el problema

• El problema es definido por el decisor (el usuario del modelo).


• Convocar una reunión con el responsable del proyecto, el analista y expertos en la material para
tratar los siguientes temas:
− Los objetivos principales del estudio.
− Cuestiones específicas que deben ser respondidas
con el estudio (aspecto necesario para determinar el
nivel de detalle del modelo)
− La complejidad del sistema y su nivel de detalle.
− Medidas para la valorar la eficacia de la
configuración de diferentes sistemas.
− Configuraciones o escenarios admisibles para el
sistema
− Recursos y marco temporal para el modelo

Etapa 2. Construcción del modelo conceptual a


partir de datos e información disponible

• Recogida de información sobre la estructura y funcionamiento


del sistema representado.
• Recogida de datos para determinar los parámetros del modelo
y las distribuciones de probabilidades.
• Hipótesis de la simulación, algoritmos y datos deben ser
compendiados en un modelo conceptual.
• El nivel de detalle del modelo dependerá de:
− Los objetivos
− Las medidas utilizadas para evaluar el modelo
− La disponibilidad de datos
− El nivel de credibilidad requerido
− Limitaciones de hardware
− Las opiniones de expertos
− Limitaciones de tiempo y dinero
• Recogida de datos de campo para ser utilizados en la validación de los resultados

Etapa 3. Validación del modelo conceptual

• El modelo conceptual debe ser sometido a la revisión de algún analista o experto del tema.
• Los errors u omisiones encontrados en la revisión del modelo conceptual deben ser corregidos
antes de su programación informática.

Etapa 4. Programación del modelo

• Programar el modelo conceptual en una aplicación de simulación o por medio de un lenguaje de


programación de propósito general.
• Depurar el código.

Etapa 5. Validar el programa de simulación

• Si hay datos del sistema real, estos se pueden utilizar para compararlos con los resultados del
modelo. Es lo que se conoce como validación de resultados. Las características que interesan
representar de un sistema constituyen lo que se llama referente y es respecto al que interesa
validar el modelo, aún cuando el sistema representado no existe (pero sí el referente).
• Los resultados se deben revisar para verificar su coherencia y consistencia de acuerdo con el
funcionamiento esperado del sistema.
• El análisis de sensibilidad debe realizarse para detectar que factor tiene un efecto mayor sobre los
resultados del modelo para mejorar su representación si fuera necesario.

Etapa 6. Diseño, realización, y análisis de experimentos de simulación

• Para cada caso se ha de decidir el tiempo de simulación y el número de replicas.


• Los resultados deben verificarse por si fuera necesario realizar experimentos adicionales.

Etapa 7. Documentar y resumir los resultados de simulación

• La documentación ha de incluir el modelo conceptual, el código documentado del programa del


modelo y los resultados del estudio.
• El resumen ha de comentar el desarrollo y validación del modelo para dotar de credibilidad al
modelo.

6.2. ¿Quién debe llevar a cabo la validación?


La validación del modelo es más laboriosa que la verificación. Requiere sobretodo experiencia en análisis
de resultados y métodos estadística. Es necesario realizar la validación para cada uso diferente que se
quiera dar al modelo.

6.3. Técnicas para desarrollar modelos válidos y creíbles


Existen varias técnicas que se pueden aplicar para desarrollar modelos válidos y creíbles. Estas técnicas
se pueden utilizar en las diferentes etapas de desarrollo de un modelo de simulación como se muestra en
la siguiente tabla:

Aplicable en
Técnicas para desarrollar modelos válidos y creíbles
Etapa Nº.
Formulación precisa del modelo 1
Entrevistas con expertos 1, 2
Estar en contacto con el decisor 1, 2, 3, 4, 5, 6, 7
Utilizar métodos cuantitativos para validar partes del modelo 2
Documentar el modelo conceptual 2
Verificar el modelo conceptual 3
Llevar a cabo un análisis de sensibilidad 5
Validar los resultados del modelo completo 5
Utilizar gráficas y animaciones para mostrar los resultados del modelo 5, 6, 7
Utilizar métodos estadísticos en la medida de lo posible para validar el modelo 5

Formulación precisa del modelo


La formulación precisa del modelo es muy importante. Se deben detallar todos los aspectos importantes
que deban ser considerados en relación al problema que se desee resolver. Esta formulación ha de
permitir establecer el nivel de detalle del modelo y qué variables se elegiran como resultado para estudiar
el modelo.
Muchas veces, al iniciar el desarrollo de un modelo de simulación, el problema exacto a resolver no está
claro. En este caso, la clarificación del modelo y sus objetivos debe irse compañando de una reformulación
del mismo.

Entrevistas con expertos


Es difícil que una persona disponga de toda la información necesaria para construir un modelo de
simulación, por ello es necesario el asesoramiento de expertos que completen la comprensión del sistema
para obtener una mejor identificación del problema y formulación del modelo que ayude a resolver dichos
problemas. Pueden participar en la formulación conceptual del modelo, identificando los aspectos
importantes del sistema o ayudando en la formulación de hipótesis.

Estar en contacto con el decisor


El contacto con un decisor es importante para dar una respuesta real a los problemas prácticos que se le
plantean y de esta forma que el modelo resulte útil y práctico en situaciones reales. Así:
• Ayudará a verificar los resultados del modelo.
− Cuando no se dispongan de datos iniciales
− Cuando se modifique los objetivos iniciales del proyecto
• Ayuda a estimular la participación del decisor en el estudio
• Hace la simulación más creíble y facilita la formulación de hipótesis razonables

Ejemplo: Un analista desarrolló durante dos años un modelo para un cliente. Cuando se lo presentó, el
cliente le dijo: “Esto no es lo que yo quería”

Utilizar métodos cuantitativos para validar partes del modelo


El analista debería utilizar métodos cuantitativos siempre que le fuera posible para comprobar la validez de
los diferentes componentes del modelo. Por ejemplo:
• Gráficas y pruebas de bondad de ajuste.
• Validación de los datos. Por ejemplo, si se dispone de diferentes conjuntos de datos observados
para el mismo fenómeno, se puede utilizar un test de homogeneidad para asegurarse que
representan la misma población homogénea. Si es así se pueden mezclar los datos y utilizarlos con
distintos propósitos en la simulación.
Ejemplo: Una fábrica con dos máquinas tiene registrado los tiempos de reparación de cada una.
El test de Kruskal-Wallis permite determinar si esos datos representan una misma distribución o si
el comportamiento de las máquinas es diferente respecto al tiempo de reparación.
• Análisis de factores. Puede servir para identificar los factores más relevantes de un modelo y si se
corresponden con los del sistema real.

Documentar el modelo conceptual


Es importante documentar bien el trabajo para evitar errores. Son importantes los antecedentes y el
estudio preliminar del sistema de mano del decisor y de los expertos. Dejar claros los objetivos, los
requerimientos, los datos, etc. Se debería incluir:
• Una discusión de las metas que se plantean y el problema específico que aborda el modelo, junto
con la forma de evaluar los resultados.
• diagramas que muestren los distintos niveles considerados del sistema
• una descripción detallada de cada subsistema considerado y sus interacciones
• que simplificaciones se aplican al modelo, dónde se aplican y porqué.
• Compendio de datos y metadatos necesarios
• Fuentes de información importante o controvertida

Verificar el modelo conceptual


La información necesaria para desarrollar el modelo de simulación es mucha y variada. Antes de someter
el modelo a expertos o al decisor conviene realizar una verificación de los pasos realizados, de las
diferentes partes del modelo, del nivel de detalle escogido, de la información más relevante que se ha
considerado. Esta verificación es sobretodo una comprobación de la consistencia lógica del modelo en
todas sus partes y se ha de realizar antes de iniciar la programación informática.

La verificación planteada anteriormente asume que el desarrollo del modelo se produce todo de una vez,
sin embargo en paradigmas de desarrollo incremental mediante prototipos (p.e. en espiral) debe pensarse
también en verificaciones sucesivas para cada refinamiento introducido.

Llevar a cabo un análisis de sensibilidad


El análisis de sensibilidad permite detectar los factores que muestran un impacto mayor sobre los
resultados del modelo y que en consecuencia deberían ser contemplados con más cuidado. Por ejemplo:
• El valor de parámetros.
Ejemplo: En un modelo de colas se quiere determinar exactamente el número de clientes que
llega a un establecimiento cada minuto que se sabe está dentro de un rango entre 1 y 2. Se utiliza
el modelo y se comprueba que el resultado no varía mucho respecto esos valores, por lo que no es
sensible al valor de ese parámetro. En consecuencia, no resulta interesante invertir muchos
esfuerzos en precisar de forma exacta aquél valor.
• Selección de distribuciones de probabilidad
• Nivel de detalle de un subsistema
• Datos que son prioritarios o cruciales disponer de ellos

Para el estudio de más de un parámetro a la vez se leería utilizar el diseño estadístico de experimentos, no
serviría el análisis de sensibilidad individual de los dos parámetros a analizar.

Validar los resultados del modelo completo


La prueba definitiva del modelo es su validación global. En general se intentará disponer de datos de
sistemas reales para validar el modelo, si no existe se deberán obtener por otras vías.

Utilización de datos reales


Cuando se dispone de datos reales, normalmente se comparan los resultados del modelo con los datos
reales para ver si su parecido es suficiente como para aceptar la bondad del modelo desarrollado. La
precisión requerida dependerá del uso para el que haya sido desarrollado. Contra mayor sea el parecido
entre los resultados, mayor será la confianza y credibilidad del modelo.

Utilización de tests estadísticos


Varios tipos de test se han propuesto para llevar a cabo la validación de modelos de simulación. Sin
embargo, la comparación mediante estas técnicos no resulta tan sencillo como podría parecer ya que la
mayoría de procesos reales son no estacionarios (las distribuciones de las observaciones cambian a
través del tiempo) y autocorrelacionadas (las observaciones están relacionadas unas con otras). Ello hace
que los métodos que asumen observaciones independientes idénticamente distribuidas (iid) no resulten
aplicables directamente. Por otro lado, es discutible la idoneidad de los tests de hipótesis ya que si nos
preguntamos si el modelo representa al sistema la respuesta es claramente no. Parece más indicado el
preguntarse sobre si las diferencias entre el modelo y el sistema afectan a las decisiones que tomen
basadas en el modelo.

Evaluación por parte de expertos


Si no existe un sistema real que pueda proporcionar datos, se debe entonces comprobar la coherencia de
los resultados por analistas y expertos. La validación directa (en inglés Face validation) se utilice para
valorar la consistencia del modelo con el comportamiento percibido del sistema. Este ejercicio es delicado
ya que si conociéramos el resultado exacto del sistema no sería necesaria la validación del modelo.

Ejemplo: La validación directa se utilizó en la simulación del personal necesario para una industria. La
simulación se llevó a cabo con una plantilla de referencia y los resultados se mostraron a los gerentes de
la empresa y analistas que detectaron discrepancias entre los resultados y el comportamiento esperado
del modelo. Esta información se utilizó para refinar el modelo en etapas sucesivas hasta obtener un
modelo que representaba de forma precisa la política de personal de la empresa. Este proceso además de
mejorar la precisión del modelo aumentaba su credibilidad.

Un test de Turing puede también realizarse para comparar los datos del modelo con los del sistema. A un
conjunto de expertos se les ofrece un conjunto de datos sin que sepan si se trata de datos reales o
simulados. La validación es correcta cuando son incapaces de diferenciar la procedencia de los datos, en
caso contrario los criterios utilizados para descubrir los datos simulados pueden ser utilizados para refinar
el modelo.

Otra técnica disponible para validar un modelo es comparar nuestros resultados con los de otro modelo de
simulación aceptado.

Validación prospectiva
En lo referente a la validación nos hemos centrado en comparar datos reales con los datos generados por
el modelo. Muchos modelos de simulación se desarrollan para realizar predicciones sobre la evolución
futura de un sistema. En estos casos puede ser más importante el verificar la habilidad predictiva del
modelo y/ o su adaptabilidad a cambios temporales. Por ejemplo, puede que desarrollar un modelo nos
lleve mucho tiempo, que cumplamos con la metodología de desarrollo y la validación del modelo, pero
cuando lo vayamos a utilizar, podrían aparecer discrepancias. Si no existe confianza en el modelo puede
resultar muy delicado el intentar modificarlo para adaptarlo a unas nuevas circunstancias ya que se
podrían invalidar partes del modelo. Esto pone de manifiesto la importancia de documentar todo el
desarrollo del modelo.

Utilizar gráficas y animaciones para mostrar los resultados del modelo


Gráficas (estáticas o dinámicas) y animaciones (dinámicas) son útiles tanto para mostrar que un modelo no
es válido, tanto como para mejorar la credibilidad del mismo. Algunos ejemplos de gráficas:
• Histogramas como estimación de la función de densidad subyacente
• Gráficas de correlación para mostrar si los datos están autocorrelacionados
• Gráficas temporales de una o más variables del modelo
• Gráficas de barras o sectores

Una animación es útil para mostrar la dinámica a corto plazo del comportamiento del sistema. Resulta útil
para comunicar y dar a entender de forma rápida la esencia del modelo. Otras ventajas es que también
son útiles para la depuración del código e incluso para practicar con el modelo.

Utilizar métodos estadísticos para validar el modelo


Ya se ha comentado anteriormente la disponibilidad de métodos estadísticos para la validación de los
modelos de simulación.

Supongamos que R1, R2,…, Rk son observaciones del sistema real y que M1, M2,…, Ml son resultados del
modelo. Estos conjuntos de datos se pueden comparar si el modelo es suficientemente fiel de la realidad.
Varias metodologías se pueden llevar a cabo para efectuar dichas comparaciones.

Supervisión
Muchas veces, analistas principiantes hacen una comparación superficial entre los resultados del modelo y
el sistema real sin utilizar ningún método estadístico, únicamente mediante estadísticos sencillos como la
media o la varianza. Sargent [1996b] discute sobre el uso de gráficas con más detalle. La dificultad de esta
supervisión es que cada estadístico es en esencia una muestra de tamaño un que depende de la
población de origen y está a merced de la aleatoriedad de ésta.
Ejemplo. Un modelo que represente la vida útil de una máquina puede considerar la comparación de la
vida útil media calculada a partir de los resultados del modelo con el valor real observado en una empresa.

Intervalo de confianza
Este método es más fiable ya que permite obtener diferentes conjuntos independientes de datos a partir de
los cuales poder establecer un intervalo de confianza para un estadístico calculado.
Series temporales
Existen varias propuestas que basan la validación en algunos tipos de series temporales. Esta
aproximación requeriría solo un conjunto de datos de cada tipo (real y simulado) para poder estudiar y
comparar ambas estructuras de correlaciones. Estas comparaciones están basadas en análisis espectral,
series temporales paramétricas o series temporales normales, y todas ellas hacen hipótesis sobre los
datos que raramente se cumplen en la realidad. Por otro lado el nivel de sofisticación matemática es más
elevado y difícil de aplicar que los métodos anteriores.

6.4. Obtención de datos útiles


Un modelo de simulación es válido únicamente para el fin que fue creado cuando su lógica es correcta y
utiliza datos adecuados.

Si existe un sistema real parecido al que se intenta representar, siempre se pueden aprovechar sus datos
para desarrollar nuestro modelo. Los datos pueden venir de registros históricos o de ensayos de campo.
Como los datos pueden venir de personas ajenas al estudio, entonces el analista debería:
• Asegurarse de la calidad de los datos que recibe.
• Conocer de dónde provienen los datos y cómo se han obtenido

Ejemplo: Si disponemos de una base de datos y detectamos algunos de ellos que nos parecen anómalos,
debemos de conocer como se han obtenido y de donde para tener más certeza de lo que representan.
Podrían ser errores de medida, errores de registro, o valores correctos poco habituales.

La obtención de datos no es sencilla y pueden aparecer problemas. En relación a la disponibilidad de


datos identificamos cinco dificultades concretas:
• los datos podrían no ser representativos del problema que se quiere simular
• los datos podrían no estar en un formato adecuado o ser adecuados
• siempre existe la posibilidad de que contengan errores de algún tipo

Ejemplo: Si disponemos de datos que representan el tiempo necesario para realizar una actividad están
redondeados al valor más próximo de 5 o 10 minutos, esto hace difícil el obtener una función de
distribución continua para esa variable.
• Puede estar sesgada o ser de interés muy particular
• Puede que emplee de forma inconsistente unidades de medida

La verificación y validación de los datos es importante porque entre otras cosas puede permitir detectar
otros errores de la simulación.

6.5. Modelos de simulación alternativos


Cuando un analista decide abordar un problema mediante simulación dispone de varias alternativas que
puede considerar:
• Desarrollar un Nuevo modelo de simulación
• Modificar parcialmente o redefinir un modelo ya desarrollado
• Reutilizar un modelo con datos nuevos

Si un analista ha de desarrollar un Nuevo modelo, debería aplicar las etapas de desarrollo definidas
anteriormente (Law and Kelton,1999, Capítulo 5).

Para modificar parcialmente un modelo de simulación existente resulta imprescindible disponer de la


documentación del modelo conceptual. Una falta de documentación provocada por un deficiente
documentación puede ser fuente de problemas. No sirve disponer únicamente del código de la aplicación
informática.
Si no existiera modelo conceptual se debería construir uno y documentarlo adecuadamente como si se
empezara de nuevo.
En el caso de utilizar la estructura de un modelo de simulación cuya estructura lógica no se ha modificado
(p.e., nuevos factores productivos, nuevos escenarios, diferente tipo de personal) requiere validarse
igualmente. Cuando cambiamos los datos del modelo puede que el resultado caiga fuera del rango de
variación para el que fue desarrollado y validado. Conviene:
• Interaccionar con el decisor de forma regular
• Documentar el modelo conceptual
• Verificar el modelo conceptual

7. Bibliografía
Balci, O., “Verification, Validation and Testing,” in The Handbook of Simulation, J. Banks, ed.,
Chapter 10, John Wiley, New York (1998).
Banks, J., J. S. Carson, and B. L. Nelson, Discrete-Event System Simulation, Second Edition,
Prentice-Hall, Upper Saddle River, NJ (1996).
Carson J. S., “Convincing Users of Model’s Validity Is Challenging Aspect of Modeler’s Job,” Ind.
Eng., 18: 74-85 (June 1986).
Fossett, F. A., D. Harrison, H. Weintrob, and S. I. Gass, “An Assessment Procedure for Simulation
Models: A Case Study,” Operations Res., 39: 710-723 (1991).
Gass, S. I., “Decision-Aiding Models: Validation, Assessment, and Related Issues in Policy Analysis,”
Operations Res., 31: 603-631 (1983).
Gass, S. I. and B. W. Thompson, “Guidelines for Model Evaluation: An Abridged Version of the U.S.
General Accounting Office Exposure Draft,” Operations Res., 28: 431-439 (1980).
Knepell, P. L. and D. C. Arangno, “Simulation Validation: A Confidence Assessment Methodology,”
IEEE Computer Society Press, Los Alamitos, CA (1993).
Law, A. M. and W. D. Kelton, Simulation Modeling and Analysis, Second Edition, McGraw-Hill, New
York (1991).
Law, A. M. and W. D. Kelton, Simulation Modeling and Analysis, Third Edition, McGraw-Hill, New
York (December 1999).
Montgomery, D. C., Design and Analysis of Experiments, 4th Edition, John Wiley, New York (1997).
Pace, D. K., “Verification, Validation, and Accreditation (VV&A),” in Applied Modeling and Simulation:
An Integrated Approach to Development and Operation, D. J. Cloud and L. B. Rainey,
eds., pp. 369-410, McGraw-Hill, New York (1998).
Rousseau, G. G. and K. W. Bauer, “Sensitivity Analysis of a Large Scale Transportation Simulation
Using Design of Experiments and Factor Analysis,” Proc. 1996 Winter Simulation
Conference, San Diego, pp. 1426-1432 (1996).
Sargent, R. G., “Verifying and Validating Simulation Models,” Proc. 1996 Winter Simulation
Conference, San Diego, pp. 55-64 (1996a).
Sargent, R. G., “Some Subjective Validation Methods Using Graphical Displays of Data,” Proc. 1996
Winter Simulation Conference, San Diego, pp. 345-351 (1996b).
Schruben, L. W., “Establishing the Credibility of Simulations,” Simulation, 34:101-105 (1980).
Shannon, R. E., Systems Simulation: The Art and Science, Prentice-Hall, Englewood Cliffs, NJ
(1975).
Turing, A. M., “Computing Machinery and Intelligence,” Mind, 59: 433-460, (1950).

You might also like