Una fase importante en el desarrollo de un simulador es la validaci ´on de dicho simulador contra el modelo que implementa. La validaci ´on es vital para asegurar que el an´alisis que se hace con resultados de la simulaci ´on obtiene resultados que coinciden con el modelo desarro- llado. En cuanto se empieza a usar el simulador se tiene que estar seguro de que los resultados proviene del modelo, y no son artefactos de la implementaci ´on.
El modelo que se ha realizado tiene ciertas ventajas para su implementaci ´on, ya que la principal forma de modelar un agente es una m´aquina de estados. Las m´aquinas de estados son una construcci ´on concreta, y presenta una implementaci ´on distinta a la de un algoritmo de lenguaje natural. La m´aquina de estados adem´as permite que la comparaci ´on entre el modelo descrito y el modelo implementado se pueda ver directamente.
La forma de validar una implementaci ´on de una m´aquina de estados es mediante la ta- bla de transiciones. Dos m´aquinas con la misma tabla de transiciones se comportar´an de la misma manera. Sin embargo, debido a que la tabla de estado muy grande, el simulador no la implementa directamente, pero en su lugar emplea una tabla relativa en la cual una fila puede representar m ´ultiples filas de la tabla de transiciones completa.
Para construir la tabla de transiciones reducida se hace una operaci ´on de reducci ´on, y realmente la validaci ´on del simulador es la validaci ´on de esta operaci ´on, que produce una tabla reducida que es fiel a la tabla original y que no pierde informaci ´on en la transici ´on. La forma de validar esta operaci ´on es mostrar que tiene una operaci ´on inversa que puede reproducir la tabla de transiciones completa a partir de la tabla reducida.
6.1.1. Pr ´oximo estado basado en la entrada recibida
Una de las reducciones usadas es que el pr ´oximo estado se puede definir en base de la entrada que provoc ´o el cambio a este estado. Por ejemplo, desde la primera sala de espera un paciente puede recibir una mensaje que lo dirige a una de las tres unidades de triaje. Debido a que hay tres unidades de triaje la tabla completa necesita tres filas diferenciadas, como se muestra en el Cuadro 6.1(a). Se puede reducir estas tres filas a una en la tabla reducida, como se muestra en el Cuadro 6.1(b), que usa un par´ametro en el mensaje para elegir el siguiente estado.
Cuadro 6.1: Extracciones de la tabla de transiciones para un paciente en una sala de espera
(a) Extracci ´on de la tabla completa
Estado actual Entrada Estado siguiente
Lugar Acci ´on Mensaje Lugar Acci ´on
Sala de Espera 1 Idle “Va a Triaje 1” Sala de Espera 1 Ir a Triaje 1 Sala de Espera 1 Idle “Va a Triaje 2” Sala de Espera 1 Ir a Triaje 2 Sala de Espera 1 Idle “Va a Triaje 2” Sala de Espera 1 Ir a Triaje 3
(b) Extracci ´on de la tabla reducida
Estado actual Entrada Estado siguiente
Lugar Acci ´on Mensaje Lugar Acci ´on
Sala de Espera 1 Idle “Va a”hlugari Sala de Espera 1 Ir ahlugari
Debido a que el n ´umero de salas de triaje es un par´ametro del modelo, es informaci ´on que existe fuera de la tabla de estados, es decir, es una descripci ´on del entorno donde habitan los agentes. Entonces es una sencilla operaci ´on empezar con una ´unica fila del Cuadro 6.1(b), y multiplicarla por el n ´umero de posibles destinos que tiene un paciente desde la primera sala de espera, para llegar a la representaci ´on de las tres filas del Cuadro 6.1(a).
6.1.2. Salida basada en el estado actual
Usando el mismo escenario que en la secci ´on anterior se considera que el paciente ha llegado a la sala de triaje donde lo dirigieron - en este ejemplo el destino final es la sala de triaje 2. Cuando el paciente recibe un mensaje de la enfermera que pide sus s´ıntomas, responde con el valor de este variable de estado. En el caso de la tabla de transiciones completa, habr´a un estado para cada s´ıntoma diferente que puede tener el paciente, como se muestra en el Cuadro 6.2(a) (la tabla se ha cortado, hay m´as s´ıntomas que se mostrar´ıan aqu´ı). La tabla reducida puede sustituir todos los s´ıntomas para esta acci ´on a un valor de no importa en la tabla de transiciones, y despu´es usar el valor de esta variable de estado como el contenido de la salida para este estado.
Cuadro 6.2: Extracciones de la tabla de transiciones para un paciente en triaje
(a) Extracci ´on de la tabla completa
Estado actual Salida
Lugar Acci ´on S´ıntoma Destinatario Contenido
Triaje 2 Da informaci ´on de s´ıntoma Tos Enfermera 2 “Tos”
Triaje 2 Da informaci ´on de s´ıntoma Brazo roto Enfermera 2 “Brazo roto” Triaje 2 Da informaci ´on de s´ıntoma V ´omitos Enfermera 2 “V ´omitos” ..
. ... ... ... ...
(b) Extracci ´on de la tabla reducida
Estado actual Salida
Lugar Acci ´on S´ıntoma Destinatario Contenido
Triaje 2 Da informaci ´on de s´ıntoma no importa Enfermera 2 hs´ıntomai
La operaci ´on de reducci ´on esencialmente reduce el n ´umero de filas necesarias para re- presentar un conjunto de estados, en este caso por no representar al valor de la variable que representa el s´ıntoma que presente el paciente. Sin embargo, todos los s´ıntomas posibles son definidos; de tal modo que para hacer la operaci ´on de expansi ´on, se toma la ´unica fila del Cuadro 6.2(b) y multiplicarla por todas las posibles s´ıntomas, dando lugar al conjunto de filas del Cuadro 6.2(a).