Professional Documents
Culture Documents
- Verificacin y Validacin
Una de las tareas ms importantes y difciles en la simulacin es la verificacin y validacin del modelo. Las salidas del modelo se van a utilizar para obtener conclusiones para el sistema real, por lo que es muy importante que se confe en el modelo para garantizar que ste va a ser utilizado, y esto va a ser trabajo de las personas que desarrollan el modelo.
6.1.- Introduccin
Dado que el modelo es una abstraccin del sistema real debemos preguntarnos si existe una correspondencia entre el sistema real y el modelo. Los trminos ms usados para describir el proceso mediante el cual el modelo es una representacin creble del sistema real son verificacin y validacin del modelo. La verificacin se refiere a la construccin correcta de un modelo. Se puede definir verificacin como el proceso de determinar si la lgica operacional del modelo (programa de ordenador) se corresponde con la lgica del diseo. En trminos ms simples, consiste en determinar si hay errores en el programa. La validacin se refiere a la construccin de un modelo correcto. La validacin es el proceso de determinar si el modelo, como abstraccin, es una buena representacin del sistema. Usualmente la validacin se consigue a travs de la calibracin del modelo, en un proceso iterativo de comparacin del comportamiento del modelo con el del sistema y usar las diferencias entre ambos para mejorar el modelo. Este proceso se repite hasta que el modelo se considera aceptable.
Verificacin y Validacin
En este captulo vamos a describir mtodos que han sido recomendados y usados en la verificacin y validacin del modelo. La mayora de los mtodos son comparaciones subjetivas informales mientras que unos pocos son procesos estadsticos formales.
94
Verificacin y Validacin
Para construir el modelo conceptual se necesita identificar aquellos elementos del sistema real que van a ser incluidos en el modelo, as como los sucesos que ocurren. En esta etapa se deben identificar las variables exgenas y endgenas, sucesos externos, variables de estado y medidas de ejecucin. Despus de identificar dichos elementos se han de presentar a los usuarios y administradores del sistema para establecer que el modelo contiene los aspectos necesarios del sistema para responder a las cuestiones planteadas. Vemos que la validacin comienza desde la primera etapa de desarrollo del modelo. Una vez que se tiene el modelo conceptual se pasa a desarrollar el modelo lgico, el cual incorpora los elementos, sucesos y variables incluidas en el modelo anterior. Puede ocurrir que durante esta etapa se descubran fallos en el modelo conceptual, lo cual implicara una nueva revisin del modelo. El proceso de comprar el modelo lgico con modelo conceptual implica validacin y verificacin. El modelo lgico debe ser una representacin adecuada de la lgica del modelo conceptual. Una vez que el modelo ha sido programado, se ha de verificar que como tal programa no contiene errores y que es una correcta representacin del modelo lgico. Para terminar se ha de validar el modelo comprobando que es una correcta representacin del sistema real y por tanto puede responder de forma fiable a las cuestiones planteadas en la fase de construccin del modelo conceptual. No existen un mtodo o un conjunto de tcnicas para verificar y validar el modelo de simulacin y el proceso es ms un arte que una ciencia. En la Tabla 6.1 podemos resumir el papel que la verificacin y la validacin desempean en la simulacin.
Nivel de Modelizacin Modelo Conceptual Verificacin Validacin Contiene el modelo todos los elementos, sucesos, y relaciones relevantes? Podr el modelo responder a las cuestiones planteadas? Incluye el modelo todos los elementos considerados en el modelo conceptual? Contiene todas las relaciones del modelo conceptual? Es el modelo una representacin vlida del sistema real? Puede el modelo duplicar el comportamiento del sistema real? Es creble el modelo para los expertos del sistema?
Modelo Lgico
Estn los eventos representados correctamente? Son las frmulas matemticas y las relaciones correctas? Estn las medidas estadsticas formuladas correctamente? Contiene el cdigo todos los aspectos del modelo lgico? Estn las estadsticas y las frmulas calculadas correctamente? Contiene el modelo errores de codificacin?
95
Verificacin y Validacin
A continuacin pasamos a ver aproximaciones y mtodos tiles en el proceso de establecer que el modelo de simulacin es una representacin creble del sistema real.
Suceso i
Conexin Incondicional
Conexin Condicional
Retomando el problema del supermercado, podemos modelar conceptualmente el sistema como una iteracin de sucesos:
96
Verificacin y Validacin
4. Cajero termina. 5. Empaquetador empieza. 6. Empaquetador termina. 7. Salida del Cliente. ~ =Enlace condicional.
La representacin grfica puede ser til como un puente entre el modelo conceptual y el modelo lgico y adems puede servir como una poderosa herramienta de ayuda a la comunicacin entre analistas y las personas que tratan el sistema. De forma similar al grafo de sucesos se puede utilizar el diagrama de flujo del modelo, que representa el flujo de entidades a travs del sistema (segn la aproximacin elegida en el desarrollo del modelo).
Incluir todos los aspectos del sistema real que parecen influir en su comportamiento y luego simplificar el modelo para quedarse slo aquellos elementos que son ms relevantes. Empezar con un modelo simple del sistema real e ir aadiendo complejidad a ste hasta llegar a tener elementos suficientes para responder a las cuestiones planteadas. Hacer un gasto inicial de esfuerzo y tiempo tratando de identific ar los elementos del sistema que tienen mayor importancia para responder a las cuestiones planteadas.
Antes de pasar a construir el modelo lgico se ha de estar seguro que el modelo conceptual es una buena abstraccin del sistema real. En el ejemplo del supermercado se pueden identificar los siguientes elementos, para ser incluidos en el modelo conceptual: Sucesos Llegada del Cliente. Cliente selecciona caja.
97
Verificacin y Validacin
Cajero empieza. Cajero termina. Empaquetador empieza. Empaquetador termina. Salida del Cliente. Facilidades Cajeros Empaquetadores Variables de estado Nmero de clientes en cada cola Estado de los cajeros (libre, ocupado) Estado de los empaquetadores (libre, ocupado) Medidas de ejecucin Tiempo de espera de los clientes Utilizacin de los cajeros Utilizacin de los empaquetadores Variables de decisin Nmero de cajeros Nmero de empaquetadores Nmero de cajas rpidas Nmero mximo de productos para poder utilizar una caja rpida Reglas de operacin Los clientes seleccionan siempre la caja que tenga menos clientes en cola No existen movimientos de clientes de una cola a otra Aspectos del sistema real que no se han incluido Desplazamientos de los clientes de una cola a otra Qu ocurre cuando no se cumple las reglas de las cajas rpidas Picos en las llegadas de los clientes Fallos en los equipos Absentismo de los cajeros o de los empaquetadores
Estn procesados correctamente los sucesos del modelo? Son vlidas las frmulas matemticas y las relaciones incluidas en el modelo? Estn calculadas correctamente las estadsticas y medidas de ejecucin?
98
Verificacin y Validacin
conexiones entre ellos. Por ltimo se ha de verificar que todas las variables de estado cambian correctamente ante la ocurrencia del suceso que las afectan. Un mtodo que se puede utilizar para la verificacin y validacin del procesamiento de los sucesos dentro del modelo lgico es una revisin en la que el desarrollador del modelo lgico debe explicar con detalle la lgica del modelo a los otros miembros del proyecto de simulacin.
Verificacin y Validacin
modelo de ordenador es una de las pocas actividades en el proceso de simulacin en la que el analista no recibe ayuda por parte de los administradores y usuarios del sistema. Las siguientes aproximaciones se pueden utilizar para verificar el modelo de ordenador:
Mtodos de programacin estructurada Trazas de simulacin Pasar test al programa Chequear las relaciones lgicas Comparar con modelos analticos Usar representaciones grficas
Diseo descendente: el programa se disea comenzando por el nivel ms alto, que est descompuesto en mdulos los cuales a su vez se pueden volver a descomponer. Modularidad: cada mdulo es responsable de una nica funcin. Refinamiento por pasos: cada mdulo se desarrolla usando un refinamiento paso a paso de la funcin final que tendr dicho mdulo. Mdulos compactos: los mdulos no tendrn muchas lneas de cdigo. Estructuras de control: todo el cdigo se debe poder escribir con las estructuras IFTHEN-ELSE, WHILE, REPEAT-UNTIL, FOR y CASE.
6.5.3.- Tests
Pasar tests al programa consiste en realizar una serie de pruebas controladas sobre l. Los dos tipos de tests ms comunes son los tests ascendentes y los descendentes. En los tests ascendentes se comienza por comprobar los mdulos bsicos y luego se pasa a probar las interrelaciones entre ellos hasta que el modelo ha sido probado como un nico sistema. En el diseo descendente las pruebas comienzan con el mdulo principal y van bajando hasta los mdulos bsicos.
100
Verificacin y Validacin
Una vez que el modelo ha sido probado, se debe ejecutar bajo condiciones extremas. En el ejemplo del supermercado, se debe probar el modelo cuando la proporcin de llegadas de clientes es mayor que la capacidad de servicio por parte de los cajeros. De forma similar se puede simular el supermercado con una razn de llegada muy baja.
101
Verificacin y Validacin
Ha de quedar claro que la validacin no es algo que se ha de hacer cuando el modelo ha sido desarrollado, sino que ha de hacerse desde el principio. Vamos a ver una serie de mtodos de validacin como:
Comparacin de los resultados de salida del modelo con los del sistema real. Mtodo Delphi. Test de Turing. Comportamiento en casos extremos.
6.6.1.- Comparacin de los resultados de salida del modelo con los del sistema real
Este mtodo se podr aplicar en aquellos casos en los que el sistema exista y se pueda experimentar con l de forma que se obtengan datos de salida del mismo. Este mtodo consiste en ejecutar el modelo y obtener una serie de datos de salida y comparar stos, mediante algn mtodo estadstico, con resultados que se tengan del sistema. Debemos comparar dos conjuntos de datos, de alguna forma, para determinar si el modelo es una representacin adecuada del sistema real. Una primera aproximacin sera utilizar uno de los test estadsticos clsicos (como Chicuadrado o Kolmogorov-Smirnov para dos muestras) para determinar si las distribuciones subyacentes a los dos conjuntos de datos se pueden ver como la misma. Sin embargo, los procesos de salida de la mayora de los sistemas reales y simulaciones no son estacionarios y son autocorrelados, de forma que ninguno de estos tests es directamente aplicable. Hay distintos mtodos de comparacin, a continuacin vamos a ver uno de ellos:
El modelo es una aproximacin del sistema real por lo que H0 es claramente falsa en la mayora de los casos.
102
Verificacin y Validacin
Un intervalo de confianza da ms informacin que el test de hiptesis correspondiente. Si el test de hiptesis indica que x y , el intervalo de confianza adems indica la magnitud en la que difieren.
Construir un intervalo de confiaza para es un caso especial del problema de comparar dos sitemas. Podemos construir el intervalo de confianza utilizando la aproximacin Paired-t o la aproximacin Welch. La aproximacin de paired-t requiere que m=n pero permite que xj est correlada con yj. La aproximacin de Welch se puede usar para cualesquiera valores de m=2 y n= 2 , pero requiere que los xj s sean independientes de los yj s. Suponemos que construimos un intervalo de confianza del 100(1-a)% para usando alguna de las aproximaciones y obtenemos un lmite superior s(a) y un lmite inferior i(a) del intervalo correspondiente. Si 0 [i ( ), s( )] , entonces la diferencia observada entre x y y se dice que es estadsticamente significativa. Esto equivale a rechazar la hiptesis nula H 0 : x = y a favor de la hiptesis alternativa H1 : x y .
Se enva un cuestionario a cada miembro del grupo. Para la validacin de un modelo de simulacin, las cuestiones podran tratar sobre las respuestas del sistema real ante ciertas entradas o cambios en su estructura. Basndose en las respuestas dadas a las cuestiones planteadas, se elaboran nuevos cuestionarios que van centrndose en temas ms especficos. Los nuevos cuestionarios se envan al grupo junto con las respuestas obtenidas a las cuestiones en rondas anteriores.
Estos tres pasos se repiten hasta que el analista consiga de los expertos una prediccin de la respuesta de sistema. Una crtica de este mtodo es que consume mucho tiempo. No necesariamente debe suponer un tiempo adicional en el proyecto de simulacin, ya que se puede ir realizando paralelamente al desarrollo del modelo. Su costo puede resultar caro, pero no mucho ms que otros mtodos de
103
Verificacin y Validacin
validacin. En general, aunque se critique que los mtodos de validacin son caros y consumen tiempo, ms costoso es construir un modelo que no sea vlido. Otra crtica que se hace al mtodo es que si el grupo de expertos lo que va a hacer es predecir el comportamiento del sistema por qu no usar el mtodo en lugar del modelo de simulacin? En algunas situaciones este mtodo puede ser utilizado, sin embargo, normalmente no es prctico mantener el grupo de expertos para predecir el comportamiento del sistema ante los posibles cambios que se planteen. Incluso si se pudiera mantener el tiempo de respuesta podra ser muy largo.
104
Verificacin y Validacin
Construccin de un modelo con alta apariencia de validez. Validar las suposiciones del modelo. Comparar las transformaciones de entrada en salidas en el modelo con las correspondientes en el sistema real.
Conversaciones con los expertos del sistema: un modelo de simulacin no es una abstraccin desarrollada por un analista que trabaja aislado, sino que ste debe trabajar con las personas que estn ntimamente familiarizadas con el sistema. Lo normal no es que una persona o un nico documento recojan toda la informacin acerca del sistema, de forma que habr que consultar a varias personas y recolectar varios documentos. Por ejemplo, si se quiere modelizar un sistema de manufactura, se ha de obtener informacin preguntando a los operadores de las mquinas, ingenieros industriales, administradores, etc. Observacin del sistema: Si existe el sistema real que se intenta simular o uno similar al l debemos obtener datos de ste para usarlos en nuestro modelo. Estos datos puede que estn disponibles en registros histricos o por e l contrario puede que sea necesario recolectarlos. Se ha de tener cuidado a la hora de recolectar datos de forma que se haga correctamente, y que los datos que se recojan tengan un formato adecuado y sean representativos del sistema que va a ser modelado. Por ejemplo si se recolectan datos de un campo de pruebas militares, las condiciones de combate son diferentes a las de un enfrentamiento real, por lo que los datos recogidos no van a ser representativos en el caso de querer modelar un combate real. Si queremos simular un banco y observamos el funcionamiento de uno para poder obtener la distribucin del tiempo entre llegadas, s que estaramos recogiendo datos representativos.
105
Verificacin y Validacin
Teora existente: Por ejemplo si estamos simulando un banco, la teora existente nos dice que la razn de llegada de los clientes, con bastante probabilidad, sigue una variable exponencial. Resultados rele vantes de modelo de simulacin similares: si existen modelos similares al que se desea construir se puede utilizar informacin de stos y aspectos que podemos tener en cuenta para nuestro modelo. Experiencia/intuicin: a menudo es necesario hacer uso de la experiencia y de la intuicin para formular hiptesis acerca de ciertos componentes de operacin de un sistema complejo, particularmente si el sistema no existe actualmente. Se supone que dichas hiptesis deben ser justificadas en etapas posteriores de este proceso de validacin.
En resumen podemos decir que para que el modelo que vamos a construir tenga una alta apariencia de credibilidad y validez es necesario obtener toda la informacin posible acerca del sistema y para esto es necesario interactuar con el administrador/cliente de forma regular durante todo el transcurso del estudio de la simulacin y realizar una serie de revisiones de la informacin obtenida para as comprobar que las informaciones locales obtenidas no son contradictorias.
Identificar la distribucin apropiada. Estimar los parmetros de la distribucin que se ha supuesto. Validar el modelo estadstico supuesto mediante tests como el de chi-cuadrado o Kolmogorov-Smirnov.
En esta segunda etapa se ha de comprobar que las suposiciones hechas en las etapas anteriores son ciertas. Es importante que se usen datos representativos en la construccin del modelo y es igualmente importante poner cuidado cuando se estructuran dichos datos. Por ejemplo, si para un mismo
106
Verificacin y Validacin
fenmeno aleatorio observamos varios conjuntos de datos, podemos utilizar todos estos conjuntos de datos como una nica muestra slo si se comprueba la homogeneidad de dichos conjuntos (para ello su puede utilizar el test de Kruskal-Wallis). Otra herramienta til durante esta segunda fase es el anlisis del impacto de los valores de entrada sobre las salidas. Si una salida es muy sensible a los cambios en ciertos aspectos del modelo, dichos aspectos deben ser modelados ms cuidadosamente y se necesitar una mejor especificacin de los mismos.
Verificacin y Validacin
Modelo Inicial
2 Revisin Modelo
Esta comparacin del modelo con el sistema real, se puede realizar a travs de conjuntos de test, que pueden ser subjetivos u objetivos. Los primeros implican a personas que conocen aspectos del sistema y pueden hacer juicios sobre el modelo. Los test objetivos necesitan datos sobre el comportamiento del sistema para poder compararlos con los datos sobre el comportamiento del modelo. Una posible crtica en este proceso de calibracin es que se llegue a validar el modelo con el mismo conjunto de datos con el que se ha ido calibrando, lo cual puede significar que el modelo se ajusta bien a ese conjunto de datos en particular. Para evitar este problema se puede recolectar un nuevo conjunto de datos para ser usado en la etapa final de validacin. Si se descubren discrepancias inaceptables entre el modelo y el sistema en la etapa de validacin, el modelador debe volver a la fase de calibracin hasta que el modelo sea aceptable.
Las revisiones pueden ser formales o informales. Las informales son ms espontneas mientras que las formales son ms estructuradas y necesitan ms planificacin y preparacin. Ambas deben ser usadas durante el desarrollo de un producto software grande. Los miembros que han de formar parte del equipo de la revisin estructura son:
El autor: persona que ha desarrollado y presentar el modelo. El moderador: persona que planifica, ordena la revisin y realiza las labores de coordinacin durante la revisin.
108
Verificacin y Validacin
El secretario: toma notas durante la revisin para que quede un registro permanente de ella. Ir anotando los posibles defectos que los miembros detecten en el producto para que luego los desarrolladores puedan realizar las correcciones. Supervisor de mantenimiento: persona que revisa el producto desde el punto de vista del mantenimiento. Para los modelos de simulacin, el mantenimiento equivale a las modificaciones que se deben incluir par aadir caractersticas adicionales del sistema real. Supervisor de estndares: persona que se encarga de vigilar que en todo momento el producto cumpla con los estndares necesarios. Representante del usuario: revisa el producto desde el punto de vista de que el producto es un modelo del sistema real. Otros revisores: otras personas que contribuyen a la revisin del producto.
No hay una demarcacin estricta de las responsabilidades de los miembros del equipo de revisin y cualquier miembro puede manifestar cuestiones sin que pertenezcan a su funcin especial en el equipo.
Durante la revisi n no se corrigen errores, sino que son anotados para que posteriormente los desarrolladores puedan corregirlos. Las revisiones estructuradas no deben ser muy largas, tpicamente suelen durar como mucho una hora. La misin principal de las revisiones es enc ontrar fallos que los desarrolladores no hayan detectado.
6.10.- Conclusiones
Para realizar la simulacin se ha de determinar qu aspectos del sistema real necesitan incorporarse al modelo y qu aspecto se deben ignorar. Vamos a describir algunas lneas para determinar el nivel de detalle necesario en el modelo de simulacin:
Definir cuidadosamente, al principio del estudio, las cuestiones de inters tales como las medidas de ejecucin, la forma en la que el modelo va a ser usado y las configuraciones alternativas del sistema de inters. Los modelos no son universalmente vlidos, sino que son diseados para propsitos especficos. Si las cuestiones de inters no se especifican no se puede saber si se ha conseguido el nivel de detalle deseado en el modelo. Usar expertos y anlisis de sensibilidad, para ayudar a determinar el nivel de detalle en el modelo. Se puede preguntar a personas familiarizadas con sistemas similares al de inters acerca de cules son los aspectos ms importantes. En cuanto a los anlisis de
109
Verificacin y Validacin
sensibilidad se pueden usar para determinar qu parmetros, distribuciones o subsistemas tienen ms impacto sobre las medidas de ejecucin.
Uno de los errores puede ser incluir una excesiva cantidad de detalles en el modelo. Es mejor empezar con un mode lo moderadamente detallado y posteriormente incluir ms detalles si se considera necesario. Si son muchos los aspectos de inters que hay que estudiar, es conveniente usar un modelo sin refinar o un modelo analtico para identificar los factores importantes antes de desarrollar un modelo de simulacin detallado.
Para incrementar la credibilidad en el modelo y conseguir que este sea usado, es conveniente que participen en el proceso de su construccin los administradores del sistema.
110