P u b l i c a c i o n e s d e I n g e n i e r í a d e S i s t e m a s
SIMULACIÓN
DE
SISTEMAS
DISCRETOS.
Jaime
Barceló
Ingeniería de Sistemas
c/ Edison, 4
28006 Madrid
Teléfono (34-1) 411 50 11
Fax (34-1) 411 47 03
E-mail: monografias@isdefe.es P.V.P.: 1.000 Ptas.
(IVA incluido)
SIMULACIÓN DE SISTEMAS
DISCRETOS
por
Jaime Barceló
Otros títulos publicados:
1. Ingeniería de Sistemas. Benjamin S. Blanchard.
2. La Teoría General de Sistemas. Ángel A. Sarabia.
3. Dinámica de Sistemas. Javier Aracil.
4. Dinámica de Sistemas Aplicada. Donald R. Drew.
5. Ingeniería de Sistemas Aplicada. Isdefe.
6. CALS (Adquisición y apoyo continuado durante el ciclo de
vida). Rowland G. Freeman III.
7. Ingeniería Logística. Benjamin S. Blanchard.
8. Fiabilidad. Joel A. Nachlas.
9. Mantenibilidad. Jezdimir Knezevic.
10. Mantenimiento. Jezdimir Knezevic.
11. Ingeniería de Sistemas de Software. Gonzalo León Serrano.
12
COMITÉ DE REDACCIÓN
Presidente
Sr. D. Martín Aleñar Ginard
Teniente General (R) del Ejército de Tierra
Vocales
Sr. D. Eduardo Avanzini Blanco
General de Brigada Ingeniero del Ejército del Aire
Sr. D. Carlos Casajús Díaz
Vicealmirante Ingeniero de la Armada
Sr. D. Luis García Pascual
Vice-Rector de Investigación y Postgrado de la UPCO
Sr. D. Ricardo Torrón Durán
General de División Ingeniero del Ejército de Tierra
Sr. D. Alberto Sols Rodríguez-Candela
Ingeniero de Sistemas. Isdefe
Sra. Dña. Mª Fernanda Ruiz de Azcárate Varela
Imagen Corporativa. Isdefe
ILUSTRACIÓN DE PORTADA
Ruedas dentadas de la máquina de sumas y restas
para contabilidad de Pascal de 1645.
Jaime Barceló
Es catedrático del Departa-
mento de Estadística e Investi-
gación Operativa de la Universi-
dad Politécnica de Cataluña. Ha
sido profesor visitante de las
Universidades de Minnesota,
Montréal y Linköping, donde ha
impartido cursos y seminarios sobre estas materias.
Su actividad investigadora ha estado orientada
durante algunos años a la optimización combina-
toria y la simulación, y sus aplicaciones a los
problemas de producción y transporte. Desde el año
1988 dirige un grupo de trabajo en el Departamento
de Estadística e Investigación Operativa que ha
participado, y participa activamente, en proyectos
de I+D de la Unión Europea (DRIVE, ATT, ESPRIT,
4º Programa Marco, etc.), especializado en el
desarrollo de aplicaciones de métodos de
optimización y de simulación a los problemas de
tráfico y transporte, que han conducido, entre otros
resultados, al desarrollo y puesta a punto de
programas informáticos para la construcción y
análisis de modelos de simulación de tráfico que se
están utilizando en algunos proyectos
internacionales.
Es autor de numerosos artículos publicados en re-
vistas científicas internacionales y en actas de
congresos, así como de capítulos de libros colec-
tivos sobre Gestión de Tráfico, Modelos Dinámicos
de Tráfico, Simulación y Modelización, etc...
SIMULACIÓN DE SISTEMAS DISCRETOS
2
No está permitida la reproducción total o
parcial de este libro, ni su tratamiento
informático, ni la transmisión de ninguna
forma o por cualquier medio, ya sea
electrónico, por fotocopia, por registro o por
otros métodos, sin el previo consentimiento
por escrito de los titulares del Copyright.
Primera Edición: Septiembre - 1996
1.250 ejemplares
© Isdefe
c/ Edison, 4
28006 Madrid.
Diseño y fotomecánica:
HB&h Dirección de Arte y Edición
Infografía de portada:
Salvador Vivas
Impresión:
Closas Orcoyen S.L.
ISBN: 84-89338-12-4
Depósito legal: M- -1996
Printed in Spain - Impreso en España.
3
- ¿Qué gigantes?, dijo Sancho Panza.
-Aquellos que allí ves, respondió su amo, de los brazos
largos, que los suelen tener algunos de casi dos leguas.
-Mire vuestra merced, respondió Sancho, que aquellos que
allí se aparecen, no son gigantes sino molinos de viento, y
lo que en ellos parecen brazos son las aspas, que, volteadas
del viento, hacen andar la piedra del molino.
-Bien parece, respondió Don Quijote, que no estas cursado
en esto de las aventuras; ellos son gigantes, y si tienes
miedo, quítate de ahí y ponte en oración en el espacio que
yo voy a entrar con ellos en fiera y desigual batalla.
(Cervantes, El Quijote, Capítulo VIII -Del buen suceso que
el valeroso Don Quijote tuvo en la espantable y jamás
imaginada aventura de los molinos de viento, con otros
sucesos dignos de felice recordación).
SIMULACIÓN DE SISTEMAS DISCRETOS
4
5
AGRADECIMIENTOS
Esta monografía tiene su origen en una petición del General
Ricardo Torrón Durán, a la que se sumaron los convincentes
argumentos de Alberto Sols Rodríguez-Candela. He de confesar que
mi primer impulso fue negarme, escudándome en la excusa, no por
excusa menos cierta, de mi sobresaturado grado de ocupación.
Afortunadamente conté mentalmente hasta cien antes de negarme, y
para entonces me encontré atraído por la proposición, tanto por lo que
significaba en el sentido de rellenar huecos en la bibliografía técnica
en lengua castellana, y contribuir de paso de forma significativa a la
celebración del décimo aniversario de ISDEFE, como por el ineludible
componente de reto personal que comportaba.
Plasmar por escrito unos conceptos, aunque no sean originales,
de una forma coherente e inteligible para los demás, comporta una
tarea de reflexión y maduración personal, una pequeña aventura
intelectual que siempre resulta gratificante, sobre todo si su resultado
puede prestar un servicio a otros.
El resultado es esta modesta monografía que el lector tiene entre
sus manos. No es, ni mucho menos, una obra original, no era mi (diría
nuestro) objetivo. Se trata de exponer de una manera concisa y legible
unas ideas básicas en torno a la simulación de sistemas discretos, sus
SIMULACIÓN DE SISTEMAS DISCRETOS
6
implicaciones en términos de análisis de sistemas y de implantación
informática, para concluir con una sucinta panorámica de las tendencias
y perspectivas de evolución en el futuro inmediato.
Si el lector la encuentra útil y le reporta algo habré conseguido
mi propósito, con la ayuda de las críticas y sugerencias del Comité de
Redacción, aunque, como siempre, los errores y posibles desenfoques
son responsabilidad exclusiva del autor.
Jaime Barceló
7
SIMULACIÓN DE SISTEMAS DISCRETOS
8
9
PRÓLOGO
La monografía está concebida para ser una introducción
panorámica, descriptiva y didáctica, y una reflexión, sobre el papel de
la simulación en el ciclo de vida del sistema, teniendo en cuenta como
sus posibles planteamientos, bien como herramienta para una mejor
comprensión del funcionamiento del sistema, bien como técnica para
resolver problemas o para responder a preguntas sobre el sistema,
pueden intervenir en cualquiera de las fases del ciclo de vida del
sistema, tanto en la concepción del mismo, como en su diseño
preliminar y consiguiente estudio de factibilidad, en el diseño detallado
y en la fase de producción para proceder a evaluaciones y
asesoramientos, o en la fase de utilización y mantenimiento para poder
evaluar escenarios alternativos y encontrar repuestas a preguntas del
tipo "que pasaría si".
Dado que las relaciones entre sistemas y simulación han sido
abordadas en otras monografías, en especial en las de dinámica de
sistemas en lo que se refiere a los métodos de simulación continua,
esta monografía se centrará en la simulación de los sistemas discretos,
es decir sistemas cuyo estado cambia en instantes discretos en el
tiempo. El tratamiento propuesto abordará la simulación de sistemas
discretos desde una perspectiva doble: la del reto metodológico, que
plantea la comprensión de un fenómeno o de un problema a través del
proceso de construcción de un modelo de simulación por ordenador,
que representa el grado de conocimiento que se tiene del sistema en
SIMULACIÓN DE SISTEMAS DISCRETOS
10
el momento de la construcción del modelo que lo representa, y la de la
técnica que puede permitir la correspondencia entre el sistema real y
el modelo de simulación que lo representa, técnica que permite que el
modelo esté construido a la medida del sistema simulado.
En la monografía se pretende que el modelo se entienda como
un instrumento de investigación sometido a revisión continua, que
permite al que lo ha construido un refinamiento progresivo en su
comprensión del sistema, que le conduzca a una posición adecuada
para tomar decisiones sobre la solución de los problemas que el sistema
plantea. Entender que la simulación de sistemas por ordenador está
basada en una generalización del concepto de experimentación propio
del método científico, según el cual en lugar de realizar los experimentos
sobre el sistema real, se realizan sobre un modelo dinámico que lo
representa, de manera que si el modelo es una representación válida
del sistema entonces los resultados de la experimentación con el
modelo pueden transferirse al propio sistema.
En consecuencia, uno de los objetivos de la monografía es
ayudar a entender como se puede utilizar la construcción de modelos
de simulación para analizar fenómenos y problemas, y tomar decisiones
sobre ellos, es decir evidenciar el papel de la simulación en los procesos
de toma de decisiones, y en especial en los sistemas informáticos de
ayuda a la toma de decisiones.
Poner de manifiesto como la simulación permite aproximarse
al análisis y evaluación del rendimiento de sistemas antes de que
sean construidos, convirtiéndose así en una herramienta clave de
diseño, en cualquiera de sus fases, o para estimar a priori el impacto
de los cambios propuestos en sistema ya existentes. Como en ambos
casos el estudio de simulación se realiza antes de la construcción
del nuevo sistema o de la modificación del antiguo, ayudando así a
eliminar o reducir el riesgo de cuellos de botella no previstos, infra o
extra utilización de recursos, no satisfacción de especificaciones de
diseño, etc..
11
Dentro de los límites de extensión la monografía pretende ilustrar
como la simulación puede aplicarse a una amplia variedad de
situaciones: procesos de producción (especialmente en entornos de
manufactura flexible o asistida por ordenador), sistemas de transporte,
logísticos, de gestión de recursos, etc. Ayudar al lector no sólo a la
comprensión de la metodología de la construcción de modelos de
simulación de sistemas discretos, sino también ayudarle a entender
como trabajan, cuándo se debe utilizar la simulación y cuándo no, qué
se puede esperar de la simulación, qué errores hay que evitar en la
construcción y uso de modelos de simulación, y como la simulación
puede ayudar a mejorar el rendimiento de un sistema. La monografía
termina con una breve panorámica del software existente para la
simulación de sistemas discretos, sus características, posibilidades y
limitaciones, y un análisis de las tendencias futuras, una perspectiva
más detallada puede encontrarse en [1].
SIMULACIÓN DE SISTEMAS DISCRETOS
12
13
ÍNDICE GENERAL
1. LA SIMULACIÓN DE SISTEMAS 17
1.1 Sistemas y modelos 18
1.2 El proceso de construcción de modelos: modelos matemáticos 22
1.3 Simulación de sistemas continuos y
simulación de sistemas discretos 51
1.4 La simulación como proceso experimental:
experimentos y ordenadores 53
1.5 Modelos de simulación frente a soluciones analíticas 59
1.6 La simulación de sistemas discretos 67
2. MODELIZACIÓN DE LA ALETORIEDAD EN SISTEMAS DISCRETOS 72
2.1 Identificación de patrones de comportamiento aleatorio 73
2.2 Generación de muestras de distribuciones aleatorias: introducción a
los métodos de Montecarlo 92
2.2.1. Generación de números pseudo-aleatorios uniformemente
distribuidos en (0,1) 105
2.2.2. Generación de dígitos aleatorios 106
2.2.3. ¿Cuán aleatoria es la secuencia generada? 107
2.2.4. Procedimientos generales 110
3. LA SIMULACIÓN DE SISTEMAS DISCRETOS: LENGUAJES DE
SIMULACIÓN DE SISTEMAS DISCRETOS 113
3.1 Metodología de la construcción de modelos de simulación de
sistemas discretos 114
3.2 Características generales de los lenguajes de simulación
de sistemas discretos: la «visión del mundo»
de un lenguaje de simulación 119
3.3 Análisis algorítmico de las estrategias de simulación de
sistemas discretos 131
3.4 Un ejemplo de lenguaje: GPSS 136
4. LOS ESTUDIOS DE SIMULACIÓN 155
4.1 Diseño de experimentos de simulación 156
4.2 Análisis de resultados 165
SIMULACIÓN DE SISTEMAS DISCRETOS
14
5. LA CONSTRUCCIÓN DE MODELOS DE SIMULACIÓN
VÁLIDOS Y CREÍBLES 179
5.1 Validación, verificación y credibilidad (I) 180
5.2 Validación de modelos de simulación 183
5.3 Verificación de modelos de simulación 186
5.4 Validación, verificación y credibilidad (II) 188
6. TENDENCIAS ACTUALES DE LA SIMULACIÓN 197
6.1 Generadores de simuladores, entornos de simulación y
animación gráfica 198
6.2 Simulación visual interactiva 207
6.3 Simulación e inteligencia artificial 214
REFERENCIAS 229
BIBLIOGRAFÍA 239
GLOSARIO 243
15
SIMULACIÓN DE SISTEMAS DISCRETOS
16
17
La simulación de
sistemas
1
SIMULACIÓN DE SISTEMAS DISCRETOS
18
1.1. Sistemas y modelos
El término sistema se utiliza habitualmente con múltiples sentidos,
tantos que resulta difícil dar una definición única que los abarque todos
y al mismo tiempo sea lo suficientemente precisa para servir a propósitos
específicos. Podemos partir de la definición de sistema como conjunto
de cosas que ordenadamente relacionadas entre si contribuyen a
determinado objeto. Se trata de una definición sencilla pero que pone
de manifiesto los caracteres relevantes de lo que constituye el
denominado enfoque sistémico: contemplación del todo y no de las partes
aisladamente, acento en las relaciones entre las partes y consideración
teleológica al tener en cuenta los propósitos u objetivos del sistema,
especialmente válida para los sistemas creados por el hombre.
Como se ha puesto de manifiesto en la introducción a esta
colección de monografías [2], la visión o enfoque sistémico es una
consecuencia del paso de una filosofía reduccionista a una filosofía
holística, según la cual los factores determinantes en la naturaleza
son totalidades, como los organismos, que son irreducibles a la suma
de sus partes, y la evolución del universo es el resultado de las
actividades de estas totalidades. En otras palabras, considera que un
todo no puede reducirse a elementos discretos y enfatiza las relaciones
funcionales u orgánicas entre las partes y el todo. En la referencia
mencionada se señala el papel del biólogo Ludwig von Bertalanffy en
la generalización de las aplicaciones de estas ideas a conjuntos
organizados de cualquier naturaleza, lo que denominamos sistemas.
19
La simulación de sistemas
La orientación sistémica a la resolución de problemas reconoce
que el comportamiento de cualquier parte tiene algún efecto sobre el
comportamiento del sistema como un todo, en su desarrollo a partir de
los años veinte ha ido solapando e interaccionando múltiples disciplinas
dando lugar a lo que hoy en día se conoce como Ingeniería de Sistemas,
técnica para utilizar conocimientos procedentes de diferentes ramas de
la ciencia y la ingeniería para introducir innovaciones tecnológicas en
las etapas de concepción, planificación, desarrollo y operación de un
sistema, o lo que es lo mismo, el ciclo de vida de un sistema. Una de las
características principales de las técnicas de la Ingeniería de Sistemas
es su aplicación en situaciones en las que los sistemas son:
· Grandes y complejos.
· En ellos interviene el hombre.
· El cambio en una parte puede afectar a muchas otras y al todo.
Un ejemplo, conceptualmente sencillo, de lo que vamos a
considerar de ahora en adelante como sistemas, tomado del texto casi
iniciático de Gordon [3], y próximo a la vida real, es el siguiente.
Consideremos el caso de una factoría que produce y ensambla diferentes
piezas para fabricar un producto final (Figura 1). En una primera
aproximación a una descripción del sistema podemos considerar que
sus dos componentes principales son el departamento de fabricación
que fabrica las piezas y el de ensamblaje que produce los productos
finales. Hay además un departamento de compras mantiene el suministro
de materias primas y uno de expedición distribuye los productos
acabados. El departamento de control de producción recibe los pedidos
y asigna las órdenes de trabajo a los otros departamentos.
Analizando el ejemplo de sistema propuesto vemos que está
constituido por varios objetos, cada uno de los cuales posee algunas
propiedades interesantes. Detectamos también la existencia de
interacciones entre los objetos que constituyen el sistema que provocan
cambios en el mismo. Denominaremos entidades a los objetos de interés
que constituyen el sistema, atributos a las propiedades que caracterizan
SIMULACIÓN DE SISTEMAS DISCRETOS
20
a las entidades componentes del sistema, y estado del sistema a la
caracterización de las entidades del sistema y sus atributos en un instante
dado. Nos va a interesar el carácter dinámico de los sistemas, es decir
sus cambios de estado a lo largo del tiempo dentro de un horizonte
dado, y en consecuencia nos va a interesar identificar qué es lo que
produce cambios en el estado del sistema. Estudiaremos la evolución
del sistema a partir del seguimiento de sus cambios de estado.
En la factoría las entidades son los departamentos, los pedidos,
las piezas y los productos, cuyos atributos son las cantidades de cada
pedido, el tipo de pieza, el número de máquinas de un tipo dado en un
departamento, etc.. Los procesos de manufactura en cada
departamento son, en este caso, la causa de los cambios de estado.
Acabamos de declarar que nuestro interés se va a centrar en
estudiar la evolución del sistema a partir del seguimiento de sus cambios
de estado. La forma primaria de realizar este estudio seria,
21
La simulación de sistemas
evidentemente, la experimentación con el propio sistema. Esto no
siempre es posible. En unos casos por imposibilidad física o económica
manifiesta, basta pensar en lo que implicaría el experimentar con una
fábrica. En otros, si nos atenemos a lo que hemos denominado ciclo
de vida del sistema, porque el sistema existe únicamente en forma
hipotética y precisamente lo que nos interesa es saber como se
comportará antes de que sea construido.
Como consecuencia lo que haremos será estudiar el
comportamiento del sistema a través de una representación o modelo
del mismo [1].
Llegados a este punto me gustaría subrayar el alto grado de
coincidencia entre las concepciones de la Ingeniería de Sistemas y la
Investigación Operativa, tanto en sus orígenes, como en su
metodología, o su desarrollo histórico, coincidencia que queda de
manifiesto en algunas de las definiciones más comúnmente aceptadas
de la Investigación Operativa.Así, por ejemplo, la definición que aparece
en el «Journal of the Operations Research Society», revista de la
Sociedad Inglesa de Investigación Operativa, dice textualmente1
«La
Investigación Operativa es la aplicación de los métodos de la ciencia a
la resolución de los problemas complejos que aparecen en la dirección
de grandes sistemas en los que intervienen hombres, máquinas,
materiales y dinero, en la industria, los negocios, el gobierno o la
defensa. El planteamiento distintivo es la construcción de un modelo
del sistema que incorpore medidas de factores tales como el azar y el
riesgo, con los que predecir y comparar los resultados de decisiones
alternativas, estrategias o controles. El propósito es ayudar a la
dirección a determinar científicamente su política y acciones», y la
definición más ampliamente difundida, debida a Ackoff y Sasieni, «La
(1) «Operational Research is the application of the methods of science to complex problems arising in
the direction of large systems of men, machines, materials and money in industry, business,
government and defense. The distinctive approach is to build a model of the system incorporating
measurement of factors such as chance and risk, with to predict and compare the outcomes of
alternative decisions, strategies or controls. The purpose is to help management determine its
policy and actions scientifically».
SIMULACIÓN DE SISTEMAS DISCRETOS
22
Investigación Operativa es la aplicación del método científico mediante
equipos interprofesionales a los problemas de gobierno de sistemas
organizados (hombre-máquina) para proporcionar soluciones que
sirvan lo mejor posible a la organización considerada como un todo».
El análisis de estas definiciones nos permite destacar como
características que identifican lo que denominamos Investigación
Operativa las siguientes:
1. Aplicación del método científico a los problemas que se
presentan en el gobierno de sistemas complejos en los que
intervienen hombres y máquinas.
2. Enfoque global (coincidente con lo que hemos denominado
planteamiento sistémico).
3. Construcción de modelos de los sistemas (representación
de los sistemas por medio de modelos).
4. Optimización: búsqueda de las mejores soluciones.
5. Ayuda a los responsables de la gestión del sistema a la
toma de decisiones.
Es decir, enfoque global, metodología científica, representación
de los sistemas por medio de modelos, etc., precisamente lo que hemos
utilizado para caracterizar el enfoque sistémico. Realmente en muchos
casos las fronteras entre lo que podemos considerar propiamente
Ingeniería de Sistemas, y lo que consideramos Investigación Operativa
son solo ideológicas.
1.2. El proceso de construcción de modelos: modelos matemáticos
Elanálisisdelsistemaatravésdeunmodeloimplicaquelarepresen-
tación del sistema que constituye el modelo ha de ser una representación
manipulable numéricamente. El ejercicio de construcción del modelo del
sistema comienza por la construcción de un modelo conceptual del siste-
ma, representación equivalente lógica aproximada del sistema real que,
23
La simulación de sistemas
como tal, constituye una abstracción simplificada del mismo, que a
continuación se traduce en un modelo apto para su ejecución en un
ordenador.El proceso de modelización o construcción del modelo implica:
• Identificación de las entidades principales del sistema y de
sus atributos característicos.
• Identificación y representación de las reglas que gobiernan el
sistema que se quiere simular.
• Captación de la naturaleza de las interacciones lógicas del
sistema que se modeliza.
• Verificación de que las reglas incorporadas al modelo son una
representación válida de las del sistema que se modeliza.
• Representación del comportamiento aleatorio.
Una precaución importante a tener en cuenta cuando se
construye un modelo es que ningún modelo es mejor que las hipótesis
que encierra.Traducir el modelo a un modelo específico para ordenador
consiste en representar el modelo conceptual mediante un lenguaje
apto para su ejecución en un ordenador. Este proceso se simplifica
cuando la representación se hace utilizando un lenguaje especializado
orientado a problemas específicos. Las etapas del proceso de
construcción del modelo se sintetizan en la Figura 2 [4] .
Siguiendo el ejemplo introductorio de la factoría, ilustraremos el
proceso de modelización con un ejemplo que intenta reproducir, dentro
de su simplicidad, los procesos productivos del departamento de
fabricación, componente de suficiente entidad como para ser considerada
un sistema en sí misma. Supondremos que el departamento de
fabricación consta de un taller en el que hay diferentes conjuntos de
máquinas del mismo tipo, que realizan distintas operaciones sobre las
piezas que se fabrican, de manera que las mismas materias primas
SIMULACIÓN DE SISTEMAS DISCRETOS
24
sometidas a diferentes procesos en dichas máquinas pueden dar lugar
a diferentes productos. Lo que caracteriza entonces al proceso de
producción de cada uno de los productos es una secuencia de
operaciones, según un orden definido por el programa de producción,
en cada una de las máquinas, con una duración determinada de cada
operación a la que es sometida cada pieza en cada tipo de máquina.
En nuestro ejemplo vamos a suponer que el taller de producción
tiene 6 grupos de máquinas diferentes, cada uno de los cuales está
constituido por un cierto número de máquinas de una clase que
suponemos idénticas entre sí. Así, por ejemplo el grupo número uno
consiste en 14 unidades de fundición y moldeo, el grupo 2, en 5 tornos,
etc. La Tabla 1 resume la información sobre los grupos de máquinas y
su constitución.
Al considerar idénticas las máquinas de cada grupo no
necesitamos distinguirlas entre sí, y al describir el proceso a que es
25
La simulación de sistemas
sometida cada pieza lo único que necesitamos es saber si hay una
máquina disponible en el grupo que le corresponde según la secuencia
particular de operaciones para ese tipo de pieza, o si tiene que esperar
a que alguna quede libre porque en ese momento están todas
ocupadas. La descripción de cada uno de los grupos de máquinas,
sus características y el tipo de operaciones que pueden realizar
constituye, en este caso el ejercicio de identificación de las entidades
componentes del sistema (cada uno de los grupos), y de los atributos
que las caracterizan (tipos de máquinas, número de máquinas en cada
grupo, operaciones que pueden realizar).
Vamos a suponer además que el plan de producción del taller
de nuestro ejemplo contempla la fabricación de tres tipos de productos,
que denominaremos tipo-1, tipo-2 y tipo-3 respectivamente. La
fabricación de cada unidad de un tipo de producto requiere que las
operaciones se realicen en diferentes clases de máquinas según
secuencias especificadas que difieren de un tipo de producto a otro.
SIMULACIÓN DE SISTEMAS DISCRETOS
26
El número total y clase de máquinas que debe utilizar la
fabricación de cada tipo de producto, las correspondientes secuencias
y los tiempos de trabajo previstos, se muestran en la Tabla 2, que
proporciona datos adicionales en nuestro ejercicio de análisis del
sistema, identificando las otras entidades (los tipos de producto
fabricado), y las relaciones entre entidades especificadas a partir de
las operaciones que requiere la fabricación de cada tipo de producto,
el orden en que se han de ejecutar y los tiempos medios que requiere
cada operación en cada tipo de máquina.
Los tiempos de operación indicados en la tabla son tiempos
medios, y por simplicidad vamos a considerar que están distribuidos
exponencialmente. Supondremos que los trabajos llegan al taller según
un flujo descriptible por medio de una distribución de Poisson cuya
tasa media es de 50 trabajos por día de 8 horas. Un 24% de los trabajos
que llegan corresponden a la fabricación de productos tipo-1, un 44%
son de tipo-2 y el resto de tipo-3. Cuando un trabajo que llega es de un
27
La simulación de sistemas
tipo dado, este es independiente, en términos probabilísticos, del tipo
de producto del trabajo que le precedió. Supondremos además que la
disciplina de servicio dentro de cada grupo de máquinas es FIFO, es
decir primer trabajo llegado es el primero en ser servido
independientemente de su tipo. Esta colección de suposiciones
constituyen en este caso las hipótesis adicionales sobre el
comportamiento del sistema que serán el instrumento del proceso de
modelización.
Como objetivos del estudio del sistema supondremos que nos
interesa estudiar el comportamiento del taller, en estas condiciones de
operación para la clase de demanda descrita, durante un período de 5
semanas, de 5 días laborables cada una, con jornadas de 8 horas por
día. Nos interesa en particular analizar la distribución de los trabajos
que quedan incompletos al final de cada semana, el número medio de
trabajos de cada tipo que se producen por semana, la capacidad media
total de producción del taller para este programa de producción, y por
lo tanto la capacidad para cumplir determinados planes de producción.
El nivel medio de ocupación de las máquinas de cada grupo para
identificar cuellos de botella en el proceso productivo, etc.
De acuerdo con la metodología propuesta, el primer paso es la
construcción de un modelo conceptual. En este caso, a partir de la
información recogida, un modelo conceptual de este sistema puede
ser un modelo descriptivo del proceso productivo como el que reproduce
la Figura 3. En ella el proceso se modeliza como una red de colas. Es
decir un grafo o red cuyos nodos corresponden a cada uno de los
grupos de máquinas, y cuyos arcos unen los nodos entre si de acuerdo
con los itinerarios entre los grupos de máquinas, que corresponden a
las etapas u operaciones de cada tipo de producto en cada grupo de
máquinas.
Considerado individualmente cada grupo de máquinas
corresponde en esta modelización a un sistema de colas, es decir el
tipo de sistema para las situaciones que se producen cuando llegan
SIMULACIÓN DE SISTEMAS DISCRETOS
28
29
La simulación de sistemas
personas, equipos o materiales a algún tipo de unidad o dispositivo de
servicio demandando la recepción del servicio que dicha unidad puede
prestar: ejecución de una operación, una reparación etc., y tienen que
esperar a ser atendidos cuando el dispositivo que dispensa el servicio,
o sirviente, está ocupado.
Los sistemas de colas se encuentran muy generalizados en
una amplia variedad de contextos. Así, por ejemplo, en el análisis de
procesos de producción, como el que nos ocupa en ejemplo, interesan
especialmente los sistemas de colas que se originan como
consecuencia de los procesos industriales, como por ejemplo, los
sistemas de «manejo de materiales», en los que unidades
manipuladoras de materiales (carretillas elevadoras, puentes grúa,
cintas transportadoras, transervadores, etc.) mueven cargas de un
punto a otro de la factoría; sistemas de producción en los que las
máquinas (máquinas herramienta, robots, etc.) realizan trabajos sobre
materiales o piezas; sistemas de mantenimiento, en los que las
brigadas de mantenimiento reparan máquinas o proceden a las
operaciones de mantenimiento preventivo; puntos de control de
calidad o inspección, donde los inspectores de control inspeccionan
los artículos, etc.
La Figura 4 describe gráficamente los elementos principales de
la estructura de los sistemas de colas, es decir las entidades que los
constituyen y sus atributos correspondientes.
I. Población fuente
Es el origen de las entidades que requieren el servicio, máquinas
que han de ser mantenidas o reparadas, piezas sobre las que se han
de ejecutar operaciones, cargas que han de ser transportadas, etc..
La característica básica de la población fuente es su dimensión, finita
o infinita. En la práctica el número de máquinas que han de ser
atendidas por un servicio de mantenimiento seria un ejemplo de
SIMULACIÓN DE SISTEMAS DISCRETOS
30
población finita, mientras que las piezas que llegan a una máquina
para ser sometidas a una operación, aunque en si es un número finito,
su tamaño puede ser tan grande en relación con la capacidad de
servicio, que sin introducir un error apreciable puede considerarse a
efectos de modelización como una población infinita.
II. El proceso de llegadas
Se refiere a la formalización de la descripción de cómo tienen lugar
las llegadas al sistema de colas de las unidades que requieren servicio,
es decir la formalización de las reglas que rigen la generación de la
necesidad de recibir un servicio. Los procesos de llegadas pueden ser
deterministas o aleatorios. Un proceso de llegadas determinista es el que
está sometido a unas reglas prefijadas, como por ejemplo un calendario
de mantenimiento preventivo, que especifican en que momento preciso
se producirá el acontecimiento de requerimiento del servicio.
31
La simulación de sistemas
En general los procesos de llegadas serán aleatorios, es decir que
nuestro conocimiento del proceso nos permite, como máximo, establecer
cuál es la probabilidad de que el suceso se produzca en un momento
dado. Así, por ejemplo la avería de una máquina no se puede predecir
conexactitud,loúnicoquesepuedeestimar eslavidamediadelamáquina
y la ley de distribución de probabilidad de los períodos de tiempo entre
averías de tal media.
Para la descripción formal de los procesos de llegada se pueden
adoptar dos puntos de vista. Podemos observar los intervalos de tiempo
entre llegadas consecutivas y ajustar una distribución de probabilidad
que los describa, de manera que el intervalo de tiempo, aleatorio, entre
una llegada al sistema y la inmediatamente posterior, pueda estimarse
por muestreo de la distribución de probabilidad que los describe. Otra
posibilidad es especificar un intervalo de tiempo de longitud dada T, y
determinar la distribución de probabilidad del número de llegadas que
pueden ocurrir durante dicho intervalo de tiempo. La Figura 5 ilustra
gráficamente los dos procedimientos
Un ejemplo típico de modelización de llegadas aleatorias es el
de los procesos de Poisson. Las llegadas de los clientes a la unidad
de servicio pueden modelizarse mediante una distribución de Poisson
cuando:
1) El número de llegadas que ocurren en un intervalo de tiempo
T es independiente de las que ocurren en cualquier otro
intervalo de tiempo disjunto.
2) La probabilidad de que se produzca una sola llegada en un
intervalo de tiempo muy corto, es proporcional a la duración
del intervalo de tiempo, y no depende del número de llegadas
fuera de este intervalo de tiempo.
3) La probabilidad de que ocurra más de una llegada en dicho
intervalo de tiempo corto es insignificante.
SIMULACIÓN DE SISTEMAS DISCRETOS
32
La distribución de Poisson es una distribución discreta que puede
utilizarse en la modelización de procesos de llegadas en las que cada
llegada es independiente de las restantes y tiene la misma probabilidad
de producirse en cada instante. Se puede utilizar en la segunda clase de
aproximación que mencionábamos anteriormente, cuando estamos
interesados en el número de llegadas que se producen durante un intervalo
de tiempo T.
La probabilidad de que se produzcan n llegadas durante el
intervalo de tiempo T según un proceso Poissoniano viene dada por:
( )
( )
P n
T e
n
T
n T
=
-
l l
!
(1.1)
siendo l la tasa media de llegadas por unidad de tiempo. La experiencia
indica que muchos procesos de llegadas son razonablemente
representados por procesos Poissonianos.
33
La simulación de sistemas
Hay una importante relación entre la distribución de Poisson y la
exponencial, descrita por la función de probabilidad:
( )
f t e t
= -
l l
(1.2)
Si las llegadas de los usuarios a un sistema ocurren de acuerdo con
una distribución de Poisson, entonces la distribución de probabilidad de los
intervalos de tiempo entre llegadas consecutivas es exponencial, lo que
proporcionaunarepresentacióndelprocesoaleatoriodellegadasdeacuerdo
conelprimerpuntodevistaexpuestoanteriormente. En este caso el tiempo
medio entre dos llegadas consecutivas es de 1/l unidades de tiempo.
III. Características físicas de las colas
Cuando la unidad que requiere el servicio llega al sistema puede ocu-
rrir que la unidad de servicio se encuentre ocupada atendiendo a un reque-
rimiento anterior, en cuyo caso la unidad recién llegada tendrá que esperar
a que la unidad de servicio quede libre para pasar a ocuparla. La espera
se realizará físicamente en lo que denominamos cola o fila de espera.
En la descripción de la cola para proceder a su modelización una
primera característica a tener en cuenta es la longitud de la cola. Las dos
situaciones relevantes que hay que distinguir son las que corresponden a
las de colas de longitud infinita y finita respectivamente. En el primer caso
se supone que no hay ninguna restricción práctica o teórica que limite la
longitud de la cola, es decir el número de unidades a la espera de recibir
servicio. Un ejemplo de tal situación es la representación como modelo
de colas del puesto de peaje de una autopista, en el que la población
fuente, constituida por todos los vehículos que circulan por la autopista,
puede considerarse prácticamente infinita, y las longitudes de las colas
también, por no tener ninguna limitación a priori.
Sin embargo en otras situaciones las características físicas del
sistema limitan el número de unidades que pueden permanecer a la espera
SIMULACIÓN DE SISTEMAS DISCRETOS
34
de recibir servicio, es, por ejemplo, el caso de los almacenes intermedios
entre máquinas que realizan operaciones sobre piezas. En el caso de
colas de longitud finita, cuando estas han alcanzado su límite ha de
decidirse el tratamiento a dar a las unidades que por ello no pueden entrar
en el sistema.
Otra característica descriptiva del sistema de colas es si la cola es
única o múltiple, y las relaciones entre las colas y las unidades de servicio
puesto que caben varias posibilidades: cola y unidad de servicio únicos,
varia colas y una sola unidad de servicio, una cola y varias unidades de
servicio, etc.
IV. Procedimiento de selección (política de gestión)
La cuarta componente estructural de un sistema de colas, según la
descripción presentada en la Figura 4, es el sistema de selección, o política
de gestión del sistema de colas. Por tal entendemos el criterio seguido
para elegir la siguiente unidad que va a recibir servicio cuando la unidad
de servicio queda libre al terminar el servicio de la unidad que estaba
siendo atendida.
La política de gestión queda definida mediante la especificación de
la disciplina de la cola, es decir, de la regla o reglas que determinan el
ordenporelquesorservidaslasunidadesquerequierenservicio.Ejemplos
de disciplinas de servicio son: «el primero que llega es el primero que es
servido», (FIFO: first-in-first-out), «el último que llega es el primero en ser
servido», (LIFO: last-in-first-out), por prioridades predefinidas, por tiempos
de servicio mayores, por mayor tiempo de espera, etc.
V. Unidades de servicio (servidores)
Es una de las componentes estructurales más importantes, su
especificación requiere la definición de la estructura física de la unidad
35
La simulación de sistemas
de servicio: estación de servicio única (servicio único monofase),
estaciones de servicio en tandem (servicio multifase, el servicio consta
de una secuencia de operaciones), múltiples estaciones monofásicas
en paralelo, múltiples estaciones de servicio multifase en paralelo,
sistemas mixtos, etc..
La especificación de la estructura física debe completarse mediante
la descripción de la ley de distribución de probabilidad que rige la duración
de los procesos de servicio. Un caso típico de distribución de probabilidad
de tiempos de servicio es la exponencial, según la cual la probabilidad de
que la duración de un servicio sea de t unidades de tiempo es:
( )
f e
t m mt
= -
(1.3)
A partir de la especificación de las componentes del sistema de
colas los parámetros que describen su comportamiento y prestaciones
son:
l = tasa media de llegadas por unidad de tiempo.
m = tasa media de servicio (número medio de servicios
completados por unidad de tiempo).
r = factor de utilización de la unidad de servicio.
N = número de unidades en el sistema.
Pn
= probabilidad de que cuando una unidad llega al sistema para
recibir servicio haya exactamente n unidades en el sistema.
L = número medio de unidades en el sistema.
Lq
= número medio de unidades en la cola a la espera de recibir
servicio.
W = tiempo medio de estancia en el sistema para cada unidad
(tiempo de espera + tiempo de servicio).
Wq
= tiempo medio de espera en la cola (desde que llega hasta
que empieza a ser servido).
Parámetros cuyos valores fundamentarán los posibles procesos
de decisión de sistemas modelizados mediante colas, como por
SIMULACIÓN DE SISTEMAS DISCRETOS
36
ejemplo, evaluar los costes o las pérdidas causados por tiempos de
desocupación de máquinas, como medida de la ineficiencia del proceso,
tiempos totales de producción, identificación y cuantificación de cuellos
de botella, etc.
VI. Nomenclatura de los sistemas de colas
La notación que se utiliza para designar los diferentes tipos de
sistemas de colas, de acuerdo con las componentes que hemos
descrito, consisten en una serie de campos A/B/C/D/..., cada uno de
los cuales especifica una de las componentes de acuerdo con la
notación siguiente: los campos A y B describen las distribuciones de
probabilidad de los tiempos entre llegadas consecutivas y de servicio
respectivamente, el valor de C representa el número de servidores
monofase idénticos, en paralelo, en el subsistema de servicio, el valor
de D la longitud de la cola, cuando es finita, (si se omite, se asume que
es infinita por defecto), etc.
La notación para identificar a las diferentes distribuciones de
probabilidad es la siguiente:
M: Distribución exponencial.
D: Determinista (tiempos entre llegadas, o de servicio,
constantes).
Ek
: Distribución de Erlang de k etapas.
Hk
: Distribución hiperexponencial de k etapas.
G: Distribución general (Normal, Weibull, etc.).
GI: Distribución general de llegadas.
De acuerdo con esta notación M/M/1 representa una cola
con un único sirviente, llegadas según una distribución de Poisson
(y por lo tanto tiempos entre llegadas distribuidos exponen-
cialmente), y tiempos de servicio distribuidos exponencialmente.
M/M/m representa una cola de llegadas poissonianas, servicios
37
La simulación de sistemas
exponenciales idénticamente distribuidos, y m sirvientes en
paralelo. M/G/1, seria una cola de llegadas poissonianas, servicio
según una distribución de probabilidad de carácter general, y un
único sirviente.
Volviendo a nuestro ejemplo, el taller es modelizado como un
sistema de colas al que los clientes llegan según una corriente
poissoniana, pero no son homogéneos sino de tres tipos distintos
cuyas proporciones corresponden a los tipos de producto. El cliente
(tipo de producto) es identificado y según la clase a la que pertenece
se le asigna una ruta dentro de la red, ruta que corresponde a la
secuencia de operaciones del proceso productivo del tipo de
producto en cuestión. Cada nodo de la red corresponde a un grupo
de máquinas, modelizado como una cola con tantos sirvientes
idénticos como máquinas tiene el grupo. Con las hipótesis
propuestas (tiempos de operación en las máquinas
exponencialmente distribuidos) cada nodo de la red corresponde a
una cola M/M/n.
La traducción del modelo conceptual al modelo de ordenador
suele comportar dos pasos, en el primero se formaliza el modelo y
en el segundo se programa el modelo en un lenguaje apto para su
ejecución en el ordenador.
En lo que respecta a la formalización del modelo,
tradicionalmente se han utilizado muchos tipos de modelos en el
análisis de sistemas, clasificados de diferentes modos. Para los
propósitos que nos interesan en esta descripción vamos a considerar
únicamente los modelos matemáticos de los sistemas, es decir
modelos en los que la representación formal del sistema que
entendemos por modelo se hace en términos del formalismo de las
matemáticas, los modelos matemáticos pueden ser a su vez
estáticos o dinámicos. En el caso de los modelos matemáticos
hemos de hacer referencia a la técnica utilizada para resolver el
modelo, según la cual distinguiremos entre métodos analíticos y
SIMULACIÓN DE SISTEMAS DISCRETOS
38
numéricos. La simulación de sistemas es una técnica numérica que
utiliza modelos matemáticos dinámicos.
En un modelo matemático las entidades de un sistema y sus
atributos se representan mediante variables matemáticas,
clasificadas en variables de control y variables no controlables,
según que los valores que puedan tomar puedan ser el resultado
de una decisión o vengan determinados por las características del
propio sistema. Las actividades que cambian el estado del sistema
se describen por medio de funciones matemáticas que
interrelacionan las variables. Los objetivos del sistema se
representan mediante una función de utilidad, o función objetivo,
que evalúa el rendimiento del sistema como una función de los dos
tipos de variables controlables y no controlables.
La forma general de un modelo matemático propuesta por Ackoff
[5] es:
U = f(X, Y) (1.4)
sometida a:
X Î W(Y) (1.5)
donde U es la función de utilidad, dependiente de las variables de
control X = (X1
, X2
, ...., Xn
), y de la no controlables Y = (Y1
, Y2
, .....,
Ym
), donde las variables de control pueden tomar valores en el
dominio de definición W(Y), que depende de las variables no
controlables.
Puesto que en la mayor parte de los casos el objetivo que se
persigue es el de determinar cuáles son las mejores decisiones, o en
otras palabras, que valores de las variables de decisión optimizan la
función de utilidad, y dado que como hemos dicho en los modelos
matemáticos las relaciones entre las variables son funciones
matemáticas, la forma genérica que adoptaremos para los modelos
39
matemáticos es:
[OPT]U = f (X, Y) (1.6)
sometida a:
Rk
(X, Y) (£, =, ³) bK (1.7)
k = 1, 2, ..... K
donde Rk
(X, Y) es la k-ésima ecuación o inecuación de condición
que traduce las relaciones funcionales entre las variables.
Un modelo matemático de tipo dinámico permite que los
cambios en los atributos del sistema sean expresados como una
función del tiempo, bien mediante una solución analítica o por medio
de una computación numérica, según sea la complejidad del modelo.
Supongamos, por ejemplo, el sistema correspondiente a la suspensión
de una rueda de automóvil cuando se supone que la carrocería
permanece inmóvil en la dirección vertical. El sistema puede ser
representado como el caso de una masa M, sometida a una fuerza
F(t), que varia con el tiempo, y ligada a un muelle cuya fuerza es
proporcional a su extensión o contracción, y al efecto de un absorbente
de los impactos que ejerce una fuerza de amortiguación proporcional
a la velocidad de la masa. El movimiento del sistema puede describirse
por medio de la siguiente ecuación diferencial:
( )
Mx Dx Kx KF t
&& &
+ + = (1.8)
donde x es la distancia que se ha desplazado, M es la masa, K es la
constante elástica del muelle, y D es el factor de amortiguación de los
impactos. Las componentes del sistema son en este caso la rueda, el
muelle y el sistema amortiguador, y las hipótesis de modelización son
las de la dinámica de un cuerpo sometido a la acción de fuerzas
elásticas, que son las que conducen a la ecuación diferencial que
configura el modelo. Esta ecuación es un ejemplo de modelo
matemático dinámico; una ecuación que en este caso puede ser
resuelta analíticamente.
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
40
En otros casos la naturaleza de las ecuaciones que
constituyen el modelo continuo hace aconsejable recurrir a
procedimientos numéricos para su integración. Un ejemplo
interesante de esta situación lo constituyen los modelos utilizados
para estudiar la dinámica de poblaciones. Un caso típico es el de la
dinámica de la competición entre dos poblaciones una pasiva, que
sirve de presa, y otra activa, depredadora de la anterior. Modelos
de este tipo fueron introducidos por Volterra [6] en 1926 como modelo
biológico para estudiar la evolución de la población piscícola en el
Adriático. Supongamos un escenario que consiste en dos
poblaciones que interaccionan la de los depredadores y la de las
presas. Denotemos por x(t) e y(t), respectivamente, el numero de
individuos de cada población, presas y depredadores, en el instante
t. Supongamos que, en ausencia de los depredadores las
condiciones de vida del escenario permiten que la población de las
presas se incremente según la tasa rx(t), para algún r positivo, donde
r puede interpretarse, por ejemplo, como la tasa natural de
nacimientos menos la de muertes naturales. Debido a la interacción
entre presas y depredadores es razonable suponer que la tasa de
muertes de la población de presas es proporcional al producto de
las dimensiones de ambas poblaciones, x(t) y(t). Por lo cual la tasa
total de cambio del número de individuos de la población de presas,
dx/dt, viene dada por:
( ) ( ) ( )
dx
dt
rx t ax t y t
= - (1.9)
donde a es una constante de proporcionalidad positiva. Puesto que
los depredadores dependen a su vez de las presas para perpetuar
su existencia, la tasa de variación del número de individuos de la
población de depredadores es -sy(t), para s positiva, en un escenario
en el que no haya presas, mientras que en el caso contrario la
interacción entre ambas poblaciones hará que la población de
depredadores se incremente según una tasa que también será
proporcional a x(t)y(t). En consecuencia la variación de la población
de depredadores se podrá modelizar como:
41
( ) ( ) ( )
dy
dt
sy t bx t y t
= - + (1.10)
donde b es una constante de proporcionalidad positiva. Este sistema
de ecuaciones diferenciales modeliza el comportamiento de la
población. Dadas unas condiciones iniciales x(0) > 0 e y(0) > 0, las
soluciones del modelo tienen la interesante propiedad de que x(t) > 0
e y(t) > 0 para todo t ³ 0.
Modelos similares habían sido utilizados ya en 1920 por Lotka [7],
para modelizar ciertos tipos de reacciones químicas, por esta razón este
tipo de modelos se conocen con el nombre de modelos de Lotka-Volterra.
La Figura 6 presenta el resultado de la integración del sistema
de ecuaciones diferenciales de Lotka-Volterra para los valores de
los parámetros r = 0,001, a = 2 x 10-6
, b = 10-6
, y s = 0,01. La curva
superior representa la evolución de la población de presas en el
intervalo de tiempo (0,4000), y la inferior la evolución de la población
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
42
de depredadores en el mismo intervalo de tiempo. La Figura 7
presenta la evolución conjunta en el intervalo de tiempo (0,6000).
Los resultados de la integración del modelo dinámico presa-
depredador de Lotka-Volterra, representados en las figuras
anteriores, han sido obtenido mediante el software numérico
MATLAB [8] .
Modelos dinámicos del tipo de los anteriores constituyen en
estos momentos una de las áreas de investigación de más interés,
no sólo por la proliferación de modelos de sistemas dinámicos que
han propiciado los avances tecnológicos, sino también por que se
sitúan en el corazón de la teoría del caos [9, 10] .
En el caso del taller de manufactura modelizado como una red
de colas podemos construir modelos analíticos para los modelos de
colas que representan cada uno de los grupos de máquinas. Para una
43
cola M/M/s, si el tiempo medio entre llegadas consecutivas es 1/l, y el
tiempo medio de servicio es 1/m, y el factor de utilización, cuando hay
s unidades de servicio operando en idénticas condiciones es:
r
l
m
=
s (1.11)
una relación fundamental es la que liga la longitud media de la cola, número
medio de unidades en la cola, con el tiempo medio de espera en ella:
L W
q = l (1.12)
análogamente:
L W y W Wq
= = +
l
m
1
(1.13)
Son las relaciones entre el número total de clientes en el
sistema (los que esperan más los que están siendo atendidos), L, y
el tiempo total de permanencia en el sistema (espera más servicio),
W; y entre la permanencia en el sistema W, y la espera en la cola
Wq
. Estas relaciones, correspondientes al Teorema de Little, se
puede comprobar que se verifican para todo sistema de colas, por
lo que únicamente necesitamos determinar dos de los parámetros,
L y Lq
, por ejemplo, para poder determinar los restantes.
El cálculo de cualquiera de dichos parámetros puede realizarse
mediante las ecuaciones del modelo teórico correspondiente. Por ejemplo
para una cola M/M/1 el modelo teórico proporciona los valores:
(1.14)
( )
( )
( )
P
W
L
n
n
q
q
= -
=
-
=
-
1
1
1
2
r r
r
r m
r
r
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
44
y para una cola M/M/s:
( ) ( )
( )
( )
( )
P
s
k
s
s
P
s
k
P s
P P k s
L
P s
s
W
L
k
k
s s
k
k
k
k s
s
q
s
q
q
0
1
1
1
0
0
2
1
1
1
12
1
= + +
-
æ
è
ç
ö
ø
÷
é
ë
ê
ê
ù
û
ú
ú
= =
= >
=
-
=
=
-
-
-
å
r r
r
r
r
r r
r l
! !
!
, , ,
!
,
k K
(1.15)
Estas son las soluciones analíticas para un modelo teórico que
puede ser resuelto exactamente [11,12], y corresponden a la situación
para el estado estacionario, es decir cuando la evolución del sistema ha
alcanzado el equilibrio.
Las hipótesis simplificadoras que hemos introducido (llegadas
poissonianas, servicios exponenciales) permiten además construir
un modelo analítico para esta red de colas [11,12] . Este tipo de
modelización analítica se puede conservar en este caso incluso
complicando algunas de las hipótesis probabilísticas, como por ejemplo
las de los tiempos de servicio, sustituyendo las distribuciones
exponenciales por otras, cuyo requisito, de acuerdo con el Teorema de
Jackson, es que tengan Transformada de Laplace racional, aun cuando,
como en el caso de las colas simples, la obtención de la solución analítica
se va haciendo cada vez más compleja, llegamos pues, a una situación
que, aunque modelizable analíticamente, llega rápidamente a los límites
de lo que los modelos analíticos nos permiten, bastaría simplemente
con suponer que los diferentes tipos de trabajo tienen distintas prioridades
para tener que sustituir la política de gestión FIFO en cada nodo por una
política según prioridades y llegar a un modelo casi intratable.
Cerraremos esta exposición sobre modelos dinámicos con el
ejemplo de los Modelos Macroscópicos de Simulación de Tráfico. La
45
perspectiva de la modelización macroscópica de los flujos de tráfico
es la de adoptar un símil hidráulico, es decir visualizar el flujo de
vehículos como flujo o corriente de un fluido continuo, es una
asociación natural bastante intuitiva, que de hecho ya se adopta
cuando se tiende a describir el tráfico en términos de volúmenes (o
flujos), concentraciones (o densidades) y velocidades. En la analogía
como flujo de un fluido, el tráfico es tratado como un fluido
unidimensional comprensible, lo que conduce a dos hipótesis básicas
de modelización:
a. El flujo de tráfico se conserva.
b. Hay una relación en términos de una función univaluada
entre la velocidad y la densidad, o entre el flujo y la densidad.
En el modelo matemático la primera hipótesis se traduce en la
denominada ecuación de conservación o de continuidad, que implica
que si el flujo disminuye con la distancia la densidad se incrementa
con el tiempo. En términos prácticos de ingeniería de tráfico la ecuación
de conservación implica que en cualquier sistema de tráfico el flujo de
entrada es igual al de salida más el almacenado en el sistema. Está
hipótesis se acepta, en general, sin mayor controversia, como un
supuesto obvio.
No ocurre lo mismo, sin embargo, con la segunda hipótesis,
que ha levantado y sigue levantando una gran controversia, en parte
porque no siempre se entiende y porque las medidas son
contradictorias. Concretamente si la velocidad (u) es una función de la
densidad como consecuencia los conductores ajustan su velocidad de
acuerdo con la densidad, es decir cuando la densidad aumenta la
velocidad disminuye. Esto es intuitivamente correcto pero teóricamente
puede conducir a velocidades o densidades negativas. Por otra parte,
se ha observado que para el mismo valor de la densidad pueden
medirse muchos valores de la velocidad. Todo ello conduce a la
necesidad de matizar esta hipótesis. La matización consiste en
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
46
considerar que la velocidad (o el flujo) es una función de la densidad
únicamente en el equilibrio, y puesto que es muy raro poder observar
el equilibrio es difícil obtener una relación velocidad-densidad
satisfactoria, lo que lleva en la práctica a proponer una relación teórica.
Esta dificultad ha llevado a algunos investigadores a relativizar la
importancia de los modelos continuos o a tratar de simplificarlos. Sin
embargo, como demuestran recientes aplicaciones al control y a
estudios de simulación los modelos continuos tienen todavía un gran
potencial de aplicaciones que aún no ha sido explotado en todas sus
posibilidades.
La exposición del modelo continuo simple es un resumen de
materiales procedentes de las referencias [13,14,15] .
Admitiendo estas dos hipótesis de modelización la ecuación de
continuidad puede derivarse fácilmente considerando una sección de
carretera continua unidireccional con dos estaciones de contaje 1 y 2
aguas arriba y aguas abajo respectivamente, con un espaciado Dx
entre ellas; suponemos además que no hay fuentes ni sumideros en el
espacio Dx, es decir que no hay generación ni disipación de flujo en la
sección considerada.
Sea Ni
el número de vehículos (volumen) que pasa por la
estación i durante el período de tiempo Dt, y qi
el flujo que pasa por
la estación i; Dt es la duración del contaje simultáneo en las
estaciones 1 y 2. Sin pérdida de generalidad podemos suponer que
N1
> N2
; puesto que no hay desaparición de vehículos en Dx esta
hipótesis implica que hay un incremento del número de vehículos
entre la estación 1 y la 2. Sea DN = (N2
- N1
), negativo. A partir de
estas definiciones tenemos:
N t q
N t q
N t q
N N
t
N q t
1 1
2 2
2 1
/
/
/
D
D
D D D
D
D D D
=
=
= =
-
® =
(1.16)
47
La simulación de sistemas
Entonces el incremento del número de vehículos entre las
estaciones durante Dt será de (-Dq) Dt. Si Dx es lo suficientemente
corto como para que la densidad (concentración) k en él sea
uniforme entonces el incremento de densidad Dk entre las estaciones
1 y 2 durante el período Dt es
( )
D
D
D
D
k
N N
x
N
x
=
- -
=
-
2 1
(1.17)
Esto significa que el incremento del número de vehículos es
-DN = DkDx, y cómo el número de vehículos se conserva, entonces
-(Dq Dt) = DkDx, de donde:
D
D
D
D
q
x
k
t
+ = 0 (1.18)
Si ahora consideramos el medio continuo y permitimos que los
pequeños incrementos se hagan infinitesimales, en el límite:
¶
¶
¶
¶
l
x
k
t
+ = 0 (1.19)
La ecuación (1.19) expresa la ley de conservación de una
corriente de tráfico y se conoce con el nombre de ecuación de
conservación o de continuidad, es una ecuación similar a la
correspondiente para el flujo de un fluido. Si dentro de la sección de
carretera existen fuentes o sumideros, como por ejemplo rampas de
entrada o salida, entonces la ecuación de conservación adopta la
forma general:
( )
¶
¶
¶
¶
l
x
k
t
g x t
+ = , (1.20)
donde g(x,t) es la tasa de generación (o disipación) expresada en
vehículos por unidad de tiempo y unidad de longitud.
Los primeros que propusieron la resolución de la ecuación de
conservación y su aplicación al tráfico fueron Lighthill y Whitham [16]
Michalopoulos et al. [8,17,18] han desarrollado una de las
SIMULACIÓN DE SISTEMAS DISCRETOS
48
implantaciones más recientes para el análisis por simulación de los
flujos de tráfico en autopistas, y sus aplicaciones al control de tráfico,
que ha dado lugar al software KRONOS [19] para simulación de tráfico.
La ecuación (1.20) es una ecuación de estado que puede utilizarse
para determinar analítica o numéricamente el flujo en cualquier sección
de la autopista. El atractivo de esta ecuación reside en que relaciona dos
variables fundamentales dependientes, la densidad y el flujo, con dos
independientes, el tiempo t y el espacio x. La solución de la ecuación
(1.20) es imposible sin una ecuación, o hipótesis adicional. La primera
alternativa suele conducir a los denominados modelos de orden superior
a través de la consideración de la denominada ecuación de momento. La
segunda opción, la que se adopta habitualmente en los modelos continuos
simples, establece que el flujo es una función de la densidad, es decir
q = f(k). Esta hipótesis, o su equivalente u = f(k), es muy razonable, como
hemos discutido un poco más arriba, pero sólo se verifica en el equilibrio.
Esta hipótesis, combinada con la ecuación fundamental q = ku, permite
reescribir la ecuación de conservación de la forma:
( )
f k k
df
dk
k
x
k
t
+
é
ë
ê
ù
û
ú + =
d
d
d
d
0 (1.21)
Debe observarse que f(k) puede ser una función cualquiera y
no es necesario formular hipótesis adicionales para mantener la
generalidad de los resultados. Habitualmente se suele utilizar una
relación lineal, como la propuesta por Greenshields:
u u
k
k
f
j
= -
æ
è
çç
ö
ø
÷÷
1 (1.22)
donde uf
es la velocidad en condiciones de flujo libre, y kj
es la
densidad de congestión, aunque parece dar mejores resultados
una relación más general como:
u u
k
k
f
j
= -
æ
è
çç
ö
ø
÷÷
é
ë
ê
ê
ù
û
ú
ú
1
a b
(1.23)
49
donde a y b son parámetros que se pueden calibrar.
La ecuación (1.21) es una ecuación diferencial en derivadas
parciales de primer orden, casi-lineal, que se puede resolver por el
método de las características. Los detalles de la solución pueden
encontrarse en la referencia citada de Lighthill y Whitham [16]. La
solución de la ecuación sugiere que:
1. La densidad k es una constante a lo largo de una familia de
curvas denominadas características u ondas; una onda
representa la propagación de un cambio de flujo y densidad
a lo largo de la autopista.
2. La características son líneas rectas que parten de las
fronteras del dominio espacio-temporal.
3. La pendiente de las características es ( )
[ ]
dx
dt
f k k f k
dq
dk
= + =
( ) ,
lo que implica que las características tienen una pendiente
igual a la de la tangente a la curva flujo-densidad en el punto
que representa las condiciones de flujo en la frontera de
donde parte la característica.
4. La densidad en cualquier punto (x, t) del dominio espacio
tiempo puede obtenerse dibujando la característica que pasa
por dicho punto.
5. Las características transportan el valor de la densidad (y el
flujo) de la frontera de la que proceden.
6. Cuando dos características se cortan entonces la densidad en
el punto de intersección debería tener dos valores, lo que no
es factible físicamente; esta discrepancia se puede explicar
por la generación de ondas de choque. En otras palabras,
cuando dos características intersectan se genera una onda de
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
50
choque y se terminan las características. Una onda de choque
representa una discontinuidad matemática (cambio abrupto)
en k, q ó u.
7. La velocidad de la onda de choque es u
q q
k k
w
d u
d u
=
-
-
, donde kd
,
qd
representan las condiciones del flujo aguas abajo, y ku
, qu
aguas arriba. En la curva flujo concentración la velocidad de
la onda de choque está representada por la pendiente de la
recta que conecta ambos puntos, aguas arriba y aguas abajo.
Hay que resaltar que cuando uw
es positiva la onda de choque
se desplaza aguas abajo con respecto a la autopista, mientras que
cuando es negativa lo hace aguas arriba. El mero hecho de que exista
una diferencia en las condiciones de flujo aguas arriba y aguas abajo
no implica que se genere una onda de choque a menos que sus
características intersecten. Generalmente esto sólo ocurre cuando
la densidad aguas abajo es mayor que aguas arriba. Cuando la
densidad aguas abajo es menor que aguas arriba tenemos un
fenómeno de difusión de flujo similar al que se observa en el proceso
de descarga de una cola. Cuando la densidad aguas abajo es mayor
que aguas arriba, entonces se generan ondas de choque y en general
aparecen colas aunque vayan desplazándose aguas abajo.
La aplicación de la teoría del modelo continuo simple a
situaciones más complejas, como cuando hay interrupciones del
flujo (confluencias de flujos por carriles de acceso, derivaciones de
flujo por rampas de salida, reducciones de capacidad por pérdida de
carriles, etc.) requiere la resolución numérica de la ecuación de
conservación [8], base del simulador KRONOS [19].
Los procedimientos numéricos para calcular k, u y q parten de la
discretización de la autopista que se considera, en pequeños incrementos
Dx (del orden de entre 10 y 50 metros) y la actualización de los valores
de dichas variables de tráfico a intervalos de tiempo consecutivos Dt
51
(del orden de un segundo más o menos). Obviamente la discretización
se realiza únicamente desde el punto de vista computacional. La densidad
en cualquier segmento j, excepto en los segmentos frontera, en el
intervalo de tiempo n+1 se calcula a partir de la densidad en los
segmentos inmediatamente adyacentes, aguas arriba y aguas abajo, j-
1 y j+1 respectivamente, en el intervalo n, de acuerdo con la expresión:
( ) ( ) ( )
k k k
t
x
q q
t
g g
j
n
j
n
j
n
j
n
j
n
j
n
j
n
+
+ - + - + -
= + - - - +
1
1 1 1 1 1 1
1
2 2 2
D
D
D
(1.24)
donde el subíndice identifica el segmento y el superíndice el intervalo
de tiempo, g representa la tasa de generación o disipación en el
segmento en el intervalo de tiempo considerado, si no hay fuentes
ni sumideros en el segmento, entonces g=0.
Una vez que se ha determinado la densidad la velocidad puede
calcularse a partir de la relación velocidad densidad en el equilibrio
ue
(k): ( )
u u k
j
n
e j
n
+ +
=
1 1
en el caso de la resolución numérica pueden
utilizarse relaciones empíricas que admitan discontinuidades.
Finalmente, el flujo en el intervalo de tiempo n se obtiene a partir de la
relación fundamental: q k u
j
n
j
n
j
n
+ + +
=
1 1 1
.
Las ecuaciones (1.24) discretización de la ecuación (1.21),
convierten la ecuación diferencial en derivadas parciales en un
ecuación en diferencias finitas a la que se pueden aplicar diversos
procedimientos numéricos [17] incluyendo posibilidades de
paralelización del cálculo [20] .
1.3. Simulación de sistemas continuos y simulación de sistemas
discretos
En general los modelos matemáticos de tipo dinámico representan
sistemas continuos, es decir sistemas en los que las actividades
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
52
predominantes del sistema causan pequeños cambios en los atributos
de sus entidades, cuando las relaciones entre ellas describen las tasas
o ratios de cambio de los atributos, por lo que, en general, tales modelos
están definidos formalmente por ecuaciones diferenciales.
En muchos casos a partir del modelo matemático del sistema
es posible obtener información sobre el mismo por medios analíticos,
como en el caso del sistema de amortiguación de un automóvil,
que acabamos de presentar como ejemplo de modelo dinámico.
Cuando esto no es posible se recurre a procedimientos numéricos
para resolver las ecuaciones del modelo, especialmente en el caso
de los modelos dinámicos representados por ecuaciones o sistemas
de ecuaciones diferenciales, como en los ejemplos de la dinámica
de poblaciones y de tráfico. Con el tiempo se ha ido desarrollando
una amplia variedad de métodos numéricos de cálculo para resolver
las ecuaciones de los modelos, una técnica numérica particular es
la que denominamos Simulación de Sistemas, que como veremos
consiste en un seguimiento a lo largo del tiempo de los cambios
que tienen lugar en el modelo dinámico del sistema. En los
modelos dinámicos, bien por la naturaleza del sistema modelizado,
bien por las características del proceso numérico utilizado, la
introducción de la aleatoriedad nos llevará a hablar de Simulación
Estocástica, que es la que va a ser objeto de estudio en esta
monografía.
La manera de efectuar el seguimiento temporal de los cambios
en el modelo, que supondremos en correspondencia con los cambios
en el sistema representado por el modelo, nos lleva a la aparición de
dos grandes categorías dentro de la Simulación de Sistemas según
que los cambios sean continuos o discretos. En el primer caso se
supone que la naturaleza del sistema permite cambios de estado
continuos, determinados por cambios continuos en los valores de las
variables que representan el estado del sistema, mientras que en el
segundo los cambios solo pueden tener lugar en instantes discretos
en el tiempo.
53
Para los sistemas con cambios continuos, dado que nuestro
principal interés a la hora de simular su comportamiento será
reproducirlos, los sistemas de ecuaciones diferenciales serán la forma
mas adecuada de representarlos. Denominaremos Simulación
Continua a la simulación basada en este tipo de modelos. Los
simuladores analógicos han sido ampliamente utilizados en este tipo
de simulación, aunque el desarrollo de las técnicas numéricas para la
resolución de sistemas de ecuaciones diferenciales, el avance
tecnológico en los ordenadores digitales, y la evolución de los lenguajes
de programación les han hecho perder protagonismo. SIMULINK,
software para la simulación de sistemas dinámicos integrado en el
entorno de computación numérica MATLAB [21] es un buen ejemplo
de esta tendencia.
Para los sistemas discretos, el seguimiento de los cambios de
estado requiere la identificación de qué es lo que causa el cambio y
cuando lo causa, lo que denominaremos un suceso, las ecuaciones
del modelo se convierten entonces en las ecuaciones y relaciones
lógicas que determinan las condiciones en que tiene lugar la ocurrencia
de un suceso. El modelo de red de colas del taller de manufactura, en
el que los cambios de estado son producidos por sucesos discretos
como las llegadas de las piezas o los finales de las operaciones,
corresponde a esta clase de sistemas. Este tipo de simulación, conocida
con el nombre de Simulación Discreta, consiste en el seguimiento de
los cambios de estado del sistema que tienen lugar como consecuencia
de la ocurrencia de una secuencia de sucesos.
La simulación de sistemas estáticos y dinámicos, especialmente
los continuos, y los lenguajes de simulación para tales simulaciones,
como por ejemplo el DYNAMO, han sido tratados con detalle en otras
monografías de esta colección, véanse, por ejemplo, las números 2
(A. Sarabia, La Teoría General de Sistemas), 3 (J. Aracil, Dinámica de
Sistemas), y 4 (D. R. Drew, Dinámica de Sistemas Aplicada), en las
que aparecen numerosos y bien ilustrados ejemplos de modelos
deterministas, y de modelos dinámicos de tipo continuo en los que se
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
54
ha utilizado el DYNAMO (la monografía de Aracil es un buen ejemplo
de ello). Con objeto de proporcionar una visión complementaria vamos
a centrar nuestra monografía en el tema de la Simulación de Sistemas
Discretos.
1.4. La Simulación como proceso experimental: experimentos y
ordenadores
La práctica de la simulación es una técnica que no realiza ningún
intento especifico para aislar las relaciones entre variables particulares,
antes bien adopta un punto de vista global desde el que se intenta
observar como cambian conjuntamente todas las variables del modelo
con el tiempo. En todo caso, las relaciones entre las variables deben
obtenerse a partir de tales observaciones. Esta concepción caracteriza
la simulación como una técnica experimental de resolución de problemas,
lo que comporta la necesidad de repetir múltiples ejecuciones de la
simulación para poder entender las relaciones implicadas por el sistema,
en consecuencia el uso de la simulación en un estudio debe planificarse
como una serie de experimentos cuyo diseño debe seguir las normas
del diseño de experimentos para que los resultados obtenidos puedan
conducir a interpretaciones significativas de las relaciones de interés.
La simulación con computador es por lo tanto una técnica que
realiza experimentos en un computador con un modelo de un sistema
dado. El modelo es el vehículo utilizado para la experimentación en
sustitución del sistema real. Los experimentos pueden llegar a tener
un alto grado de sofisticación que requiera la utilización de técnicas
estadísticas de diseño de experimentos. En la mayor parte de los casos
los experimentos de simulación son la manera de obtener repuestas a
preguntas del tipo "¿qué pasaría sí?", preguntas cuyo objetivo suele
ser evaluar el impacto de una posible alternativa que sirva de soporte
a un proceso de toma de decisiones sobre un sistema, proceso que
puede representarse esquemáticamente mediante el diagrama de la
Figura 8 [22].
55
Volvemos a encontrar aquí, en la utilización de la simulación, las
características de lo que hemos denominado ingeniería de sistemas, es
decir una visión globalizadora que utiliza un modelo para combinando
elementos de análisis y diseño entender, por medio de experimentos,
cómo un sistema existente funciona, o cómo puede funcionar un sistema
planeado, y prever cómo las modificaciones del sistema pueden cambiar
su comportamiento.
La simulación, y los experimentos de simulación, se convierten
así en una herramienta de análisis de sistemas, para entender cómo
opera un sistema existente, o cómo puede operar uno propuesto. La
situación ideal, en la cual el investigador realizaría los experimentos
sobre el sistema real es sustituida por una en la que el investigador
construye un modelo del sistema y experimenta sobre él mediante la
simulación, utilizando un ordenador, para investigar el comportamiento
del modelo e interpretar los resultados en términos del comportamiento
del sistema objeto del estudio.
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
56
La simulación, y el procedimiento experimental asociado, se
convierten también en una herramienta de diseño de sistemas, cuyo
objetivo es la producción de un sistema que satisfaga ciertas
especificaciones. El diseñador puede seleccionar o planear como deben
ser las componentes del sistema y concebir cual debe ser la
combinación de componentes y relaciones entre ellas que determinan
el sistema propuesto. El diseño se traduce en un modelo cuyo
comportamiento permite inducir el del sistema previsto. El diseño se
acepta cuando las previsiones se ajustan adecuadamente a los
comportamientos deseados, en caso contrario se introducen las
modificaciones pertinentes en el modelo y se repite el proceso.
Otra posibilidad es la que se da en estudios económicos,
políticos, médicos, etc. en los que se conoce el comportamiento del
sistema pero no los procesos que producen tal comportamiento. En
este caso se formulan hipótesis sobre las entidades y actividades que
pueden explicar la conducta. El estudio de simulación por medio del
modelo correspondiente permite comparar las respuestas de un modelo
basado en tales hipótesis con el comportamiento conocido, de manera
que una concordancia adecuada lleva a suponer que la estructura del
modelo se corresponde con la del sistema real.
La aplicación de la simulación a diferentes tipos de sistemas
combinada con las diferentes clases de estudio que se pueden realizar
conduce a una gran cantidad de variantes de la manera en que se
puede realizar un estudio de simulación. Sin embargo hay determinados
pasos básicos del proceso que pueden identificarse como los
constituyentes de lo que denominaremos la metodología de un estudio
de simulación, y son los siguientes:
1. Definición del problema y planificación del estudio.
2. Recogida de datos.
3. Formulación del modelo matemático.
4. Construcción y verificación del programa para computador
del modelo.
57
La simulación de sistemas
5. Ejecuciones de prueba del modelo.
6. Validación del modelo.
7. Diseño de los experimentos de simulación.
8. Ejecución de los experimentos.
9. Análisis de los resultados.
El proceso no es, en general, secuencial, sino iterativo, en el
que algunos de los pasos pueden tener que repetirse en función de
los resultados intermedios tal como muestra la Figura 9.
Ningún estudio de simulación puede llevarse a cabo sin establecer
claramente una definición precisa del problema que se pretende resolver
y los objetivos del estudio. Los diseños alternativos del sistema que se
han de estudiar han de quedar claramente especificados, así como los
criterios para evaluar dichos diseños. Criterios que servirán de base al
proceso de toma de decisiones para elegir uno de los diseños. Para la
formulación del modelo debe establecerse su estructura definiendo
cuales son los aspectos del funcionamiento del sistema que son
significativos para la resolución del problema que tenemos entre manos,
y que datos es necesario recoger para proporcionar al modelo la
información adecuada.
La construcción del modelo de simulación es en muchos casos
más un arte que una ciencia, que combina aspectos matemáticos y
lógicos. En general la experiencia recomienda empezar con modelos
moderadamente detallados que paulatinamente se van haciendo más
sofisticados. El modelo únicamente debe contener el nivel de detalle
requerido por los objetivos del estudio. Dado un modelo matemático la
construcción del programa para computador es el requisito imprescindible
para poder manipular numéricamente el modelo para obtener las
soluciones que respondan a las preguntas que el analista se formula
sobre el sistema.
La validación del modelo es uno de los pasos cruciales del proceso,
suele ser uno de los más difíciles, pero es un requisito indispensable
SIMULACIÓN DE SISTEMAS DISCRETOS
58
59
para establecer si el modelo representa o no adecuadamente el sistema
objeto del estudio, de manera que se puedan garantizar las inducciones
y extrapolaciones sobre el comportamiento del sistema a partir de lo
observado sobre el modelo.
Diseñar los experimentos comporta, como hemos comentado
anteriormente, aplicar rigurosamente las técnicas observacionales de la
estadística, propias del método científico, que permitan garantizar la
significación de las respuestas producidas por la ejecución del programa
que implanta el modelo en el computador.
1.5. Modelos de simulación frente a soluciones analíticas
Aparentemente todos los modelos que hemos presentado hasta
ahora han podido ser resueltos exactamente, como en el caso de la
ecuación diferencial que modeliza el sistema de amortiguación de un
automóvil o, en el peor de los casos, mediante métodos numéricos como
en las ecuaciones de Lotka-Volterra del modelo presa-depredador para
la dinámica de poblaciones, o por métodos numéricos aproximados,
como en el caso de los modelos de tráfico.
Estos procedimientos constituyen el primer atisbo de lo que hemos
denominado procedimientos de simulación como alternativa a los
métodos analíticos. La pregunta es en qué van a consistir y cuando hay
que aplicar lo que propiamente vamos a denominar simulación en el
caso de los sistemas discretos.
Regresemos a nuestro modelo de taller de manufactura, el último
comentario apuntaba a que la modelización analítica como sistema de
redes de colas podía presentar algunas dificultades. Para hacernos cargo
de que tipo de dificultades puede tratarse, consideremos el caso de una
delascomponentes,unodelosgruposdemáquinas,loquehemosllamado
modelo de colas M/M/s, y simplifiquémoslo al caso M/M/1, para el que
hemos visto que la solución analítica de equilibrio es bastante simple.
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
60
Sin embargo bastaría que para este caso, relativamente sencillo,
nos preguntásemos por el comportamiento durante el período transitorio
para que la situación, aún siendo tratable analíticamente, se complique
bastante. Pensemos, simplemente, que las preguntas que nos formu-
lamos relativas al estado estacionario o de equilibrio, son aquellas que
suponen el funcionamiento del sistema a largo plazo, mientras que en
otras ocasiones lo que nos interesa analizar es el proceso de arranque
del sistema, es decir lo que se denomina el estado transitorio antes de
entrar en la supuesta condición de equilibrio a largo plazo.
Para responder a tal pregunta sobre el sistema tendríamos que
encontrar la solución al sistema siguiente de ecuaciones diferenciales
en diferencias (no olvidemos que se trata de un sistema dinámico pero
cuyos cambios de estado son discretos):
( )
( ) ( ) ( ) ( )
( )
( ) ( )
dP t
dt
P t P t P t k
dP t
dt
P t P t k
k
k k k
= - + + + ³
= - + =
- +
l m l m
l m
1 1
0
0 1
1
0
,
,
(1.25)
donde Pk
(t) es la probabilidad de que el sistema se encuentre en el
estado k en el instante t. Para obtener la distribución de probabilidad
de estados función del tiempo, que vendría dada por Kleinrock [11].
( ) ( ) ( )
( ) ( )
( ) ( ) ( )
P t e at at at
k
t k
k
k i
k i
k j
j k
j
= + + -
é
ë
ê
ù
û
ú
- + -
-
- -
+ +
-
= + +
¥
å
l m
r r r r r
1 2
1
1 2
1
2
1 2
1
/ / /
I I I
(1.26)
donde a=2mr1/2
, y
( )
( )
( )
x
x
k m m
k
k
k m
m
=
+
³ -
+
=
¥
å
2
0
2
1
/
! !
, ,
I (1.27)
es la función de Bessel modificada de primera clase de orden k.
Complicaciones analíticas similares, o de orden superior, aparecen
cuandolashipótesissobrelasdistribucionesdeprobabilidaddelasllegadas
olasduracionesdelosserviciosdejandeserpoissonianasoexponenciales
para ser simplemente Normales o de Erlang, como corresponde a
61
bastantes situaciones reales.En este caso se puede comprobar, Kleinrock
[11] que si A(t) y B(x) son las distribuciones de probabilidad de las llegadas
al sistema de colas y duración de los servicios respectivamente, y
( ) ( ) ( )
C s A s B s
* * *
= - (1.28)
es la transformada de Laplace de la distribución de probabilidad de la
variable aleatoria
u x t
n n n
= - + 1 (1.29)
(tiempo de descarga del sistema entre el que le exige la duración del
servicio de n-ésimo cliente, xn
, y la llegada del n+1-ésimo, en el instante
tn+1
), entonces la distribución de probabilidad del tiempo de espera en
la cola, en el estado estacionario, viene dada por:
( ) ( ) ( )
W y W y u dC u y
y
= - ³
-¥
ò , 0 (1.30)
que es una ecuación integral de Lindley. Recordemos que la obtención
de esta distribución es necesaria para calcular el tiempo medio de
espera en la cola, que como hemos visto es uno de los parámetros
clave a la hora de estudiar el rendimiento del sistema.
Estas dificultades inherentes a las soluciones analíticas
pueden ser solventadas, como veremos, con relativa facilidad, por
medio de la simulación, para obtener soluciones numéricas apro-
ximadas.
A pesar de su utilidad la simulación no puede considerarse como
una panacea capaz de resolver todo tipo de situaciones, aún contando
con la ayuda de los lenguajes especializados para la simulación, o de
los avances que han representado los entornos software para
simulación, Henrikssen [23] el desarrollo de los generadores de
simuladores, Mathewson [24] o de los simuladores visuales,
SIMFACTORY [25], WITNESS [26], etc., la realización de un estudio
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
62
de simulación puede comportar un esfuerzo y un consumo de recursos
no despreciable en cualquiera de las fases: definición del problema,
recogida de información, construcción del modelo y programación del
mismo, realización de los experimentos de simulación en computador.
Especialmente en este último caso sistemas complejos pueden conducir
a programas largos y complejos que requieran cantidades importantes
de recursos computacionales. Estas han sido algunas de las razones
por las que en ciertos dominios de aplicación la simulación ha sido
considerada como un último recurso al que acudir cuando todo lo
demás falla.
Sin embargo la simulación, por sus características, y por los
desarrollos computacionales que se han conseguido en los últimos
años, sigue presentando una serie de ventajas que no solo la convierten
en el procedimiento mas adecuado en muchos casos, sino que hacen
que sea la única alternativa tecnológica en muchos otros.
Esto resulta especialmente obvio en aquellos casos en los que
las características del sistema que se pretende estudiar hacen inviable,
por razones físicas o de coste, la experimentación directa sobre el
sistema. El mundo de la producción industrial, del tráfico, la aeronáutica,
la industria del automóvil, etc. son claros ejemplos de esta situación,
en la que, si bien es cierto que en algunos casos se puede recurrir a
modelos analíticos, también lo es que tales modelos no siempre son
capaces de recoger todos los aspectos de interés del sistema, que
conducirían a modelos inviables, o para los que no se dispone de
herramientas adecuadas, obligando a introducir una serie de hipótesis
simplificadoras que pueden resultar inadecuadas en función de los
objetivos del estudio. El ejemplo relativamente sencillo, de los modelos
de colas que estamos discutiendo, puede ilustrar esta afirmación. Los
modelos de colas son analíticamente tratables bajo hipótesis de
modelización relativamente simples: llegadas según distribuciones de
Poisson, tiempos de servicio exponenciales, disciplinas FIFO, etc..Aún
en este caso las soluciones para los períodos transitorios pueden ser
complicadas de obtener analíticamente, en contraste con la simplicidad
63
de los procedimientos para obtener las soluciones estacionarias, sin
embargo, basta introducir hipótesis adicionales aparentemente
sencillas, que aproximan el modelo a otras situaciones reales, para
entrar rápidamente en el terreno de las dificultades analíticas crecientes,
los modelos con distribuciones de probabilidad de llegadas y servicios
de tipo general, inclusión de impaciencias o políticas basadas en
prioridades, etc., son un buen ejemplo de ello.
Incluso en aquellos casos en los que es posible la
experimentación directa la simulación puede ofrecer ventajas tales
como un coste inferior, tiempo, repeticiones y seguridad. Aún siendo
viables los experimentos directos con el sistema físico pueden con
frecuencia tener un coste muy superior al de la simulación a pesar de
los esfuerzos para construir el modelo y el tiempo y recursos
computacionales requeridos para la ejecución de los experimentos.
Aunque el desarrollo de un modelo adecuado y su
programación para ser ejecutado en un ordenador puede requerir
una cantidad de tiempo significativa, una vez construido y depurado
el modelo de simulación representa una atractiva posibilidad para
trabajar con las más variadas escalas de tiempo, minutos, horas,
semanas, meses, años, etc., en unos pocos segundos de tiempo de
computador, lo que permite comparar colecciones variadas de
alternativas, a través de experimentos de simulación que siempre
pueden repetirse en las más diversas condiciones, lo que no siempre
es posible en los experimentos con el sistema real, basta pensar en
sistemas de manufactura, gestión de empresas, o militares (es difícil
pensar en una situación en la que el enemigo permite repetir una
batalla).
Finalmente, es frecuente que los experimentos persigan el objetivo
de determinar la respuesta del sistema en condiciones extremas, lo que
puede resultar peligroso o incluso ilegal en la vida real. Las aplicaciones
de la simulación en aeronáutica, o en la gestión de aeropuertos
constituyen buenos ejemplos de lo que queremos significar.
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
64
El dilema modelos analíticos frente a modelos de simulación debe
resolverse en cada caso ateniéndose al tiempo de sistema, los objetivos
del estudio, las características del modelo, los costes, etc. La cuestión
claveesnuestrahabilidadycapacidadparaconstruirelmodelodelsistema,
si este es analítico y las hipótesis de modelización no obligan a
simplificaciones que invaliden la capacidad del modelo para responder a
las cuestiones de interés que nos planteamos sobre el sistema, entonces
las soluciones analíticas del modelo matemático pueden ser suficientes.
Si nuestro conocimiento del sistema no nos permite formular
hipótesis que conduzcan a una completa formalización del modelo en
términos analíticos, o el requisito de no realizar hipótesis simplificadoras
conduce a modelos matemáticos de difícil, o imposible, tratamiento
matemático, entonces posiblemente la simulación será la alternativa
válida, si no es la única posible.
El analista del sistema no debe olvidar que un mismo sistema
puede representarse formalmente mediante diversos modelos en fun-
ción de los problemas que el analista se plantea sobre el sistema. De
acuerdo con Minsky, un objeto matemático M es un modelo válido de un
sistema S para un observador O, si M es capaz de proporcionar res-
puestas válidas a las preguntas que O formula sobre S (Figura 10).
Law y Kelton [27] formalizan el proceso de decisión modelo
matemático-modelo de simulación, experimentación sobre el sistema
real o sobre un modelo del sistema, como formas de estudiar un
sistema, por medio del diagrama de la Figura 11.
El desarrollo experimentado por el software de simulación en
estos últimos años ha hecho más fácil el uso de la simulación, lo que
ha incrementado notablemente su uso frente al de otros métodos para
estudiar sistemas. De lo expuesto hasta aquí se desprende claramente
que si bien la simulación tiene muchas ventajas, no deja de presentar
algunos problemas, especialmente cuando se usa indebidamente, que
cabe tener en cuenta para paliarlos o, si es posible, evitarlos, pues de
65
La simulación de sistemas
lo contrario pueden invalidar los resultados de un proyecto de
simulación. Law y Kelton [27] resumen en su texto la situación de la
manera siguiente.
La simulación es recomendable, o incluso puede ser la única
alternativa posible, para investigar sistemas complejos en los que estén
presentes elementos estocásticos que difícilmente pueden ser tratados
con la precisión adecuada en un modelo matemático. La simulación
permite con relativa facilidad estimar el funcionamiento del sistema
bajo condiciones de operación alternativas, o es la herramienta para
comparar diseños alternativos de un sistema que tengan que satisfacer
requerimientos específicos. La simulación permite mantener un mayor
control sobre las condiciones experimentales que el que se puede
mantener en la experimentación con el sistema físico. Por otra parte la
simulación permite estudiar el comportamiento del sistema en períodos
de tiempo de cualquier longitud, comprimidos a la duración de la
ejecución del simulador en un computador.
SIMULACIÓN DE SISTEMAS DISCRETOS
66
Sin embargo, no se debe olvidar que la simulación de un modelo
estocástico únicamente produce estimaciones de las características
verdaderas del modelo para un conjunto particular de parámetros de
entrada, lo que comporta la necesidad de diseñar adecuadamente
los experimentos de simulación, y repetirlos en cantidad suficiente
como para garantizar la calidad de las estimaciones. De ahí que los
modelos de simulación no sean tan buenos cuando se pretende
optimizar el rendimiento, como lo son cuando lo que se persigue es
comparar entre sí diseños alternativos. En particular para sistemas
para los que puede definirse un modelo analítico adecuado, que
proporciona resultados exactos, este será preferible al modelo de
simulación. No hay que olvidar en ningún caso que si un modelo no
es una representación válida del sistema que se estudia la información
que proporcione será de poca utilidad.
Modelos de simulación y modelos analíticos no deben
considerarse siempre como antitéticos, en muchos casos pueden jugar
67
un papel complementario sirviendo la simulación para verificar la validez
de las hipótesis para el modelo analítico, o el modelo analítico para
sugerir cuales son las alternativas razonables que hay que investigar
por simulación.
Finalmente, suponiendo que se ha decidido proceder a un estudio
de simulación, no hay que olvidar las recomendaciones metodológicas,
que de no cumplirse pueden llevar al fracaso del estudio, como por
ejemplo cuando no están bien definidos los objetivos del estudio, se
construye un modelo con un nivel de detalle inadecuado, se concibe el
estudio de simulación como una especie de ejercicio de programación
de computadores, se utiliza inadecuadamente las capacidades de
animación de resultados, no se identifican correctamente las fuentes de
aleatoriedad del sistema, o se utilizan distribuciones de probabilidad
que no se corresponden como es debido con dichas fuentes de
aleatoriedad, o se utilizan métodos estadísticos incorrectos para analizar
los resultados (por ejemplo los que suponen independencia), o se intenta
extraer conclusiones de una única ejecución del simulador, etc.etc..
1.6. La simulación de los sistemas discretos
En los desarrollos anteriores hemos ido analizando las
limitaciones que tiene el tratamiento analítico para manipular
numéricamente los modelos matemáticos que representan los sistemas
que nos interesa estudiar. Limitaciones que se hacen más patentes
cuando el modelo no es puramente analítico sino que incluye, como
parte de sus reglas de operación, condiciones de tipo lógico. El ejemplo
del sistema de colas ha puesto de manifiesto además cuan rápidamente
pueden llegar a grandes complejidades analíticas modelos de sistemas
con características aleatorias. En todos estos casos hemos aludido a
la simulación como una técnica numérica que permite superar estas
limitaciones e inconvenientes, pero, ¿en que consiste esta técnica?
Para el caso de los modelos continuos los procedimientos de resolución
numérica de las ecuaciones diferenciales del modelo son la componente
La simulación de sistemas
SIMULACIÓN DE SISTEMAS DISCRETOS
68
fundamental de lo que entendemos por simulación continua. La
simulación de los sistemas discretos requiere un tratamiento diferente
que vamos a ilustrar, una vez más, con el ejemplo sencillo de los
modelos de colas.
Supongamos un sistema de colas simple, compuesto por una
población fuente que a efectos prácticos pueda ser considerada infinita,
de la cual proceden las unidades que requieren servicio, según una
distribución de Poisson, con una tasa de l llegadas por unidad de
tiempo, la cola puede ser considerada infinita a efectos prácticos por
no haber ninguna limitación física, y el servicio es prestado por una
estación de servicio única, monofase, cuya capacidad es de µ servicios
completados por unidad de tiempo según una ley de distribución
exponencial, es decir un sistema M/M/1, en nuestra notación.
Un ejemplo práctico de tal situación lo representan las piezas
que llegan a una máquina para ser sometidas a una operación, cuando
no hay problemas de almacenamiento intermedio. Las unidades que
requieren servicio son las piezas, el servicio consiste en la operación
ha que han de ser sometidas, y la máquina es la unidad de servicio.
Esta descripción constituye lo que anteriormente hemos
denominado el modelo conceptual del sistema, la cuestión que se
plantea ahora es ¿cómo podemos simular su comportamiento?
De acuerdo con los planteamientos expuestos una posibilidad
consiste en considerar que el sistema evoluciona en el tiempo
cambiando de estado, y que simular consiste en ser capaz de imitar
los cambios de estado del sistema emulando su evolución. Ello requiere
definir que entendemos por estado del sistema y cómo cambia de
estado el sistema.
En el caso que nos ocupa podemos definir el estado del sistema
como el número de unidades que hay en el sistema en un momento
dado. Diremos pues que el sistema se encuentra en el estado n en el
69
La simulación de sistemas
instante t si en dicho instante hay n unidades en el sistema, contando
las que esperan en la cola a recibir servicio y las que están recibiendo
servicio en ese momento.
A partir de esta especificación del estado del sistema es evidente
que el sistema cambia de estado cada vez que llega a él una nueva
unidad para recibir servicio, o cada vez que una unidad ha terminado
de recibir servicio y lo abandona. Diremos entonces que el sistema
cambia de estado cada vez que se produce un suceso, y que hay dos
tipos de suceso susceptibles de cambiar el estado del sistema, el suceso
llegada de una nueva unidad al sistema y el suceso salida de una
unidad del sistema.
Si las llegadas son aleatorias según una distribución de Poisson,
y los servicios son exponenciales, simular sucesos llegada al sistema
consiste en extraer muestras de números aleatorios que sigan la
distribución de Poisson que las describe (o, cómo hemos puesto de
manifiesto anteriormente, la distribución exponencial asociada que
representa los intervalos de tiempo entre llegadas consecutivas), y
simular sucesos salida consiste en extraer muestras de números
aleatorios que sigan la distribución exponencial que los describe. A
partir de dichas muestras un sencillo mecanismo de seguimiento como
el que se ilustra en la Figura 12 permite realizar la simulación del sistema
de colas propuesto.
En este ejemplo los intervalos de tiempo entre llegadas son:
A1
= 55, A2
= 32, A3
= 24, A4
= 40, A5
= 12, A6
= 29, ...
y las duraciones de los servicios:
S1
= 43, S2
= 36, S3
= 34, ...
de manera que la primera llegada se produce a las 55 unidades de
tiempo, como en ese momento la unidad de servicio está libre pasa a
SIMULACIÓN DE SISTEMAS DISCRETOS
70
71
La simulación de sistemas
recibir servicio directamente, y su servicio durará 43 unidades de tiempo,
por lo que el suceso salida correspondiente se producirá en el instante
98, la segunda llegada se produce 32 unidades de tiempo después de
la primera, es decir en el instante 87, como en ese momento la unidad
de servicio aún está ocupada sirviendo a la primera llegada, la segunda
se instala en la cola a esperar, de donde saldrá en el instante 98 para
pasar a recibir servicio, su servicio durará 36 unidades por lo que su
suceso salida se producirá en el instante 134, y así sucesivamente.
La simulación nos permite recoger observaciones sobre los estados
del sistema y de esta manera estimar los parámetros de rendimiento como
longitudes medias de las colas, tiempos medios de espera, etc.. En caso
de que las distribuciones de llegada y de duración de los tiempos de
servicio no fuesen poisonianas y exponenciales, sino de cualquier otro
tipo, Normal, Erlang, etc., el proceso metodológico de la simulación seria
el mismo, la única variación estribaría en la extracción de muestras
aleatorias de las distribuciones de probabilidad correspondientes.
SIMULACIÓN DE SISTEMAS DISCRETOS
72
73
2
Modelización de
la aleatoriedad
en sistemas
discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
74
2.1. Identificación de patrones de comportamiento aleatorio
Una característica fundamental de la mayor parte de los sistemas
discretos, que interesa estudiar por simulación, es la presencia de la
aleatoriedad como atributo intrínseco de algunas o todas sus
componentes. Todos los sistemas reales suelen contener al menos
una, pero en general más de una, fuente de aleatoriedad. En
consecuencia, de acuerdo con la metodología de los estudios de
simulación que hemos propuesto, en la primera etapa, la de
conocimiento, en la que se recoge información sobre el sistema para
formular las hipótesis de modelización que permitirán construir el
modelo, uno de los aspectos más importantes es el que concierne a la
obtención de información sobre las componentes del sistema que
exhiben un comportamiento aleatorio, y la identificación del tipo de
aleatoriedad que posibilite la formulación de hipótesis para su
modelización o, en otros términos, la determinación de la distribución
de probabilidad que reproduzca lo más adecuadamente posible el
comportamiento aleatorio observado.
Identificar la aleatoriedad en los sistemas es equivalente a
identificar las fuentes de aleatoriedad de las componentes de los
sistemas y el tipo de distribuciones de probabilidad que las representan.
Así, por ejemplo, en todos aquellos sistemas en los que subyace una
estructura de fenómenos de espera, simples o de red, que constituyen
una de las clases más numerosas a estudiar por simulación, los
procesos de llegada y de servicio, es decir como van llegando al sistema
75
Modelización de la aleatoriedad en sistemas discretos
las entidades que han de recibir un servicio, y la duración del mismo
son, en general, procesos aleatorios que hay que identificar y modelizar.
Las llegadas de los vehículos al puesto de peaje de una autopista, las
piezas y las materias primas a un proceso de manufactura, llamadas
telefónicas a una centralita, los tiempos de llegadas entre mensajes,
tipos de mensajes, en los sistemas de comunicaciones, los tiempos
de llegada entre trabajos que se han de procesar, los tipos de trabajo,
en el caso de los sistemas informáticos, etc., son ejemplos típicos de
lo que denominamos procesos de llegada. La duración del acto de
abonar el peaje, las operaciones a realizar sobre las piezas en las
diferentes máquinas durante el proceso de producción, las duraciones
de las llamadas telefónicas, las longitudes de los mensajes, los
requerimientos para el procesado de un trabajo etc., constituyen
ejemplos de los segundos, los llamados procesos de servicio. En el
caso de los sistemas de manufactura podemos identificar además
fuentes adicionales de aleatoriedad, como por ejemplo las averías de
las máquinas, cuándo se producen, y la duración de las mismas, es
decir el tiempo que están fuera de servicio por avería mientras son
reparadas, o el tiempo que la máquina esta operativa, o sea, el tiempo
entre averías, o el tiempo requerido por operaciones de mantenimiento
o de preparación y ajuste para un cambio de modo de operación por
cambio del proceso productivo, etc.. Los ejemplos citados pertenecen
al dominio de las distribuciones continuas de probabilidad, pero no
hay que olvidar fenómenos tales como el resultado de la inspección
de una pieza para controlar su calidad (buena o mala, aceptable o
rechazable), o el de las dimensiones de los pedidos cuando se agrupan
en lotes, que dan lugar a distribuciones discretas.
La identificación y modelización adecuada de las fuentes de alea-
toriedad es crucial para la corrección del modelo y evitar muchos de
los fallos que hemos apuntado al final del capítulo anterior, el texto de
Law y Kelton [27] incluye interesantes ejemplos de como puede influir
una modelización correcta de los tiempos de parada de las máquinas
por avería en modelos de procesos de manufactura. Identificada la
fuente de aleatoriedad, es decir la componente del sistema que exhibe
SIMULACIÓN DE SISTEMAS DISCRETOS
76
tal comportamiento, una modelización correcta de la aleatoriedad
requiere la recogida de observaciones que sirvan de base a un estudio
estadístico que permita determinar el tipo de distribución de probabilidad
que mejor explica tal comportamiento, y decidir si se utiliza en el estudio
de simulación un modelo teórico de tal distribución, o se trabaja con
una distribución empírica.
Las observaciones que se pueden recoger sobre las variables
aleatorias relevantes para el estudio de simulación pueden utilizarse
de diferentes maneras a la hora de especificar la distribución de
probabilidad correspondiente.
Pueden utilizarse esos mismos valores directamente en la simu-
lación. Por ejemplo, si los datos representan las duraciones de los
servicios, se acude a ellos cada vez que se necesita el valor de un
tiempo de servicio. Esta modalidad de simulación recibe el nombre de
«dirigida por la traza» (trace-driven). El principal inconveniente de este
planteamiento es que la simulación únicamente puede reproducir lo
que ha ocurrido históricamente, sin capacidad de proyección futura, y
que es difícil que se pueda recoger la cantidad de datos que serían
necesarios para repetir las ejecuciones del programa de simulación
todas las veces requeridas. Esta alternativa es recomendable frente a
otras únicamente el caso de la validación de los modelos, cuando
interesa comparar la salida proporcionada por el modelo del sistema
con la salida proporcionada por el propio sistema.
Otra posibilidad es la de utilizar estos datos para definir una
función de distribución empírica, de la cual se extraen muestras a
medida que se necesitan los valores. Es un planteamiento preferible
al anterior, que en el caso de los datos continuos permite generar
cualquier valor entre el máximo y el mínimo de los observados, cada
vez que se necesita uno de ellos, por ejemplo un tiempo de servicio.
Finalmente se pueden utilizar las técnicas de la inferencia
estadística para «ajustar» los datos a la forma de una distribución
77
Modelización de la aleatoriedad en sistemas discretos
teórica, y realizar pruebas de hipótesis para determinar la bondad del
ajuste. Si una distribución teórica particular, para ciertos valores de
sus parámetros, es un buen modelo de los datos observados se puede
muestrear desde tal distribución cada vez que se necesita uno de los
datos. En el caso de que se pueda encontrar una distribución teórica
que ajuste razonablemente bien los datos observados, esta alternativa
es preferible a cualquiera de las dos anteriores.
La simulación ha de incorporar, por lo tanto, la aleatoriedad
presente en el mundo real que el modelo ha de representar.La cuestión
es, en consecuencia, ¿cómo decidimos cuál es la naturaleza de esta
aleatoriedad? ¿Cómo especificamos las distribuciones de las variables
aleatorias que la modelizan? El texto de Bratley, Fox y Schrage [28],
dedica un interesante capítulo a analizar las diferentes alternativas,
cuyas ideas mas sugerentes glosaremos a continuación.
Siempre que sea posible hay que recoger observaciones de las
variables aleatorias de entrada. Las decisiones y especificaciones a
que nos estamos refiriendo han de hacerse a partir de los datos
disponibles, y podemos encontrarnos con una gran variedad de
situaciones. En unos casos tendremos un exceso de datos, mientras
que en otros dispondremos de muy pocos, y en ambos casos la
procedencia de los datos puede ser o bien directamente la distribución
de interés o indirectamente una distribución «relacionada». Los autores
mencionados sentencian que «Tener pocos datos es malo, pero tener
pocos datos de una distribución incorrecta es peor».
Tener pocos datos significa que nos encontramos en una de
las situaciones siguientes, o en alguna combinación de las mismas:
la muestra de que disponemos es pequeña, o solo tenemos un
resumen estadístico, por ejemplo, media, variancia, valores mínimo
y máximo, mediana, moda, etc., o la información disponible es de
tipo cualitativo, consistente, por ejemplo, en entrevistas con
personas informadas o con experiencia sobre situaciones
relacionadas.
SIMULACIÓN DE SISTEMAS DISCRETOS
78
Desgraciadamente en muchos casos información errónea sobre
distribuciones «relacionadas» es la única fuente de información
disponible. Ejemplos de ello pueden ser: disponer de información
agregada incorrecta, como es el caso de la simulación de sistemas
de inventario, que requiere datos de la demanda diaria, cuando solo
se dispone de datos de la demanda mensual; o de una distribución
temporal inadecuada, como cuando se dispone de información
histórica pero lo que se necesita es una proyección al futuro inmediato,
el próximo mes, año, etc.; o de una distribución censurada, como
cuando en lugar de disponer de los datos de la demanda solo
disponemos de los datos de ventas, que infraestiman la demanda
cuando hay rupturas de stock.
En los casos de información poca o incorrecta, pero
relacionada, la recomendación es ser escépticos sobre cualquier
distribución que se especifique, y recurrir al análisis de sensibilidad.
Considerar que la información cualitativa de que disponemos nos
permite, en todo caso, formular una conjetura sobre cual puede ser
la distribución apropiada, normal, lognormal, exponencial, Poisson,
Weibull, etc., considerar que la conjetura es tentativa y verificar la
sensibilidad tanto de los parámetros de la distribución conjeturada,
como de su forma. Hay que prevenir contra la elaboración de
conjeturas basadas en un simple análisis exploratorio, especialmente
si este es, sobre todo, visual. En las aplicaciones de la simulación en
el mundo de la manufactura es frecuente la recogida de datos que
representados en forma de histograma adoptan formas que sugieren
fuertemente distribuciones como la exponencial, cuando un análisis
mas detallado permite comprobar que esta es una distribución
inadecuada en este caso. Law y Kelton [27] ilustran detalladamente
algunos casos para ejemplos de estudios de simulación de procesos
de manufactura en los que se muestra como distribuciones
aparentemente exponenciales por su forma no son las que mejor
reproducen los datos observados sobre los tiempos de ocupación de
las máquinas en el caso del ejemplo, sino que es una distribución
gamma la más adecuada.
79
Modelización de la aleatoriedad en sistemas discretos
Una de las recomendaciones es realizar ejecuciones apareadas
de la simulación con los mismos números aleatorios. El objetivo de un
análisis de sensibilidad es comprobar que el resultado de un estudio
de simulación solo depende débilmente de que distribución se utiliza
de entre un conjunto de distribuciones plausibles. Las distribuciones
teóricas dependen en general de uno o dos parámetros que pueden
variar de manera continua, esto facilita el análisis de sensibilidad,
suponiendo que solo se toman en cuenta la formas limitadas que
pueden tomar las distribuciones teóricas.
Hay una tendencia a ajustar distribuciones teóricas a los datos
observados, pero esto no es siempre lo más recomendable. Por ejemplo
en muchos casos la utilización de distribuciones empíricas, combinación
de distribuciones continuas y procedimientos de interpolación que
mimetizan los datos con mayor aproximación es mucho más
recomendable.
De todas maneras, en el dilema distribuciones empíricas-
distribuciones teóricas, no hay que perder de vista que una distribución
empírica puede tener ciertas «irregularidades», particularmente cuando
solo se dispone de pocos datos, mientras que una distribución teórica
«suaviza» los datos y puede proporcionar información sobre la
distribución subyacente. Las dificultades para generar datos fuera del
intervalo de valores observados puede ser una limitación importante a
la hora de utilizar una distribución empírica si tenemos en cuenta que
muchas de las medidas del rendimiento de los sistemas que se simulan
dependen fuertemente de la probabilidad de que ocurran sucesos
«extremos», mientras que una distribución teórica permite generar
datos fuera del intervalo observado. Sin embargo hay situaciones en
las que deberemos recurrir a las distribuciones empíricas por no poder
ajustar ninguna distribución teórica con el grado de bondad exigible.
Con frecuencia los estudios de sensibilidad se limitan a modificar
las medias y las variancias de las distribuciones de los datos de entrada
para la simulación, utilizando transformaciones del tipoY = a+bX.Salvo
SIMULACIÓN DE SISTEMAS DISCRETOS
80
raras excepciones, como la de los tiempos medios de espera en colas
M/G/1 estacionarias, estos dos parámetros no son suficientes para
determinar los valores esperados de las distribuciones de salida de la
simulación, y en algunos casos ni tan solo la propia distribución.
Especialmente cuando se trata de las colas de las distribuciones de
entrada, los datos proporcionan un soporte insuficiente a las supuestas
formas de las mismas, y no se debe perder de vista que hay diferencias
cualitativas significativas entre las conductas de distribuciones como la
exponencial, la de Weibull o la normal, por ejemplo. Es recomendable
proceder a una investigación sobre la robustez para verificar la sensibilidad
de la medida del rendimiento del sistema que se simula con respecto a la
forma (por ejemplo la asimetría) de las distribuciones de entrada. En
comparación con un análisis solo de la media y la variancia, es obvio que
unextensoanálisisdesensibilidadcomoelqueseproponeesmáscostoso
y difícil de explicar, pero es un requisito imprescindible para la credibilidad
del estudio de simulación.
Completaremos estos comentarios con un ejemplo sencillo que
ayude a aclarar algunos de los aspectos discutidos. Supongamos una
empresa explotadora de la concesión de una autopista que quiere revisar
el diseño que se ha realizado de un puesto de peaje en un punto concreto
de la misma, pues sospecha que quizás ha sido infradimensionado a la
vista de las colas que se forman, sobre todo en alguna de las horas
punta.Para llevar acabo dicha revisión pone en marcha, en primer lugar,
un plan de recogida de datos sobre las llegadas de los vehículos al
puesto de peaje. Para ello instala un equipo de medición de alta
sensibilidad, que utiliza una tecnología basada en la detección por radar,
que le proporciona los datos de la tabla adjunta, observaciones de 240
intervalos de tiempo, medidos en segundos, entre vehículos que llegan
consecutivamente al puesto de peaje, ordenados de menor a mayor. Lo
que supone un tiempo total de observación de 3935,563 segundos, que
cubre suficientemente el intervalo total de una hora punta (Tabla 3).
De acuerdo con la metodología descrita en la descripción
previa, tras la recogida de información hemos de proceder a una
81
Modelización de la aleatoriedad en sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
82
análisis de los datos para investigar cuál puede ser la distribución de
probabilidad que mejor los puede representar, si una empírica o una
teórica, y en este último caso ajustar la distribución teórica más
adecuada.
El primer paso será, obviamente, un análisis descriptivo que
nos ayude a inferir de qué tipo de distribución se puede tratar. La
Figura 13 corresponde a la representación de los datos observados
en forma de histograma. En el proceso real, que por limitación de
espacio no vamos a reproducir aquí en su totalidad, el ejercicio
consiste en ir probando con diferentes criterios de agrupación
partiendo de diferentes reglas de agrupación basadas en la
experiencia, como por ejemplo la de Sturges, que señala un límite
inferior recomendado, para el número de clases en el histograma,
dado por:
ë û ë û
k n n
= + = +
1 1 3 322
2 10
log , log (2.1)
83
Modelización de la aleatoriedad en sistemas discretos
aunque, como señalan Law y Kelton en la obra citada, en muchos
casos estas reglas empíricas no funcionan demasiado bien. Por
ejemplo en este caso nos sugerirían utilizar 9 ó 10 clases, que
conducirían a una agrupación poco clara, mientras que el histograma
de la figura, realizado con 25 clases, nos sugiere la posibilidad de
que la distribución sea de tipo exponencial.
Ahora bien, teniendo en cuenta las recomendaciones
efectuadas, hemos de considerar esta inferencia como un primer
paso, a corroborar por otros procedimientos. Una distribución
exponencial supone que los sucesos que representa son
independientes entre sí, y tiene una propiedad característica y es
que su coeficiente de variación (cociente entre la desviación estándar
y la media: cv = s/m) es igual a la unidad.
Los sucesos llegada de vehículos a un puesto de peaje en una
autopista son independientes entre sí, por lo que se cumple la primera
condición, y puesto que la muestra y desviación estándar de la
muestra observada son, respectivamente:
$ ,
$ ,
m
s
=
=
16 398179
15 855114
(2.2)
el coeficiente de variación correspondiente es cv = 0,966882, lo
suficientemente próximo a la unidad como para que empecemos a
considerar que podemos aceptar la inferencia de que la distribución
de probabilidad, que describe aceptablemente los datos observados,
es la distribución exponencial:
( )
f x e x
= -
0 060928 0 60982
, ,
(2.3)
de media 1/0,060982 = 16,398179.
Todo parece indicar que la hipótesis de trabajo es razonable y
que esta distribución teórica, que supone que el tiempo medio que
transcurre entre las llegadas de dos vehículos consecutivos al puesto
SIMULACIÓN DE SISTEMAS DISCRETOS
84
de peaje es de 16.398 segundos. Sin embargo, el rigor metodológico
exige comprobaciones adicionales.
Cuando agrupamos las observaciones empíricas en un
histograma y Nj
es número de observaciones de la muestra
pertenecientes a la j-ésima clase, es decir al intervalo de extremos [aj-
1
, aj
), cuando la muestra procede de la distribución teórica f(x) el número
teórico esperado en dicha clase es Npj
, siendo N el número total de
observaciones, y pj
la proporción esperada, que, de acuerdo con la
distribución f(x), viene dada por:
( )
p f x dx
j
a
a
j
j
=
-
ò
1
(2.4)
en consecuencia, el valor empírico de la distribución de c2
correspondiente, vendrá dado por:
( )
c2
2
1
=
-
=
å
N Np
Np
j j
j
j
k
(2.5)
si el ajuste es aceptablemente bueno, este valor del c2
empírico
deberá ser inferior al valor teórico c2
k-1, 1-a
para un nivel a de
significación estadística. En nuestro caso, tomando probabilidades
constantes pj
= 0,04, para las k = 25 clases, de manera que el número de
observaciones teóricas por clase sea Npj
= 240 x 0,04 = 9,6 ( lo que
implicalímitesvariablesparalasclases,dadospor a Ln
j
j = - -
æ
è
ç
ö
ø
÷
16 308179 1
25
, ,
obtendríamos los resultados de la tabla adjunta (Tabla 4).
Consultando las tablas de la distribución c2
, y comparando el valor
empírico obtenido para c2
= 13,3324con el valor teórico c2
24, 0,90
= 33,196,
podemos concluir que, puesto que es sensiblemente inferior, la hipótesis
de que los datos observados están distribuidos con suficiente
aproximación por la distribución exponencial ajustada es aceptable
para un nivel de significación a = 0,10.
Supongamos ahora que la empresa concesionaria de la
explotación de la autopista continua el análisis de la situación
85
Modelización de la aleatoriedad en sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
86
recogiendo ahora observaciones de las duraciones del proceso de
servicio, es decir el pago del peaje, durante el mismo período de
tiempo. Vamos a suponer que se trata de un peaje automático, de
tipo cerrado, en el que el viajero puede pagar en metálico, si dispone
del importe exacto, o con tarjeta de crédito. Los detectores de las
instalaciones de peaje miden el tiempo que transcurre desde que el
vehículo entra en el puesto de peaje hasta que lo abandona. La
operación de pago tiene dos componentes, una de valor constante
3,5 segundos, que depende del ciclo de la máquina, y otra aleatoria
que depende de las circunstancias del cliente (tener el dinero
preparado o no, que la tarjeta de crédito sea válida, etc.). Las 240
observaciones de la componente aleatoria, correspondientes a los
vehículos del período de estudio, ordenadas en orden creciente, en
segundos, se muestran en la Tabla 5
Como en el caso anterior realizaremos un análisis para determinar
qué posible distribución teórica es la que se ajusta mejor a los datos
observados, y utilizaremos la misma metodología. Al proceder a la
inspección visual por medio del histograma nos encontramos en este
caso con una forma que ya no se asemeja tanto a la de la distribución
exponencial, como muestra el histograma de la Figura 14. Sin embargo,
el hecho de que los sucesos pago del peaje sean independientes y que
la media y variancia muestrales sean, respectivamente:
$ ,
$ ,
m
s
=
=
9 6075
8 7011
(2.6)
y por lo tanto el coeficiente de variación sea cv = 0,9056, podría
llevarnos a pensar que, aunque fuera forzar un poco la situación a lo
mejor una exponencial aún puede adaptarse aceptablemente a los
datos observados.
Repitiendo el procedimiento propuesto para realizar el
análisis de la bondad del ajuste de la exponencial, por medio de la
determinación del valor empírico de la c2
resulta, en este caso, lo
mostrado en la Tabla 6.
87
Modelización de la aleatoriedad en sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
88
Comparando ahora el c2
empírico, de valor 41,5083, con el
teórico para a = 0,10, hemos de rechazar la hipótesis de que los
datos observados pueden ajustarse por medio de una distribución
exponencial.
Podríamos comprobar que la hipótesis es rechazable para
cualquier nivel de significación sensato. A partir de aquí, de acuerdo
con la discusión que ha precedido al ejemplo, tenemos dos posibles
alternativas, una consistente en continuar nuestra investigación a la
búsqueda de una distribución teórica que se ajuste aceptablemente a
los datos empíricos, y otra basada en utilizar los datos observados
para construir una distribución empírica.
En el primer caso, si nuestros esfuerzos se ven coronados por
el éxito y podemos encontrar la distribución buscada (en este caso un
coeficiente de variación inferior a la unidad nos sugiere probar con
una distribución gamma), si persistimos en utilizar un modelo teórico
89
Modelización de la aleatoriedad en sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
90
el puesto de peaje podría ser modelizado como un sistema de colas
M/G/1, como corresponde a un sistema con llegadas cuya distribución
de tiempos entre llegadas consecutivas es exponencial, y cuyos tiempos
de servicio siguen una combinación de un paso de tiempo constante
con una distribución no exponencial. Tendríamos que enfrentarnos
entonces a las dificultades analíticas y numéricas que hemos
mencionado en el Capítulo anterior.
La Figura 15 muestra el ajuste entre los datos observados (línea
continua), y la distribución gamma de parámetros a = 1,25, b = 7,5,
(línea de trazos), para la cual el c2
empírico toma el valor 19,3072, y el
teórico para a = 0,05, y 13 grados de libertad (que corresponden a una
clasificación con 14 clases, en la que los valores residuales se han
acumulado en la última clase) c2
13, 0,95
= 22,362, por lo que, aunque el
ajuste no es muy bueno puede ser aceptado (Nota: se trata de un
ajuste aproximado, por razones de espacio y dificultad técnica hemos
obviado entrar en la discusión de como efectuar el mejor ajuste).
91
Modelización de la aleatoriedad en sistemas discretos
Por el contrario, si decidimos construir la distribución empírica
correspondiente podemos utilizar un modelo de simulación para
estudiar el comportamiento del puesto de peaje. Para construir la
distribución empírica podemos proceder de diversas maneras, una
de ellas es la siguiente: construimos un nuevo histograma cuyos
extremos son, respectivamente la menor y la mayor de las
observaciones realizadas, añadiendo los 3,5 segundos del paso de
tiempo constante [3,6454, 62,9783] calculamos las frecuencias, y
las frecuencias acumuladas, para cada clase, y representamos la
clase por el extremo superior del subintervalo que define la clase,
tal como se indica en la Tabla 7.
La Figura 16 representa gráficamente la distribución empírica
acumulada propuesta, a partir de la cual, si X1,
X2
, ...., Xn
son los
valores observados, y están agrupados en k clases cuyos extremos
respectivos son [a0
, a1
) [a1
, a2
), .... [aj-1
, aj
), .... [ak-1
, ak
), los valores
intermedios se pueden obtener por interpolación de acuerdo con la
SIMULACIÓN DE SISTEMAS DISCRETOS
92
fórmula siguiente:
( ) ( ) ( ) ( )
[ ]
G x G a
x a
a a
G a G a
j
j
j j
j j
=
ì
í
ï
î
ï
+
-
-
-
-
-
-
-
0
1
1
1
1
1 (2.7)
donde G(x) = 0 si x < aj
, G(x) = 1 si ak
£ x, y G(x) igual al resultado de
la evaluación de la expresión en los demás casos, cuando aj-1
£ x < aj
.
Una desventaja de este tipo de distribuciones empíricas es que nunca
pueden producir valores menores que a0
, o mayores que ak
, lo que
puede introducir sesgos en las muestras generadas a partir de ellas.
2.2. Generación de muestras de distribuciones aleatorias:
introducción a los métodos de Monte Carlo
La reproducción de las fuentes de aleatoriedad en la simulación
del comportamiento de un sistema exige la capacidad de generar
93
Modelización de la aleatoriedad en sistemas discretos
muestras de números aleatorios que correspondan adecuadamente a
la distribución de probabilidad que gobierna la componente particular
de conducta aleatoria que se está simulando. El mecanismo generador
de tales muestras ha de ser capaz de producir variables aleatorias de
cualquier tipo, continuas o discretas. El término «generar una variable
aleatoria» se refiere a la actividad de obtener una observación, o
realización, de una variable aleatoria a partir de la distribución
especificada.
Como vamos a ver a continuación, el ingrediente básico para
todo procedimiento de generación de variables aleatorias a partir de
cualquier distribución o proceso aleatorio, es una fuente de producción
de variables aleatorias independientes, idénticamente distribuidas
según una distribución uniforme en el intervalo (0,1). Esto es
consecuencia de un importante resultado de la teoría de probabilidades
en función del cual las muestras de diferentes variables de una gran
variedad de distribuciones, tanto teóricas como empíricas pueden
generarse a partir de muestras de variables aleatorias independientes
uniformemente distribuidas en el intervalo (0,1).
Sea X una variable aleatoria continua con una función de
probabilidad fX
, y una distribución:
( ) ( )
F x f d
x x
x
= -¥
ò q q (2.8)
Consideremos la variable aleatoria ( ) ( )
u F x f d
x x
x
= = -¥
ò q q; por la
teoría de probabilidades sabemos que la función de probabilidad de U es:
( ) ( )
f u J f x
U x
= (2.9)
donde J
x
u
=
¶
¶
es el Jacobiano de la transformación, y:
( ) ( )
u F x f d u
x x
x
= = £ £
-¥
ò q q, 0 1 (2.10)
en este caso J = [fx
(x)]-1
, y en consecuencia:
SIMULACIÓN DE SISTEMAS DISCRETOS
94
( )
( )
f u u
f u en caso contrario
U
U
= £ £
=
1 0 1
0
,
,
(2.11)
que es la función de probabilidad de una variable aleatoria uniformemente
distribuida en (0, 1), por lo tanto, si u= Fx
(x), y Fx
(x) es tal que existe
( )
F u
x
-1
, entonces:
( )
x F u
x
= -1
(2.12)
en consecuencia si u está uniformemente distribuida en (0, 1), sustituyendo
u en ( )
F u
x
-1
se obtiene x, distribuida segúnFx
(x) .
Este procedimiento para generar una variable aleatoria según una
distribucióndadaapartirdevariablesaleatoriasuniformementedistribuidas
recibe el nombre de método de la transformación inversa, puesto que
requiere que se pueda calcular Fx
-1
(x)
Así, por ejemplo, si X es una variable aleatoria exponencial, es
decir, con una función de probabilidad dada por:
( )
f x
e x
x
x
x
=
£ < ¥
<
ì
í
î
-
m m
0
0 0
(2.13)
entonces:
( )
F x e dy e u e
x
y x x
x
= = - Þ = -
- - -
ò m m m m
1 1
0
(2.14)
y en consecuencia:
( )
x u
= - -
1
1
m
ln (2.15)
por lo tanto cada vez que en esta expresión sustituimos u por un valor en
el intervalo (0, 1) correspondiente a una observación de la variable aleatoria
U, uniformemente distribuida en dicho intervalo, obtenemos el valor x de
una observación de la variable aleatoria exponencial X de parámetro m.
Para generar una distribución uniforme en el intervalo [a,b utilizando
este procedimiento basta con tener en cuenta que la función de distribución
de dicha variable es:
95
Modelización de la aleatoriedad en sistemas discretos
( )
F x
b a
dy
x a
b a
u con a x b
a
x
=
-
=
-
-
= £ £
ò
1
,
(2.16)
por lo tanto:
( )
x a u b a u
= + - £ £
, 0 1 (2.17)
Las dificultades para calcular analíticamente la función inversa de
la variable aleatoria X cuya muestra se pretende generar han llevado a
desarrollar variantes de este método o incluso métodos específicos según
las características de la variable. En los textos ya referenciados de Law
y Kelton [27], Bratley et al. [28] o Kleijnen [29, 30, 31] puede encontrarse
una variada colección de procedimientos que cubren la mayor parte de
las distribuciones de probabilidad habitualmente utilizadas en los estudios
de simulación. Con objeto de completar esta descripción vamos a incluir
únicamente dos de los más utilizados, el de las aproximaciones a la
función inversa y el de rechazo.
Cuando la función de distribución F(x) tiene una inversa que o bien
es costosa de calcular, o no se puede calcular analíticamente, podemos
recurrir a tabular una secuencia de pares, (F(xi
), xi
) tales que xi
< xi+1
El siguiente algoritmo invierte la aproximación poligonal a F(x) que
interpola estos pares:
1. Encontrar Xi
tal que F(Xi
) £ U £ F(Xi+1
)
2. Calcular:
( )
[ ] ( )
[ ]
( ) ( )
X
F X U X U F X X
F X F X
i i i i
i i
=
- + -
-
+ +
+
1 1
1
(2.18)
Este procedimiento puede considerarse como el simétrico del
propuesto en el apartado anterior para tratar con distribuciones empíricas.
Ahrens y Kohrt [32], citados en [28], proponen un proce-
dimiento de interpolación más exacto, pero mas complicado,
SIMULACIÓN DE SISTEMAS DISCRETOS
96
basado en la integración numérica de la función de probabilidad
para obtener F:
1. Integrar numéricamente la función de probabilidad f(x) para
obtener F.
2. Decidir como efectuar una partición de (0,1), el dominio
de F-1
, en intervalos de longitud desigual basados en las
características de la función F.
3. Determinar la forma y los coeficientes de la función de
interpolación para cada uno de los subintervalos.
A pesar del coste computacional los resultados numéricos
indican que este método es uno de los mejores.
El método de la transformada inversa requiere el conocimiento
explícito o aproximado de la función de distribución F(x), sin embargo
en muchas situaciones disponemos de la función de probabilidad
f(x) pero no de la de distribución. Un ejemplo típico es el caso de la
ley normal para el que no se conoce ninguna expresión analítica
para la función de distribución. El método de rechazo, propuesto
por von Neumann [33] puede utilizarse cuando solo conocemos la
función de probabilidad f(x). El método requiere que la función de
probabilidad f(x) esté acotada y no nula en un intervalo finito [a,b].
Definimos:
( )
{ }
c max f x a x b
= £ £
: (2.19)
Entonces:
1. Generar X uniformemente distribuida en (a,b);
2. Generar Y uniformemente distribuida en (0,c);
3. SiY £ f(X), entonces aceptar X, en caso contrario rechazarla
y repetir.
97
Modelización de la aleatoriedad en sistemas discretos
La Figura 17 ilustra geométricamente la operativa del método
de rechazo. Los valores X e Y representan las coordenadas de un
punto del rectángulo de lados c y b-a. Si el punto queda por debajo
de f(X), es decir pertenece al área encerrada por la curva f(x) y el
intervalo (a,b), entonces se acepta el valor de X, en caso contrario se
rechaza.
El método de rechazo es uno de los procedimientos básicos del
conjunto de procedimientos conocidos como Métodos de Monte Carlo
[24] que combina propiedades de la integración de funciones con la
generación de muestras de variables aleatorias uniformemente
distribuidas para calcular integrales numéricamente. Así, por ejemplo,
dada una función f(x) acotada, definida en el intervalo [a,b]
geométricamente la integral de f(x) en [a,b] es igual al área A1
encerrada
por la función y el segmento [a,b] tal como indica la Figura 18:
( )
A f x dx
a
b
1 = ò (2.20)
SIMULACIÓN DE SISTEMAS DISCRETOS
98
Si la función alcanza su máximo en el punto cÎ[a,b] los puntos en el
interior del rectángulo de lados [0,c] y [a,b] se pueden interpretar como
una distribución uniforme bivariante. Generar valores Xi
uniformemente
distribuidos en [a,b] e Yi
uniformemente distribuidos en [0,c] equivale a
generar muestras de tal distribución bivariante, de manera que cada par
(Xi
,Yi
) representa las coordenadas de un punto perteneciente a dicho
rectángulo, la probabilidad de que uno de dichos puntos pertenezca al
área A1
, viene dada por:
p
A
A
A A p
= Þ =
1
1 * (2.21)
donde A es el área del rectángulo.En consecuencia todo procedimiento
de estimación de p se convierte en un procedimiento de estimación de
A1
puesto que A es conocida.
Dado (Xi
,Yi
), si f(Xi
)³Yi
Þ (Xi
,Yi
)ÎA1
, en caso contrario,
(Xi
,Yi
)ÎA2
. Si generamos una muestra con un total de n puntos, se
99
Modelización de la aleatoriedad en sistemas discretos
puede estimar p a partir del contaje del número de puntos m que
pertenecen a A1
, la estimación viene dada por:
$
p
m
n
= (2.22)
Haciendo un cambio de escala de manera que A1
+ A2
= A = 1, la
estimación de A1, y por tanto del valor de la integral, y su error estándar,
vienen dados por:
( )
$ $;
$ $
$
A p
A A
n
A
1
1 1
1
1
1
= =
-
-
s (2.23)
Un ejemplo sencillo que puede ilustrar como funciona el método
es la evaluación por Monte Carlo de la integral:
x dx
x
2
0
1
3
0
1
3
1
3
= =
ò (2.24)
La Tabla 8 presenta los resultados de generar una muestra de
n = 50 puntos en el cuadrado unidad.
Y aplicando los resultados anteriores:
$ $ ,
A p
m
n
1
15
50
0 3
= = = = (2.25)
Los métodos de Monte Carlo admiten gran cantidad de
variantes y están consolidados como procedimiento de integración
numérica, especialmente en casos de gran dificultad como los que
se presentan en muchos problemas de física e ingeniería, en
particular cuando se trata de funciones reales no integrables
analíticamente y, sobre todo, para integrales múltiples, ya que para
las simples se dispone en estos momentos de procedimientos
numéricos muy poderosos. Los métodos de Monte Carlo pueden
considerarse como procedimientos que utilizan la generación de
números aleatorios, especialmente los uniformemente distribuidos
en el intervalo (0,1) para resolver problemas estocásticos o
deterministas de tipo estático. En el caso de las integrales, además
de los argumentos anteriores podemos considerar que si:
SIMULACIÓN DE SISTEMAS DISCRETOS
100
101
Modelización de la aleatoriedad en sistemas discretos
( )
A f x dx
a
b
= ò (2.26)
es la integral de una función real f(x) no integrable analíticamente,
su cálculo, que es un problema determinista, puede aproximarse
por medio de los métodos de Monte Carlo de la manera siguiente:
Sea Y la variable aleatoria (b-a)f(X), donde X es una variable
aleatoria continua uniformemente distribuida en el intervalo [a,b].
El valor esperado de Y es:
( ) ( ) ( )
[ ] ( ) ( )
[ ] ( ) ( ) ( ) ( )
( )
( )
E Y E b a f X b a E f X b a f x x dx b a
f x dx
b a
A
x
a
b
a
b
= - = - = - = -
-
=
ò
ò
j
(2.27)
donde jX
(x) = 1/(b-a) es la función de probabilidad de X. Esto permite
reducir el problema de evaluación de la integral al de estimar el
valor esperado E(Y), para lo cual podemos utilizar la media muestral:
( ) ( )
( )
$
A Y n
Y
n
b a
f X
n
i
n
i
i
n
= = = -
= =
å å
1
1 1 (2.28)
siendo X1
, X2
, ...., Xn
variables aleatorias independientes idénticamente
distribuidas con una distribución uniforme en (a,b). Fijémonos que esto
es equivalente a estimar el área de un rectángulo de base (b-a) y altura
A/(b-a), que era la interpretación intuitiva que habíamos dado al principio.
Cerraremos está exposición ilustrando otra variante de inte-
gración basada en este caso en otra propiedad de la integral definida,
la del teorema de la media, variante conocida con el nombre de «Crude
Monte Carlo».
El primer teorema de la media para el cálculo integral [35]
establece que:
( ) ( ) ( ) [ ]
f x dx b a f a b
a
b
ò = - Î
x x
, , (2.29)
SIMULACIÓN DE SISTEMAS DISCRETOS
102
Geométricamente significa que A3
= A1
, es decir que el área del
rectángulo de lados f(x) y [a,b] es igual al área encerrada por la curva
f(x) y el intervalo [a,b] para algún punto interior x del intervalo, como
ilustra la Figura 19.
De nuevo un cambio de escala tal que A=1 permite que toda estima-
ción de f(x) se convierta en una estimación de A3
.En este caso, si Xi
es una
observación de la variable aleatoria X uniformemente distribuida en el inter-
valo [a,b] a partir de una muestra de n valores de Xi
unaestimacióndef(x)es:
( ) ( )
$
f
n
f Xi
i
n
x =
=
å
1
1
(2.30)
Con un error estándar:
( )
[ ] ( )
( )
s $
$
A
i
i
n
f X n A
n n
1
2
1
2
1
1
=
-
-
=
å
(2.31)
103
Modelización de la aleatoriedad en sistemas discretos
Utilizando las evaluaciones de f(Xi
) de la tabla del ejemplo, la
estimación de A1
hubiese sido en este caso:
( )( ) ( )
$ $ , ,
A f b a
1
1
50
18 661137 0 372022
= - = =
x (2.32)
Cerraremos estos comentarios sobre la generación de
muestras de variables aleatorias continuas con la presentación de
métodos ad-hoc para variables aleatorias con funciones de
probabilidad a las que no se puede aplicar alguno de los métodos
discutidos, como el de la transformada inversa, y los que se pueden
aplicar pueden tener un elevado coste computacional. El ejemplo
arquetípico es el de las variables aleatorias que siguen la ley normal:
( )
f x e x
x
= -¥ < < ¥
-
1
2
2
2
p
, (2.33)
de media cero y varianza 1, denotada habitualmente com X~N(0, 1), cuya
función de distribución no puede representarse analíticamente por lo que
habitualmenteserepresentaenformatabularquesecalculanuméricamente.
Ilustraremos este caso con un procedimiento sencillo, basado
en el teorema del límite central, que aunque actualmente ha caído
en desuso pone de manifiesto el tipo de razonamiento que sustenta
estos métodos. Sea X1
, X2
, ......, Xn
, una secuencia de n variables
aleatorias independientes e idénticamente distribuidas de media mX
,
y varianza sx
2
< ¥ , si la media muestral es:
x
n
X
n i
i
n
=
=
å
1
1
(2.34)
Entonces la variable:
y
x
n
x
x
=
-m
s /
(2.35)
tiene una distribución que converge a la distribución normal estándar.
En la práctica esto significa que cuando n es grande, la diferencia
entre y y la variable aleatoria normal estándar es despreciable. En
consecuencia para generar una muestra de una distribución normal
SIMULACIÓN DE SISTEMAS DISCRETOS
104
estándar podemos utilizar n números aleatorios ui
independientes
uniformemente distribuidos en (0,1) y formar la variable aleatoria:
( )
z
u
n
n
i
i
n
=
-
=
å 2
12
1
/
(2.36)
Puesto que toda transformación lineal de una variable nor-
malmente distribuida produce una variable que también está normal-
mente distribuida, si se tiene que generar una variable normalmente
distribuida de media m y varianza s, a partir de z se puede hacer:
x z
= +
s m (2.37)
Un método más exacto que el que acabamos de exponer, es de
Box y Muller que utiliza dos variables independientes u1
y u2
para producir
dos variables normales estándar independientes x1
y x2
:
( ) ( )
( ) ( )
x u u
x u u
1 2 1
2 1 2
2 2
2 2
= -
= -
cos ln
cos ln
p
p
(2.38)
Los métodos generales, como el de la transformada inversa, y
otros, pueden adaptarse a las distribuciones discretas.Así por ejemplo,
para la variable aleatoria geométrica, cuya función de probabilidad es:
( ) ( )
f x p p p x
x
= - < < =
-
1 0 1 1 2 3
1
, , , , ,K (2.39)
con función de distribución:
( ) ( ) ( )
y F x p p p
x
r
x
x
= = - = - -
-
=
å 1 1 1
1
1
(2.40)
de la relación y = 1 - (1 - p)x
se deduce:
( ) ( )
( )
( )
ln ln
ln
ln
1 1
1
1
- = - Þ =
-
-
y x p x
y
p (2.41)
105
Modelización de la aleatoriedad en sistemas discretos
y como x tiene que ser entero, se elige el entero k que satisface la
relación:
( )
( )
( )
( )
ln
ln
ln
ln
1
1
1
1
1
-
-
< £ +
-
-
y
p
k
y
p (2.42)
en consecuencia, generando una secuencia de números aleatorios
independientes yi
uniformemente distribuidos en (0, 1), la relación
anterior permite generar una secuencia ki
que estará distribuida
geométricamente con parámetro p.
Una adaptación similar puede hacerse en el caso de la ley de
Poisson:
( )
f x
e
x
x
x
= > =
-
l
l
l
!
, , , , , ,
0 0 1 2 3 K (2.43)
cuya función de distribución es:
( )
y F x
e
r
e
x
r
x x
= = = + + + + +
é
ë
ê
ù
û
ú
-
=
-
å
c
l
l l l
l
l
! ! ! !
0
2 3
1
2 3
LL (2.44)
la adaptación del método de la transformada inversa implica en este
caso encontrar el menor entero x tal que:
1 + + + + + ³
l
l l l l
2 3
2 3
! ! !
L
x
x
ye (2.45)
2.2.1. Generación de números pseudo-aleatorios uniformemente
distribuidos en (0,1)
De todo lo expuesto se deriva que la condición sine qua non
para poder producir muestras de variables aleatorias con funciones
de probabilidad cualesquiera es disponer de un generador de base de
variables aleatorias U uniformemente distribuidas en (0,1), puesto que,
por los resultados que hemos establecido a partir de la teoría de
probabilidades, todos los métodos recurren a la generación de muestras
de tales variables. Hay una amplia variedad de métodos para generar
SIMULACIÓN DE SISTEMAS DISCRETOS
106
este tipo de variables, las referencias citadas [27, 28, 29], etc. dedican
capítulos específicos a discutirlos, aunque el texto por excelencia sigue
siendo el de Knuth [36] . Hay tres consideraciones que juegan un papel
influyente en la determinación de si una fuente particular proporciona
o no números aleatorios adecuadamente satisfactorios para los
propósitos experimentales:
En primer lugar las secuencias de números generadas por la
fuente han de pasar toda una batería de tests estadísticos, de carácter
general (c2
, Kolmogorov-Smirnov, etc.), o específicamente diseñados
para revelar desviaciones respecto de la independencia y uniformidad.
Para una secuencia verdaderamente aleatoria Zi
, i = 1, ..., N; 0 £ Zi
£ N,
los elementos de cualquier subsecuencia han de ser conjuntamente
independientes, y cada una ha de tener una distribución uniforme en
(0,N). Una secuencia de números aleatorios que no satisfaga esta
propiedad puede conducir a resultados inadecuados en una
simulación.
La segunda propiedad significativa requiere que los números
aleatorios contengan suficientes dígitos como para que la generación
de números en el intervalo (0,1) sea lo suficientemente densa. Esto
exige que si {Zi
} está formada por números enteros, y N es el mayor
número que puede alcanzar un elemento Zi
de la secuencia, entonces
la probabilidad de que cualquier elemento tome un valor particular ha
de ser 1/(N+1).
Finalmente la tercera propiedad significativa concierne a la
eficiencia con que una fuente particular produce las secuencias de
números aleatorios, lo que en términos computacionales implica rapidez
y mínima ocupación de memoria.
2.2.2 Generación de dígitos aleatorios.
En el pasado se han propuesto y utilizado diferentes
procedimientos basados en métodos mecánicos o electromecánicos,
107
Modelización de la aleatoriedad en sistemas discretos
el texto de Tocher [37] proporciona una buena panorámica histórica.
Uno de los grandes inconvenientes de estos métodos era la
irreproducibilidad de una secuencia, inconveniente grave puesto que,
en muchos experimentos de simulación es importante poder analizar
el comportamiento de las alternativas de un sistema sometidas
exactamente a las mismas condiciones, lo que requiere utilizar como
entrada las mismas muestras de números aleatorios. Los computadores
electrónicos han hecho posible el desarrollo de procedimientos que
pueden satisfacer todas las propiedades deseables incluyendo la de
la repetición de las secuencias. Uno de los primeros procedimientos
fue propuesto porVon Neuman [33] en 1951.Es el denominado método
de los cuadrados medios, que en esencia consiste en lo siguiente: se
parte de un número cualquiera (es recomendable un número par) de n
dígitos x0
, se eleva al cuadrado y se extraen los n dígitos del medio, con
lo que se obtiene un nuevo número x1
, con el cual se puede repetir el
proceso y así sucesivamente, tal como ilustra el siguiente ejemplo:
x0
= 5729
x0
2
= 32/8214/41 (2.46)
x1
= 8214
La Tabla 9 proporciona el resultado de generar 60 números de
cuatro dígitos mediante este procedimiento partiendo del 5729.
2.2.3. ¿Cuán aleatoria es la secuencia generada?
Está técnica de generación de dígitos es evidentemente muy
fácil de programar, y es obvio que genera secuencias reproducibles,
la cuestión de si es adecuada o no como fuente de generación de
dígitos aleatorios a partir de los cuales formar números de varios
dígitos por el método habitual que se utiliza con las tablas de dígitos
aleatorios, depende de otros factores. Un criterio que se puede utilizar
es comprobar si los números son aceptablemente aleatorios, para lo
cual tendríamos que someterlos a los tests a que hemos aludido
anteriormente. Así, por ejemplo, si los dígitos son aleatorios todos
SIMULACIÓN DE SISTEMAS DISCRETOS
108
los dígitos han de aparecer con la misma frecuencia, puesto que hay
60 números de cuatro dígitos, hay un total de 240 dígitos y por lo
tanto cada uno de ellos tendría que aparecer 24 veces. Aplicando un
test de c2
a la tabla de frecuencias observadas obtenemos el resultado
mostrado en la Tabla 10.
El valor de c2
empírico, correspondiente a esta tabla es:
( )
c2
0
9
12 74994
=
-
=
=
å
o e
e
i i
i
i
, (2.47)
Comparando este resultado con el valor teórico de c2
para un
nivel de significación de 0,05:
c c c
2
0 05
2
0 05
2
16 916
, ,
,
= Þ ³ (2.48)
y en consecuencia se puede aceptar la hipótesis, con este nivel de
significación, de que los dígitos generados son aceptablemente aleatorios.
109
Modelización de la aletoriedad en sistemas discretos
El principal inconveniente de este procedimiento es que
proporciona secuencias que a partir de un cierto número se repiten
cíclicamente y en consecuencia la aleatoriedad se mantiene,
estadísticamente limitada solo a la parte primera del ciclo. En el caso
del ejemplo, si hubiésemos continuado tendríamos:
7185 8333 0321 6900 2100
6242 4388 1030 6100 4100
9625 2545 0609 2100 8100
6406 4770 3708 4100 6100
0368 7529 7492 8100 2100
1354 6858 1300 6100 4100
La degeneración que representa la presencia de los ciclos justifica
el nombre de números pseudoaleatorios que se da a los números genera-
dos por cualquiera de estos procedimientos. El análisis estadístico nos
indica que las secuencias generadas antes de que empiece el proceso
SIMULACIÓN DE SISTEMAS DISCRETOS
110
cíclico pueden ser aceptables estadísticamente como secuencias aleato-
rias mientras nos restrinjamos a ellas. El problema en la práctica de la
simulación surge cuando las dimensiones de las muestras que necesita-
mos son mayores que las longitudes de los ciclos, ya que en tal caso si
continuáramos utilizándola la presencia del ciclo invalidaría el carácter
aleatorio. Desgraciadamente esta es la situación más frecuente, lo que
nos lleva a buscar métodos alternativos, que generen computacionalmente
de una manera eficaz secuencias de números pseudoaleatorios, cuyos
ciclos sean de longitud suficientemente grande como para que no nos
planteen problemas con las dimensiones de las muestras necesarias.
2.2.4. Procedimientos generales.
Los métodos más generalizados en estos momentos, por su
especial adecuación a los computadores digitales, y la longitud de las
secuencias que proporcionan, son los Generadores Congruenciales
Lineales, introducidos por Lehmer en 1951 [38]. Tienen la forma:
( )
Z aZ c m i n
i i
= + =
-1 1 2
mod , , ,
K (2.49)
la secuencia se inicia a partir de un número Z0
, que es el inicializador o
simiente de la secuencia. La congruencia módulo m implica que:
Z aZ c
aZ c
m
m
i i
i
= + -
+
é
êê
ù
úú
-
-
1
1
(2.50)
(donde X , significa «parte entera de»). A partir de esta expresión es
evidente que Zi
< m, i = 1, 2, ....., n, es decir que ninguno de los números
generados puede ser mayor que el módulo m de la congruencia, que
genera entonces números en el intervalo (0, m). Para generar números
uniformemente distribuidos en (0,1) basta con dividir por m:
U
Z
m
i
i
= (2.51)
Si se resuelve la ecuación en diferencias de primer orden Zi
- aZi-1
ºc
(mod m) se obtiene la expresión:
( )
Z a Z
a
a
c m
n
n
n
º +
-
-
0
1
1
mod (2.52)
111
cuando c = 0 los generadores se denominan multiplicativos. En la
práctica los números pseudoaleatorios se procesan en un computador
como enteros. Si g es el número base del computador (2 para los
computadores binarios, 10 para los decimales, etc.), haciendo m = gb
,
donde b es un número entero, la reducción módulo
aZ c
m
i- +
1
(2.53)
se lleva a cabo desplazando el punto decimal de aZi-1
+c, b posiciones
hacia la izquierda, y reteniendo únicamente los dígitos que permanecen a
la izquierda de la nueva posición del punto decimal. El cálculo de Ui
por
medio de la división de Zi
por m también se realiza desplazando el punto
decimal â posiciones hacia la izquierda, en consecuencia la simplicidad y
eficiencia con que dichas operaciones pueden realizarse en el computador
es lo que ha convertido a este tipo de generadores en los más ampliamente
utilizados. La calidad del generador depende de la elección los parámetros
a, c y m. En las referencias citada, y especialmente en la de Knuth [36],
pueden encontrarse detallados estudios teóricos que determinan las con-
diciones para la selección de los valores de los parámetros, especialmente
en lo que se refiere a la longitud de las secuencias, es decir el número p
de números pseudoaleatorios distintos que el generador produce antes
de entrar entonces a=2s
+b) en el proceso cíclico, el ideal es que el gene-
rador sea de período completo, es decir p=m, se puede demostrar que
para ello es necesario que:
1. c y m sean primos entre sí.
2. a º1 (mod q) para todo factor primo q de m.
3. a º1 (mod 4) si 4 es divisor de m ( por ejemplo, si m = 2b
,
entonces a = 2s
+ b).
Modelización de la aleatoriedad en sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
112
113
3
La simulación de
sistemas discretos:
lenguajes de
simulación de
sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
114
3.1. Metodología de la construcción de modelos de simulación
de sistemas discretos
Las ideas generales expuestas hasta aquí pueden resumirse en los
términos siguientes [1]: si las relaciones que constituyen el modelo mate-
mático de un sistema lo permiten pueden obtenerse soluciones exactas de
forma analítica que proporcionan respuestas a las cuestiones de interés
sobre el sistema a través de las soluciones producidas por el modelo.
Cuando la complejidad de las ecuaciones del modelo hace inviables
las soluciones analíticas hemos de recurrir a métodos numéricos para
resolverlas. La Simulación se encuadra dentro de las técnicas numéricas
a utilizar en estos casos.
Por Simulación de Sistemas entendemos el proceso de representar
un sistema por medio de un modelo simbólico que puede manipularse
por medio de un computador digital para que proporcione resultados
numéricos. El computador permitirá evaluar numéricamente un modelo
de simulación durante un intervalo de tiempo significativo para los objetivos
del estudio, y recoger durante el mismo datos que posibiliten la estimación
de las características deseadas del modelo.
Modelización y Simulación son pues los términos que utilizamos
para designar el conjunto de actividades asociadas con la construcción
de modelos de sistemas, y su utilización para realizar experimentos
específicamente diseñados para estudiar aspectos concretos del
comportamiento dinámico del sistema representado por el modelo. En
particular el término modelización se refiere a las relaciones entre los
sistemas reales y sus modelos, es decir el proceso a través del cual
115
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
construimos el modelo que representa al sistema, mientras que
simulación se refiere, sobre todo, a la manera en que el modelo es
tratado en el computador.
La Modelización por Simulación («Simulation Modelling») supone
que podemos describir un sistema en unos términos que son aceptables
para un computador para poder describir sus cambios. Para aquellos
sistemas cuyos cambios son discretos el concepto clave es el de la
descripción del estado del sistema. Si un sistema puede ser
caracterizado por un conjunto de variables, de manera que cada
combinación de valores de las variables represente un estado único, o
condición del sistema, entonces la manipulación de las variables simula
el movimiento del sistema de estado a estado.
En esto es precisamente en lo que consiste la Simulación: la
representación de la dinámica del sistema moviéndolo de un estado a
otro de acuerdo con reglas de operación bien definidas.
En el caso de los sistemas discretos, la simulación se refiere a
la modelización en un computador digital de un sistema cuyos cambios
de estado tienen lugar de manera discreta como consecuencia de la
ocurrencia de agentes del cambio de estado denominados sucesos.
Simular es, pues, duplicar el comportamiento dinámico de algún
aspecto de un sistema, real o propuesto, sustituyendo las propiedades
esenciales del sistema simulado por las propiedades del sistema que
lo simula, el modelo.
Una vez construido, el modelo de simulación actúa como un labora-
torioenelquesepuedenverificar,comparar yajustar fácilmentelasdiferen-
tes alternativas de diseño. Mediante la ejecución del modelo en un
ordenador se imitan las acciones del sistema propuesto, permitiendo
extraer inferencias sobre las prestaciones del sistema global. Estas
inferencias se realizan en base a las numerosas medidas de las
prestaciones proporcionadas por la simulación, tales como las utilizaciones
SIMULACIÓN DE SISTEMAS DISCRETOS
116
de la máquinas, los inventarios durante el proceso, los tiempos de espera
de las piezas, y el rendimiento o capacidad de producción (throughput)
total, en el caso de la simulación de sistemas de producción, por ejemplo.
Mediante este proceso de experimentación se puede elegir el mejor diseño
del sistema.
La popularidad creciente de la Simulación es debida en parte a
su fiel adherencia a los detalles. Las formulaciones analíticas, aunque
ofrecen soluciones rápidas en forma analítica compacta (closed-forms),
tienden a ser restrictivas incluso para el más simple de los sistemas.
Los detalles complicados se omiten con frecuencia para poder
acomodar la formulación. La Simulación, por el contrario, puede
proporcionar tantos detalles complicados como desee el analista.Todas
las características relevantes del sistema pueden ser tenidas en cuenta,
tales como la variabilidad de los tiempos de proceso de las operaciones,
la fiabilidad de los equipos, restricciones de las instalaciones (fixture
restrictions), restricciones de almacenamiento intermedio durante los
procesos, decisiones complejas de enrutamiento, políticas de operación
y restricciones de programación de operaciones. Las hipótesis
restrictivas de simplificación, tales como las exigencias de linealidad o
de tiempos constantes, no son necesarias. El resultado es un contexto
experimental más realista en el cual verificar y comprobar las estrategias
de diseño alternativas, lo cual, a su vez, añade seguridad a las
conclusiones a que se llega mediante este planteamiento.
En general las condiciones de utilización de la simulación son las
siguientes según Shannon [39]:
1. No existe una formulación matemática completa del problema,
o no se han desarrollado aún los métodos analíticos para
resolver el modelo matemático.
2. Existen los métodos analíticos, pero las hipótesis
simplificadoras, necesarias para su aplicación, desvirtúan las
soluciones obtenidas y su interpretación.
117
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
3. Los métodos analíticos existen, y en teoría están disponibles,
pero los procedimientos numéricos son tan arduos y
complejos que la simulación constituye un método más
sencillo para obtener una solución.
4. Es deseable observar una historia simulada del proceso
dentro de un horizonte temporal dado para poder estimar
ciertos parámetros.
5. La simulación constituye la mejor alternativa por la dificultad
de realizar experiencias en el contexto real.
6. Es necesario realizar una compresión temporal para estudiar
la evolución del sistema a largo plazo.
Un modelo de simulación describe pues el comportamiento diná-
mico de un sistema en el tiempo. En la terminología que hemos
introducido, el sistema está formado por entidades, elementos
componentes cuyo comportamiento es seguido a través del sistema.
Las entidades pueden pertenecer a diferentes clases, y poseen atributos
identificativos que caracterizan su comportamiento, y por ende el del
sistema. Las entidades de una clase dada tienen el mismo conjunto de
atributos, aunque sus valores no tengan por que ser idénticos, y tenderán
a seguir pautas de comportamiento similares en el tiempo. Las entidades
pueden intervenir en actividades, solas o conjuntamente con otras
entidades.
En un instante determinado el sistema simulado tendrá una
configuración dada, definida por las actividades de las entidades y los
valores de sus atributos: esta será la caracterización del estado del
sistema. El estado cambiará, discretamente, como consecuencia de la
ocurrencia de un suceso.
La secuencia de sucesos y los cambios de estado que
determinan representan el comportamiento dinámico del sistema.
SIMULACIÓN DE SISTEMAS DISCRETOS
118
De este planteamiento conceptual de la simulación se
desprende que el control del flujo del tiempo en el proceso de
simulación es el aspecto clave del proceso de simulación.
Tradicionalmente se han propuesto dos procedimientos, un
tratamiento síncrono y uno asíncrono.
El tratamiento síncrono o de reparto del tiempo a intervalos
regulares, consiste en desplazar el tiempo hacia adelante a intervalos
iguales, es decir actualizar y examinar el modelo a intervalos
regulares. Así, por ejemplo, si el intervalo considerado es de amplitud
Dt, el modelo se actualizará en el instante t + Dt para los cambios
ocurridos en el intervalo (t, t + Dt).
Este enfoque plantea el problema de decidir cuál es la longitud
apropiada de la amplitud del intervalo Dt. Evidentemente si la amplitud
del intervalo de referencia es muy grande el comportamiento del
modelo será muy burdo en relación con el del sistema puesto que
será imposible tener en cuenta alguno de los cambios de estado que
pueden ocurrir, mientras que por el contrario si el intervalo de tiempo
es muy pequeño el modelo será reexaminado innecesariamente con
gran frecuencia y el consiguiente incremento del coste computacional.
Las dificultades para decidir apropiadamente en muchos casos
la longitud del intervalo Dt hacen preferible utilizar un planteamiento
asíncrono, en el que la amplitud del intervalo de tiempo es variable.
En este caso el estado del modelo es examinado y actualizado
únicamente cuando tiene lugar un cambio de estado. Esta es la
situación típica cuando el cambio de estado es producido por la
ocurrencia de un suceso, y puesto que entonces el tiempo es movido
de suceso a suceso este enfoque recibe el nombre de técnica del
suceso siguiente o dirigida por sucesos.
El ejemplo del modelo de cola M/M/1 de la Sección 1.6 ilustra
estos conceptos y materializa la idea de simulación de sistemas
discretos por una técnica dirigida por sucesos.
119
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
3.2. Características generales de los lenguajes de simulación de
sistemas discretos: la «visión del mundo» de un lenguaje de
simulación.
La codificación de un modelo de simulación, de un sistema con
sucesos discretos, en términos de un lenguaje de programación, de tipo
general o especial para simulación, pone de manifiesto una serie de
características comunes a todos ellos, como por ejemplo Fishman [40]:
1. La generación de muestras de números aleatorios
uniformemente distribuidos en (0,1).
2. La generación de muestras de variables aleatorias con
distribuciones específicas.
3. Los mecanismos de control y flujo del tiempo durante la
simulación.
4. La determinación del suceso que ha de ser tratado a
continuación del que lo está siendo (técnica next-event).
5. La adición, supresión o actualización de registros en
estructuras de datos ad hoc, como por ejemplo listas que
representan secuencias de sucesos.
6. La recolección y el análisis de los datos generados por la
simulación.
7. La elaboración de informes sobre los resultados obtenidos.
8. La detección de condiciones de error.
La existencia de estos y otros factores comunes a la mayor parte
de los programas de simulación es lo que ha conducido al desarrollo
de los lenguajes de simulación de propósito general, cuyo
perfeccionamiento, estandarización y accesibilidad han sido los
principales factores del incremento que ha experimentado el uso de la
simulación en los últimos años.
Una de las decisiones más importantes que ha de tomar un
modelizador o analista para la realización de un estudio de simulación
es la selección del lenguaje de computador en que va a programar el
SIMULACIÓN DE SISTEMAS DISCRETOS
120
modelo.Algunas de las ventajas de programar el modelo de simulación
en un lenguaje de simulación en vez de hacerlo en un lenguaje general
como FORTRAN, PASCAL, o C, son las siguientes:
1. Los lenguajes de simulación proporcionan automáticamente
muchas, si no todas, las características necesarias para la
programación de un modelo de simulación, lo que redunda
en una reducción significativa del esfuerzo requerido para
programar el modelo.
2. Proporcionan un marco de trabajo natural para el uso de
modelos de simulación. Los bloques básicos de construcción
del lenguaje son mucho más afines a los propósitos de la
simulación que los de un lenguaje de tipo general.
3. Los modelos de simulación son mucho más fácilmente
modificables cuando están escritos en un lenguaje de
simulación, y por consiguiente se pueden ejecutar con mayor
facilidad y flexibilidad los cambios requeridos por los
experimentos de simulación.
4. Muchos de los lenguajes de simulación proporcionan una
asignación dinámica de memoria durante la ejecución, cosa
que no ocurre con todos los lenguajes de propósito general.
5. Facilitan una mejor detección de los errores, especialmente
los inherentes a la lógica del proceso de simulación.
Los lenguajes de simulación para la simulación de sistemas
discretos se eligen en base a lo atractivo de sus características,
aunque hay una de ellas que resulta determinante e impone la
naturaleza del lenguaje, es la estrategia, enfoque o visión del mundo
inherente al lenguaje, utilizada para la selección del «suceso
siguiente» y la gestión del tiempo. Kiviat [41], en un trabajo seminal,
clasificó los procedimientos de control de tiempos de los lenguajes
121
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
de simulación de sucesos discretos, según la estrategia seguida en
la selección de sucesos, en:
1. Programación de Sucesos (Event Scheduling).
2. Exploración de Actividades (Activity Scanning).
3. Interacción de Procesos (Process Interaction).
LaTabla 11 muestra estrategias que conducen a una clasificación
de los lenguajes de simulación [40,41].
El hecho de que algunos lenguajes, SIMSCRIPT II.5, SLAM,
SLAM II y SIMAN aparezcan tanto como lenguajes según una
estrategia de programación de sucesos (event scheduling), como de
interacción de procesos (process interaction), responde a que su
estructura y naturaleza permiten al usuario emplear ambas
estrategias, lo que refleja la tendencia creciente a la incorporación
de múltiples visiones del mundo en la estructura de un solo lenguaje.
SIMULACIÓN DE SISTEMAS DISCRETOS
122
Con cualquiera de estas estrategias, cuando se selecciona el «suceso
siguiente» para que sea procesado, se ejecuta la correspondiente «rutina
de modelización» (bloque de código), para modelizar los cambios
apropiados en el estado del modelo. Los conceptos de suceso
condicional, o incondicional, son básicos para las estrategias. Un suceso
incondicional es elegible para ser ejecutado cuando se llega al instante
de tiempo para el que ha sido programado: depende totalmente del
tiempo. Un suceso condicional puede depender de condiciones
adicionales distintas del tiempo. Las condiciones se refieren usualmente
a valores descriptores del estado de las componentes del sistema, por
ejemplo, la desocupación, o el fin de la ocupación de un dispositivo del
sistema modelizado. Una característica común a los tres planteamientos
es que los programas a que dan lugar tienen una estructura jerárquica
de tres niveles [40]:
• Nivel ejecutivo, o del programa de control.
• Nivel de operaciones (secuencia de sentencias que constituyen
el programa de computador que constituyen el modelo
propiamente dicho).
• Nivel de rutinas de detalle, que ejecutan las acciones implicadas
por cada una de las operaciones del modelo.
El usuario de un lenguaje de simulación basado en uno de estos
planteamientos no necesita conocer con detalle como está programado
el ejecutivo, sino como funciona, es decir, lo que hemos llamado visión
del mundo del lenguaje correspondiente. El ejecutivo es el que se encarga
de identificar cuando tiene que ocurrir el siguiente suceso y que se
ejecuten correctamente las operaciones por él implicadas en los
momentos adecuados.
La estrategia de programación de sucesos (event scheduling,
ES) implica una secuencia de sucesos incondicionales a lo largo del
tiempo. Por lo tanto, la visión del mundo de un lenguaje, o modelo
expresado en tal lenguaje, que incorpore la estrategia ES consiste en
considerar la operación del sistema como una secuencia temporal,
123
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
ordenada, de sucesos incondicionales, que se implanta de la manera
siguiente:
El procedimiento ES de control del tiempo selecciona de la lista
de sucesos aquel cuyo tiempo de ocurrencia es el más próximo,
resolviendo los empates por las prioridades asignadas o por defecto,
actualiza el tiempo del reloj de simulación, igualando su valor al del
instante en que ocurre el suceso, y llama a la rutina correspondiente al
tratamiento del suceso.
Cualquier verificación de una condición diferente de la del tiempo
del reloj debe realizarse dentro de las rutinas de tratamiento de los
diferentes sucesos. Los sucesos se eligen y progresan sucesivamente
hasta el instante de terminación. En el caso del modelo de colas simple
que hemos utilizado en el Capítulo 1 los sucesos primarios que cambian
el estado del sistema, en una modelización por programación de sucesos
(event scheduling), son el suceso de llegada al sistema de un nuevo
cliente, y el de finalización de un servicio, según la descripción que hemos
dado en el diagrama de simulación del sistema de colas ilustrado en la
Figura 12, descripción cuya lógica, según la metodología de
programación de sucesos (event scheduling), se traduce en los
diagramas de la Figura 20. La Figura 21, Emshoff [42], ilustra
gráficamente el esquema de la rutina ejecutiva para la estrategia de
programación de sucesos (event scheduling).
La estrategia de exploración de actividades (activity scanning,
AS) elige el suceso siguiente basándose en ambos, el tiempo
programado para la ocurrencia del suceso y la verificación de las
condiciones. El concepto básico es la actividad, que conceptualmente
es una transición de estado del sistema que requiere un período de
tiempo. Una actividad se representa habitualmente mediante dos sucesos
distintos que marcan respectivamente el principio y el final de la misma.
La visión del mundo que corresponde a un lenguaje, o modelo
de simulación programado en un lenguaje, basado en la estrategia
SIMULACIÓN DE SISTEMAS DISCRETOS
124
125
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
126
AS, considera que el sistema consta de componentes que desarrollan
actividades sujetas a actividades específicas.
En la implantación de esta estrategia se particularizan las
componentes de «tipo_activo», o componentes «móviles» del sistema,
que pueden tener asociada una rutina de actividad que cuando se
ejecuta modela las fases de la componente; cada componente de
«tipo_activo» tiene también asociado un reloj interno que indica en
que instante la componente vuelve a poder ser tenida en cuenta para
ser activada de nuevo, y una rutina de condición para determinar si se
reúnen la condiciones, distintas del tiempo, requeridas para su
reactivación. El procedimiento de control del tiempo AS explora las
actividades en orden de prioridad para su elegibilidad en el tiempo y
otras condiciones complementarias de activación, y ejecuta la rutina
correspondiente a la actividad de la primera componente cuyas
condiciones de activación se satisfacen.
En el caso del ejemplo de cola simple que nos ocupa podemos
distinguir tres clases de actividad, la desencadenada por la ocurrencia
de la llegada de un cliente al sistema, la de la finalización del servicio
y la de inicialización del servicio, cuyas rutinas correspondientes quedan
descritas por los diagramas de la Figura 22. La Figura 23, Emshoff
[42], representa la estructura del ejecutivo correspondiente a esta
estrategia de simulación.
La estrategia de interacción de procesos (process interaction,
PI) tiene características híbridas que la relacionan tanto con la estrategia
ES como con la AS.
La visión del mundo de un lenguaje, o modelo de simulación
programado en un lenguaje, basado en una estrategia PI contempla el
progreso de las componentes del sistema a través de una secuencia de
pasos, o procesos, cada uno de los cuales puede tener dos posibles
componentes, un segmento de condición, cuya ejecución identifica si se
puede pasar a ejecutar la segunda componente, un segmento de acción.
127
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
128
129
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
En el caso de la cola simple la rutina del proceso correspondiente
al cliente es la descrita por el diagrama de la Figura 24.
La implantación de la estrategia PI en un lenguaje como el GPSS,
(General Purpose Simulation System, lenguaje pionero desarrollado
por Gordon en 1964 [43], que a pesar de los años transcurridos
mantiene su vigencia gracias a las continuas actualizaciones [44]) se
basa en un procedimiento de control del tiempo que utiliza dos listas
de sucesos:
• Una lista de sucesos futuros (future events list, FEL), que
contiene información sobre los eventos programados para ser
ejecutados en un instante posterior.
• Una lista de sucesos en curso (current events list, CEL), que
contiene información sobre los eventos que ya son elegibles
desde el punto de vista del momento en que tienen que ser
ejecutados, pero cuyas otras condiciones pueden no
satisfacerse aún.
La información sobre cada suceso contiene una indicación sobre
la localización del paso del proceso en curso en que se encuentra la
componente. Con el avance del tiempo, (exploración de FEL para
determinar en qué instante ocurrirá el siguiente suceso, y avanzar el
reloj de simulación hasta ese instante) todos los sucesos programados
para ese instante pasan de FEL a CEL, (movimientos entre listas, aquellas
entidades de FEL cuya reactivación ha de tener lugar en ese instante
del tiempo marcado por el reloj de simulación pasan de FEL a CEL)
entonces tiene lugar una exploración de CEL, consistente en la evaluación
de las condiciones de la rutina de entrada para determinar si la
correspondiente componente puede proceder al paso siguiente, en caso
afirmativo se ejecuta el segmento de acción del paso. Una componente
se desplaza a lo largo de tantos pasos sucesivos del modelo como le
sea posible, por ejemplo, en tanto en cuanto el tiempo no tenga que
avanzar y sea afirmativa la respuesta a la evaluación de los segmentos
SIMULACIÓN DE SISTEMAS DISCRETOS
130
131
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
de condición. Cuando una componente se «para», debido al tiempo o a
otras condiciones, entonces la exploración pasa a tener en cuenta el
elemento siguiente de CEL; cuando no se puede continuar moviendo
ninguna de las componentes de CEL entonces se produce el siguiente
avance en el flujo del tiempo. La Figura 25 esquematiza la estructura
del ejecutivo para la estrategia de interacción de procesos.
Si un lenguaje de simulación incluye más de una visión del mundo
o estrategia, lo que cada vez es más corriente en el diseño de nuevos
lenguajes o nuevas versiones de antiguos, el modelizador está aún
constreñido por la estrategia elegida para representar una porción de
su modelo, de ahí la necesidad de una buena comprensión de los
conceptos subyacentes a cada estrategia y el condicionamiento que
imponen sobre la representación del modelo en sus términos.
3.3. Análisis algorítmico de las estrategias de simulación de
sistemas discretos
Cada una de las estrategias de simulación que hemos propuesto
es susceptible de una representación algorítmica genérica, así como
las rutinas para el tratamiento de sucesos de la estrategia ES, las
rutinas de condición y las de actividades para la estrategia AS, y los
segmentos de condición y acción para la estrategia PI.
En la representación algorítmica que vamos a dar se supone que
los algoritmos utilizan algún conjunto de procedimientos de gestión de
estructuras de datos (por ejemplo listas), para ayudar a la introducción y
recuperación de las representaciones de la información sobre los sucesos.
En el planteamiento que vamos a proponer, y para mantener el
carácter genérico de la representación, evitaremos suposiciones sobre
las estructuras de datos que se pueden utilizar en las implantaciones
específicas de las estrategias. La descripción algorítmica que vamos
a hacer será, pues, precisa solo en la descripción de los aspectos
SIMULACIÓN DE SISTEMAS DISCRETOS
132
133
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
esenciales de la gestión del tiempo, incluyendo las implicaciones
correspondientes a las rutinas de modelización, aunque excluyendo
los detalles que no dependen de la estrategia.
El punto de partida para esta representación algorítmica es un
análisis de las características que dependen de la estrategia adoptada
y de las que dependen del problema específico que se simula. De
acuerdo con Kiviat [41], los lenguajes de simulación ofrecen, en general,
las siguientes capacidades y características:
1. Modelización del estado del sistema.
2. Modelización de la dinámica del sistema.
3. Herramientas para el muestreo estadístico.
4. Especificaciones sobre el proceso de recogida de datos.
5. Recogida de datos generados por la simulación.
6. Análisis de los datos recogidos.
7. Presentación de resultados.
8. Monitorización de la simulación y herramientas de
depuración del modelo.
9. Procedimientos de inicialización de la simulación.
10. Herramientas auxiliares complementarias.
Las características 1, 2 y 9 son intrínsecas, dependen de la estrate-
gia elegida y por lo tanto son las que pueden ser objeto de una descripción
algorítmica genérica de la estrategia, mientras que las restantes son
relativamente independientes de la estrategia. A partir de la identificación
de los elementos intrínsecos podemos dar las siguientes descripciones
de las estrategia en pseudocódigo [45] en las Tablas 12, 13 y 14.
3.4. Un ejemplo de lenguaje de simulación de sistemas discretos:
El GPSS
GPSS es el acrónimo de General Purpose Simulation System,
un sistema, o lenguaje, de simulación cuyo propósito es, como su
SIMULACIÓN DE SISTEMAS DISCRETOS
134
135
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
136
nombre indica, el de poder servir para modelizar y simular una gama
de sistemas lo más amplia, o general posible. Históricamente fue
uno de los primeros lenguajes de simulación propiamente dichos
[3, 43], estructurado como lenguaje de programación y no como
una librería de rutinas diseñadas para ser utilizadas como
componentes de un simulador escrito en un lenguaje de propósito
general, pero la solidez de las concepciones en que se basa, y la
calidad de su implantación le han permitido no sólo sobrevivir, sino
adaptarse, evolucionar y combinarse simbióticamente con entornos
de animación gráfica como el PROOF ANIMATION, lo que hace
que siga siendo uno de los lenguajes de simulación de sistemas
discretos más utilizados en la práctica.
Desde el punto de vista de su estructura como lenguaje de
simulación de sistemas discretos el GPSS combina la estrategia de
interacción de procesos con una descripción del modelo del sistema
en términos de diagramas de bloques. La descripción de un sistema
en términos de un diagrama de bloques es un procedimiento muy
familiar y existen muchos formalismos para formalizar tal descripción,
el GPSS adopta un formalismo en el que cada bloque tiene una
función precisa para la representación de las entidades del sistema
y de sus funciones o características, de manera que cada bloque
se corresponde unívocamente con una sentencia del lenguaje de
programación, con una sintaxis en la que los descriptores de la
función o de los atributos de la entidad se corresponden con los
parámetros de las sentencias del lenguaje. A cada tipo de bloque
se le da un nombre nemotécnico que describe la acción específica
del mismo, el bloque se representa por medio de un símbolo
particular. Como consecuencia de este convenio el modelo del
sistema descrito mediante tales bloques es al mismo tiempo el
programa de simulación en el lenguaje. En la particular visión del
mundo del GPSS hay entidades móviles, o transacciones, que se
mueven a lo largo de rutas en la estructura de bloques del modelo
a medida que se desarrolla la simulación. La naturaleza de las
transacciones depende de la del sistema, así, por ejemplo, en un
137
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
sistema de comunicaciones las transacciones pueden representar
mensajes, en un sistema de transporte pueden representar vehículos
o envíos, en un sistema informático programas de ordenador, etc.,
etc.
Las transacciones nacen en bloques especiales, bloques
GENERATE, se mueven a través de los restantes bloques según
rutas específicas, sufren demoras o detenciones, pueden ver
modificados algunos de sus atributos como consecuencia de las
acciones correspondientes en algunos de los bloques, y se destruyen
en bloques TERMINATE diseñados para tal función.
De acuerdo con las características de los sucesos primarios y
los condicionales propios de la estrategia de interacción de procesos,
las transacciones pueden encontrarse en diversos estados:
• Activa: Es la transacción que, en un instante determinado,
se mueve a través de los bloques.
• Demorada: Transacción que se encuentra retenida en algún
bloque pero tiene un tiempo previsto para su activación.
• Detenida: Transacción retenida en algún bloque paro sin un
tiempo previsto para su activación que depende de la
modificación del estado de alguna de las entidades fijas del
sistema (suceso condicional).
Las entidades fijas del sistema reciben el nombre de
procesadores en el GPSS y representan sistemas de colas,
instalaciones («facilities» y «storages»), semáforos y entidades
lógicas.
Ilustraremos las particularidades de la modelización de un
sistema en GPSS mediante un diagrama de bloques por medio del
ejemplo arquetípico de la cola simple. La Figura 24 de la Sección 3.2
SIMULACIÓN DE SISTEMAS DISCRETOS
138
ilustraba la rutina del proceso de un cliente en dicho sistema de colas.
La parte izquierda de la Figura 26 reproduce el diagrama de dicha
rutina detallando algunos aspectos de lo que requiere su programación
en computador.
Las dos primeras funciones a realizar cuando recibe control
del programa ejecutivo son la determinación de cuándo tendrá lugar
la siguiente llegada al sistema, generación de la siguiente llegada, y
su correspondiente programación, es decir inclusión cronológica en
la lista de acontecimientos futuros. Estas dos funciones se realizan
siempre en este orden y son las primeras, como corresponde, desde
el punto de vista de la estructura conceptual del proceso, a la
estrategia de interacción de procesos, la diferencias entre las maneras
de realizar estas funciones en sistemas distintos, a la hora de
simularlos con esta estrategia, residen en las características del
proceso aleatorio que describe las llegadas al sistema: distribuciones
de probabilidad, parámetros de las mismas, etc.. El bloque
GENERATE del GPSS realiza estas dos funciones y engloba en sí
los posibles bloques descriptivos de las mismas, tal como indica la
relación de la Figura 26. Los parámetros del bloque GENERATE
permiten especificar las características del proceso de generación
de llegadas al sistema.
Cuando el servidor está ocupado el cliente ha de esperar en la
cola. Informáticamente, tal como indica la Figura 26, esto significa
crear un registro que representa al cliente, incluir el registro en un
fichero, o estructura de datos ad hoc, que representa la cola, y
mantener el registro en ese fichero hasta que se den las circunstancias
que le permitan continuar su camino en el sistema, es decir salir de
la cola y pasar a ocupar el servidor para recibir el servicio requerido.
El bloque QUEUE engloba y realiza estas tres operaciones tal como
indican las relaciones de la Figura 26.
Cuando el servidor no está ocupado el cliente pasa a ocuparlo
lo que se representa cambiando el estado de la entidad servidor,
139
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
140
función desempeñada por el bloque SEIZE como describen las
relaciones de la Figura 26.
En el momento en que el servidor vuelve a quedar libre puede
empezar a recibir servicio el cliente de la cola al que le corresponda
el turno según la política de gestión de la misma. Informáticamente
ello comporta extraer del fichero que representa la cola el registro
correspondiente a tal cliente y darlo de baja del fichero, operaciones
que realiza el bloque DEPART tal como indica la Figura 26.
En el momento en que un cliente pasa a ocupar el servidor
hay que determinar la duración del tiempo de servicio de acuerdo
con las características del proceso aleatorio que lo representa, y
crear el suceso fin de servicio correspondiente e incluirlo en la lista
de sucesos futuros en la posición que cronológicamente le
corresponda. Operaciones que lleva a cabo el bloque ADVANCE,
cuyos parámetros dependen del tipo de distribución que describe
el proceso de servicio.
Finalmente cuando el cliente ha terminado de recibir servicio
hay que cambiar el estado del servidor volviendo a ponerlo en
situación de disponible, y hay que dar de baja del sistema al cliente.
El bloque RELEASE ejecuta la primera función y el bloque
TERMINATE la segunda. El sirviente y la cola son las entidades
fijas del sistema y los clientes las móviles o transacciones de este
caso.
Hemos incluido un bloque adicional, el TABULATE, no
considerado en la descripción conceptual de la Figura 24, cuya
función es la recogida de datos de la simulación para proceder, al
final, al análisis de resultados.
Como ejemplo de utilización del GPSS veamos como
podríamos analizar el caso del puesto de peaje de una autopista,
que hemos utilizado en el Capítulo 2 como ejemplo de análisis de
141
datos observados para estimar la función de llegadas al puesto de
peaje, y la distribución del proceso de servicio. Recordemos que el
análisis de las observaciones nos llevaba a la conclusión de que
las llegadas podían ser modelizadas adecuadamente mediante una
función exponencial de media 16,398 segundos entre llegadas
consecutivas, y los servicios eran una combinación de una
distribución de tiempo constante, y una distribución gamma de
parámetros a = 1,25 y b = 7,5, (G (1,25, 7,5)). En consecuencia el
modelo de colas que describe el sistema del ejemplo es un modelo
M/G/1, modelo analítico que, como hemos visto conlleva cierta
dificultad teórica, por lo que decidimos simularlo utilizando el GPSS.
El modelo GPSS de cola con un único sirviente (puesto de peaje
único) es el descrito por el diagrama de bloques de la Figura 26,
que se traduce en el siguiente programa:
LINE#STMT# IF DO BLOCK# *LOC OPERATION A,B,C,D,E,F
,G COMMENTS
1 1 SIMULATE
2 2 INTEGER &I
3 3 TPAGO FUNCTION RN(2), D15
4 4 0.0,3.64/0.142,6.09/0.354,8.39/0.496,10.76/0.608,13.14/0.737,15.51/
5 5 0.804,17.88/0.845,20.26/0.883,22.63/0.916,25.00/0.954,27.38/29.75/
6 6 0.97,32.12/0.983,36.87/1.0,62.98
7 7 1 GENERATE RVEXPO(1,16.398)
8 8 2 QUEUE COLAP
9 9 3 SEIZE PEAJE
10 10 4 DEPART COLAP
11 11 5 ADVANCE FN(TPAGO)
12 12 6 RELEASE PEAJE
13 13 7 TERMINATE 1
14 14 1 DO &I=1,21,1
15 15 1 START 240
16 16 1 RESET
17 17 ENDDO
18 18 END
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
142
La primera sentencia es una sentencia de control que le indica
al compilador del GPSS que si la compilación acaba satisfac-
toriamente proceda a ejecutar el modelo. La segunda sentencia es
una indicación de que vamos a utilizar la variable entera I para
controlar la ejecución de las replicaciones del modelo. TPAGO es
el nombre que le damos a la función empírica que modeliza el
proceso de pago, cuyos valores corresponden a la tabla que hemos
representado gráficamente en la Figura 16. El GPSS utiliza un
proceso de interpolación similar al descrito en el Capítulo 2 para
evaluar esta función, en combinación con el generador de números
aleatorios número 2.
La sentencia GENERATE genera las llegadas de acuerdo con
la distribución exponencial que hemos ajustado, utilizando el
generador de números aleatorios número 1. COLAP identifica la
cola ante el peaje, y PEAJE es, en la terminología GPSS, una
«facility» que representa el puesto de peaje. El tiempo que se tarda
en proceder al pago, es decir la emulación del proceso de pago, la
realiza el bloque ADVANCE evaluando la función TPAGO para cada
transacción.
Completa el programa un bloque DO de sentencias de control
que repite 21 veces la simulación, generando 240 llegadas cada
vez, y poniendo a cero los contadores de recogida de resultados
pero no el estado del modelo por medio de la instrucción RESET,
por lo que cada replicación recoge observaciones independientes
pero el último estado de una es el primero de la siguiente.
Reproducimos a continuación los resultados producidos por
este modelo de simulación en GPSS para las tres primeras
repeticiones:
143
1ª Ejecución
RELATIVE CLOCK: 4207,8111 ABSOLUTE CLOCK: 4207,8111
— AVG-UTIL-DURING —
FACILITY TOTAL AVAIL UNAVL ENTRIES AVERAGE
CURRENT
TIME TIME TIME TIME/XACT STATUS
PEAJE 0,808 240 14,166 AVAIL
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT
CONTENTS CONTENTS ENTRIES ENTRIES ZEROS
COLAP 11 2,289 241 40 16,6
AVERAGE $AVERAGE QTABLE CURRENT
TIME/UNIT TIME/UNIT NUMBER CONTENTS
39,962 47,914 1
2ª Ejecución
RELATIVE CLOCK: 3894,2482 ABSOLUTE CLOCK: 8102,0593
— AVG-UTIL-DURING —
FACILITY TOTAL AVAIL UNAVL ENTRIES AVERAGE
TIME TIME TIME TIME/XACT
PEAJE 0,926 240 15,027
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT
CONTENTS CONTENTS ENTRIES ENTRIES ZEROS
COLAP 20 5,383 255 20 7,8
AVERAGE $AVERAGE QTABLE CURRENT
TIME/UNIT TIME/UNIT NUMBER CONTENTS
82,211 89,208 15
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
144
3ª Ejecución
RELATIVE CLOCK: 3720,2174 ABSOLUTE CLOCK: 11822,2767
— AVG-UTIL-DURING —
FACILITY TOTAL AVAIL UNAVL ENTRIES AVERAGE CURRENT
TIME TIME TIME TIME/XACT STATUS
PEAJE 0,911 240 14,123 AVAIL
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT
CONTENTS CONTENTS ENTRIES ENTRIES ZEROS
COLAP 22 7,278 245 17 6,9
AVERAGE $AVERAGE QTABLE CURRENT
TIME/UNIT TIME/UNIT NUMBER CONTENTS
110,513 118,753 5
Los resultados nos informan de que el puesto de peaje ha
operado casi al límite de su capacidad, estando ocupado el 91% del
tiempo (3ª Ejecución, columna «Total Time»), ha habido un promedio
de poco más de siete coches esperando a que les llegase el turno,
(columna «Average Contents»), que es la estimación por simulación
de la longitud media de la cola, y los vehículos han tenido que esperar
110,5 segundos en promedio, (columna «Average Time Unit»), lo que
representa una estimación del tiempo medio de espera. Aunque la
espera es algo mayor si en lugar de promediar sobre todos los vehículos
promediamos únicamente sobre aquellos que han llegado al sistema
cuando había alguien delante (columna «$Average Time Unit»). En
consecuencia, los resultados producidos por el modelo confirman la
situación conflictiva que habían detectado los responsables de la
explotación de la autopista. La cuestión es ¿qué hacer?
Concluiremos esta sucinta exposición del GPSS con el ejemplo
del taller de manufactura cuyo modelo conceptual hemos construido
145
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
146
en el Capitulo 1, y cuyo posible modelo analítico hemos comentado.
Se trata en este caso de la situación en que pasamos directamente
del modelo conceptual al de simulación en ordenador aprovechando
las características del sistema (sucesos discretos), y las propiedades
de un lenguaje, el GPSS, específicamente diseñado para poder
realizar este paso directo. El pre-modelo descriptivo, o modelo
conceptual, en términos de una red de colas nos va a servir de base
para una modelización en GPSS. La Figura 27 muestra la traducción
del modelo descriptivo de la Figura 3 a un modelo de diagrama de
bloques GPSS. En este caso se trata de un diagrama compacto que
muestra las posibilidades de direccionamiento indirecto de las
versiones avanzadas del GPSS. Un análisis más detallado de la lógica
del proceso representado esquemáticamente en la Figura 3 nos
permite identificar que para cada tipo de producto, el proceso de
fabricación sigue un ciclo que puede describirse en los términos
siguientes:
• La pieza tipo entra en la cola del primer grupo de máquinas
de su proceso de fabricación, espera en la cola hasta que hay
disponible una máquina del grupo, entonces pasa a ocuparla
(combinación QUEUE/DEPART en términos del GPSS).
• La ocupación de una máquina del grupo es modelizada
mediante un bloque ENTER, «storage» que representa la
grupo, cuya capacidad es el número de máquinas del grupo.
• La pieza ocupa la máquina mientras dura la operación
correspondiente, duración aleatoria determinada por
RVEXPO(2,1.0)* tiempo medio fabricación, producto de la
función exponencial de media 1.0 generada mediante el
generador número 2 de números aleatorios del GPSS y el
tiempo medio de fabricación del tipo de producto.
• Terminada la operación de la pieza en la máquina esta queda
libre (bloque LEAVE del GPSS).
Una forma primaria de construir el modelo consiste en repetir
este ciclo tantas veces como tipos de producto, sin embargo el GPSS
147
permite una programación más compacta del modelo mediante
direccionamientos indirectos utilizando funciones simbólicas como las
GRUPO y COLA del listado adjunto, cuyos argumentos son índices
que identifican los itinerarios de las piezas entre los grupos de
máquinas, y cuyos argumentos son, respectivamente, las identidades
de los grupos y las colas correspondientes. Ambas funciones tienen
como variable independiente parámetro auxiliar CONT que controla el
itinerario del producto de cada tipo (identificado por la función TIPO)
entre los grupos de máquinas y las duraciones de las operaciones. El
diagrama de bloques representa la formalización del ciclo genérico en
GPSS cuando las identificaciones de los «storages» que representan
los grupos de máquinas, y las colas correspondientes se obtienen por
medio de las evaluaciones de las funciones simbólicas GRUPO y COLA
(Figura 27).
El listado adjunto completa el programa para el modelo de
simulación añadiendo a las sentencias que corresponden a los bloques
GPSS del diagrama de la Figura 27 las sentencias de directivas del
compilador, de definición de datos y de control necesarias para la
ejecución del programa tras una compilación satisfactoria.
* MODELO DELTALLER DE MANUFACTURA CON 6 GRUPOS DE MAQUINASYTRES
* TIPOS DE PRODUCTOS DIFERENTES QUE REQUIEREN EL USO DE ALGUNA DE
* LAS MAQUINAS DE ALGUNO DE LOS GRUPOS EN UN ORDENY UNOS TIEMPOS
DE
* OPERACIÓN QUE DEPENDEN DELTIPO DE PRODUCTO
*
SIMULATE
*
* AQUÍ EMPIEZA EL BLOQUE DE DIRECTIVAS DEL COMPILADOR, SENTENCIAS DE
* CONTROLY DEFINICIÓN DE DATOS
*
* ÍNDICEDELASENTENCIADOQUECONTROLALAREPLICACIÓNDELASEJECUCIONES
*
INTEGER &I
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
148
*
* CADA GRUPO DE MAQUINAS ES IDENTIFICADO COMO UN «STORAGE», LA
* FUNCIÓN GRUPO,CUYA VARIABLE INDEPENDIENTE ES EL PARÁMETRO CONT
* CUYOSVALORESIDENTIFICANELTIPODEPRODUCTOQUESEESTAFABRICANDO,
* IDENTIFICA EL GRUPO ACTIVO ENCADA FASE DEL PROCESO DE PRODUCCIÓN
*
GRUPO FUNCTION PH(CONT), S12, S
1, GR1/2, GR3/3, GR2/4, GR6/5, GR5/6, GR4/7, GR2/8, GR1/9,GR5/10, GR4/
11, GR3/12, GR6
*
* LAFUNCIÓNCOLAIDENTIFICALACOLADEACCESOACADAGRUPODEMAQUINAS
*
COLA FUNCTION PH(CONT), S12, Q
1, CL1/2, CL3/3, CL2/4, CL6/5, CL5/6, CL4/7, CL2/8, CL1/9, CL5/10, CL4/
11, CL3/12, CL6
*
* LA FUNCIONTMEDIO IDENTIFICA ELTIEMPO MEDIO DE OPERACIÓN PARA LAS
* MAQUINASDECADAGRUPOSEGÚNELTIPODEPRODUCTOQUEHANDETRATAR
*
TMEDIO FUNCTION PH(CONT), D12
1,125 / 2,35 / 3,20 / 4,60 / 5,105 / 6,90 / 7,65 / 8,235 / 9,250 / 10,50 / 11,30 / 12,25
*
* LA FUNCIONTIPO IDENTIFICA ELTIPO DE PRODUCTO QUE SE HA DE FABRICAR
* SEGÚN LA PROBABILIDAD ESPECIFICADA
*
TIPO FUNCTION RN(1), D3
.24,1 / .68,2 / 1,3
*
* LAS FUNCIONES INICIOY FIN SON FUNCIONES AUXILIARES QUE CONTROLAN LA
* EJECUCIÓN DEL BUCLE DE PROGRAMA
*
INICIO FUNCTION PH(PROD), D3
1,1 / 2,5 / 3,8
FIN FUNCTION PH(PROD), D3
1,5 / 2,8 / 3,13
149
*
* DEFINICIÓNDELASCAPACIDADES(NUMERODEMAQUINASENCADAGRUPO)DE
* CADA «STORAGE» QUE REPRESENTA UN GRUPO DE MAQUINAS
*
GR1 STORAGE 14
GR2 STORAGE 5
GR3 STORAGE 4
GR4 STORAGE 8
GR5 STORAGE 16
GR6 STORAGE 4
*
* SENTENCIASCORRESPONDIENTESALDIAGRAMADEBLOQUESQUEMODELIZA
*
* ELSISTEMALASENTENCIAGENERATEGENERAUNATRANSACCIÓN(PRODUCTO
* A FABRICAR) CADA 9.6MINUTOS EN PROMEDIO (50 TRANSACCIONES/
PRODUCTOS
* CADA 8 HORAS) CON UN TIEMPOENTRE LLEGADAS EXPONENCIALMENTE
DISTRIBUIDO (FUNCION RVEXPO)
*
GENERATE RVEXPO(1,9.6)
*
* ASIGNA A LATRANSACCIÓN UNA IDENTIDAD COMOTIPO DE PRODUCTO SEGÚN
* LA PROBABILIDAD DEFINIDA POR LA FUNCION TIPO
*
ASSIGN PROD,FN(TIPO),PH
*
* ASIGNA UNVALOR AL PARÁMETRO CONT SEGÚN ELTIPO DE PRODUCTO QUE
* REPRESENTA LA TRANSACCIÓN PARA CONTROLAR EL BUCLE QUE SIMULA EL
PROCESO DE PRODUCCIÓN
* QUE PASA POR UNA MAQUINA DEL GRUPO CORRESPONDIENTE EN EL ORDEN
DE LA
* SECUENCIADEFINIDAYLAOCUPAELTIEMPOASIGNADOPORELPROGRAMADE
* PRODUCCIÓN
*
ASSIGN CONT,FN(INICIO),PH
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
150
*
* BUCLE DE SIMULACIÓN DEL PROCESO DE PRODUCCIÓN
*
REPETIR QUEUE FN(COLA) ENTRA EN LA COLA DEL GRUPO
ENTER FN(GRUPO) OCUPA UNA MAQUINA DEL GRUPO
DEPART FN(COLA) SALE DE LA COLA
ADVANCE RVEXPO(2,1.0)*FN(TMEDIO) TIEMPO DE EJECUCIÓN
LEAVE FN(GRUPO) LIBERA LA MAQUINA
ASSIGN CONT+,1,PH
TEST E PH(CONT),FN(FIN),REPETIR
TERMINATE 0
*
* AL BUCLE DE FABRICACIÓN NO SE LE HA PUESTO LIMITE, EL SIGUIENTE
SEGMENTO
* DE PROGRAMA GENERA 5 TRANSACCIONES (START 5) UNA CADA 480 MINUTOS
LO QUE
* CORRESPONDEAUNASEMANADE5DÍASDE8HORAS.ELPROCESOSEREPITE
5
* VECES PARA SIMULAR 5 SEMANAS
*
GENERATE 480
TERMINATE 1
*
* OTRAS SENTENCIAS DE CONTROL PARA CONTROLAR LA EJECUCIÓN DE LAS
* REPLICACIONES
*
DO &I=1,5,1
START 5
RESET
ENDDO
END FIN DEL MODELO
El listado adjunto muestra los resultados de la simulación de las
operaciones durante la primera semana (2400 minutos = 480 minutos/
día x 5 días). La primera tabla muestra el número de transacciones
151
que han pasado por los diferentes bloques del modelo. Por el bloque
número 1, bloque GENERATE, han pasado 248 transacciones, de las
cuales 200 han llegado al bloque TERMINATE, es decir corresponden
a piezas completadas, y 48 han quedado retenidas. Analizando la
columna CURRENT CONTENTS de la tabla que presenta los
resultados para los «storages» podemos comprobar que el total de
piezas retenidas en alguna máquina de alguno de los grupos al finalizar
la semana es de 41, que añadidas a las 7 retenidas en la cola del
grupo 4, completan las 48 piezas que no han sido acabadas durante la
semana.
Las columnas de las tablas para los «storages» y las colas
permiten identificar el porcentaje de tiempo que cada grupo de
máquinas ha estado trabajando, el número total de piezas (ENTRIES)
que han sido tratadas en cada grupo de máquinas, el tiempo medio
que cada pieza ha ocupado cada máquina, el contenido medio de cada
grupo, o nivel medio de utilización de cada grupo, las esperas de las
piezas hasta que han dispuesto de máquina en cada uno de los grupos,
el porcentaje de piezas que no han tenido que esperar porque cuando
han llegada al grupo había una máquina disponible, tiempos medios
de espera, etc., etc.
RELATIVE CLOCK: 2400,0000 ABSOLUTE CLOCK: 2400,0000
BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL
1 248 11 200
2 248 12 5
3 248 13 5
REPETIR 7 863
5 856
6 856
7 41 856
8 815
9 815
10 815
— AVG-UTIL-DURING —
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
SIMULACIÓN DE SISTEMAS DISCRETOS
152
STORAGE TOTAL AVAIL UNAVL ENTRIES AVERAGE CURRENT
PERCENT CAPACITY TIME TIME TIME TIME/UNIT STATUS
AVAIL
GR1 0,640 135 159,314 AVAIL 100,0 14
GR3 0,430 113 36,547 AVAIL 100,0 4
GR2 0,639 147 52,185 AVAIL 100,0 5
GR6 0,469 112 40,228 AVAIL 100,0 4
GR5 0,811 184 169,171 AVAIL 100,0 16
GR4 0,612 165 71,187 AVAIL 100,0 8
AVERAGE CURRENT MAXIMUM
CONTENTS CONTENTS CONTENTS
8,961 12 14
1,721 1 4
3,196 5 5
1,877 3 4
12,970 12 16
4,894 8 8
QUEUE MAXIMUM AVERAGE TOTAL ZEROPERCENT AVERAGE
CONTENTS CONTENTS ENTRIES ENTRIES ZEROS TIME/
UNIT
CL1 2 0,029 135 130 96,3 0,523
CL3 6 0,224 113 93 82,3 4,755
CL2 6 0,407 147 100 68,0 6,640
CL6 5 0,214 112 82 73,2 4,581
CL5 9 1,010 184 118 64,1 13,172
CL4 8 0,614 172 123 71,5 8,563
$AVERAGE QTABLE CURRENT
TIME/UNIT NUMBER CONTENTS
14,119 0
26,863 0
20,767 0
17,103 0
36,723 0
30,057 7
153
La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
El análisis de estos resultados nos proporciona una información
interesante sobre el funcionamiento del sistema de manera inmediata,
sin proceder a un tratamiento más detallado. A los comentarios que
acabamos de hacer sobre la interpretación de los resultados
proporcionados por la simulación, podemos añadir los siguientes. La
columna «current contents» del segundo conjunto de información
producida por el simulador, nos indica que 12 piezas están aún en
proceso en el grupo 1, 1 en el grupo 3, 5 en el 2, etc.. La columna
«entries» nos informa de que en el grupo 1 se han tratado durante la
semana simulada un total de 135 piezas, 113 en el grupo 3, 147 en el
2, etc.. La columna «total time» nos indica la fracción del tiempo total
de trabajo disponible (2400 minutos) que han estado ocupadas las
máquinas de cada grupo, lo que nos permite identificar que si bien
todos los grupos han estado ocupados entre el 45% y el 60% del tiempo,
hay un grupo, el 5, que ha estado ocupado el 81%, por lo tanto está
próximo a la saturación y podría convertirse en un cuello de botella del
proceso de fabricación.
Aunque para la demanda simulada las condiciones de fabricación
no han producido conflictos es interesante observar que en algún
momento todos los grupos han estado ocupados al 100%, es decir
todas las máquinas de cada grupo estaban tratando alguna pieza,
información contenida en la columna «maximum contents», lo que ha
provocado colas que podrían causar otro tipo de problemas si por
ejemplo no hay suficiente espacio de almacenamiento para las piezas
que acaban de ser tratadas en alguna máquina de un grupo y esperan
a que quede libre una máquina de otro grupo para completar el
tratamiento. Esta información aparece en la columna «maximun
contents» del tercer conjunto de información, el referente a las colas.
Las restantes columnas tienen interpretaciones similares referidas a
los tiempos de espera, etc.
SIMULACIÓN DE SISTEMAS DISCRETOS
154
155
4
Los estudios de
simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
156
4.1. Diseño de experimentos de simulación
En el Capítulo 1 hemos puesto de manifiesto el carácter
experimental de la simulación, subrayando el papel de los modelos
de simulación, sujetos del experimento, como sustitutos de la realidad.
Un estudio de simulación según la metodología que hemos
establecido busca respuestas a preguntas sobre el sistema objeto
del estudio a través de la información que le proporcionan los
experimentos con el modelo del sistema. Los experimentos buscan,
en general, respuestas a preguntas del tipo ¿qué pasaría si?,
preguntas que pueden plantearse en cualquier etapa del ciclo de
vida del sistema, tanto en la fase de diseño, en cuyo caso el objetivo
de las respuestas es encontrar soluciones a las diferentes alternativas
de diseño, o investigar los posibles efectos de las diferentes
configuraciones factibles; como en fases posteriores, con un sistema
ya implantado, cuando se plantea la posibilidad de cambios o
modificaciones en el sistema existente para ampliar su capacidad de
operación o para adaptarlo a nuevos requerimientos.
En general las respuestas que buscamos mediante los
experimentos servirán de soporte a una decisión racional sobre el
sistema, por lo que nos interesará que las respuestas queden expresadas
numéricamente, en términos de los valores de las variables de respuesta
que representen las medidas de la utilidad, o del rendimiento esperado,
para la alternativa que nos ocupa de diseño o de cambio del sistema.
Así, por ejemplo, en sistemas de colas cuyo objeto sea dimensionar las
157
unidades de servicio identificando cuál es el número de canales de
servicio que permiten un rendimiento óptimo del sistema, ejemplos de
tales funciones de utilidad o variables de medida del rendimiento pueden
ser, índices que relacionen el tiempo medio de espera (o la longitud
media de la cola) con el nivel de utilización de los servidores, o funciones
de coste que engloben el coste de la espera (decreciente cuando se
incrementa la eficiencia del servicio) y el del servicio (creciente cuando
se aumenta el número de servidores, o los servidores existentes se
reemplazan por otros más eficientes).
Las alternativas de diseño, o variante de configuración del sistema,
constituirán una variante del modelo o escenario de simulación con las
que realizaremos los experimentos. Para ello ejecutaremos el modelo
introduciendo como datos las muestras aleatorias de las distribuciones
de probabilidad correspondientes tal como hemos descrito en el Capítulo
2. Las ejecuciones del modelo nos proporcionarán las estimaciones de
los parámetros de interés. Desde un punto de vista metodológico hemos
de distinguir varios tipos de situación:
• Estimación de variables de respuesta.
• Estimación de efectos combinados.
• Comparaciones entre alternativas de diseño.
Con respecto a la estimación de variables de respuesta, la
longitud media de una cola, el tiempo medio de espera, el porcentaje
de ocupación de los servidores, por ejemplo, ejecutaremos repetidas
veces el modelo correspondiente a una misma configuración con
diferentes muestras aleatorias de input, lo que proporcionará
variaciones en los resultados debido a las variaciones aleatorias en
las muestras utilizadas. Ahora bien, para poder asegurar la validez de
nuestras estimaciones, y en definitiva la validez de las respuestas del
estudio de simulación, hemos de estar en condiciones de establecer
cuándo las diferentes estimaciones de los parámetros de medida del
rendimiento del sistema son debidas a la configuración del sistema y
cuándo son ocasionadas por las variaciones del muestreo.
Los estudios de simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
158
En esta ocasión es la metodología de la Estadística, y en
particular la de las técnicas de muestreo, la que nos permitirá dar una
respuesta correcta a este tipo de cuestiones. No es este el lugar para
extendernos sobre el tema, nos limitaremos a apuntar algunas de las
técnicas más utilizadas en el ámbito de los estudios de simulación, el
lector interesado puede encontrar una información detallada en textos
generales de Estadística y Teoría de Muestras, o en los específicos de
Kleijnen, «StatisticalTechniques in Simulation» [29], y «StatisticalTools
for Simulation Practitioners» [30], de las que la primera constituye en
estos momentos un clásico de las técnicas estadísticas en simulación.
Nos limitaremos a comentar aquí que los procedimientos más utilizados
son los de:
• Replicaciones independientes: generando muestras
independientes de números aleatorios bien a partir de distintos
generadores o un mismo generador, de ciclo muy largo, que
produzca muestras de base independientes a partir de
diferentes semillas.
• Lotes («Batch Means») resultantes del fraccionamiento en
submuestras de una muestra de gran dimensión generada
con un generador de ciclo muy largo.
• Métodos regenerativos, que utilizan muestras de dimensión
variable resultantes de la recogida de observaciones del
sistema entre dos pasos consecutivos por un punto o estado
de regeneración (por ejemplo el estado con las colas vacías
en un sistema de colas), lo que requiere previamente la
comprobación de que el sistema tiene estados regenerativos
y la identificación de los mismos.
Otro aspecto que también hay que tener en cuenta, para
garantizar la calidad de las estimaciones de las variables de respuesta
desde el punto de vista estadístico, es la necesidad de utilizar
estimadores insesgados y de variancia mínima, de especial
159
Los estudios de simulación
importancia estos últimos si después la estimaciones se van a utilizar
para efectuar comparaciones. Una manera de conseguir estos
objetivos consiste en recurrir a las técnicas de reducción de variancia,
diseñadas específicamente para incrementar la precisión de la
estimación de las variables de respuesta y facilitar las comparaciones,
entre las técnicas de reducción de variancia más utilizadas en
simulación figuran el muestreo estratificado, el muestreo selectivo,
la utilización de variables de control y la variables antitéticas.
Esta última es una técnica muy discutida en lo que respecta a
sus aplicaciones a la simulación discreta, su objetivo es inducir una
correlación negativa entre las sucesivas simulaciones de una misma
configuración del sistema. Tocher [37], propuso una implantación muy
sencilla de esta técnica consistente en ejecutar una de las simulaciones
a partir de la muestra {u1
, u2
, u3
, ...} de números aleatorios
uniformemente distribuidos en (0, 1), y la segunda, la antitética a partir
de la muestra complementaria {1-u1
, 1-u2
, 1-u3
, ...}, con la idea de que
esta muestra complementaria asegure una correlación negativa entre
las respuestas de las dos simulaciones. En este caso si X1
es la
estimación de la variable de respuesta obtenida en la primera
simulación, y X2
en la segunda, la antitética, entonces:
( )
X X X
= +
1
2
1 2 (4.1)
es un estimador insesgado de E(x), y:
( ) ( ) ( ) ( )
[ ]
var var var cov ,
X X X X X
= + +
1
4
2
1 2 1 2 (4.2)
que al ser comparada con la variancia de dos ejecuciones no
correlacionadas debe ser menor si las ejecuciones están
correlacionadas negativamente. Este efecto esperado no siempre se
consigue en la simulación de sistemas discretos, especialmente si
son complejos, debido a las transformaciones complicadas que tales
modelos llevan a cabo con las variables de entrada, lo cual hace que
no siempre se conserve en el output la correlación negativa del input,
SIMULACIÓN DE SISTEMAS DISCRETOS
160
en consecuencia hay que llevar mucho cuidado con el uso del
muestreo antitético en la simulación discreta, y asegurarse
previamente de que las correlaciones negativas entre las variables
de entrada se conservan en las de salida.
A la hora de recoger las observaciones producidas por la
ejecución de la simulación no hay que olvidar el carácter intrínseco de
la simulación discreta tal como lo establecimos en el Capítulo 3.
Recordemos que hemos considerado que la simulación de un sistema
con estados discretos puede interpretarse como un seguimiento de la
evolución del sistema entre sus estados, teniendo en cuenta el carácter
aleatorio del input es obvio que la tal evolución puede considerarse
como un proceso estocástico y como tal podemos considerar dos tipos
de situación la que corresponde a la fase transitoria del proceso y la
del estado estacionario. En general la fase transitoria dependerá de
las condiciones iniciales, mientras que entendemos que la situación
estacionaria, si el sistema la tiene y llega a ella, es independiente de
su estado de partida. Según los objetivos del estudio de simulación y
el tipo de sistema tendremos que distinguir entre ambas fases. Si lo
que interesa es estudiar el comportamiento del sistema en la situación
estacionaria deberemos proceder a un proceso previo («warming-up»),
durante el que no se recogerán observaciones, durante el cual el
sistema atraviese la fase transitoria y entre en la estacionaria, a partir
de la cual se procederá a recoger observaciones. Sin embargo no
hemos de olvidar que puede haber situaciones en que es precisamente
la fase transitoria la que interesa.
En general la configuración o las alternativas de diseño de un
sistema complejo dependen de muchos factores, así por ejemplo, en
los sistemas de colas las variables de decisión, o factores de diseño,
pueden ser el número de servidores, las características de los
servidores (que afecten por ejemplo al tipo de distribución de los tiempos
de servicio, o, dentro de un mismo tipo, a los parámetros de la
distribución, como puede ser el caso de los tiempos medios de servicio
- más rápidos o más lentos -, política de gestión - FIFO, por prioridades,
161
... -, etc.). Tenemos por lo tanto varios inputs controlables que afectan
a la respuesta del sistema, de tipo cuantitativo (número de sirvientes,
tiempo medio de servicio, etc.), o cualitativo (prioridades), que operan
a diferentes niveles. En el estudio de simulación interesará identificar
el efecto de cada factor, las interacciones entre factores, etc...
La técnica de diseño de experimentos en Estadística es la que
nos proporcionara las herramientas adecuadas para proceder a los
estudios adecuados. Como en el caso anterior nos vamos a limitar a
glosar aquí unos comentarios sobre la aplicación de estas técnicas a
la simulación, las referencias [30], anteriormente citada, y [27],
proporcionan una información detallada, aunque hay que resaltar que
todo lo que se puede decir para las aplicaciones a la simulación no
es más que una adecuación de la teoría general del diseño de
experimentos Estadística por lo que textos generales como el de Box,
Hunter y Hunter [46], o el de Box y Draper [47], constituyen una
referencia obligada.
En el caso de la simulación hay que hacer una observación con
respecto al punto de vista del diseño de experimentos en Estadística y
es que en el caso de los experimentos de simulación se trata siempre
de experimentos controlados, es decir, la impredictibilidad esta originada
únicamente por la aleatoriedad del muestreo, no por el modelo, que se
supone que el analista conoce y domina completamente.
Los diseños experimentales que más se utilizan en la práctica
de la simulación suelen ser el de variación de un factor cada vez,
los diseños factoriales globales, los fraccionales, los de superficie
de respuesta, etc... En la práctica se tiende a evitar los diseños
factoriales completos que para k factores y 2 niveles por factor
requieren 2k
combinaciones, y si para estimar adecuadamente la
variable de respuesta para cada combinación hemos de replicar m
veces cada combinación, hay que realizar un total de m2k
repeticiones de la simulación que puede ser un número
prohibitivamente grande. Siempre que se puede se tiende a utilizar
Los estudios de simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
162
diseños fraccionarios que pueden proporcionar la misma información
con menos observaciones.
Así, por ejemplo en un modelo M/M/s si la tasa de utilización
o factor de carga del sistema r varia entre 0,5 y 0,8, y el número de
servidores entre 1 y 3, un diseño experimental para estos dos
factores, carga del sistema y número de servidores, con dos niveles
cada factor, y cuatro combinaciones posibles de niveles de los
factores, es:
Combinación r s
1 0,5 1
2 0,8 1
3 0,5 3
4 0,8 3
Para un diseño factorial con k factores y dos niveles por factor
suponemos que los efectos de interacción son explicados por el modelo
de regresión (o superficie de respuesta):
( )
y x x x NID
i j ij jh ij ih i i
h j
k
j
k
j
k
= + + +
= +
=
-
=
å
å
å
b b b e e s
0
2
1
1
1
1
0
, , (4.3)
que tiene k efectos principales, o de primer orden, bj
y k(k-1)/2
interacciones de dos factores bjh
, con errores e con distribuciones
normales independientes (NID) de media cero y variancia constante.
Interacción entre dos factores, el i y el j por ejemplo, significa que el
efecto del cambio en el factor i depende del nivel del factor j.
La significación de los efectos principales y las interacciones
se determina por medio del análisis de la variancia del modelo de
regresión correspondiente. Así, por ejemplo, en el caso de dos
factores A y B, el modelo propuesto supone que la relación entre
la variable de respuesta y los efectos de los niveles de los factores
viene dada por:
163
yijk i j ij ijk
= + + + +
b a b b e
0 (4.4)
donde yijk
es el resultado de la combinación del factor A al nivel i y el
factor B al nivel j en su replicación k-ésima, b0
es el efecto medio
global, ai
el efecto principal del factor A al nivel i, bj
el efecto principal
del factor B al nivel j, bij
el efecto de la combinación del factor A al
nivel i con el factor B al nivel j, y eijk
es la variancia no explicada
(residuo o término de error). Como es habitual en el análisis
estadístico es importante definir claramente las hipótesis que se
toman en consideración. En este tipo de experimentos lo normal es
esperar que haya efectos de la interacciones, por lo tanto lo primero
que hemos de hacer es verificar si estos son significativos o no, ya
que en caso de que lo sean no habría que proceder a estudiar los
efectos principales. En consecuencia las hipótesis nulas son:
H0(1): la interacción de A y B no tiene efectos: bij
= 0, "i y "j
H0(2): el factor A no tiene efectos: ai
= 0, "i
H0(3): el factor B no tiene efectos: bj
= 0, "j
y las hipótesis alternativas son:
H1(1): bij
¹ 0, para algún i, j.
H1(2): ai
¹ 0, para algún i.
H1(3): bj
¹ 0, para algún j.
Suponiendo que el factor A tiene n niveles, cada uno de los
cuales se replica m veces, y que lo mismo ocurre con el factor B, y
denotando por y...
, yi..
, y.j.
, e yij.
las sumas:
y y y y
y y y y
ijk i. ijk
k
m
j
n
k
m
j
n
i
n
j ijk ij ijk
k
m
k
m
i
n
K= =
= =
=
=
=
=
=
=
=
=
å
å
å
å
å
å
å
å
.
. . .
1
1
1
1
1
1
1
1
(4.5)
La Tabla 15 muestra el análisis de la variancia.
Los estudios de simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
164
165
A partir de esta tabla el procedimiento de verificación de las
hipótesis procede de la manera siguiente:
( ) ( )
( ) ( ) ( ) ( )
H i y j chazar H si
S
n
S
n m
F
ij
AB E
n n m
0 0
2
2
2
2 1 1
1 0 1
1 1
2 2
: , Re : ,
b = " " ®
- -
> - - (4.6)
Si se rechaza H0
(1), no tiene sentido verificar H0
(2) y H0
(3).
En caso de que se acepte H0
(1) entonces el modelo se puede sim-
plificar a:
yijk i j ijk
= + + +
b a b e
0 (4.7)
En cuyo caso se rechaza H0
(2) si: ( )
( )
( ) ( ) ( )
S
n
S S
n m n
F
A E AB
n n m n
2 2 2
2 1 2 1
1 2 1
2
,
-
+
- -
> - - - (4.8)
se rechaza H0
(3) si: ( )
( )
( ) ( ) ( )
S
n
S S
n m n
F
B E AB
n n m n
2 2 2
2 1 2 1
1 2 1
2
: ,
-
+
- -
> - - - (4.9)
siendo F la función de Fisher evaluada al nivel de significación y grados
de libertad correspondientes.
Si el análisis de la variancia ha demostrado que un conjunto de
efectos (b1
, b2
, ..., bn
) son significativamente diferentes entonces resulta
pertinente compararlos entre si de manera que se puedan identificar
las combinaciones factor-nivel que proporcionan los mejores resultados.
El estudio se lleva a cabo aplicando las técnica clásicas del análisis
estadístico de comparaciones múltiples.
4.2. Análisis de resultados
En un estudio de simulación tanto si tenemos como objetivo
la determinación de la mejor alternativa, como si el propósito es
simplemente obtener una buena estimación de la variable de
Los estudios de simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
166
respuesta, o parámetro de rendimiento del sistema, es necesario
poder efectuar buenas estimaciones de las variables de respuesta,
así como de la estimación de cuán buenas son las estimaciones
que estamos obteniendo, pues no hemos de perder de vista el
carácter aleatorio de los resultados producidos por una simulación.
Los métodos a utilizar dependen de las características del
sistema y en especial de si se trata de sistemas con un horizonte
finito, es decir sistemas para los cuales llega un momento en que se
ha alcanzado cierto objetivo, se ha realizado una tarea, se ha llegado
a una condición a partir de la cual el proceso se repite, se ha
completado un ciclo, etc.; o de un sistema con un horizonte infinito (y
una posibilidad de entrar en un estado estacionario). Ejemplos del
primer tipo de situaciones pueden ser procesos productivos en los
que el horizonte temporal de fabricación de un producto esté
determinado de antemano, de gestión de inventarios con horizontes
temporales dados, etc., es decir sistemas cuyo ciclo de vida es finito
(lo que, dicho sea de paso, ocurre con todos los sistemas reales),
pero en muchas otras situaciones no hay razones para suponer, al
menos en teoría, que hay un suceso especial cuya ocurrencia
determina el final de la simulación, se trata entonces de sistemas
para los que el horizonte temporal puede considerarse
indefinidamente largo, la cuestión entonces es si afectan o no las
condiciones iniciales, es decir si el sistema tiene o no estado
estacionario y si lo que nos interesa es estudiar el comportamiento
del sistema en la fase transitoria o en el estado estacionario. El análisis
estadístico del estado estacionario es más delicado puesto que hay
que tener en cuenta aspectos tales como la correlación que presentan
los resultados, o el no siempre claro de a partir de qué momento se
puede considerar que el sistema ha entrado en el estado estacionario.
Las condiciones de esta monografía no permiten tratar exhaustivamente
el tema, cualquiera de las referencias básicas que hemos venido citando
dedican espacio suficiente a estas cuestiones, pero entre estas
referencias subrayaré el trato que le dan el texto de Law y Kelton [27],
y el de Bratley, Fox y Schrage [28], que han inspirado este resumen.
167
El valor esperado de la variable de respuesta o medida del
rendimiento de un sistema estocástico se expresa habitualmente en
términos de un intervalo de confianza, relacionado intuitivamente con
la idea de precisión, que depende de las dimensiones y características
de la muestra de observaciones utilizada para realizar la estimación.
En general el problema del intervalo de confianza se puede plantear
desde dos puntos de vista, en el primero, denominado de la muestra
de dimensión fija, se especifica de antemano el número de
observaciones con la esperanza de que la precisión resultante sea
suficiente, mientras que en el segundo, denominado de muestreo
secuencial, se especifica de antemano la precisión requerida, se usa
una muestra y partir de los resultados que proporciona se determina
si se han de recoger o no observaciones adicionales. La obtención
de un intervalo de confianza requiere hipótesis subyacentes de
normalidad e independencia, lo que en las condiciones de la
simulación exige que se haya de recoger un número de observaciones
suficientemente grande como para que las condiciones del teorema
del límite central nos permitan ignorar la posible no normalidad de
las observaciones, que se utilice algún procedimiento que permita
superar las implicaciones de la falta de independencia entre las
muestras, especialmente cuando se trata de simulaciones de estados
estacionarios, y que utilice algún procedimiento que permita corregir
el posible sesgo causado por las condiciones iniciales cuando se
simulan estados estacionarios.
El análisis del rendimiento esperado de un sistema con un
horizonte finito consiste habitualmente en obtener una estimación
puntual del mismo y un intervalo de confianza o estimación del error
cuadrático medio de dicha estimación puntual. La obtención de esta
estimación a partir de una muestra de observaciones producidas por
la simulación se realiza por medio de las técnicas habituales del análisis
estadístico, es decir determinar un estimador puntual ȳ a ser posible
insesgado y de variancia mínima, que esté aproximadamente
normalmente distribuido y cuya desviación estándar se pueda estimar
adecuadamente.
Los estudios de simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
168
En estas condiciones, si m es número de ejecuciones de la
simulación (número que quizás haya que determinar secuencialmente),
e yi
es la observación de la variable de rendimiento proporcionada por
la i-ésima simulación, i = 1, 2, ...., m, entonces:
(4.10)
( )
( )
y
y
m
s
y y
m
i
i
m
i
i
m
=
=
-
-
=
=
å
å
1
2
2
1
1
Si las yi
son independientes y están idénticamente distribuidas
entonces ȳ es un estimador insesgado del rendimiento esperado y
s2
/m es un estimador insesgado de la variancia. Si además las yi
están normalmente distribuidas, entonces un intervalo de confianza
para el rendimiento esperado viene dado por:
y k
s
m
±
2
(4.11)
donde k es la ordenada que da la probabilidad (1-a)/2 en la cola de la
distribución t de Student con m-1 grados de libertad, siendo a el
coeficiente de probabilidad que determina la región crítica para
aceptación del intervalo.
Con respecto al análisis del estado estacionario
comentaremos simplemente que para satisfacer las condiciones
anteriormente establecidas, sobre la eliminación de las posibles
influencias de los estados de partida, se han propuesto multitud de
procedimientos [27,28] que en esencia conducen a determinar cuál
es el número de observaciones iniciales que hay que desechar.
Resuelta esta cuestión el problema es entonces cómo proceder con
observaciones que no son independientes. Sin ánimos de ser
exhaustivos y para dar al lector una idea simple de los métodos
estadísticos que se han ido desarrollando mencionaremos los tres
más utilizados:
169
Los estudios de simulación
• Procedimientos por lotes («Batch Means»),
• Métodos Regenerativos,
• Análisis Espectral,
que pasamos a resumir.
A) Procedimientos por lotes
Supongamos una secuencia de observaciones producidas por
la simulación {y1
, y2
, ..., ym
}, posiblemente correlacionadas. Definimos:
( ) ( )
y y m
s y y m
i
i
m
y i
i
m
=
= - -
=
=
å
å
1
2 2
1
1
(4.12)
siendo b la dimensión de los lotes (definida posiblemente a partir de
un estudio estadístico previo) tal que m sea un múltiplo de b, y en
consecuencia n = m/b sea entero. Hagamos:
( )
x y b
j i
i j b
jib
=
= + -
å
1 1
(4.13)
media del j-ésimo lote de observaciones de dimensión b. A partir de
aquí podemos calcular:
( ) ( )
x x n
s x x n
j
j
n
x j
j
n
=
= - -
=
=
å
å
1
2 2
1
1
(4.14)
El objetivo de nuestro estudio de simulación es, en teoría, estimar
[ ]
m =
®¥
lim E y
i
i y var [ȳ]. El método de los lotes estima m a partir del
estadístico ȳ. De las definiciones se deduce que ȳ =x̄ . Si las
observaciones yi
son independientes s2
x /m es un estimador insesgado
de var [ȳ], pero como en general las observaciones procedentes de la
simulación están correlacionadas entonces:
[ ] [ ] ( ) ( )
var var cov ,
y y m m y y
i j
j i
m
i
m
= +
= +
=
-
å
å
1
2
1
1
1
2 (4.15)
SIMULACIÓN DE SISTEMAS DISCRETOS
170
Asumir la independencia es equivalente a despreciar el término
de covariancia, lo que en la práctica implica una infraestimación de var
[ȳ] ya que las yi
están correlacionadas positivamente. Otro estimador
insesgado bajo la hipótesis de independencia es s2
x
/m, aunque en el
caso de correlación de las yi
este estimador también está sesgado lo
está menos que el anterior porque la correlación entre las xj
tiende a
ser menor que entre las yi
.
El método de los lotes en su versión de muestra de dimensión
fija opera de la manera siguiente:
1. Formar n lotes de observaciones xj
.
2. Calcular x̄ y s2
x
.
3. Utilizar x̄ como estimador puntual de m.
4. Utilizar x̄
x̄± ksx
/ n como estimador del intervalo de confianza
para m.
(k es el valor correspondiente de la distribución t de Student
con n-1 grados de libertad).
Las referencias citadas [27,28] proporcionan versiones más
sofisticadas para la implantación del método de los lotes por muestreo
secuencial que utilizan un procedimiento de «jackknifing» para estimar
la correlación serial y en función de ella determinar la evolución del
proceso de generación secuencial de la muestra.
En el ejemplo del puesto de peaje de la autopista hemos
aprovechado las características del GPSS para repetir 21 veces la
simulación, simulando las llegadas de 240 vehículos en cada repetición,
de manera que quedase garantizada la independencia de las muestras
de números aleatorios utilizadas en cada ejecución. En realidad lo que
hemos hecho ha sido aplicar el método de los lotes como procedimiento
de estimación de resultados. Suprimiendo la primera ejecución, cuya
función es la de inicializar el sistema y suprimir, de forma aproximada,
la posible influencia del período transitorio, de manera que podamos
considerar que las siguientes repeticiones tienen lugar cuando el
171
Los estudios de simulación
sistema ha alcanzado el estado estacionario, los resultados de las 20
repeticiones correspondientes a cada uno de los lotes quedan
resumidas en la Tabla 16.
La primera columna contiene los porcentajes de utilización del
puesto de peaje, la segunda la estimación de los tiempos medios de
pago, es decir la duración media del proceso de pago del peaje, la
tercera columna registra las longitudes de las máximas colas que se
han observado durante la simulación del lote correspondiente, la cuarta
las estimaciones que la simulación proporciona de las longitudes medias
de las colas, la quinta columna corresponde a los tiempos medios de
espera estimados, y la sexta el estado final de la cola al terminar la
simulación correspondiente, es decir el número de vehículos que
estaban esperando en la cola cuando se ha terminado la ejecución del
lote. Ese estado final de un lote es el inicial del lote siguiente dado que
hemos utilizado la instrucción RESET del GPSS.
Los resultados de cada lote corresponden lo que hemos
denominado las xj
, aplicando el procedimiento propuesto hubiésemos
obtenido las medias e intervalos de confianza mostrados en la Tabla 17.
Ahora estamos en condiciones de profundizar la interpretación
de resultados que esbozamos en la Sección 3.4. La impresión de que el
puesto de peaje esta operando en condiciones de casi saturación queda
confirmada por los resultados que proporciona el análisis estadístico de
los lotes, una ocupación media del 86,5%, con un intervalo de confianza
al 5%, lo suficientemente pequeño como para reforzar la conclusión de
que la ocupación experimenta muy poca variación a lo largo del período
de tiempo estudiado. Con respecto a los otros parámetros de interés,
cola máxima, longitud media de la cola y tiempo medio de espera, no
solo resultan significativos los altos valores obtenidos, casi 15 coches,
en promedio, como número máximo de vehículos que en un momento
dado están esperando a pagar, casi 5 coches en promedio esperando a
pagar, y un tiempo de espera para efectuar el pago que en promedio
supera ligeramente el minuto, sino que, además, presentan una alta
SIMULACIÓN DE SISTEMAS DISCRETOS
172
173
Los estudios de simulación
variabilidad, especialmente los tiempos de espera, como, por otra parte,
era de esperar dada la variabilidad del proceso de pago. Este análisis
podría ampliarse estudiando la posible influencia del estado inicial en el
proceso.
B) Métodos regenerativos
Se basan, como hemos apuntado anteriormente, en que muchos
sistemas tienen puntos de renovación o regeneración, a partir de los
cuales el comportamiento del sistema es independiente de su pasado.
El ejemplo típico es la llegada de un cliente a una cola cuando el sistema
está vacío. La idea propuesta y desarrollada por Iglehart [48], puede
interpretarse como una generalización del método de los lotes en la
que estos en vez de tener longitud fija tienen una longitud variable que
corresponde a la longitud del ciclo entre dos pasos consecutivos por
un punto de regeneración, si hacemos que a cada ciclo entre do puntos
de renovación sucesivos corresponda a una observación tenemos un
SIMULACIÓN DE SISTEMAS DISCRETOS
174
conjunto de observaciones independientes y desaparece el sesgo
debido a las condiciones iniciales.
Desgraciadamente la consecución de la independencia tiene
un precio, el del sesgo de las estimaciones obtenidas. La aparición de
un sesgo en las estimaciones por el método regenerativo están
causadas porque en general los estimadores son cocientes de variables
aleatorias y en general el valor esperado de un cociente no es el
cociente de los valores esperados. Un ejemplo típico es la estimación
del cociente entre el tiempo total de espera en un sistema de colas
durante un ciclo y el número de clientes servidos durante ese ciclo.
Suponiendo que xi
e yi
denotan respectivamente el numerador y
el denominador del i-ésimo ciclo nuestro objetivo es estimar el cociente
E(xi
) / E(yi
) y su intervalo de confianza. Sea n el número de ciclos
simulados, definamos x̄, ȳ, s2
x
, y s2
y
de la manera habitual. Hagamos
( )( ) ( )
z x y
s x x y y n
s s zs z s
xy i
i
n
i
x xy y
=
= - - -
= - +
=
å
2
1
2 2 2 2 2
1
2
(4.16)
entonces es la estimación puntual sesgada de E(xi
) / E(yi
), y su intervalo
de confianza viene dado por:
z ks y n
± (4.17)
siendo k la ordenada apropiada de la distribución normal. En la
referencia citada [48], Iglehart recomienda la utilización de
estimadores "jackknife" cuando las longitudes de los ciclos no son
muy largas, entonces si z̃ es el estimador jackknife de z̄ el intervalo
de confianza es:
~ ~
z ks y n
± (4.18)
donde:
~ ~ ~
s s zs z s
x xy y
2 2 2 2 2
2
= - + (4.19)
175
Los estudios de simulación
Aunque los procedimientos regenerativos tienen toda una serie de
ventajas ya que no están afectados por los problemas transitorios iniciales,
producen observaciones independientes, son fáciles de aplicar, etc., no
estáncompletamentelibresdeproblemasyaquelaslongitudesdelosciclos
son desconocidas de antemano y estos pueden ser muy largos o muy
cortosynosiempreesfácilidentificarlospuntosderegeneración,odemostrar
que un tipo de punto dado es de regeneración para un sistema dado.
C) Análisis espectral
Cerraremos esta breve exposición de procedimientos de
estimación de resultados por simulación con una familia que, si bien
en sus formas sencillas no proporciona buenos resultados, ha abierto
una amplia perspectiva en el campo del análisis de resultados en la
simulación. Dado que las observaciones producidas por la simulación
están correlacionadas se trata de producir estimadores que traten
explícitamente esta correlación. Una posibilidad estriba en recoger las
observaciones a intervalos discretos igualmente espaciados en el
tiempo. La secuencia de resultados así obtenida puede considerarse
la observación de una serie temporal para la cual tenemos:
( )( )
[ ]
( )( ) ( )
y y n
C E y y u para j n
C y y y y n j
t
t
n
j t t j
j t
t j
n
t j
=
= - - =
= - -
=
-
= +
-
å
å
1
1
0 1 2
m , , , ,
K
(4.20)
y bajo la hipótesis de que la secuencia {yt
} es estacionaria covariante,
es decir, que Cj
no depende de t:
[ ] ( )
var y C j n C n
j
j
n
= + -
é
ë
ê
ù
û
ú
=
-
å
0
1
1
2 1 (4.21)
si sustituimos Cj
por Cj para estimar var [ȳ] resulta que cuando las yt
son dependientes entonces Cj es un estimador muy sesgado de Cj
,
en general el estimador truncado
SIMULACIÓN DE SISTEMAS DISCRETOS
176
( )
V C j n C n
m j
j
m
= + -
é
ë
ê
ù
û
ú
=
å
0
1
2 1 (4.22)
es mucho mejor estimador de var [ȳ] para m<<n. Una modificación de
este estimador se obtiene introduciendo una función de ponderación wm
(j):
( )[ ]
( ) ( )
[ ]
~
cos /
V C w j j n C n
w j j m
m m j
j
m
m
= + -
ì
í
î
ü
ý
þ
= +
=
å
0
1
2 1
1 2
p
(4.23)
El origen de esta función de ponderación radica en el hecho de
que la densidad espectral f es la transformada de Fourier de la
secuencia covariante:
( ) ( )
f C j
j
j
l
p
l p l p
= - £ £
=-¥
¥
å
1
2
cos , (4.24)
y si comparamos las expresiones para f(0) y Vm
nos percatamos de
que Vm
es un estimador natural truncado de 2p f(o)/n, aunque no muy
bueno.
177
Los estudios de simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
178
179
5
La construcción de
modelos de
simulación válidos
y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
180
5.1. Validación, verificación y credibilidad (I)
El objetivo principal de la metodología de la modelización que
hemos establecido en el Capítulo 1, y luego en el Capítulo 3 hemos
reforzado y particularizado en lo que se refiere a la simulación, es
que un modelo debe ser una representación adecuada del sistema
que se estudia, para poder responder de manera fiable a las
preguntas que el analista se formula sobre el sistema, especialmente
cuando el objeto del estudio del sistema a través del modelo es la
toma de decisiones sobre alternativas de diseño, cambio, etc. Este
es uno de los problemas más difíciles a que se enfrenta el practicante
de la simulación: cómo determinar cuando un modelo de simulación
es una representación suficientemente exacta del sistema que se
estudia, o en otras palabras cuando el modelo del sistema es válido.
Desgraciadamente no hay una colección de reglas y procedimientos
que permitan establecer inequívocamente la validez de un modelo
en general, y de uno de simulación en particular.
De forma anecdótica, pero significativa, recordaré aquí el
comentario de J. Kleijnen en la conferencia de la Federación
Internacional de Sociedades de Investigación Operativa, (IFORS),
en 1993 en Lisboa, cuando al iniciar la presentación de sus ponencia
sobre Verificación y Validación de Modelos de Simulación, confesaba
que a pesar de tener mas de 25 años de experiencia en la práctica
de simulación, y de haber sido autor de varios libros sobre el tema,
siempre había sido reacio a hablar de Verificación y Validación, aún
181
reconociendo la importancia que tienen en la práctica, por que nunca
estaba completamente seguro de qué es lo que había que hacer,
ya que en muchos casos dependía de las situaciones concretas,
siendo muy difícil establecer unas reglas generales, pero que
después de tantos años se había decidido a enfrentarse al problema
y si bien no tenía una solución definitiva, al menos estaba en
condiciones de glosar una colección de ideas y procedimientos que
al menos sirviesen para guía para enfrentarse al problema.
El objetivo de este capítulo, planteado con el mismo espíritu
que glosaba Kleijnen, es resumir las líneas generales más
significativas, en un ejercicio de síntesis de ideas propias y de otros
autores como el ya citado Kleijnen [31] el texto de Law y Kelton
[27], y artículos como los de Sargent [49], Balci [50], o Bryan y
Natrella [51]. El lector encontrará que muchas de las pautas
propuestas para la construcción de buenos modelos se repiten al
considerar la validación de los mismos, lo cual no es sorprendente
si nos percatamos de que un buen modelo es, valga la redundancia,
un modelo válido, por lo tanto todo aquello que nos conduce a
construir un buen modelo nos sirve, al mismo tiempo, para asegurar
su validez.
Empezaremos estos comentarios intentando establecer
claramente que entendemos por verificación y qué por validación.
Sargent puntualiza en su artículo que: el modelo conceptual es una
representación matemática, lógica o mímica del problema, formulado
para un estudio particular, mientras que el modelo computarizado
es la implantación del modelo conceptual en un ordenador, y que si
bien el modelo conceptual es que se desarrolla durante la fase de
análisis y modelización, el modelo computarizado es que se
desarrolla en la fase de traducción del modelo conceptual a un
programa de computador, o fase de programación e implantación
del programa de computador, y las inferencias sobre el problema
se obtienen mediante los experimentos computacionales durante
la fase de experimentación.
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
182
De acuerdo con este planteamiento habremos de distinguir
metodológicamente entre los problemas de determinación de la
adecuación del modelo conceptual, problemas que se refieren
fundamentalmente a la adecuación de las hipótesis de modelización y
su traducción en términos de ecuaciones o relaciones entre las
entidades del sistema, los problemas que pueden derivarse de la
traducción del modelo en términos del programa de computador y,
finalmente, los que son consecuencia del método experimental.
Este criterio sirve a Law y Kelton para establecer las siguientes
definiciones, compartidas por la mayoría de los autores citados:
Verificación es determinar que el programa de computador se
comporta como es debido, es decir está libre de errores de
programación («debugging» del programa), en otras palabras, la
verificación comprueba que se ha realizado una traducción correcta
del modelo conceptual a un programa de computador que trabaja
correctamente.
Validación, se refiere a determinar si el modelo conceptual es
una representación adecuada del sistema que se estudia. Es decir si
nuestro conocimiento del sistema se ha traducido en hipótesis de
modelización que reproducen correctamente el comportamiento del
sistema en los aspectos relevantes para los objetivos del estudio. La
validez del modelo es crucial para las decisiones que han de soportar
los experimentos realizados con el modelo, ya que el objetivo de los
experimentos es inferir cuál seria el comportamiento del sistema si los
experimentos se realizasen físicamente sobre él mismo.
Credibilidad, este es un aspecto complementario, pero no
menos importante, en lo que se refiere a la práctica de la simulación,
sobre todo en modelos de sistemas complejos en situaciones en las
que el responsable de la toma de decisiones no es el analista que ha
construido el modelo. Los resultados del modelo han de ser aceptados
por el decisor para ser utilizados en el proceso de toma decisiones, en
183
otras palabras, los resultados del modelo han de ser creíbles para
aquellos que los han de utilizar.
La relación entre los procesos de verificación, validación y esta-
blecimiento de la credibilidad, su secuencia temporal, y su relación con la
metodología de la simulación propuesta en la Sección 1.4 (Figura 9), se
ponen de manifiesto en la Figura 28, adaptada de la propuesta por Law y
Kelton, así como, una vez más el carácter iterativo inherente a la meto-
dología de la utilización de modelos, en general, y de simulación en parti-
cular, de manera que los resultados de cualquiera de las etapas del
proceso puede obligar a volver atrás para obtener más información, replan-
tear hipótesis de modelización, reprogramar partes del modelo conceptual,
o reformular algunos de los experimentos de simulación. Con respecto a
este último punto hay que establecer una distinción entre los objetivos de
la validación y los del análisis de resultados, ya que en estos lo que se
pretende, como hemos expuesto en el Capítulo anterior, es determinar la
calidad de la estimación de una variable de respuesta o medida del ren-
dimiento, por medio de los procedimientos estadísticos pertinentes, mien-
tras que la validación se propone determinar si esa medida representa o
no adecuadamente el rendimiento que se pretende analizar.
5.2. Validación de modelos de simulación
Por definición un modelo válido es aquel que proporciona una
representación adecuada de los aspectos de la realidad relevantes para
el analista o, recordando la proposición de Minsky formulada en la
Sección 1.5 es capaz de proporcionar respuestas válidas a las preguntas
que el analista se formula sobre el sistema. La primera fase de validación
implica, en consecuencia, determinar si de todos los aspectos del sistema
hemos incorporado al modelo aquellos que son de real interés para el
estudio que nos ocupa, y hemos dejado fuera aquellos que podemos
ignorar sin consecuencias para nuestro estudio, o no hemos considerado
alguno que puede influir en el comportamiento del sistema cuyo estudio
pretendemos.
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
184
185
Las respuestas a nuestras preguntas sobre el sistema las
intentaremos obtener mediante los experimentos de simulación, en
este sentido no debemos olvidar que experimentar con el modelo de
simulación es experimentar con un sucedáneo o sustituto del modelo
real o propuesto, de manera que hemos de asegurarnos de que el
modelo es válido, al menos hasta el punto de que las respuestas que
proporciona a nuestras preguntas puedan considerarse
aceptablemente válidas, sobre todo si han de servir de base a una
toma de decisiones.
En sistemas grandes y complejos difícilmente será de interés
tener en cuenta todas sus componentes y toda las posibles relaciones
entre ellas, de ahí que el primer paso del analista sea hacer operativo
su conocimiento del sistema, definir claramente cuales son los aspectos
que le interesa investigar, cuales son las leyes que gobiernan tales
aspectos del sistema, qué medidas del rendimiento son las apropiadas
para cuantificar el fenómeno, cuál es el entorno en que opera el sistema
y cuales sus relaciones con el mismo y como lo determinan.
No olvidemos que según nuestra metodología no nos planteamos
construir modelos de validez universal (cuya existencia podría, además,
ser cuestionable), sino modelos diseñados y construidos para satisfacer
propósitos, particulares y concretos que deben estar bien definidos.
Será por lo tanto difícil, si no imposible, determinar que aspectos del
sistema hemos de tener en cuenta, qué datos hemos de recoger, que
variantes posibles hemos de analizar, etc., si no hemos definido
previamente con claridad los objetivos del estudio, y en esta definición
no hemos de olvidar que nuestro modelo no solo ha de ser válido sino
también creíble, lo cual significa que el responsable de la toma de
decisiones ha de estar implicado en el establecimiento de las objetivos.
Una regla sencilla, pero clave, es intentar conseguir un punto de
equilibrio entre el grado de realismo, o complejidad, del modelo y los
objetivos del mismo, no incluyendo detalles innecesarios, o que no
sean consistentes con los datos de que disponemos, observables o
inferidos. No hay que olvidar que, a pesar de nuestros esfuerzos, el
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
186
modelo de simulación de un sistema, especialmente si es complejo,
solo será una aproximación del sistema real, y que no podemos olvidar
los aspectos coste-eficiencia en la práctica de la simulación, que pueden
hacer que se descarte llevar la validez más allá de un cierto grado por
los costes de obtención de la información suficiente.
Desde el punto de vista metodológico es muy distinto el
tratamiento de sistemas observables para los cuales al definir los
parámetros de interés podemos obtener medidas empíricas de los
mismos, que sistemas para los cuales tales observaciones son
imposibles, como por ejemplo los que intentan inferir panoramas de la
evoluciones tecnológicas, económicas o sociales en el futuro. Para
sistemas muy complejos es recomendable seguir un procedimiento
jerárquico en su modelización. Es decir en lugar de intentar abarcar de
golpe toda su complejidad empezar por construir un modelo
rudimentario que nos ayude a entender mejor el sistema y a identificar
los factores relevantes para, a partir de este mejor entendimiento ir
complicando gradualmente el primer modelo.
5.3. Verificación de modelos de simulación
Se trata, como hemos dicho, de determinar si el programa de
computador tiene errores o si, por el contrario, trabaja correctamente,
en consecuencia las primeras reglas a observar en el proceso de
verificación son, en esencia las mismas que tienden a asegurar la
corrección de un programa de computador, y hacen referencia a la
manera en que se estructura el programa, recomendando para
programas largos y complejos organizarlos en módulos o
subprogramas con una clara estructura de interrelaciones, de manera
que cada uno de ellos pueda verificarse por separado, y la verificación
del programa final resultante pueda realizarse paso a paso, añadiendo
en cada uno subprogramas previamente verificados. Para modelos
de sistemas complejos es recomendable utilizar lenguajes de
simulación, en lugar de lenguajes de programación de propósito
187
general, para reducir la longitud del programa y simplificar su
estructura.
Una vez comprobado que el programa de computador esta libre
de errores de programación hay que establecer si trabaja correctamente
o no. Una primera posibilidad puede consistir en ejecutar el programa
bajo hipótesis simplificadoras para las cuales sea conocido, o se pueda
calcular fácilmente por otros medios, como se comporta el sistema
modelizado. Es recomendable ejecutar el programa con diferentes con-
juntos de valores de los parámetros del modelo y comprobar si los
resultados son razonables o no. Por ejemplo, en muchos casos, los
modelos teóricos subyacentes, son modelos de colas que pueden ser
colas simples para los submodelos, o redes de colas para el modelo global,
bajo hipótesis simplificadoras se pueden obtener soluciones analíticas
para los modelos teóricos, soluciones que se pueden contrastar con las
del modelo de simulación para determinar hasta que punto los resultados
del modelo son razonables. En la referencia ya citada de Kobayashi [12]
puedeencontrarseunaampliavariedaddemodelosteóricosdeltipocitado.
Uno de los aspectos más importantes de un modelo de
simulación es comprobar si reproduce adecuadamente la lógica de los
procesos que tienen lugar en el sistema, verificar la corrección con
que el programa de computador emula esa lógica es pues otro punto
clave de la verificación. Una manera de realizarlo es seguir una traza
de la ejecución del programa. En el caso de los programas de
simulación de sucesos discretos una traza de la ejecución del programa
consiste en un seguimiento de los estados del sistema simulado, es
decir el contenido de la lista de sucesos, los valores de las variables
de estado, etc.Tener acceso a esta información después de que ocurra
cada uno de los sucesos para compararlo con nuestras previsiones de
lo que tenía que ocurrir es una manera de comprobar si el programa, y
en consecuencia el modelo del que este es una traducción, opera como
es debido o no. La tendencia actual en la mayoría de los lenguajes
avanzados para simulación es incluir un «debugger» interactivo que
permite al analista parar la simulación en cualquier instante y examinar
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
188
el estado del sistema, para proceder al seguimiento paso a paso de
los cambios de estado.
Finalmente es importante señalar que el desarrollo tecnológico
de los computadores, especialmente en lo que se refiere a las técnicas
de computación gráfica, ha hecho posible en muchos casos una
animación gráfica del proceso de simulación. Simuladores como el
SIMFACTORY [25], o el WITNESS [26], permiten una visualización
animada de los procesos de producción simulados con ellos.AIMSUN2
[13,52] es un ejemplo de animación gráfica para la simulación de tráfico.
La animación gráfica permite de una manera directa, a partir de una
simple ojeada, comprobar si el modelo se comporta como se supone
que se ha de comportar la realidad, identificando afinidades y
discrepancias. Como luego subrayaremos la animación gráfica es
también una herramienta importante para dar credibilidad al simulador.
5.4. Validación, verificación y credibilidad (II)
Un trabajo clásico en la literatura sobre la validación y credibilidad
de los modelos de simulación es el debido a Naylor y Finger [53] , que
plantea una metodología basada en un proceso de tres pasos, aceptada
por la mayoría de autores, cuyos ingredientes principales vamos a
glosar a continuación.
El primer paso es intentar desarrollar desde el principio un
modelo que, de acuerdo con la metodología de la modelización, se
enfrente explícitamente al objetivo de ser bueno, es decir válido, y que
por lo tanto pueda resultar creíble, es decir razonable, a aquellos que
lo han de utilizar.Ello comporta necesariamente involucrar a los usuarios
desde el principio, es decir a aquellos que están familiarizados con el
sistema y que posteriormente se supone que han de convertir el modelo
en el soporte de su proceso racional de toma de decisiones, y mantener
esta relación durante todo el proceso de construcción y validación del
modelo.
189
Cuando se trate de construir modelos de sistemas existentes, o
similares a los existentes, hay que proceder a la obtención de los datos
necesarios para la construcción del modelo. Bien utilizando datos
históricos existentes, o datos recogidos durante el proceso de
construcción del modelo, cuidando de verificar la corrección de los
mismos, es decir la supresión de los posibles errores de recogida.
Siempre que sea posible intentar basar aspectos del modelo en
teorías bien establecidas, como por ejemplo las referentes a la
independencia de distribuciones de probabilidad, tipos de distribuciones
para procesos de llegada o de servicio, etc. Aunque en muchos otros
casos será la experiencia o la intuición del analista las que le indicarán
que tipo de hipótesis son las más plausibles para describir la operación
del sistema, especialmente cuando se trata de un sistema no existente.
El segundo paso consiste en verificar empíricamente las hipótesis
en que se basa el modelo. Así, por ejemplo, si de los datos empíricos
inferimos un determinado tipo de comportamiento probabilístico para
un proceso de llegadas o de servicios, y ajustamos una distribución
teórica a dichos datos, hay que verificar adecuadamente la bondad de
tal ajuste. Hay que recordar aquí los comentarios sobre la utilización
de distribuciones teóricas y distribuciones empíricas que hemos hecho
en el Capítulo 2, sin olvidar los errores a que un muestreo incorrecto
puede inducirnos, como hemos comentado en el Capítulo 4, que podría
llevarnos a situaciones en que nuestras hipótesis son correctas, las
distribuciones correspondientes son consistentes con los datos
empíricos, y sin embargo el proceso queda desvirtuado por un
procedimiento de muestreo incorrecto. Un aspecto complementario
de este paso es la posibilidad de realizar un análisis de sensibilidad,
es decir determinar si los resultados de la simulación cambian
significativamente cuando se cambia el valor de un parámetro, una
distribución de probabilidad o el grado de detalle de un subsistema.
En caso de identificar que el resultado de la simulación es
especialmente sensible a algún aspecto del modelo habrá que tener
especial cuidado en la modelización de ese aspecto. Los métodos de
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
190
diseño de experimentos esbozados en el Capítulo 4 son especialmente
relevantes a la hora de realizar este análisis de sensibilidad.
El último paso del proceso propuesto por Naylor y Finger consiste
en determinar cuán representativos son los resultados de la simulación.
En el caso de la simulación de sistemas existentes, o similares a los
existentes, este ejercicio puede consistir en la comparación de dos
conjuntos de datos, uno procedente del sistema real y otro del modelo
que lo simula. Si la comparación de los dos conjuntos de datos resulta
ser «aceptable» entonces se puede considerar «válido» al modelo del
sistema. Cuanto mayor sea el grado de aceptabilidad de la
comparación, mayor será la confianza que podremos depositar en el
modelo. Suele haber una resistencia a construir un modelo de un
sistema existente por considerarlo un coste inútil, sin embargo, como
Law y Kelton subrayan, los resultados de un modelo no validado pueden
ser muy dudosos, especialmente cuando se pretenden extrapolar, y
por otra parte, un modelo de un sistema existente pude sugerir maneras
de mejorarlo, especialmente cuando se pueden realizar experimentos
sobre el modelo de difícil, o imposible, realización sobre el sistema
real; el éxito en el esfuerzo de modelización incrementa la credibilidad
del estudio, y finalmente no hay que olvidar que un modelo del sistema
existente puede ser necesario a la hora de compararlo con las
alternativas propuestas. Cuando no existen sistemas similares al
propuesto la única manera es recurrir al juicio de los expertos para
establecer la aceptabilidad de los resultados de la simulación. En estos
casos el recurso a la animación gráfica suele ser crucial para determinar
cuan razonables son.
La comparación entre los datos reales y los simulados no es un
proceso sencillo. Law y Kelton proponen varias alternativas: Inspección,
Análisis de Intervalos de Confianza basados en datos independientes, y
Análisis de Series Cronológicas. Suponiendo que {R1
, R2
, ....., Rk
} son
las observaciones del mundo real y {M1
, M2
, ....., Mk
} las procedentes del
modelo de simulación, la primera idea a la hora de determinar si el modelo
es una representación suficientemente aproximada del mundo real es
191
utilizar alguno de los tests estadísticos clásicos (Mann-Whitney, Chi
cuadrado, Kolmogorov-Smirnov, etc.) para determinar si se puede
considerar que las dos muestras proceden de la misma distribución, sin
embargo, como hemos puesto de manifiesto en el Capítulo 4, la mayor
parte de los resultados de una simulación, y podemos añadir, del mundo
real, están autocorrelacionados y no son estacionarios, lo que impide la
aplicación directa de cualquiera de los tests mencionados. En su lugar
la práctica de la simulación ha llevado a proponer comparaciones directas
de las medias, variancias, funciones de correlación, etc., sin recurrir a
ningún procedimiento estadístico formal. Este procedimiento es peligroso
porque es particularmente vulnerable a la aleatoriedad inherente de los
dos sistemas, el real y el simulado. Law y Kelton proporcionan contra
ejemplos que ponen de manifiesto las incorrecciones en que se puede
incurrir, y proponen una alternativa, la que denominan inspección
correlacionada, que permite apreciar mejor la adecuación entre el modelo
de simulación y el sistema modelizado. El procedimiento, ilustrado
gráficamente en la Figura 29, consiste en esencia en establecer las
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
192
comparaciones entre el modelo y el sistema alimentando el modelo con
los datos históricos en vez de con los generados a partir de la muestras
de las distribuciones de probabilidad de entrada.
En este caso el sistema y el modelo están sometidos
exactamente a las mismas observaciones con respecto a los datos de
entrada, lo que debe derivar en una comparación estadísticamente
más precisa.
La denominación de inspección correlacionada proviene de que
en general los resultados de las estadísticas comparables para el
modelo y el sistema estarán correlacionadas positivamente.
Un procedimiento alternativo, para comparar un modelo y el
sistema correspondiente para aquellas situaciones en las que es posible
recoger grandes cantidades de observaciones tanto para el sistema
como para el modelo, es el inspirado en la metodología de análisis de
resultados de los sistemas con horizonte finito. Suponiendo que se
recogen m conjuntos independientes de datos del sistema y n del
modelo, y que Xj
e Yj
son respectivamente los promedios de las
observaciones del j-ésimo conjunto del sistema y del modelo, entonces
podemos suponer, como en el procedimiento de los lotes, que las Xj
son variables aleatorias independientes idénticamente distribuidas con
media mX
= E(Xj
), suponiendo que los m conjuntos de resultados del
sistema son homogéneos, similarmente podemos suponer que las Yj
,
si los n conjuntos de observaciones son homogéneos, don variables
aleatorias independientes e idénticamente distribuidas cuya media es
mY
= E(Yj
). Podemos intentar comparar el modelo con el sistema
construyendo un intervalo de confianza para V= mX
- mY
. Hay razones
para preferir la construcción de un intervalo de confianza para V en vez
de verificar la hipótesis nula H0
: mX
= mY
, ya que, por una parte, dado
que el modelo es solo una aproximación del sistema la hipótesis será
falsa en la mayoría de los casos, mientras que un intervalo de confianza
proporciona más información que el correspondiente test de hipótesis,
ya que si el test de hipótesis indica que mX
¹ mY
, el intervalo de confianza
193
La construcción de modelos de simulación válidos y creíbles
también proporcionará esta información, pero nos indicará además
cual es el orden de magnitud de la diferencia entre mX
y mY
. El
procedimiento estadístico para construir el intervalo de confianza es el
siguiente: Se estiman las medias y variancias muestrales:
[ ] [ ]
X
X
m
Y
Y
S
X X
m
S
X X
n
j
j
m
i
i
n
x
j
j
m
y
i
i
n
= =
=
-
-
=
-
-
= =
=
å å
å å
1 1
2
2
2
2
1
1 1
(5.1)
y a continuación se calculan los grados de libertad estimados:
[ ]
[ ] ( ) [ ] ( )
$
f
S m S n
S m m S n n
X Y
X Y
=
+
- + -
2 2 2
2 2 2 2
1 1
(5.2)
y utilizamos ( )
x y t
s
m
s
n
f
x y
- ± +
-
$, 1
2
2 2
a
para estimar el intervalo de confianza
al 100(1-a) por ciento, y puesto que ^
f no será, en general, entero,
habremos de interpolar en las tablas de la distribución t de Student.
Sean l(a) y u(a) los extremos inferior y superior respectivamente del
correspondiente intervalo de confianza para V, si 0 Ï [l(a), u(a) , entonces
la diferencia observada entre mX
y mY
es estadísticamente significativa al
nivel a, lo que es equivalente a rechazar la hipótesis nula H0
: mX
= mY
en
favor de la alternativa H1
: mX
¹ mY
al mismo nivel. Pero si 0 Î [I(a), u(a)],
entonces cualquier diferencia observada entre mX
y mY
no es
estadísticamente significativa al nivel a, y puede ser explicada por las
fluctuaciones del muestreo. Incluso en el caso en que la diferencia
observada entre mX
y mY
es estadísticamente significativa no siempre
se puede concluir que el modelo no es válido, habría que analizar la
magnitud de la diferencia para llegar a tal conclusión.
La última alternativa que proponen Law y Kelton esta basada
en el método del análisis espectral, como el procedimiento de análisis
SIMULACIÓN DE SISTEMAS DISCRETOS
194
de resultados descrito en el Capítulo 4, para determinar si los conjuntos
de observaciones del modelo y del sistema son similares o no. Para
ello construye la función de autocovariancia de cada conjunto de
observaciones y utiliza la teoría correspondiente para construir un
intervalo de confianza para la diferencia de los logaritmos de los dos
espectros, y utiliza este intervalo de confianza para establecer el grado
de similaridad de las dos funciones de autocorrelación. El inconveniente
principal de este método estriba en el requerimiento de que las dos
secuencias de observaciones sean estacionarias covariantes.
195
La construcción de modelos de simulación válidos y creíbles
SIMULACIÓN DE SISTEMAS DISCRETOS
196
197
6
Tendencias
actuales de
la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
198
6.1. Generadores de simuladores, entornos de simulación y
animación gráfica
La metodología de la simulación que hemos descrito en los
capítulos anteriores, a pesar de sus éxitos y de su implantación
mediante los lenguajes de simulación que la incorporan, puso de
manifiesto hace ya tiempo una serie de limitaciones en lo que se refiere
a la comunicación con el usuario (interfaces hombre-máquina), al marco
conceptual del proceso modelizador y a las herramientas software y
estructuras de datos necesarias para construir el modelo en el
computador y organizar eficientemente los datos requeridos. Una
posibilidad de superar tales limitaciones fue planteada ya en 1979 por
Oren y Zeigler [54], en su formulación de un marco metodológico para
el desarrollo de software avanzado de simulación, dentro del cual se
han realizado la mayor parte de los progresos que comentaremos en
este apartado. Proponían Oren y Zeigler diseñar nuevos lenguajes de
simulación, o rediseñar algunos de los existentes si fuese posible,
incorporando al diseño de manera directa los conceptos fundamentales
de la teoría de sistemas, de manera que:
• Permitiesen al modelizador plantearse su problema dentro del
marco de la teoría de sistemas, expresando sus concepciones
directamente de forma inteligible para el computador, lo que
equivale a realizar en un solo paso el proceso de construcción
del modelo y su programación para computador, haciendo
posible.
199
• Especificar directamente los modelos en términos de inputs,
estados y outputs.
• Tuviesen capacidad para combinar, descomponer y
recombinar modelos, es decir considerar los modelos como
posibles componentes de macromodelos, de acuerdo con las
recomendaciones para los procedimientos de validación de
modelos de sistemas complejos.
• Proporcionasen los fundamentos operacionales para proponer
metodologías avanzadas de simulación
En consecuencia una metodología avanzada para la
simulación, y el contexto computacional que la soporta, debe incluir
elementos para:
A) La modelización.
A.1. Selección del formalismo de modelización.
El modelizador debería tener la posibilidad de elegir diversos
formalismos de modelización según las características del sistema que
pretende modelizar, continuo, discreto, etc. Por lo tanto debería tener
acceso a formalizaciones en términos de ecuaciones diferenciales y/o
en diferencias, sucesos discretos/tiempo discretos, procesos
markovianos, sistemas de colas, etc. Llegando al extremo de poder
concebir modelos de sistemas cuya estructura varíe con el tiempo, es
decir la posibilidad de especificar cambios controlados por el modelo
en su estructura estática y dinámica.
A.2. Manipulación del modelo.
Descomposición del modelo en submodelos, simplificación del
modelo, agregación de modelos en macromodelos refinamientos del
modelo, adaptación a diferentes marcos experimentales, etc.
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
200
A.3. Construcción modular del modelo.
Que haga posible, de acuerdo con las técnicas que hemos
propuesto para la validación y verificación de modelos, construir
macromodelos acoplando e integrando modelos de subsistemas
componentes que se han modelizado por separado, o se toman de
bases de modelos preexistentes, cuando se integran en sistemas
informáticos de ayuda a la toma de decisiones.
B) Marcos experimentales.
Posibilidad de su manipulación interactiva.
C) Programas de simulación.
Especificación algorítmica de los programas de simulación que
permita un tratamiento automático de los pares modelo-marco
experimental, lo que supone una especificación del lenguaje de
simulación que haga posible:
• Una expresión modular de los modelos y sus acoplamientos
e interacciones de acuerdo con los diferentes formalismos de
modelización.
• Una especificación modular de los marcos experimentales.
La consecuencia de todos los requisitos y especificaciones
mencionados es una metodología de simulación, y un lenguaje que la
materialice, que hagan posible un proceso de modelización asistida
por computador.
Los primeros intentos de desarrollar una plataforma software que
incorporase sino todos los ingredientes propuestos al menos los más
significativos, fueron los generadores interactivos de programas de
simulación, el DRAFT de Mathewson [24], y el MISDEM de Davies [55].
201
Cuyo punto de partida está en el hecho que hemos puesto de manifiesto
de que ciertas características de los programas de simulación son especí-
ficas del modelo particular que se está implantando, mientras que otras
son comunes a todos los modelos, especialmente los mecanismos de
avance del tiempo. En el caso de la simulación de sistemas discretos el
problema central es el de la ejecución en una secuencia cronológicamente
correcta («scheduling») de las secciones del programa que representan
la ocurrencia de los sucesos aleatorios. Cada lenguaje particular de
simulación (Simulation Programming Language, SPL) proporciona, según
hemos visto en el Capítulo 3, el esqueleto de un programa y un mecanismo
de avance del tiempo, con una serie de rutinas y estructuras de datos que
se pueden utilizar para añadirle la «carne» al esqueleto, que describa las
características peculiares del modelo que nos ocupa. En otras palabras,
el SPL nos proporciona los conceptos de alto nivel que nos ayudan a
articular las características peculiares de nuestro modelo, y esta es su
ventaja, pero al mismo tiempo, y esta es la posible desventaja, impone
una estructura rígida dentro de la cual hay que definir el comportamiento
dinámico de las componentes del modelo. Las características peculiares
esenciales de un modelo pueden resumirse en:
1. Identificación de los recursos requeridos por cada actividad
o suceso.
2. Identificación de donde se encuentran los recursos.
3. Cantidad de tiempo durante la cual los recursos
interaccionan entre sí o están siendo utilizados para la
realización de una actividad.
4. Qué les ocurre a los recursos cuando termina un período
de actividad cooperativa.
Teniendo en cuenta estas características, desde la óptica de
diseñar una metodología de modelización asistida por ordenador, una
de las líneas de enfoque es el diseño de cuestionarios interactivos
para solicitar de una manera sistemática esta información esencial
sobre las peculiaridades de un modelo particular, para utilizarla en la
generación automática de un programa de simulación, sintácticamente
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
202
correcto en el SPL elegido para la programación de la simulación.Tanto
el DRAFT como el MISDEM responden a este planteamiento, ambos
tienen una estructura modular, y se trata de programas interactivos
generadores de programas de simulación que cubren las terminologías
y estructural del esqueleto de la mayoría de los SPL.
Un aspecto importante que hay que resaltar es que al estar
basados en la metodología general de la modelización estos sistemas
generadores han sido diseñados de manera que son independientes
del lenguaje de simulación satisfaciendo de esta manera el requisito
de ser independientes de los lenguajes, tal como habíamos planteado
en las especificaciones generales de las metodologías avanzadas.
La base de algunos de los sistemas de simulación interactivos
la forman los GENERADORES DE PROGRAMAS:
Un generador de programas es una herramienta de software
interactivo que traduce la lógica de un modelo de simulación, descrita
mediante un simbolismo relativamente general, al código de un lenguaje
de simulación y de esta manera permite al computador imitar el
comportamiento del modelo.
La familia DRAFT de generadores de programas es un conjunto
de unidades modulares encadenadas de la forma que indica la Figura
30. Permiten al usuario introducir la estructura del modelo en términos
de ciclos de actividades de las entidades, y ejecutar interactivamente
la simulación mediante un diálogo de preguntas y respuestas.
El módulo INPUT/EDITOR acepta la descripción del modelo,
identifica los errores semánticos, como por ejemplo el uso de nombre
de variables reservados, y permite al usuario corregirlos
interactivamente. El módulo de ANÁLISIS verifica que el input no
tienen errores, permite corregir interactivamente algunas de las
inconsistencias de tipo lógico que sean detectables, y prepara el
fichero codificado de las interacciones entre las entidades del modelo.
203
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
204
Este fichero forma un input, de carácter general, para el escritor de
programas elegido por el usuario. Es después de esta etapa cuando
la descripción del modelo es configurada según la estructura particular,
o visión del mundo, en términos de SUCESO, ACTIVIDAD,
PROCESO, asociada al lenguaje objetivo (target language) en que
se va a programar el modelo, y entonces se produce la traducción
que genera el código ejecutable, y si la traducción es satisfactoria se
compila y, con los datos requeridos, se ejecuta.
En general, el diseño de un sistema Generador de Programas
de Modelos consta de tres partes [56]:
a. Lenguaje descriptor del modelo.
b. Generador de la estructura estandarizada del modelo.
c. Traductor.
A. Lenguaje descriptor del modelo.
Siguiendo la propuesta de Oren y Zeigler [54], el lenguaje
descriptor del modelo supone que los sistemas discretos constan de
sucesos externos, inputs, outputs, estados, funciones de transición y
una base de tiempos, en consecuencia su estructura consta de seis
módulos:
• De especificación del modelo.
1. Componentes del modelo.
2. Variables descriptivas de las componentes.
3. Interacciones de las componentes.
• De experimentación.
4. Dispositivos de salida.
5. Especificación de las condiciones terminales.
6. Inicialización.
205
Tendencias actuales de la simulación
Los diagramas de ciclos de actividades son, como hemos
señalado, la propuesta más utilizada para la especificación del
modelo.
B. Generador estandarizado de la estructura del modelo.
Desde el punto de vista informático la primera parte del generador
de la estructura del modelo es un analizador gramático («parser») de
la especificación del modelo. La descripción es analizada módulo a
modulo, en el orden establecido por el lenguaje descriptor, para producir
un conjunto de ficheros que sirven de input al traductor.
Las experiencias iniciales en el desarrollo e implantación de los
generadores de programas de simulación llevaron rápidamente al
convencimiento de que desde el punto de vista de la arquitectura del
software las funciones del sistema podían integrarse de una forma
más compacta y coherente, al tiempo que se potenciaban algunas de
sus componentes haciéndolas más flexibles, sobre todo si se
aprovechaban los desarrollos tecnológicos del hardware en lo que se
refiere a interactividad hombre-máquina, especialmente si esta se
realiza mediante sistemas gráficos. Henriksen [23] realizó en 1983 una
propuesta de tipo conceptual, que ha jugado un papel seminal en todos
los desarrollos posteriores. La Figura 31 resume el esquema de la
propuesta de Henriksen, de lo que a partir de él se han denominado
Entornos Software de Simulación.
En ella se separan los dos tipos de componentes estructurales
de este tipo de sistemas:
• Las herramientas puramente software tales como los
Editores Orientados a la Sintaxis, para realizar las funciones
de input y edición en función de las características del
lenguaje de descripción del modelo, Parsers y Editores de
Programa, para analizar y escribir el programa en el lenguaje
objetivo, y
SIMULACIÓN DE SISTEMAS DISCRETOS
206
• Las que representan la información referente al modelo, su
estructura, los datos, las condiciones experimentales,
resultados etc., que se aglutinan en una Base de
Conocimientos, lo que supone, al menos desde el punto de
vista conceptual, enmarcar este tipo de sistemas en un
contexto de Inteligencia Artificial.
El desarrollo de entornos de simulación a partir de esta propuesta
ha venido determinado por dos factores, por una parte el desarrollo
tecnológico de los sistema gráficos, que ha permitido ir sustituyendo los
editores orientados a sintaxis por editores gráficos que permiten una
visualización de la estructura de física del sistema modelizado en términos
de una representación iconográfica, al tiempo que un diálogo interactivo,
basado en una filosofía de ventanas, hace posible la introducción de la
información complementaria interactivamente de forma algebraica o en
un lenguaje más próximo al natural, según el tipo de información. Por
207
Tendencias actuales de la simulación
otra, las facilidades interactivas que, contempladas desde la perspectiva
del uso de los modelos de simulación como soporte a la toma de
decisiones, posibilitan una materialización ad hoc de este tipo de sistemas
en forma de entorno de simulación, en el que en lugar de una base de
modelos el usuario dispone de un lenguaje de especificación de modelos,
o de un sistema gráfico de descripción de los mismos. Los datos para la
ejecución pueden estar contenidos en la base de conocimientos, o
pueden ser introducidos interactivamente y almacenados en ella, así
como las condiciones para la ejecución del modelo y el análisis de
resultados, es decir las condiciones experimentales que permitirán
obtener respuesta a las preguntas del tipo ¿qué pasaría sí? ("what if")
características de la toma de decisiones basada en los experimentos de
simulación.
Otra consecuencia de la combinación de este esquema con el
desarrollo de los sistemas gráficos es la posibilidad de una presentación
gráfica de los resultados de la simulación, e incluso de la animación
gráfica de los mismos, de acuerdo con las recomendaciones del capítulo
5 en lo referente a la verificación, validación y credibilidad de los
modelos de simulación. Panorámicas de realizaciones en esta dirección
pueden encontrarse en los trabajos de Pidd [22,57].
6.2. Simulación visual interactiva
La incorporación de los conceptos básicos de la simulación visual
interactiva, especialmente a partir de las propuestas resumidas por
Pidd en las referencias citadas, representaron un cambio fundamental
en la forma de trabajo en el campo de la simulación [1]. La construcción
de un modelo de simulación ha pasado, de ser una labor reservada a
especialistas en programación, de difícil y costosa realización, basada
en procesos batch y en una interpretación en general elaborada a
partir del procesado de tediosos listados, a ser un ejercicio estructurado
alrededor de la utilización de entornos cada vez más amables y flexibles
que permiten aprovechar la característica más destacable de la
SIMULACIÓN DE SISTEMAS DISCRETOS
208
simulación: la posibilidad de estudiar la evolución dinámica de los
sistemas a lo largo del tiempo.
Según Hurrion [58], la Simulación Visual Interactiva puede
definirse como aquella que «posibilita la creación gráfica de modelos
de simulación, permite mostrar por pantalla dinámicamente el sistema
simulado, así como la interacción entre el usuario y el programa en
ejecución. La interacción implica que la simulación se detiene y solicita
información al usuario, o bien que éste puede parar la simulación a su
voluntad e interaccionar con el mencionado programa».
Actualmente hay varios paquetes comerciales que incorporan
plenamente estos conceptos como, por ejemplo, Simfactory de CACI
Inc [25], Witness de ATT & Istel [26], o FACTOR/AIM de Pritsker
Corporation. Todos ellos son productos orientados primordialmente a
la utilización de la simulación para la resolución de problemas en el
ámbito de la producción. Utilizables desde entorno Windows, y ejecu-
tables sobre ordenadores personales o sobre otras plataformas más
potentes como Workstations, permiten construir modelos complejos
de manera incremental, a partir de la selección de los componentes
del sistema de entre un repertorio limitado de entidades predefinidas.
Estas suelen ser representativas de los principales objetos-
entidades que nos podemos encontrar en una planta de producción y
adoptan, en consecuencia, los nombres más cercanos a la terminología
apropiada a la aplicación. Así, por ejemplo, parts, buffer, machine,
conveyor, track, vehicle, labor, pipe, tank, processor, etc... son
elementos físicos de Witness, y en el caso de en FACTOR/AIM son
parts o loads, batches, resources, pools, materials, agv’s, transporters
y conveyors. Se representan mediante iconos fácilmente editables,
manipulables y reubicables libremente en la pantalla.
Las Figuras 32 y 33 ilustran gráficamente como se construye
mediante el WITNESS el modelo del taller de manufactura, definido
en la Sección 1.3, cuyo modelo conceptual como sistema de red de
209
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
210
211
Tendencias actuales de la simulación
colas hemos descrito en la Figura 3, y cuyo modelo de simulación en
GPSS hemos presentado en la Figura 6. La Figura 32 presenta el
modelo tal como aparece al ser construido gráficamente mediante el
WITNESS, comparando esta figura con la Figura 3 nos percatamos de
que lo que hemos hecho ha sido representar directamente en la pantalla
del ordenador el modelo conceptual del sistema. Un convenio de iconos,
previamente definido por el usuario, asocia cada entidad del sistema
con su representación gráfica mediante el icono convenido. En la figura
podemos distinguir los iconos utilizados para representar las colas de
cada grupo de máquinas, y las máquinas de cada grupo. El gráfico
presenta así mismo la disposición espacial de los grupos de máquinas
y las flechas que los unen las rutas de las piezas entre las máquinas
de acuerdo con las secuencias de operaciones que les corresponden.
La construcción del modelo queda reducida a la representación gráfica
del modelo conceptual.
Cuando se ejecuta interactivamente el modelo aparecen en la
pantalla dos ventanas auxiliares, también representadas en la Figura
32. La ventana superior derecha presenta el reloj de simulación,
mientras que la de la parte inferior de la figura va informando de la
secuencia de sucesos a medida que van ocurriendo. Al mismo tiempo
los iconos que representan las máquinas de cada grupo van cambiando
de color según que la máquina esté ocupada o desocupada. En el
detalle de la Figura 33 se pueden apreciar además las colas delante
de cada grupo de máquinas y el número de piezas de cada tipo que
hay en la cola, distinguidas por su color.
Al hacer un doble clic sobre un icono parece una ventana
auxiliar como la representada en la Figura 33. Esta ventana tiene
una doble función. Cuando el modelo esta totalmente definido permite
consultar cuales son los valores de los atributos que caracterizan la
entidad definida por el icono. En el caso del ejemplo nos indica que
el grupo fundición consta de 14 unidades, que no hay reglas de
prioridad en la selección de las piezas, que en consecuencia son
tratadas según una disciplina FIFO, y que el tiempo requerido para
SIMULACIÓN DE SISTEMAS DISCRETOS
212
procesar cada pieza en la máquina esta definido por la función t_fund
(). Durante el proceso de definición del modelo, una vez que se ha
construido la representación gráfica del modelo conceptual mediante
los iconos, esta ventana permite establecer el dialogo a través del
cual se van definiendo los valores de estos parámetros. El informe
final que proporciona el simulador tiene unas características muy
similares a los del GPSS que hemos discutido anteriormente.
FACTOR/AIM (Lilegdon,Martin,Pritsker,1994) es un lenguaje
orientado a la interacción entre procesos, que permite describir y
mostrar interactivamente sistemas de fabricación complejos mediante
la correspondiente interfaz gráfica, e interpretar de forma ágil los
resultados obtenidos a partir de la observación de la evolución
dinámica del sistema a simular.
Entre los distintos componentes predefinidos en el lenguaje,
se establece un mecanismo de intercambio de mensajes relacionados
con la animación (dibujar, borrar, refrescar), la simulación y el cambio
de las características o el estado del componente), la manipulación
gráfica (edición, traslación por la pantalla), las operaciones habituales
de edición como cut y paste, o la relación con bases de datos
relacionales basándose en estándares como SQL.
Como algunos otros paquetes de simulación, SIMAN por
ejemplo, permite la visualización de la simulación mediante unos
diagramas pseudo-3D, que dan al conjunto un cierto aire de realismo
que facilita extraordinariamente la interpretación y la aceptación del
modelo por parte del cliente. Ello conecta con la interesante discusión
sobre el tema de la credibilidad en simulación [27] como problema
fundamental para la necesaria cooperación, e incluso a veces
«complicidad», entre analistas y clientes finales.
Un estudio de simulación es a menudo un trabajo de difícil
cuantificación en términos de costes reales de desarrollo. A medida
que avanza el proyecto, surgen nuevas propuestas no necesariamente
213
Tendencias actuales de la simulación
especificadas en el pliego de condiciones pero de obligada aceptación,
faltan datos, cambian los equipos o los interlocutores. La participación
del usuario en el proceso de modelización y en la visualización de las
primeras pruebas del prototipo de simulador, puede ayudar
cosiderablemente al buen progreso del proyecto.
Surge a continuación un primer nivel de discusión sobre la
necesidad y conveniencia de un esfuerzo tan considerable, en
términos de coste de desarrollo del entorno y de potencia de
procesado, que es necesario para proporcionar dos de las
características fundamentales de los entornos visuales interactivos
de desarrollo de proyectos de simulación: el sistema de diálogos
explícitos e implícitos para la construcción y modificación del modelo,
y el subsistema de representación gráfica para la animación, en tiempo
real o con postprocesado.
Muchos analistas empiezan a poner en duda la conveniencia
de construir simuladores con este tipo de vocación visual interactiva,
sin profundizar previamente mas en el campo de las interfases y,
específicamente, en la relación persona-maquina. La extensión en el
uso de generadores de interfases de usuario personalizables puede
ser un paso adelante en este sentido. En todo caso, la construcción de
modelos de grandes dimensiones puede constituir una labor
excesivamente laboriosa si se parte de los actuales sistemas de
identificación, definición de aspecto gráfico y de características
vinculadas al proceso de animación, y especificación de detalle
disponibles sobre muchos de los productos actualmente en el mercado.
Evidentemente, no se trata de paralizar la evolución de los
entornos de simulación hasta que el panorama quede mas definido,
ya que la propia evolución de la tecnología y del software disponibles
impelen a la mejora continua de los productos hoy en día
comercializados, y los conducen hacia una mejor presentación y
una mayor facilidad de uso que es de agradecer. Sin embargo, una
reflexión sobre las necesidades y las posibilidades reales de los
SIMULACIÓN DE SISTEMAS DISCRETOS
214
usuarios actuales y potenciales de la simulación seria muy
conveniente a fin de no frustrar expectativas alimentadas por una
apariencia de uso engañosamente fácil para la construcción de
modelos sencillos.
6.3. Simulación e inteligencia artificial
Como hemos señalado la propuesta de Henriksen para los
entornos del simulación representaba un primer paso en las posibles
relaciones entre la Simulación y la Inteligencia Artificial, al menos en el
aspecto que se refiere a la manera de estructurar, almacenar y relacionar
la información para la descripción del modelo y los datos para su
ejecución. Sin embargo, como pone de manifiesto, Paul [59],
«investigadores y practicantes en ambos campos se han enfrentado a
problemas bastante similares en la creación de modelos de sistemas
complejos, y a veces solo parcialmente entendidos, lo que ha hecho
que, a pesar de que el desarrollo de soluciones haya sido independiente
en cada disciplina, se haya llegado a herramientas software y técnicas
que a menudo se solapan no solo conceptual sino también
terminológicamente». Un ejemplo de esta afirmación lo constituyen no
sólo los entornos software para simulación, sino también todos los
desarrollos en la generación de programas de simulación o de
herramientas de ayuda a la modelización asistida por ordenador.
En este sentido Haddock [60] propuso en 1987 la integración de
los Generadores de Programas de Simulación en la estructura de los
denominados Intelligent Front-Ends: Sistemas Expertos que hacen
de interfaz con el usuario, generan el código de programa siguiendo un
diálogo con el usuario, e interpretan y explican los resultados de la
simulación. La Figura 34 ilustra la estructura conceptual de los sistemas
propuestos y experimentados por Haddock.
No obstante, al margen de estas realizaciones, las relaciones
aunque potencialmente tienen grandes perspectivas no han dado, por
el momento, mucho más de sí, especialmente en el terreno que se
215
presentaba como el que tenía más perspectivas de fructificar, el de las
relaciones entre Simulación y Sistemas Expertos. Dejo fuera de estas
consideraciones el tema de la simulación cualitativa [61], que constituye
un capítulo a parte.
A mediados de la década de los ochenta aparecieron dos
artículos en la revista Simulation, el primero debido a Shannon, Mayer
y Adelberger [62], y el segundo a Moser [63], que parecían abrir una
nueva perspectiva por medio de la simbiosis entre Sistemas Expertos
y Simulación.
Considerando los Sistemas Expertos como programas de
computador orientados a la resolución de problemas difíciles que
requieren experiencia, denominados habitualmente programas basados
en el conocimiento porque su capacidad depende críticamente del uso
de los hechos y las heurísticas que utilizan los expertos, podemos
diferenciarlos de las aplicaciones puras de la Inteligencia Artificial en
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
216
el sentido de que su objetivo no es el entendimiento de los mecanismos
básicos utilizados por el experto humano para llegar a un resultado
dado, sino más bien duplicar, de una manera consistente, los resultados
del experto humano para la resolución de un tipo de problemas.
Un Sistema Experto difiere de un programa de computador
tradicional tanto en su arquitectura como en el proceso de desarrollo
seguido para construirlos. En un Sistema Experto el énfasis se pone
no en los procedimientos e instrucciones para el computador, sino
en la adquisición, organización y utilización del «conocimiento». En
un Sistema Experto típico, cuya estructura está representada en la
Figura 35, el conocimiento está organizado en tres categorías:
• Una base de datos global que proporciona los datos de
entrada, o conocimiento declarativo, que define el problema
particular y registra el estado en curso de la solución o
situación.
• Una base de conocimientos, que describe los hechos y las
heurísticas asociadas con el dominio general del problema.
Puesto que este dominio de conocimiento tomo con
frecuencia forma de reglas, a veces se denomina
conocimiento relacional o de procedimientos.
• Una estructura de control o de inferencia, denominada motor
de inferencia, que define el enfoque de resolución del
problema o como pueden manipularse los datos y el
conocimiento para resolver el problema.
En la base de conocimientos los hechos representan el
conocimiento disponible en general, aceptado por los expertos, en
un cierto campo. Los hechos se incorporan a la base de conocimientos
por medio de alguna de las técnicas de representación del
conocimiento, combinación de estructuras de datos y procedimientos
interpretativos:
217
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
218
• Pares Atributo-Valor.
• Ternas Objeto-Atributo-Valor.
• Reglas de producción.
• Estructuras («Frames», almacenamiento del conocimiento
asociado a un objeto en forma de árbol jerárquico que
contiene todos los atributos y valores correspondientes).
• Redes Semánticas.
y para su recuperación se utilizan procedimientos basados en lógica
formal, cálculo de predicados, o de exploración de las estructuras
utilizadas.
Las reglas de producción son conjuntos de heurísticas utilizadas
típicamente por los usuarios para tomar una decisión, habitualmente
adoptan la forma: [situación ðacción]. El sistema trata de buscar una
solución subóptima que satisfaga la mayoría de las restricciones y
condiciones del problema. Las reglas se introducen por medio del
sistema de adquisición del conocimiento, que puede adoptar diversas
formas, desde un simple editor hasta un sofisticado proceso de diálogo.
Mediante el Motor de Inferencia el programa de computador
toma decisiones sobre cual es la cuestión cuya respuesta hay que
encontrar y la estrategia sobre como utilizar la base de datos y de
conocimientos para resolver el problema planteado. Muchos de los
mecanismos para manipular las reglas para formar inferencias pueden
considerarse como una variante de demostraciones de teoremas. La
resolución del problema se realiza mediante una exploración, no
exhaustiva, del conjunto de soluciones. Algunos de los procedimientos
más utilizados son métodos de búsqueda por objetivos («goal-driven»)
o por encadenamiento retroactivo («backward chaining»), búsqueda
dirigida por los datos («data-driven»), o por encadenamiento progresivo
(«forward chaining»), y estrategia de control bidireccional. En una
estrategia «backward chaining» se realiza la exploración
retroactivamente a partir del objetivo, procediendo jerárquicamente
intentando satisfacer las condiciones necesarias para alcanzar la meta
219
elegida. Una estrategia «forward chaining» significa explorar en El
sistema explora el conjunto de reglas hasta encontrar una que satisfaga
todas las condiciones.
La interfaz con el usuario tiene, entre otras, la capacidad para
explicar al usuario la línea de razonamiento seguida para llegar a las
conclusiones.
Como hemos puesto de manifiesto, los lenguajes y modelos de
simulación contienen muchas de las ideas utilizadas en Inteligencia
Artificial: la capacidad de las entidades y los procesos de tener
asociados atributos que describen sus características (Estructuras),
cuyos valores pueden cambiar dinámicamente, modificar
dinámicamente el flujo de las entidades a través del sistema (Producción
de Reglas y de Probabilidades Condicionales), cambiar el sistema en
función de las variables de estado, y representar el conocimiento sobre
el sistema en forma de una red de flujos. La diferencia fundamental
con la Inteligencia Artificial estriba no tanto en algunos de los conceptos
subyacentes cuanto en la forma en que se construye y ejecuta el
modelo.
La similaridades entre algunas de las estructuras básicas de
los sistemas basados en el conocimiento, como las reglas de
producción, y los bloques de los programas de simulación fueron
identificadas y analizadas por diversos autores hace bastante tiempo,
las referencias siguientes, son solo una muestra, pequeña pero
significativa, O’Keefe [64,65], Doukidis [66], Vaucher [67]. El artículo
de Paul [59], que hemos referenciado anteriormente, proporciona una
amplia panorámica de este tema. Sin embargo las perspectivas que
estos análisis abrían no se han concretado, por el momento, en
realizaciones, con la excepción del desarrollo de simuladores basados
en el método de las tres fases [68,22].
El método de las tres fases, propuesto inicialmente por Tocher
[37], combina los enfoques de la exploración de actividades («activity
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
220
scanning»), con la programación de sucesos («event scheduling»). Es
un planteamiento que había sido marginado durante mucho tiempo,
quizás por su aparente dificultad de implantación, pero que la
modelización en términos de ciclos de actividades ha vuelto a poner
de actualidad. Este planteamiento considera que en la mayor parte de
sistemas hay dos tipos de actividades:
• Actividades para las que se puede predecir en que instante
han de comenzar por lo que su ocurrencia puede ser
programada, («scheduled»), a las que Tocher denomina
actividades «book-keeping», o actividades B.
• Actividades cuya realización depende de las condiciones de
la simulación en cada instante, que suelen ser actividades
de tipo cooperativo, por lo que Tocher las definió como
actividades C.
En términos de la descripción que hemos realizado en el
Capítulo 3, esto significa que mientras que hay actividades que
pueden ser controladas directamente por el ejecutivo, hay otras
actividades cuya realización depende del estado del sistema. El
tratamiento de actividades directamente controladas por el ejecutivo
es propio del planteamiento de la programación de sucesos, por lo
que en este la ocurrencia de un suceso tiene que tratar todas las
posibles implicaciones lógicas del cambio de estado del sistema
que él provoca, mientras que el tratamiento condicional es el que
corresponde al planteamiento de la exploración de actividades, lo
que supone que el ejecutivo no sabe en ningún momento que
actividad concreta es la que debe ejecutarse en cada instante, por
lo que debe proceder a una exploración de todas ellas hasta que
identifica cuales son las que reúnen las condiciones para ser
ejecutadas en ese momento.
El planteamiento de las tres fases es un compromiso entre ambos
y distingue entre los dos tipos de actividades, de manera que el ejecutivo
221
trata directamente aquellas actividades cuya ocurrencia puede ser
programada, y explora las restantes para identificar las consecuencias
lógicas de la realización de la actividad programada. En términos de
Pidd [22], los dos tipos de actividades se pueden definir de la manera
siguiente:
• Actividades B (actividades «book-keeping») ejecutadas
directamente por el ejecutivo cada vez que se llega al instante
en que su ocurrencia ha sido programada
• Actividades C (actividades condicionales o cooperativas) cuya
ejecución puede depender de la cooperación de diferentes clases
de entidades, o de la satisfacción de condiciones específicas
durante la simulación.Tienen un carácter similar a las actividades
definidas en el enfoque «activity scanning».
En el caso del ejemplo de cola simple que hemos utilizado a lo
largo de toda esta monografía, en el que los clientes llegan
aleatoriamente según una distribución de probabilidad dada (Poisson
en el caso más sencillo), esperan hasta que les llega el turno para ser
servidos, reciben un servicio cuya duración puede ser también aleatoria
(exponencialmente distribuida en el caso más sencillo), y abandonan
el sistema cuando han recibido el servicio), hay dos sucesos cuya
ocurrencia puede ser predicha con exactitud:
• Llegada de un cliente: Si se encadenan las llegadas puede
hacerse que el cliente n-ésimo se produzca al final del intervalo
entre el cliente n-1 y el n. No hay ninguna condición que afecte
a este suceso y por lo tanto su ocurrencia está determinada.
Se trate de una actividad B en la terminología del planteamiento
de las tres fases para la simulación.
• Final del servicio: Cuando se inicia un servicio su duración
puede ser determinada a partir de la distribución de
probabilidad correspondiente, por lo tanto su finalización, y
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
222
las actividades que vienen a continuación (abandono del
sistema por el cliente y liberación del sirviente) ocurrirán de
manera determinada al finalizar el servicio. En consecuencia
el final del servicio también es una actividad B.
• Iniciación del servicio: solo puede tener lugar si se satisfacen
dos condiciones. En primer lugar debe haber al menos un cliente
esperando a recibir servicio, y en segundo el sirviente debe estar
libre para poder dispensar el servicio. En consecuencia esta
actividad es a la vez condicional y cooperativa por lo que se trata
de una actividad C.
En resumen un modelo de tres fases para un sistema simple de
colas consiste en dos actividades de tipo B y una de tipo C.
El análisis de como opera el planteamiento de las tres fases y
comparación con el diagrama de ciclos de actividades permite
establecer una regla que los vincula: Un estado activo se inicia con
una actividad C y termina con una B a menos que el estado genere
nuevas entidades en el sistema. El ejecutivo del planteamiento de las
tres fases puede describirse en los términos siguientes:
• Fase A:Exploración del tiempo.El ejecutivo determina cuando
debe ocurrir el siguiente suceso y decide cual de los sucesos
B debe ejecutarse en ese instante. Después avanza el tiempo
en el reloj de simulación hasta el instante para la ocurrencia
del siguiente suceso, y se mantiene allí hasta que las fases B
y C se han completado.
• Fase B: Llamada a las actividades B. El ejecutivo verifica cual
es la actividad B que debe ejecutarse en ese instante y pasa
a realizarla.
• Fase C: Exploración de las actividades C. El ejecutivo
intenta activar cada una de las actividades C según su orden
223
Tendencias actuales de la simulación
y realiza aquellas cuyas condiciones se satisfacen en ese
momento. El proceso se repite hasta que no quedan más
actividades C.
La Figura 36 ilustra gráficamente la estructura de este ejecutivo.
Esta estructura puede rediseñarse para configurar un sistema experto
basado en las reglas de producción como el que muestra la Figura 37.
La base de conocimientos contiene el conjunto de reglas que describen
el conocimiento general sobre el dominio de conocimiento del problema.
Las reglas tienen dos composiciones las de las actividades B y las de
las C.
Las actividades o sucesos B se activan cuando el tiempo de
simulación alcanza determinados valores, desde el punto de vista de
la Inteligencia Artificial son considerados como «demons» puesto que
no tienen una parte condicional, sino solo la de las acciones.
Las actividades C son típicas reglas de producción del tipo if-
then. Cada vez que se encuentra cierta situación en la parte IF de la
regla se ejecutan las acciones en la parte THEN o, en la terminología
de la simulación, cuando se verifican las condiciones para la realización
de una actividad esta se ejecuta.
La componente de memoria de trabajo del sistema de producción
guarda la información sobre el estado actual del sistema. Sus
estructuras son ensambladas y manipuladas desde el motor de
inferencia por medio de llamadas a la biblioteca de unidades de
simulación. Estas últimas son las que crean las estructuras de datos
requeridas y permiten su actualización o eliminación. La parte principal
de la memoria de trabajo esta constituida por metas y hechos, como
en cualquier sistema de producción.
Los hechos, estados del modelo de simulación en cualquier
instante, son los estados de las entidades utilizadas por las reglas
para extraer inferencias. Las metas son los elementos del mecanismo
SIMULACIÓN DE SISTEMAS DISCRETOS
224
225
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
226
temporal y representan la programación de las actividades B. Como
en cualquier sistema de producción, las metas proporcionan la dirección
para el procesamiento del sistema suministrando el estado que debe
ser alcanzado. En un proceso de simulación de tres fases las
propiedades de las metas que se utilizan son el tiempo (cuando una
actividad B debe ocurrir), y las prioridades de las actividades. Como
parte auxiliar de la memoria de trabajo se guarda la información sobre
los procedimientos de muestreo y de recogida de resultados.
El motor de inferencia controla el tiempo, las condiciones de
terminación, las llamadas a los «demons» B y la verificación de todas
las reglas de producción C. El sistema de simulación no es típico en el
mecanismo de inferencia de las reglas de producción, se ocupa de
encontrar, en primer lugar, todas las reglas que son satisfechas por los
datos contenidos en la memoria en ese momento y entonces aplica
una estrategia de selección para determinar cuales ejecuta. La
metarregla de la fase A avanza el tiempo hasta el instante en que algo
tiene que ocurrir. La metarregla de interrupción, común a todos los
sistemas de producción, verifica las condiciones de terminación de la
ejecución. La metarregla de la fase B ejecuta todos los sucesos B
identificados por la metarregla de la fase A. Finalmente la metarregla
de la fase C verifica por turno todas las reglas C de producción y ejecuta
aquellas que satisfacen los requisitos de los datos de la memoria de
trabajo. Las cuatro metarreglas se aplican repetidamente hasta que
se cumplen las condiciones de la metarregla de interrupción.
El motor de inferencia utiliza un procedimiento de
encadenamiento retroactivo para la verificación y ejecución de las reglas
C de producción. Es un mecanismo de inferencia obvio para una
situación en la que hay una multiplicidad de metas igualmente
aceptables y un estado inicial único. Las posibles ineficiencias en el
caso de problemas complejos pueden resolverse con versiones más
sofisticadas del motor de inferencia y de la estructura de la base de
conocimientos. Observaciones similares pueden hacerse con respecto
al tratamiento del tiempo [22], extremo no muy desarrollado en el campo
227
de la Inteligencia Artificial pero que forma parte de la naturaleza de la
Simulación.
A parte de la referencia de Crookes [68], en lo que se refiere al
simulador CASM basado en el procedimiento de las tres fases, y los
desarrollos posteriores incluidos en el texto de Pidd [22], las relaciones
entre Inteligencia Artificial y Simulación siguen siendo un área abierta
de investigación en la que aún puede haber muchas cosas que decir.
Un comentario adicional, para cerrar este apartado, es el que
se refiere a algunas utilizaciones de la simulación en combinación con
sistemas basados en el conocimiento, como en el caso de algunos
proyectos europeos de aplicaciones avanzadas de tecnologías
telemáticas al tráfico CLAIRE [69], KITS [70], o nacionales [71], en los
que se ha experimentado otro tipo de relación entre los sistemas
expertos y los modelos de simulación estructurada en forma de un
diálogo entre un sistema basado en el conocimiento para el control del
tráfico y un modelo se simulación de la red viaria controlada por el
sistema experto, en el que el modelo de simulación juega un doble
papel con respecto al sistema experto, como fuente de aprendizaje y
herramienta de conocimiento por una parte, y como mecanismo de
evaluación del impacto de los diagnósticos y propuestas del sistema
basado en el conocimiento por otra.
Tendencias actuales de la simulación
SIMULACIÓN DE SISTEMAS DISCRETOS
228
229
Referencias
SIMULACIÓN DE SISTEMAS DISCRETOS
230
[1] Barceló, J. y J. Casanovas , Simulación y Modelización de
Sistemas, en: Panorama Informático, Editado por FESI, 1996.
[2] Isdefe, Presentación de las Monografías de Ingeniería de
Sistemas, Madrid, 1995.
[3] Gordon, G., System Simulation, Prentice-Hall, 1978.
[4] García, M. R., Discrete Event Simulation Methodologies
and Formalisms, Proceedings of the Winter Simulation Conference,
1990.
[5] Ackoff, R. L., The Scientific Method, John Wiley and Sons,
1963.
[6] Volterra, V., Variazioni e Fluttuacioni del Numero
d’Individui in Specie Animali Conviventi, Mem. Accad. Naz. Lincei,
2, 31-33, 1926.
[7] Lotka, A. J., Undamped Oscillations Derived from the Law
of Mass Action, J. Amer. Chem. Soc., 42, 1595-9, 1920.
[8] Michalopoulos, P
. G., J. K. Lin y D. E. Beskos, Integrated
Modelling and Numerical Treatement of Freeway Flow, Appl. Mathem.
Model. Vol. 11, No. 401, pp. 447- 458, 1987.
[9] Drazin, P
. G., Nonlinear Systems, Cambridge University
Press, Cambridge Texts in Applied Mathematics, 1993.
[10] Stewart, J., Does God Play Dice - The New Mathematics:
Putting Theory into Practice, Prentice-Hall, 1986 of Chaos, Penguin
1990.
[11] Kleinrock, L., Queueing Systems,Volume I:Theory, Volume
II: Computer Applications, John Wiley, 1975.
231
Referencias
[12] Kobayashi, H., Modeling and Analysis: An Introduction to
System Performance Evaluation Methodology, Addison-Wesley, 1978.
[13] Barceló, J., J. L. Ferrer y R. Grau , Simuladores de Tráfico:
Herramientas para Ayudar al Diseño de Proyectos y Evaluación de
Estrategias, Revista Carreteras, Asociación Española de la Carretera,
Nº 74, Noviembre-Diciembre 1994.
[14] Kühne, R. D. y P. G. Michalopoulos, Continuous Flow
Models, Capítulo 5 del libro pendiente de publicación por el
Transportation Research Board sobre Traffic Flow Theory, 1994.
[15] Papageorgiou, M., Freeway Traffic Modelling, in M.
Papageorgiou, Ed. Concise Encyclopedia of Traffic and Transportation
Systems, Pergamon Press, 1991.
[16] Lighthill, M. H. y G. B. Whitham, On Kinematic Waves-II: A
Theory of Traffic Flow on Long Crowded Roads, Proceedings, Royal
Society, London, A229, No.1178, pp.317-345, 1955.
[17] Michalopoulos, P
. G., Analysis of Traffic Flows at Complex
Congested Arterials, Transp. Res. Rec. #1194, pp. 77-86, 1988.
[18] Michalopoulos, P. G., E. Kwon and I.G. Khang,
Enhancements and Field Testing of a Dynamic Simulation Program,
Transp. Res. Rec.#1320, pp. 203-215, 1991.
[19] KRONOS6, An Interactive Freeway Simulation Program
for Personal Computers, User’s Manual, Prepared by C.F.Lee, R.Plum
and P
.Michalopoulos, Center for Transportation Studies, Department
of Civil and Mineral Engineering, University of Minnesota, 1990.
[20] Chronopoulos, A., P
. Michalopoulos y J. Donohoe, Traffic
Flow Simulation Through Parallel Processing, AHPCRC Preprint 91-90,
University of Minnesota, Dept. of Civil and Mineral Engineering, 1991.
SIMULACIÓN DE SISTEMAS DISCRETOS
232
[21] MATLAB and SIMULINK, The Mathworks Inc., 1993.
[22] Pidd, M., Computer Simulation in Management Science,
John Wiley, 1992.
[23] Henriksen, J. O., The Integrated Simulation Environment
(Simulation Software of the 1990’s), Operations Research, 31,6, pp.
1053-1073, 1983.
[24] Mathewson, S. C., The Application of Program Generator
Software and Its Extensions to Discrete Event Simulation Modeling,
IIE Transactions, 16, 1, pp. 3-17, 1984.
[25] SIMFACTORY, CACI Inc.
[26] WITNESS, ATT&ISTEL.
[27] Law, A. M. y W. D. Kelton, Simulation Modeling and
Analysis, McGraw Hill, 1991.
[28] Bratley, P
., B.L.Fox y L.E.Schrage, A Guide to Simulation,
Springer-Verlag, 1987.
[29] Kleijnen, J. P. C., Statistical Techniques in Simulation,
Marcel Dekker, 1975.
[30] Kleijnen, J. P. C., Statistical Tools for Simulation
Practitioners, Marcel Dekker, 1987.
[31] Kleijnen, J.P
.C., Simulation: A Statistical Perspective, John
Wiley, 1992.
[32] Ahrens, J. H. y K. D. Kohrt, Computer Methods for Efficient
Sampling from Largely Arbitrary Statistical Distributions, Computing,
26, 19-31, 1981.
233
Referencias
[33] Von Neumann, J., Various Techniques Used in Connection
with Random Digits, National Bureau of Standards Applied Mathematics,
Series 12, pp. 36-38, 1951.
[34] Hammersley, J. M. y D. C. Handscomb, Monte Carlo
Methods, John Wiley, 1964.
[35] Apostol, T. M., Análisis Matemático, Reverté, 1960.
[36] Knuth, D. E., The Art of Computer Programming, Vol. 2,
Seminumerical Algorithms, Addison-Wesley, 1981.
[37] Tocher, K. D., The Art of Simulation, English University
Press, 1960.
[38] Lehmer, D. H., Mathematical Models in Large-Scale
Computing Units, Ann. Comput. Lab. Hardward University, 26, 141-
146, 1951.
[39] Shannon, R. E., Systems Simulation: The Art and the
Science, Prentice-Hall, 1975.
[40] Fishman, G. S., Principles of Discrete Event Simulation,
John Wiley, 1978.
[41] Kiviat, P. J., Simulation Languages, in: Computer
Simulation Experiments with Models of Economic Systems, John
Wiley, 1971.
[42] Emshoff, J.R.y Sisson, R.L., Design and Use of Computer
Simulation Models, MacMillan, 1970.
[43] Gordon, G.y R.Efron, A General Purpose Digital Simulator
and Examples of its Application: Part I - Description of the Simulator,
IBM Systems Journal, IV, No. 3, pp 174-183, 1964.
SIMULACIÓN DE SISTEMAS DISCRETOS
234
[44] Schriber, J., An Introduction to Simulation Using GPSS/H,
John Wiley, 1990.
[45] Hooper, J. W., Strategy-related Characteristics of
Discrete-Event Languages and Models, Simulation 46, No.4, pp.
86-106, 1986.
[46] Box, G. E. P
., W. G. Hunter y J. S. Hunter, Statistics for
Experimenters, John Wiley, 1978.
[47] Box, G. E. P
. y N. R. Draper, Empirical Model Building and
Response Surfaces, John Wiley, 1987.
[48] Iglehart, D. L., The Regenerative Method for Simulation
Analysis, In: Current Trends in Programming Methodology-Software
Modeling, Ed. K.M. Chandy and R.T.Yeh, Prentice-Hall 1978.
[49] Sargent, R. G, Simulation Model Verification and
Validation, Proceedings of the 1991 Winter Simulation Conference,
1991.
[50] Balci, O., Credibility and Assessment of Simulation Results:
The State of the Art, Proceedings of the Conference on Methodology
and Validation, Orlando, 1987.
[51] Bryan, O. F. y M. C. Natrella, Testing Large Scale
Simulations, Byte 10, pp. 183-194, 1985.
[52] Barceló, J., Ferrer, J. L. y Martin, R., Simulation Assisted
Design and Assessment of Vehicle Guidance Systems, Report de
Recerca DR 95/05, Departament d’Estadística i Investigació Operativa,
Universitat Politécnica de Catalunya, 1995.
[53] Naylor, T. H. y J. M. Finger, Verification of Computer
Simulation Models, Management Science 14, pp. 92-101, 1967.
235
[54] Oren,T.I.y B.P
.Zeigler, Concepts for Advanced Simulation
Methodologies, Simulation Vol 32, No. 3, pp.69-82, 1979.
[55] Davies, N. R., Interactive Simulation Program Generation
In: Methodology in Systems Modeling and Simulation, Eds.B.P
.Zeigler,
M.S. Elzas, G.J.Klir, and T.I. Oren, North Holland, 1979.
[56] Subrahmanian, E. y R. L. Cannon, A Generator Program
for Models of Discrete-Event Systems, Simulation, Vol. 35, No. 3, pp.
93-101, 1981.
[57] Pidd, M., Computer Modeling for Discrete Simulation, John
Wiley, 1989.
[58] Hurrion, R. D., Engineering Journal of Operations Research,
Vol.23, 1986.
[59] Paul, R. J., Artificial Intelligence and Simulation Modeling, in:
Computer Modeling for Discrete Simulation, Ed.by M.Pidd, JohnWiley, 1989.
[60] Haddock, J., An Expert System Framework Based on a
Simulator Generator, Simulation, Vol 42, No. 2, 1987.
[61] Kuipers, B. J., Qualitative Simulation, Artificial Intelligence
29, pp. 289-238, 1986.
[62] Shannon, R.E., R.Mayer y H.H.Adelberger, Expert Systems
and Simulation, Simulation, Vol.44, No. 6, pp. 275-284, 1985.
[63] Moser, J. G., Integration of Artificial Intelligence and
Simulation in a Comprehensive Decision-Support System, Simulation,
Vol 47, No. 6, pp. 223-229, 1986.
[64] O’Keefe, R.M., Simulation and Expert Systems - Taxonomy
and Some Examples, Simulation Vol. 46, No. 1, pp. 10-16, 1986.
SIMULACIÓN DE SISTEMAS DISCRETOS
236
[65] O’Keefe, R. M. y J. W. Roach, Artificial Intelligence
Approaches to Simulation, Journal of the Operational Research Society,
Vol 38, pp. 713-722, 1987.
[66] Doukidis, G.I., An Anthology on the Homology of Simulation
with Artificial Intelligence, Journal of the Operational Research Society,
Vol. 38, pp. 701-712, 1987.
[67] Vaucher, J. G., Views of Modeling: Comparing the
Simulation and AI Approaches, in: AI, Graphics and Simulation, ed. G.
Birtwhistle, Society for Computer Simulation, San Diego, USA, 1985.
[68] Crookes, J. G., D. W. Balmer, S. T. Chew y R. J. Paul, A
Three Phase Simulation System Written in Pascal, Journal of the
Operational Research Society, Vol. 37, pp. 603-618, 1986.
[69] CLAIRE, Project V1015, Commission of the European
Communities, Programme DRIVE I, 1991.
[70] KITS, Project V2039, Commission of the European Union,
Advanced Transport Telematics Programme (DRIVE II), 1994.
[71] Cuena, J., Tráfico, Razonamiento y Simulación,
Especificación Preliminar de la Arquitectura TRYS, Universidad
Politécnica de Madrid, Departamento de Inteligencia Artificial, Madrid,
1991.
237
SIMULACIÓN DE SISTEMAS DISCRETOS
238
239
Bibliografía
SIMULACIÓN DE SISTEMAS DISCRETOS
240
Fishman, G.S.:
Mitchell, G.:
P.R. Nelson,
E.J. Dudernier,
A. Öztürn &
E.C. Van der Meulen,
ed.:
Pedgen, C.D.:
Pritsker, A.A.B.:
A.A.B. Pritsker,
C.E. Sigal &
R.D.J. Hammenrsfahr:
Rubinstein, R.Y.:
Monte Carlo: Concepts, Algorithms and Applications.
Springer, 1996.
The Practice of Operational Research.
John Wiley, 1993.
The Frontiers of Statistical Computation, Simulation and Modeling.
American Sciences Press, 1991.
Introduction to SIMAN.
Systems Modeling Corporation, 1986.
- Modelling and Analysis UsingQ-GERT Networks.
Halsted Press, 1977.
- Introduction to Simulation and SLAM II.
Halsted Press, 1984.
SLAM II, Network Models for Decision Support.
The Scientific Press, 1994.
Simulation and the Monte Carlo Method.
John Wiley, 1981.
241
Bibliografía
SIMULACIÓN DE SISTEMAS DISCRETOS
242
243
Glosario
SIMULACIÓN DE SISTEMAS DISCRETOS
244
1. ATRIBUTOS. Propiedades que caracterizan a las entidades
que componen un sistema.
2. ENTIDADES. Objetos o elementos de interés que
constituyen un sistema.
3. ESTADO DEL SISTEMA. Caracterización de las entidades
del sistema y de sus atributos en un instante dado.
4. LENGUAJE DE SIMULACIÓN. Lenguaje de programación
de computadores específicamente diseñado para construir los
programas de computador que representan los modelos de simulación.
5. MODELO. Representación formal de un sistema capaz de
proporcionar respuestas válidas a las preguntas que un observador
se formula sobre el sistema.
6. MODELO MATEMÁTICO. Modelo en el que la
representación del sistema se formaliza en términos matemáticos.
7. SIMULACIÓN. Técnica numérica para el estudio del
comportamiento de un sistema a través de una representación o modelo
del mismo.
8. SIMULACIÓN DISCRETA.Técnica numérica para el estudio
del comportamiento de un sistema a través del seguimiento de los
cambios de estado del modelo que lo representa, cuando estos tienen
lugar como consecuencia de la ocurrencia de sucesos que ocurren en
instantes discretos.
245
Glosario
10. SIMULADOR. Formalización del modelo de simulación de
un Sistema en términos de un lenguaje de programación para
computadores.
11. SISTEMA. Conjunto de elementos que ordenadamente
relacionados entre sí contribuyen a un determinado objeto común.
12. VARIABLE. Representación formal de un atributo de un
elemento de un sistema a cuyos valores se puede asociar una medida
numérica cuyo valor puede cambiar a lo largo del tiempo.
13. VARIABLE DE CONTROL O DE DECISIÓN. Variable de
diseño del sistema cuyos valores pueden ser el resultado de una
decisión del diseñador del sistema.
14. VARIABLE EXÓGENA O NO CONTROLABLE. Variable
cuyos valores afectan al sistema pero que no dependen de las restantes
variables que caracterizan al sistema.
15. VARIABLES DE ESTADO. Variables cuyos valores
caracterizan las entidades y atributos que determinan el estado del
sistema en un instante dado.
SIMULACIÓN DE SISTEMAS DISCRETOS
246
247
Esta primera edición de
SIMULACIÓN DE SISTEMAS DISCRETOS
de la serie de
Monografías de Ingeniería de Sistemas
se terminó de imprimir el día
1 de septiembre de 1996.

Más contenido relacionado

PDF
Guía de Análisis de Sistemas
PPT
Class 01Modelos en Simulacion
PDF
PDF
Sistemas de servicio.pdf
DOCX
Libro de sim capitulo 1
DOCX
Simulacion definiciones
PDF
Teoria general de Sistemas_Diagrama de Forrester
PDF
Investigaciondeoperaciones continental
Guía de Análisis de Sistemas
Class 01Modelos en Simulacion
Sistemas de servicio.pdf
Libro de sim capitulo 1
Simulacion definiciones
Teoria general de Sistemas_Diagrama de Forrester
Investigaciondeoperaciones continental

Similar a Simulacion.pdf (20)

PPT
Todas 101223091525-phpapp01
PDF
Capit1
ODP
Historia De Dinamica
PPT
Simulaunoitrm
PDF
Trabajo
PPTX
La simulacion
PDF
Ids1
PDF
Lasimulacion
PPT
SIMULACIÓN DE SISTEMAS-UNIDAD I.ppt
PDF
simulacioncomputarizada.pdf
PDF
Clase n1 (Introduccion a la simulacion) - 2017.pdf
PDF
Tipos de sistemas
PDF
9 565-8016cqd
PDF
Manual 2 Software Arena
PDF
Manual simulacion h._caselli_g
PDF
Manual simulacion para compartir en la nube
PDF
Manual simulacion h._caselli_g
PDF
Manual simulacion h._caselli_g
PDF
Manual unidad4
PPTX
SIMULACION de sistemas.pptx
Todas 101223091525-phpapp01
Capit1
Historia De Dinamica
Simulaunoitrm
Trabajo
La simulacion
Ids1
Lasimulacion
SIMULACIÓN DE SISTEMAS-UNIDAD I.ppt
simulacioncomputarizada.pdf
Clase n1 (Introduccion a la simulacion) - 2017.pdf
Tipos de sistemas
9 565-8016cqd
Manual 2 Software Arena
Manual simulacion h._caselli_g
Manual simulacion para compartir en la nube
Manual simulacion h._caselli_g
Manual simulacion h._caselli_g
Manual unidad4
SIMULACION de sistemas.pptx
Publicidad

Más de UGMA (20)

PDF
Analizador de datos de Arena.pdf
PPT
MODELIZACIÓN DE LA ALEATORIEDAD-UNIDAD II.ppt
PPTX
Ejemplo de Aplicación Taquilla de Paso Banco de Venezuela.pptx
PDF
problemas_Simulacion.pdf
PDF
teoria_Simulacion.pdf
PPT
Unidad I conceptos-basicos de Simulacion.ppt
PPTX
Unidad IV: Estudio de Simulacion
PDF
Unidad iii problema en excel de aleatoriedad
PDF
Unidad iii programas de aleatoriedad
PPT
Modelización de la aleatoriedad unidad ii
PPT
Unidad I simulacion de sistemas nuevo
DOCX
cuadro sinoptico escuela de DO
DOCX
Teorias Administrativos o del pensamiento y comportamiento organizaiconal
PPT
B learning Proyecto de Aula virtual de Postgrado UGMA pfep
PPT
Capítulo ii power point
PPTX
Presentac. capitulo i
PPT
Capitulo ii marco teorico
PPT
Generalidades para la elaboracion del anteproyecto tg
PDF
Decanato de postgrado criterios para la elaboracion de tg
PPT
Capitulo i el problema
Analizador de datos de Arena.pdf
MODELIZACIÓN DE LA ALEATORIEDAD-UNIDAD II.ppt
Ejemplo de Aplicación Taquilla de Paso Banco de Venezuela.pptx
problemas_Simulacion.pdf
teoria_Simulacion.pdf
Unidad I conceptos-basicos de Simulacion.ppt
Unidad IV: Estudio de Simulacion
Unidad iii problema en excel de aleatoriedad
Unidad iii programas de aleatoriedad
Modelización de la aleatoriedad unidad ii
Unidad I simulacion de sistemas nuevo
cuadro sinoptico escuela de DO
Teorias Administrativos o del pensamiento y comportamiento organizaiconal
B learning Proyecto de Aula virtual de Postgrado UGMA pfep
Capítulo ii power point
Presentac. capitulo i
Capitulo ii marco teorico
Generalidades para la elaboracion del anteproyecto tg
Decanato de postgrado criterios para la elaboracion de tg
Capitulo i el problema
Publicidad

Último (20)

PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
Control de calidad en productos de frutas
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PPTX
Presentación final ingenieria de metodos
PDF
Estrategia de apoyo valentina lopez/ 10-3
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
PDF
Taller tecnológico Michelle lobo Velasquez
ccna: redes de nat ipv4 stharlling cande
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
MANUAL de recursos humanos para ODOO.pdf
ccna: redes de nat ipv4 stharlling cande
informe_fichas1y2_corregido.docx (2) (1).pdf
Control de calidad en productos de frutas
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Protocolos de seguridad y mecanismos encriptación
Mecanismos-de-Propagacion de ondas electromagneticas
Presentación final ingenieria de metodos
Estrategia de apoyo valentina lopez/ 10-3
Presentacion de Alba Curso Auditores Internos ISO 19011
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Historia Inteligencia Artificial Ana Romero.pptx
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
Estrategia de Apoyo de Daylin Castaño (5).pdf
Teoría de estadística descriptiva y aplicaciones .pdf
Taller tecnológico Michelle lobo Velasquez

Simulacion.pdf

  • 1. P u b l i c a c i o n e s d e I n g e n i e r í a d e S i s t e m a s SIMULACIÓN DE SISTEMAS DISCRETOS. Jaime Barceló Ingeniería de Sistemas c/ Edison, 4 28006 Madrid Teléfono (34-1) 411 50 11 Fax (34-1) 411 47 03 E-mail: monografias@isdefe.es P.V.P.: 1.000 Ptas. (IVA incluido) SIMULACIÓN DE SISTEMAS DISCRETOS por Jaime Barceló Otros títulos publicados: 1. Ingeniería de Sistemas. Benjamin S. Blanchard. 2. La Teoría General de Sistemas. Ángel A. Sarabia. 3. Dinámica de Sistemas. Javier Aracil. 4. Dinámica de Sistemas Aplicada. Donald R. Drew. 5. Ingeniería de Sistemas Aplicada. Isdefe. 6. CALS (Adquisición y apoyo continuado durante el ciclo de vida). Rowland G. Freeman III. 7. Ingeniería Logística. Benjamin S. Blanchard. 8. Fiabilidad. Joel A. Nachlas. 9. Mantenibilidad. Jezdimir Knezevic. 10. Mantenimiento. Jezdimir Knezevic. 11. Ingeniería de Sistemas de Software. Gonzalo León Serrano. 12 COMITÉ DE REDACCIÓN Presidente Sr. D. Martín Aleñar Ginard Teniente General (R) del Ejército de Tierra Vocales Sr. D. Eduardo Avanzini Blanco General de Brigada Ingeniero del Ejército del Aire Sr. D. Carlos Casajús Díaz Vicealmirante Ingeniero de la Armada Sr. D. Luis García Pascual Vice-Rector de Investigación y Postgrado de la UPCO Sr. D. Ricardo Torrón Durán General de División Ingeniero del Ejército de Tierra Sr. D. Alberto Sols Rodríguez-Candela Ingeniero de Sistemas. Isdefe Sra. Dña. Mª Fernanda Ruiz de Azcárate Varela Imagen Corporativa. Isdefe ILUSTRACIÓN DE PORTADA Ruedas dentadas de la máquina de sumas y restas para contabilidad de Pascal de 1645. Jaime Barceló Es catedrático del Departa- mento de Estadística e Investi- gación Operativa de la Universi- dad Politécnica de Cataluña. Ha sido profesor visitante de las Universidades de Minnesota, Montréal y Linköping, donde ha impartido cursos y seminarios sobre estas materias. Su actividad investigadora ha estado orientada durante algunos años a la optimización combina- toria y la simulación, y sus aplicaciones a los problemas de producción y transporte. Desde el año 1988 dirige un grupo de trabajo en el Departamento de Estadística e Investigación Operativa que ha participado, y participa activamente, en proyectos de I+D de la Unión Europea (DRIVE, ATT, ESPRIT, 4º Programa Marco, etc.), especializado en el desarrollo de aplicaciones de métodos de optimización y de simulación a los problemas de tráfico y transporte, que han conducido, entre otros resultados, al desarrollo y puesta a punto de programas informáticos para la construcción y análisis de modelos de simulación de tráfico que se están utilizando en algunos proyectos internacionales. Es autor de numerosos artículos publicados en re- vistas científicas internacionales y en actas de congresos, así como de capítulos de libros colec- tivos sobre Gestión de Tráfico, Modelos Dinámicos de Tráfico, Simulación y Modelización, etc...
  • 2. SIMULACIÓN DE SISTEMAS DISCRETOS 2 No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, por fotocopia, por registro o por otros métodos, sin el previo consentimiento por escrito de los titulares del Copyright. Primera Edición: Septiembre - 1996 1.250 ejemplares © Isdefe c/ Edison, 4 28006 Madrid. Diseño y fotomecánica: HB&h Dirección de Arte y Edición Infografía de portada: Salvador Vivas Impresión: Closas Orcoyen S.L. ISBN: 84-89338-12-4 Depósito legal: M- -1996 Printed in Spain - Impreso en España.
  • 3. 3 - ¿Qué gigantes?, dijo Sancho Panza. -Aquellos que allí ves, respondió su amo, de los brazos largos, que los suelen tener algunos de casi dos leguas. -Mire vuestra merced, respondió Sancho, que aquellos que allí se aparecen, no son gigantes sino molinos de viento, y lo que en ellos parecen brazos son las aspas, que, volteadas del viento, hacen andar la piedra del molino. -Bien parece, respondió Don Quijote, que no estas cursado en esto de las aventuras; ellos son gigantes, y si tienes miedo, quítate de ahí y ponte en oración en el espacio que yo voy a entrar con ellos en fiera y desigual batalla. (Cervantes, El Quijote, Capítulo VIII -Del buen suceso que el valeroso Don Quijote tuvo en la espantable y jamás imaginada aventura de los molinos de viento, con otros sucesos dignos de felice recordación).
  • 5. 5 AGRADECIMIENTOS Esta monografía tiene su origen en una petición del General Ricardo Torrón Durán, a la que se sumaron los convincentes argumentos de Alberto Sols Rodríguez-Candela. He de confesar que mi primer impulso fue negarme, escudándome en la excusa, no por excusa menos cierta, de mi sobresaturado grado de ocupación. Afortunadamente conté mentalmente hasta cien antes de negarme, y para entonces me encontré atraído por la proposición, tanto por lo que significaba en el sentido de rellenar huecos en la bibliografía técnica en lengua castellana, y contribuir de paso de forma significativa a la celebración del décimo aniversario de ISDEFE, como por el ineludible componente de reto personal que comportaba. Plasmar por escrito unos conceptos, aunque no sean originales, de una forma coherente e inteligible para los demás, comporta una tarea de reflexión y maduración personal, una pequeña aventura intelectual que siempre resulta gratificante, sobre todo si su resultado puede prestar un servicio a otros. El resultado es esta modesta monografía que el lector tiene entre sus manos. No es, ni mucho menos, una obra original, no era mi (diría nuestro) objetivo. Se trata de exponer de una manera concisa y legible unas ideas básicas en torno a la simulación de sistemas discretos, sus
  • 6. SIMULACIÓN DE SISTEMAS DISCRETOS 6 implicaciones en términos de análisis de sistemas y de implantación informática, para concluir con una sucinta panorámica de las tendencias y perspectivas de evolución en el futuro inmediato. Si el lector la encuentra útil y le reporta algo habré conseguido mi propósito, con la ayuda de las críticas y sugerencias del Comité de Redacción, aunque, como siempre, los errores y posibles desenfoques son responsabilidad exclusiva del autor. Jaime Barceló
  • 7. 7
  • 9. 9 PRÓLOGO La monografía está concebida para ser una introducción panorámica, descriptiva y didáctica, y una reflexión, sobre el papel de la simulación en el ciclo de vida del sistema, teniendo en cuenta como sus posibles planteamientos, bien como herramienta para una mejor comprensión del funcionamiento del sistema, bien como técnica para resolver problemas o para responder a preguntas sobre el sistema, pueden intervenir en cualquiera de las fases del ciclo de vida del sistema, tanto en la concepción del mismo, como en su diseño preliminar y consiguiente estudio de factibilidad, en el diseño detallado y en la fase de producción para proceder a evaluaciones y asesoramientos, o en la fase de utilización y mantenimiento para poder evaluar escenarios alternativos y encontrar repuestas a preguntas del tipo "que pasaría si". Dado que las relaciones entre sistemas y simulación han sido abordadas en otras monografías, en especial en las de dinámica de sistemas en lo que se refiere a los métodos de simulación continua, esta monografía se centrará en la simulación de los sistemas discretos, es decir sistemas cuyo estado cambia en instantes discretos en el tiempo. El tratamiento propuesto abordará la simulación de sistemas discretos desde una perspectiva doble: la del reto metodológico, que plantea la comprensión de un fenómeno o de un problema a través del proceso de construcción de un modelo de simulación por ordenador, que representa el grado de conocimiento que se tiene del sistema en
  • 10. SIMULACIÓN DE SISTEMAS DISCRETOS 10 el momento de la construcción del modelo que lo representa, y la de la técnica que puede permitir la correspondencia entre el sistema real y el modelo de simulación que lo representa, técnica que permite que el modelo esté construido a la medida del sistema simulado. En la monografía se pretende que el modelo se entienda como un instrumento de investigación sometido a revisión continua, que permite al que lo ha construido un refinamiento progresivo en su comprensión del sistema, que le conduzca a una posición adecuada para tomar decisiones sobre la solución de los problemas que el sistema plantea. Entender que la simulación de sistemas por ordenador está basada en una generalización del concepto de experimentación propio del método científico, según el cual en lugar de realizar los experimentos sobre el sistema real, se realizan sobre un modelo dinámico que lo representa, de manera que si el modelo es una representación válida del sistema entonces los resultados de la experimentación con el modelo pueden transferirse al propio sistema. En consecuencia, uno de los objetivos de la monografía es ayudar a entender como se puede utilizar la construcción de modelos de simulación para analizar fenómenos y problemas, y tomar decisiones sobre ellos, es decir evidenciar el papel de la simulación en los procesos de toma de decisiones, y en especial en los sistemas informáticos de ayuda a la toma de decisiones. Poner de manifiesto como la simulación permite aproximarse al análisis y evaluación del rendimiento de sistemas antes de que sean construidos, convirtiéndose así en una herramienta clave de diseño, en cualquiera de sus fases, o para estimar a priori el impacto de los cambios propuestos en sistema ya existentes. Como en ambos casos el estudio de simulación se realiza antes de la construcción del nuevo sistema o de la modificación del antiguo, ayudando así a eliminar o reducir el riesgo de cuellos de botella no previstos, infra o extra utilización de recursos, no satisfacción de especificaciones de diseño, etc..
  • 11. 11 Dentro de los límites de extensión la monografía pretende ilustrar como la simulación puede aplicarse a una amplia variedad de situaciones: procesos de producción (especialmente en entornos de manufactura flexible o asistida por ordenador), sistemas de transporte, logísticos, de gestión de recursos, etc. Ayudar al lector no sólo a la comprensión de la metodología de la construcción de modelos de simulación de sistemas discretos, sino también ayudarle a entender como trabajan, cuándo se debe utilizar la simulación y cuándo no, qué se puede esperar de la simulación, qué errores hay que evitar en la construcción y uso de modelos de simulación, y como la simulación puede ayudar a mejorar el rendimiento de un sistema. La monografía termina con una breve panorámica del software existente para la simulación de sistemas discretos, sus características, posibilidades y limitaciones, y un análisis de las tendencias futuras, una perspectiva más detallada puede encontrarse en [1].
  • 12. SIMULACIÓN DE SISTEMAS DISCRETOS 12
  • 13. 13 ÍNDICE GENERAL 1. LA SIMULACIÓN DE SISTEMAS 17 1.1 Sistemas y modelos 18 1.2 El proceso de construcción de modelos: modelos matemáticos 22 1.3 Simulación de sistemas continuos y simulación de sistemas discretos 51 1.4 La simulación como proceso experimental: experimentos y ordenadores 53 1.5 Modelos de simulación frente a soluciones analíticas 59 1.6 La simulación de sistemas discretos 67 2. MODELIZACIÓN DE LA ALETORIEDAD EN SISTEMAS DISCRETOS 72 2.1 Identificación de patrones de comportamiento aleatorio 73 2.2 Generación de muestras de distribuciones aleatorias: introducción a los métodos de Montecarlo 92 2.2.1. Generación de números pseudo-aleatorios uniformemente distribuidos en (0,1) 105 2.2.2. Generación de dígitos aleatorios 106 2.2.3. ¿Cuán aleatoria es la secuencia generada? 107 2.2.4. Procedimientos generales 110 3. LA SIMULACIÓN DE SISTEMAS DISCRETOS: LENGUAJES DE SIMULACIÓN DE SISTEMAS DISCRETOS 113 3.1 Metodología de la construcción de modelos de simulación de sistemas discretos 114 3.2 Características generales de los lenguajes de simulación de sistemas discretos: la «visión del mundo» de un lenguaje de simulación 119 3.3 Análisis algorítmico de las estrategias de simulación de sistemas discretos 131 3.4 Un ejemplo de lenguaje: GPSS 136 4. LOS ESTUDIOS DE SIMULACIÓN 155 4.1 Diseño de experimentos de simulación 156 4.2 Análisis de resultados 165
  • 14. SIMULACIÓN DE SISTEMAS DISCRETOS 14 5. LA CONSTRUCCIÓN DE MODELOS DE SIMULACIÓN VÁLIDOS Y CREÍBLES 179 5.1 Validación, verificación y credibilidad (I) 180 5.2 Validación de modelos de simulación 183 5.3 Verificación de modelos de simulación 186 5.4 Validación, verificación y credibilidad (II) 188 6. TENDENCIAS ACTUALES DE LA SIMULACIÓN 197 6.1 Generadores de simuladores, entornos de simulación y animación gráfica 198 6.2 Simulación visual interactiva 207 6.3 Simulación e inteligencia artificial 214 REFERENCIAS 229 BIBLIOGRAFÍA 239 GLOSARIO 243
  • 15. 15
  • 16. SIMULACIÓN DE SISTEMAS DISCRETOS 16
  • 18. SIMULACIÓN DE SISTEMAS DISCRETOS 18 1.1. Sistemas y modelos El término sistema se utiliza habitualmente con múltiples sentidos, tantos que resulta difícil dar una definición única que los abarque todos y al mismo tiempo sea lo suficientemente precisa para servir a propósitos específicos. Podemos partir de la definición de sistema como conjunto de cosas que ordenadamente relacionadas entre si contribuyen a determinado objeto. Se trata de una definición sencilla pero que pone de manifiesto los caracteres relevantes de lo que constituye el denominado enfoque sistémico: contemplación del todo y no de las partes aisladamente, acento en las relaciones entre las partes y consideración teleológica al tener en cuenta los propósitos u objetivos del sistema, especialmente válida para los sistemas creados por el hombre. Como se ha puesto de manifiesto en la introducción a esta colección de monografías [2], la visión o enfoque sistémico es una consecuencia del paso de una filosofía reduccionista a una filosofía holística, según la cual los factores determinantes en la naturaleza son totalidades, como los organismos, que son irreducibles a la suma de sus partes, y la evolución del universo es el resultado de las actividades de estas totalidades. En otras palabras, considera que un todo no puede reducirse a elementos discretos y enfatiza las relaciones funcionales u orgánicas entre las partes y el todo. En la referencia mencionada se señala el papel del biólogo Ludwig von Bertalanffy en la generalización de las aplicaciones de estas ideas a conjuntos organizados de cualquier naturaleza, lo que denominamos sistemas.
  • 19. 19 La simulación de sistemas La orientación sistémica a la resolución de problemas reconoce que el comportamiento de cualquier parte tiene algún efecto sobre el comportamiento del sistema como un todo, en su desarrollo a partir de los años veinte ha ido solapando e interaccionando múltiples disciplinas dando lugar a lo que hoy en día se conoce como Ingeniería de Sistemas, técnica para utilizar conocimientos procedentes de diferentes ramas de la ciencia y la ingeniería para introducir innovaciones tecnológicas en las etapas de concepción, planificación, desarrollo y operación de un sistema, o lo que es lo mismo, el ciclo de vida de un sistema. Una de las características principales de las técnicas de la Ingeniería de Sistemas es su aplicación en situaciones en las que los sistemas son: · Grandes y complejos. · En ellos interviene el hombre. · El cambio en una parte puede afectar a muchas otras y al todo. Un ejemplo, conceptualmente sencillo, de lo que vamos a considerar de ahora en adelante como sistemas, tomado del texto casi iniciático de Gordon [3], y próximo a la vida real, es el siguiente. Consideremos el caso de una factoría que produce y ensambla diferentes piezas para fabricar un producto final (Figura 1). En una primera aproximación a una descripción del sistema podemos considerar que sus dos componentes principales son el departamento de fabricación que fabrica las piezas y el de ensamblaje que produce los productos finales. Hay además un departamento de compras mantiene el suministro de materias primas y uno de expedición distribuye los productos acabados. El departamento de control de producción recibe los pedidos y asigna las órdenes de trabajo a los otros departamentos. Analizando el ejemplo de sistema propuesto vemos que está constituido por varios objetos, cada uno de los cuales posee algunas propiedades interesantes. Detectamos también la existencia de interacciones entre los objetos que constituyen el sistema que provocan cambios en el mismo. Denominaremos entidades a los objetos de interés que constituyen el sistema, atributos a las propiedades que caracterizan
  • 20. SIMULACIÓN DE SISTEMAS DISCRETOS 20 a las entidades componentes del sistema, y estado del sistema a la caracterización de las entidades del sistema y sus atributos en un instante dado. Nos va a interesar el carácter dinámico de los sistemas, es decir sus cambios de estado a lo largo del tiempo dentro de un horizonte dado, y en consecuencia nos va a interesar identificar qué es lo que produce cambios en el estado del sistema. Estudiaremos la evolución del sistema a partir del seguimiento de sus cambios de estado. En la factoría las entidades son los departamentos, los pedidos, las piezas y los productos, cuyos atributos son las cantidades de cada pedido, el tipo de pieza, el número de máquinas de un tipo dado en un departamento, etc.. Los procesos de manufactura en cada departamento son, en este caso, la causa de los cambios de estado. Acabamos de declarar que nuestro interés se va a centrar en estudiar la evolución del sistema a partir del seguimiento de sus cambios de estado. La forma primaria de realizar este estudio seria,
  • 21. 21 La simulación de sistemas evidentemente, la experimentación con el propio sistema. Esto no siempre es posible. En unos casos por imposibilidad física o económica manifiesta, basta pensar en lo que implicaría el experimentar con una fábrica. En otros, si nos atenemos a lo que hemos denominado ciclo de vida del sistema, porque el sistema existe únicamente en forma hipotética y precisamente lo que nos interesa es saber como se comportará antes de que sea construido. Como consecuencia lo que haremos será estudiar el comportamiento del sistema a través de una representación o modelo del mismo [1]. Llegados a este punto me gustaría subrayar el alto grado de coincidencia entre las concepciones de la Ingeniería de Sistemas y la Investigación Operativa, tanto en sus orígenes, como en su metodología, o su desarrollo histórico, coincidencia que queda de manifiesto en algunas de las definiciones más comúnmente aceptadas de la Investigación Operativa.Así, por ejemplo, la definición que aparece en el «Journal of the Operations Research Society», revista de la Sociedad Inglesa de Investigación Operativa, dice textualmente1 «La Investigación Operativa es la aplicación de los métodos de la ciencia a la resolución de los problemas complejos que aparecen en la dirección de grandes sistemas en los que intervienen hombres, máquinas, materiales y dinero, en la industria, los negocios, el gobierno o la defensa. El planteamiento distintivo es la construcción de un modelo del sistema que incorpore medidas de factores tales como el azar y el riesgo, con los que predecir y comparar los resultados de decisiones alternativas, estrategias o controles. El propósito es ayudar a la dirección a determinar científicamente su política y acciones», y la definición más ampliamente difundida, debida a Ackoff y Sasieni, «La (1) «Operational Research is the application of the methods of science to complex problems arising in the direction of large systems of men, machines, materials and money in industry, business, government and defense. The distinctive approach is to build a model of the system incorporating measurement of factors such as chance and risk, with to predict and compare the outcomes of alternative decisions, strategies or controls. The purpose is to help management determine its policy and actions scientifically».
  • 22. SIMULACIÓN DE SISTEMAS DISCRETOS 22 Investigación Operativa es la aplicación del método científico mediante equipos interprofesionales a los problemas de gobierno de sistemas organizados (hombre-máquina) para proporcionar soluciones que sirvan lo mejor posible a la organización considerada como un todo». El análisis de estas definiciones nos permite destacar como características que identifican lo que denominamos Investigación Operativa las siguientes: 1. Aplicación del método científico a los problemas que se presentan en el gobierno de sistemas complejos en los que intervienen hombres y máquinas. 2. Enfoque global (coincidente con lo que hemos denominado planteamiento sistémico). 3. Construcción de modelos de los sistemas (representación de los sistemas por medio de modelos). 4. Optimización: búsqueda de las mejores soluciones. 5. Ayuda a los responsables de la gestión del sistema a la toma de decisiones. Es decir, enfoque global, metodología científica, representación de los sistemas por medio de modelos, etc., precisamente lo que hemos utilizado para caracterizar el enfoque sistémico. Realmente en muchos casos las fronteras entre lo que podemos considerar propiamente Ingeniería de Sistemas, y lo que consideramos Investigación Operativa son solo ideológicas. 1.2. El proceso de construcción de modelos: modelos matemáticos Elanálisisdelsistemaatravésdeunmodeloimplicaquelarepresen- tación del sistema que constituye el modelo ha de ser una representación manipulable numéricamente. El ejercicio de construcción del modelo del sistema comienza por la construcción de un modelo conceptual del siste- ma, representación equivalente lógica aproximada del sistema real que,
  • 23. 23 La simulación de sistemas como tal, constituye una abstracción simplificada del mismo, que a continuación se traduce en un modelo apto para su ejecución en un ordenador.El proceso de modelización o construcción del modelo implica: • Identificación de las entidades principales del sistema y de sus atributos característicos. • Identificación y representación de las reglas que gobiernan el sistema que se quiere simular. • Captación de la naturaleza de las interacciones lógicas del sistema que se modeliza. • Verificación de que las reglas incorporadas al modelo son una representación válida de las del sistema que se modeliza. • Representación del comportamiento aleatorio. Una precaución importante a tener en cuenta cuando se construye un modelo es que ningún modelo es mejor que las hipótesis que encierra.Traducir el modelo a un modelo específico para ordenador consiste en representar el modelo conceptual mediante un lenguaje apto para su ejecución en un ordenador. Este proceso se simplifica cuando la representación se hace utilizando un lenguaje especializado orientado a problemas específicos. Las etapas del proceso de construcción del modelo se sintetizan en la Figura 2 [4] . Siguiendo el ejemplo introductorio de la factoría, ilustraremos el proceso de modelización con un ejemplo que intenta reproducir, dentro de su simplicidad, los procesos productivos del departamento de fabricación, componente de suficiente entidad como para ser considerada un sistema en sí misma. Supondremos que el departamento de fabricación consta de un taller en el que hay diferentes conjuntos de máquinas del mismo tipo, que realizan distintas operaciones sobre las piezas que se fabrican, de manera que las mismas materias primas
  • 24. SIMULACIÓN DE SISTEMAS DISCRETOS 24 sometidas a diferentes procesos en dichas máquinas pueden dar lugar a diferentes productos. Lo que caracteriza entonces al proceso de producción de cada uno de los productos es una secuencia de operaciones, según un orden definido por el programa de producción, en cada una de las máquinas, con una duración determinada de cada operación a la que es sometida cada pieza en cada tipo de máquina. En nuestro ejemplo vamos a suponer que el taller de producción tiene 6 grupos de máquinas diferentes, cada uno de los cuales está constituido por un cierto número de máquinas de una clase que suponemos idénticas entre sí. Así, por ejemplo el grupo número uno consiste en 14 unidades de fundición y moldeo, el grupo 2, en 5 tornos, etc. La Tabla 1 resume la información sobre los grupos de máquinas y su constitución. Al considerar idénticas las máquinas de cada grupo no necesitamos distinguirlas entre sí, y al describir el proceso a que es
  • 25. 25 La simulación de sistemas sometida cada pieza lo único que necesitamos es saber si hay una máquina disponible en el grupo que le corresponde según la secuencia particular de operaciones para ese tipo de pieza, o si tiene que esperar a que alguna quede libre porque en ese momento están todas ocupadas. La descripción de cada uno de los grupos de máquinas, sus características y el tipo de operaciones que pueden realizar constituye, en este caso el ejercicio de identificación de las entidades componentes del sistema (cada uno de los grupos), y de los atributos que las caracterizan (tipos de máquinas, número de máquinas en cada grupo, operaciones que pueden realizar). Vamos a suponer además que el plan de producción del taller de nuestro ejemplo contempla la fabricación de tres tipos de productos, que denominaremos tipo-1, tipo-2 y tipo-3 respectivamente. La fabricación de cada unidad de un tipo de producto requiere que las operaciones se realicen en diferentes clases de máquinas según secuencias especificadas que difieren de un tipo de producto a otro.
  • 26. SIMULACIÓN DE SISTEMAS DISCRETOS 26 El número total y clase de máquinas que debe utilizar la fabricación de cada tipo de producto, las correspondientes secuencias y los tiempos de trabajo previstos, se muestran en la Tabla 2, que proporciona datos adicionales en nuestro ejercicio de análisis del sistema, identificando las otras entidades (los tipos de producto fabricado), y las relaciones entre entidades especificadas a partir de las operaciones que requiere la fabricación de cada tipo de producto, el orden en que se han de ejecutar y los tiempos medios que requiere cada operación en cada tipo de máquina. Los tiempos de operación indicados en la tabla son tiempos medios, y por simplicidad vamos a considerar que están distribuidos exponencialmente. Supondremos que los trabajos llegan al taller según un flujo descriptible por medio de una distribución de Poisson cuya tasa media es de 50 trabajos por día de 8 horas. Un 24% de los trabajos que llegan corresponden a la fabricación de productos tipo-1, un 44% son de tipo-2 y el resto de tipo-3. Cuando un trabajo que llega es de un
  • 27. 27 La simulación de sistemas tipo dado, este es independiente, en términos probabilísticos, del tipo de producto del trabajo que le precedió. Supondremos además que la disciplina de servicio dentro de cada grupo de máquinas es FIFO, es decir primer trabajo llegado es el primero en ser servido independientemente de su tipo. Esta colección de suposiciones constituyen en este caso las hipótesis adicionales sobre el comportamiento del sistema que serán el instrumento del proceso de modelización. Como objetivos del estudio del sistema supondremos que nos interesa estudiar el comportamiento del taller, en estas condiciones de operación para la clase de demanda descrita, durante un período de 5 semanas, de 5 días laborables cada una, con jornadas de 8 horas por día. Nos interesa en particular analizar la distribución de los trabajos que quedan incompletos al final de cada semana, el número medio de trabajos de cada tipo que se producen por semana, la capacidad media total de producción del taller para este programa de producción, y por lo tanto la capacidad para cumplir determinados planes de producción. El nivel medio de ocupación de las máquinas de cada grupo para identificar cuellos de botella en el proceso productivo, etc. De acuerdo con la metodología propuesta, el primer paso es la construcción de un modelo conceptual. En este caso, a partir de la información recogida, un modelo conceptual de este sistema puede ser un modelo descriptivo del proceso productivo como el que reproduce la Figura 3. En ella el proceso se modeliza como una red de colas. Es decir un grafo o red cuyos nodos corresponden a cada uno de los grupos de máquinas, y cuyos arcos unen los nodos entre si de acuerdo con los itinerarios entre los grupos de máquinas, que corresponden a las etapas u operaciones de cada tipo de producto en cada grupo de máquinas. Considerado individualmente cada grupo de máquinas corresponde en esta modelización a un sistema de colas, es decir el tipo de sistema para las situaciones que se producen cuando llegan
  • 28. SIMULACIÓN DE SISTEMAS DISCRETOS 28
  • 29. 29 La simulación de sistemas personas, equipos o materiales a algún tipo de unidad o dispositivo de servicio demandando la recepción del servicio que dicha unidad puede prestar: ejecución de una operación, una reparación etc., y tienen que esperar a ser atendidos cuando el dispositivo que dispensa el servicio, o sirviente, está ocupado. Los sistemas de colas se encuentran muy generalizados en una amplia variedad de contextos. Así, por ejemplo, en el análisis de procesos de producción, como el que nos ocupa en ejemplo, interesan especialmente los sistemas de colas que se originan como consecuencia de los procesos industriales, como por ejemplo, los sistemas de «manejo de materiales», en los que unidades manipuladoras de materiales (carretillas elevadoras, puentes grúa, cintas transportadoras, transervadores, etc.) mueven cargas de un punto a otro de la factoría; sistemas de producción en los que las máquinas (máquinas herramienta, robots, etc.) realizan trabajos sobre materiales o piezas; sistemas de mantenimiento, en los que las brigadas de mantenimiento reparan máquinas o proceden a las operaciones de mantenimiento preventivo; puntos de control de calidad o inspección, donde los inspectores de control inspeccionan los artículos, etc. La Figura 4 describe gráficamente los elementos principales de la estructura de los sistemas de colas, es decir las entidades que los constituyen y sus atributos correspondientes. I. Población fuente Es el origen de las entidades que requieren el servicio, máquinas que han de ser mantenidas o reparadas, piezas sobre las que se han de ejecutar operaciones, cargas que han de ser transportadas, etc.. La característica básica de la población fuente es su dimensión, finita o infinita. En la práctica el número de máquinas que han de ser atendidas por un servicio de mantenimiento seria un ejemplo de
  • 30. SIMULACIÓN DE SISTEMAS DISCRETOS 30 población finita, mientras que las piezas que llegan a una máquina para ser sometidas a una operación, aunque en si es un número finito, su tamaño puede ser tan grande en relación con la capacidad de servicio, que sin introducir un error apreciable puede considerarse a efectos de modelización como una población infinita. II. El proceso de llegadas Se refiere a la formalización de la descripción de cómo tienen lugar las llegadas al sistema de colas de las unidades que requieren servicio, es decir la formalización de las reglas que rigen la generación de la necesidad de recibir un servicio. Los procesos de llegadas pueden ser deterministas o aleatorios. Un proceso de llegadas determinista es el que está sometido a unas reglas prefijadas, como por ejemplo un calendario de mantenimiento preventivo, que especifican en que momento preciso se producirá el acontecimiento de requerimiento del servicio.
  • 31. 31 La simulación de sistemas En general los procesos de llegadas serán aleatorios, es decir que nuestro conocimiento del proceso nos permite, como máximo, establecer cuál es la probabilidad de que el suceso se produzca en un momento dado. Así, por ejemplo la avería de una máquina no se puede predecir conexactitud,loúnicoquesepuedeestimar eslavidamediadelamáquina y la ley de distribución de probabilidad de los períodos de tiempo entre averías de tal media. Para la descripción formal de los procesos de llegada se pueden adoptar dos puntos de vista. Podemos observar los intervalos de tiempo entre llegadas consecutivas y ajustar una distribución de probabilidad que los describa, de manera que el intervalo de tiempo, aleatorio, entre una llegada al sistema y la inmediatamente posterior, pueda estimarse por muestreo de la distribución de probabilidad que los describe. Otra posibilidad es especificar un intervalo de tiempo de longitud dada T, y determinar la distribución de probabilidad del número de llegadas que pueden ocurrir durante dicho intervalo de tiempo. La Figura 5 ilustra gráficamente los dos procedimientos Un ejemplo típico de modelización de llegadas aleatorias es el de los procesos de Poisson. Las llegadas de los clientes a la unidad de servicio pueden modelizarse mediante una distribución de Poisson cuando: 1) El número de llegadas que ocurren en un intervalo de tiempo T es independiente de las que ocurren en cualquier otro intervalo de tiempo disjunto. 2) La probabilidad de que se produzca una sola llegada en un intervalo de tiempo muy corto, es proporcional a la duración del intervalo de tiempo, y no depende del número de llegadas fuera de este intervalo de tiempo. 3) La probabilidad de que ocurra más de una llegada en dicho intervalo de tiempo corto es insignificante.
  • 32. SIMULACIÓN DE SISTEMAS DISCRETOS 32 La distribución de Poisson es una distribución discreta que puede utilizarse en la modelización de procesos de llegadas en las que cada llegada es independiente de las restantes y tiene la misma probabilidad de producirse en cada instante. Se puede utilizar en la segunda clase de aproximación que mencionábamos anteriormente, cuando estamos interesados en el número de llegadas que se producen durante un intervalo de tiempo T. La probabilidad de que se produzcan n llegadas durante el intervalo de tiempo T según un proceso Poissoniano viene dada por: ( ) ( ) P n T e n T n T = - l l ! (1.1) siendo l la tasa media de llegadas por unidad de tiempo. La experiencia indica que muchos procesos de llegadas son razonablemente representados por procesos Poissonianos.
  • 33. 33 La simulación de sistemas Hay una importante relación entre la distribución de Poisson y la exponencial, descrita por la función de probabilidad: ( ) f t e t = - l l (1.2) Si las llegadas de los usuarios a un sistema ocurren de acuerdo con una distribución de Poisson, entonces la distribución de probabilidad de los intervalos de tiempo entre llegadas consecutivas es exponencial, lo que proporcionaunarepresentacióndelprocesoaleatoriodellegadasdeacuerdo conelprimerpuntodevistaexpuestoanteriormente. En este caso el tiempo medio entre dos llegadas consecutivas es de 1/l unidades de tiempo. III. Características físicas de las colas Cuando la unidad que requiere el servicio llega al sistema puede ocu- rrir que la unidad de servicio se encuentre ocupada atendiendo a un reque- rimiento anterior, en cuyo caso la unidad recién llegada tendrá que esperar a que la unidad de servicio quede libre para pasar a ocuparla. La espera se realizará físicamente en lo que denominamos cola o fila de espera. En la descripción de la cola para proceder a su modelización una primera característica a tener en cuenta es la longitud de la cola. Las dos situaciones relevantes que hay que distinguir son las que corresponden a las de colas de longitud infinita y finita respectivamente. En el primer caso se supone que no hay ninguna restricción práctica o teórica que limite la longitud de la cola, es decir el número de unidades a la espera de recibir servicio. Un ejemplo de tal situación es la representación como modelo de colas del puesto de peaje de una autopista, en el que la población fuente, constituida por todos los vehículos que circulan por la autopista, puede considerarse prácticamente infinita, y las longitudes de las colas también, por no tener ninguna limitación a priori. Sin embargo en otras situaciones las características físicas del sistema limitan el número de unidades que pueden permanecer a la espera
  • 34. SIMULACIÓN DE SISTEMAS DISCRETOS 34 de recibir servicio, es, por ejemplo, el caso de los almacenes intermedios entre máquinas que realizan operaciones sobre piezas. En el caso de colas de longitud finita, cuando estas han alcanzado su límite ha de decidirse el tratamiento a dar a las unidades que por ello no pueden entrar en el sistema. Otra característica descriptiva del sistema de colas es si la cola es única o múltiple, y las relaciones entre las colas y las unidades de servicio puesto que caben varias posibilidades: cola y unidad de servicio únicos, varia colas y una sola unidad de servicio, una cola y varias unidades de servicio, etc. IV. Procedimiento de selección (política de gestión) La cuarta componente estructural de un sistema de colas, según la descripción presentada en la Figura 4, es el sistema de selección, o política de gestión del sistema de colas. Por tal entendemos el criterio seguido para elegir la siguiente unidad que va a recibir servicio cuando la unidad de servicio queda libre al terminar el servicio de la unidad que estaba siendo atendida. La política de gestión queda definida mediante la especificación de la disciplina de la cola, es decir, de la regla o reglas que determinan el ordenporelquesorservidaslasunidadesquerequierenservicio.Ejemplos de disciplinas de servicio son: «el primero que llega es el primero que es servido», (FIFO: first-in-first-out), «el último que llega es el primero en ser servido», (LIFO: last-in-first-out), por prioridades predefinidas, por tiempos de servicio mayores, por mayor tiempo de espera, etc. V. Unidades de servicio (servidores) Es una de las componentes estructurales más importantes, su especificación requiere la definición de la estructura física de la unidad
  • 35. 35 La simulación de sistemas de servicio: estación de servicio única (servicio único monofase), estaciones de servicio en tandem (servicio multifase, el servicio consta de una secuencia de operaciones), múltiples estaciones monofásicas en paralelo, múltiples estaciones de servicio multifase en paralelo, sistemas mixtos, etc.. La especificación de la estructura física debe completarse mediante la descripción de la ley de distribución de probabilidad que rige la duración de los procesos de servicio. Un caso típico de distribución de probabilidad de tiempos de servicio es la exponencial, según la cual la probabilidad de que la duración de un servicio sea de t unidades de tiempo es: ( ) f e t m mt = - (1.3) A partir de la especificación de las componentes del sistema de colas los parámetros que describen su comportamiento y prestaciones son: l = tasa media de llegadas por unidad de tiempo. m = tasa media de servicio (número medio de servicios completados por unidad de tiempo). r = factor de utilización de la unidad de servicio. N = número de unidades en el sistema. Pn = probabilidad de que cuando una unidad llega al sistema para recibir servicio haya exactamente n unidades en el sistema. L = número medio de unidades en el sistema. Lq = número medio de unidades en la cola a la espera de recibir servicio. W = tiempo medio de estancia en el sistema para cada unidad (tiempo de espera + tiempo de servicio). Wq = tiempo medio de espera en la cola (desde que llega hasta que empieza a ser servido). Parámetros cuyos valores fundamentarán los posibles procesos de decisión de sistemas modelizados mediante colas, como por
  • 36. SIMULACIÓN DE SISTEMAS DISCRETOS 36 ejemplo, evaluar los costes o las pérdidas causados por tiempos de desocupación de máquinas, como medida de la ineficiencia del proceso, tiempos totales de producción, identificación y cuantificación de cuellos de botella, etc. VI. Nomenclatura de los sistemas de colas La notación que se utiliza para designar los diferentes tipos de sistemas de colas, de acuerdo con las componentes que hemos descrito, consisten en una serie de campos A/B/C/D/..., cada uno de los cuales especifica una de las componentes de acuerdo con la notación siguiente: los campos A y B describen las distribuciones de probabilidad de los tiempos entre llegadas consecutivas y de servicio respectivamente, el valor de C representa el número de servidores monofase idénticos, en paralelo, en el subsistema de servicio, el valor de D la longitud de la cola, cuando es finita, (si se omite, se asume que es infinita por defecto), etc. La notación para identificar a las diferentes distribuciones de probabilidad es la siguiente: M: Distribución exponencial. D: Determinista (tiempos entre llegadas, o de servicio, constantes). Ek : Distribución de Erlang de k etapas. Hk : Distribución hiperexponencial de k etapas. G: Distribución general (Normal, Weibull, etc.). GI: Distribución general de llegadas. De acuerdo con esta notación M/M/1 representa una cola con un único sirviente, llegadas según una distribución de Poisson (y por lo tanto tiempos entre llegadas distribuidos exponen- cialmente), y tiempos de servicio distribuidos exponencialmente. M/M/m representa una cola de llegadas poissonianas, servicios
  • 37. 37 La simulación de sistemas exponenciales idénticamente distribuidos, y m sirvientes en paralelo. M/G/1, seria una cola de llegadas poissonianas, servicio según una distribución de probabilidad de carácter general, y un único sirviente. Volviendo a nuestro ejemplo, el taller es modelizado como un sistema de colas al que los clientes llegan según una corriente poissoniana, pero no son homogéneos sino de tres tipos distintos cuyas proporciones corresponden a los tipos de producto. El cliente (tipo de producto) es identificado y según la clase a la que pertenece se le asigna una ruta dentro de la red, ruta que corresponde a la secuencia de operaciones del proceso productivo del tipo de producto en cuestión. Cada nodo de la red corresponde a un grupo de máquinas, modelizado como una cola con tantos sirvientes idénticos como máquinas tiene el grupo. Con las hipótesis propuestas (tiempos de operación en las máquinas exponencialmente distribuidos) cada nodo de la red corresponde a una cola M/M/n. La traducción del modelo conceptual al modelo de ordenador suele comportar dos pasos, en el primero se formaliza el modelo y en el segundo se programa el modelo en un lenguaje apto para su ejecución en el ordenador. En lo que respecta a la formalización del modelo, tradicionalmente se han utilizado muchos tipos de modelos en el análisis de sistemas, clasificados de diferentes modos. Para los propósitos que nos interesan en esta descripción vamos a considerar únicamente los modelos matemáticos de los sistemas, es decir modelos en los que la representación formal del sistema que entendemos por modelo se hace en términos del formalismo de las matemáticas, los modelos matemáticos pueden ser a su vez estáticos o dinámicos. En el caso de los modelos matemáticos hemos de hacer referencia a la técnica utilizada para resolver el modelo, según la cual distinguiremos entre métodos analíticos y
  • 38. SIMULACIÓN DE SISTEMAS DISCRETOS 38 numéricos. La simulación de sistemas es una técnica numérica que utiliza modelos matemáticos dinámicos. En un modelo matemático las entidades de un sistema y sus atributos se representan mediante variables matemáticas, clasificadas en variables de control y variables no controlables, según que los valores que puedan tomar puedan ser el resultado de una decisión o vengan determinados por las características del propio sistema. Las actividades que cambian el estado del sistema se describen por medio de funciones matemáticas que interrelacionan las variables. Los objetivos del sistema se representan mediante una función de utilidad, o función objetivo, que evalúa el rendimiento del sistema como una función de los dos tipos de variables controlables y no controlables. La forma general de un modelo matemático propuesta por Ackoff [5] es: U = f(X, Y) (1.4) sometida a: X Î W(Y) (1.5) donde U es la función de utilidad, dependiente de las variables de control X = (X1 , X2 , ...., Xn ), y de la no controlables Y = (Y1 , Y2 , ....., Ym ), donde las variables de control pueden tomar valores en el dominio de definición W(Y), que depende de las variables no controlables. Puesto que en la mayor parte de los casos el objetivo que se persigue es el de determinar cuáles son las mejores decisiones, o en otras palabras, que valores de las variables de decisión optimizan la función de utilidad, y dado que como hemos dicho en los modelos matemáticos las relaciones entre las variables son funciones matemáticas, la forma genérica que adoptaremos para los modelos
  • 39. 39 matemáticos es: [OPT]U = f (X, Y) (1.6) sometida a: Rk (X, Y) (£, =, ³) bK (1.7) k = 1, 2, ..... K donde Rk (X, Y) es la k-ésima ecuación o inecuación de condición que traduce las relaciones funcionales entre las variables. Un modelo matemático de tipo dinámico permite que los cambios en los atributos del sistema sean expresados como una función del tiempo, bien mediante una solución analítica o por medio de una computación numérica, según sea la complejidad del modelo. Supongamos, por ejemplo, el sistema correspondiente a la suspensión de una rueda de automóvil cuando se supone que la carrocería permanece inmóvil en la dirección vertical. El sistema puede ser representado como el caso de una masa M, sometida a una fuerza F(t), que varia con el tiempo, y ligada a un muelle cuya fuerza es proporcional a su extensión o contracción, y al efecto de un absorbente de los impactos que ejerce una fuerza de amortiguación proporcional a la velocidad de la masa. El movimiento del sistema puede describirse por medio de la siguiente ecuación diferencial: ( ) Mx Dx Kx KF t && & + + = (1.8) donde x es la distancia que se ha desplazado, M es la masa, K es la constante elástica del muelle, y D es el factor de amortiguación de los impactos. Las componentes del sistema son en este caso la rueda, el muelle y el sistema amortiguador, y las hipótesis de modelización son las de la dinámica de un cuerpo sometido a la acción de fuerzas elásticas, que son las que conducen a la ecuación diferencial que configura el modelo. Esta ecuación es un ejemplo de modelo matemático dinámico; una ecuación que en este caso puede ser resuelta analíticamente. La simulación de sistemas
  • 40. SIMULACIÓN DE SISTEMAS DISCRETOS 40 En otros casos la naturaleza de las ecuaciones que constituyen el modelo continuo hace aconsejable recurrir a procedimientos numéricos para su integración. Un ejemplo interesante de esta situación lo constituyen los modelos utilizados para estudiar la dinámica de poblaciones. Un caso típico es el de la dinámica de la competición entre dos poblaciones una pasiva, que sirve de presa, y otra activa, depredadora de la anterior. Modelos de este tipo fueron introducidos por Volterra [6] en 1926 como modelo biológico para estudiar la evolución de la población piscícola en el Adriático. Supongamos un escenario que consiste en dos poblaciones que interaccionan la de los depredadores y la de las presas. Denotemos por x(t) e y(t), respectivamente, el numero de individuos de cada población, presas y depredadores, en el instante t. Supongamos que, en ausencia de los depredadores las condiciones de vida del escenario permiten que la población de las presas se incremente según la tasa rx(t), para algún r positivo, donde r puede interpretarse, por ejemplo, como la tasa natural de nacimientos menos la de muertes naturales. Debido a la interacción entre presas y depredadores es razonable suponer que la tasa de muertes de la población de presas es proporcional al producto de las dimensiones de ambas poblaciones, x(t) y(t). Por lo cual la tasa total de cambio del número de individuos de la población de presas, dx/dt, viene dada por: ( ) ( ) ( ) dx dt rx t ax t y t = - (1.9) donde a es una constante de proporcionalidad positiva. Puesto que los depredadores dependen a su vez de las presas para perpetuar su existencia, la tasa de variación del número de individuos de la población de depredadores es -sy(t), para s positiva, en un escenario en el que no haya presas, mientras que en el caso contrario la interacción entre ambas poblaciones hará que la población de depredadores se incremente según una tasa que también será proporcional a x(t)y(t). En consecuencia la variación de la población de depredadores se podrá modelizar como:
  • 41. 41 ( ) ( ) ( ) dy dt sy t bx t y t = - + (1.10) donde b es una constante de proporcionalidad positiva. Este sistema de ecuaciones diferenciales modeliza el comportamiento de la población. Dadas unas condiciones iniciales x(0) > 0 e y(0) > 0, las soluciones del modelo tienen la interesante propiedad de que x(t) > 0 e y(t) > 0 para todo t ³ 0. Modelos similares habían sido utilizados ya en 1920 por Lotka [7], para modelizar ciertos tipos de reacciones químicas, por esta razón este tipo de modelos se conocen con el nombre de modelos de Lotka-Volterra. La Figura 6 presenta el resultado de la integración del sistema de ecuaciones diferenciales de Lotka-Volterra para los valores de los parámetros r = 0,001, a = 2 x 10-6 , b = 10-6 , y s = 0,01. La curva superior representa la evolución de la población de presas en el intervalo de tiempo (0,4000), y la inferior la evolución de la población La simulación de sistemas
  • 42. SIMULACIÓN DE SISTEMAS DISCRETOS 42 de depredadores en el mismo intervalo de tiempo. La Figura 7 presenta la evolución conjunta en el intervalo de tiempo (0,6000). Los resultados de la integración del modelo dinámico presa- depredador de Lotka-Volterra, representados en las figuras anteriores, han sido obtenido mediante el software numérico MATLAB [8] . Modelos dinámicos del tipo de los anteriores constituyen en estos momentos una de las áreas de investigación de más interés, no sólo por la proliferación de modelos de sistemas dinámicos que han propiciado los avances tecnológicos, sino también por que se sitúan en el corazón de la teoría del caos [9, 10] . En el caso del taller de manufactura modelizado como una red de colas podemos construir modelos analíticos para los modelos de colas que representan cada uno de los grupos de máquinas. Para una
  • 43. 43 cola M/M/s, si el tiempo medio entre llegadas consecutivas es 1/l, y el tiempo medio de servicio es 1/m, y el factor de utilización, cuando hay s unidades de servicio operando en idénticas condiciones es: r l m = s (1.11) una relación fundamental es la que liga la longitud media de la cola, número medio de unidades en la cola, con el tiempo medio de espera en ella: L W q = l (1.12) análogamente: L W y W Wq = = + l m 1 (1.13) Son las relaciones entre el número total de clientes en el sistema (los que esperan más los que están siendo atendidos), L, y el tiempo total de permanencia en el sistema (espera más servicio), W; y entre la permanencia en el sistema W, y la espera en la cola Wq . Estas relaciones, correspondientes al Teorema de Little, se puede comprobar que se verifican para todo sistema de colas, por lo que únicamente necesitamos determinar dos de los parámetros, L y Lq , por ejemplo, para poder determinar los restantes. El cálculo de cualquiera de dichos parámetros puede realizarse mediante las ecuaciones del modelo teórico correspondiente. Por ejemplo para una cola M/M/1 el modelo teórico proporciona los valores: (1.14) ( ) ( ) ( ) P W L n n q q = - = - = - 1 1 1 2 r r r r m r r La simulación de sistemas
  • 44. SIMULACIÓN DE SISTEMAS DISCRETOS 44 y para una cola M/M/s: ( ) ( ) ( ) ( ) ( ) P s k s s P s k P s P P k s L P s s W L k k s s k k k k s s q s q q 0 1 1 1 0 0 2 1 1 1 12 1 = + + - æ è ç ö ø ÷ é ë ê ê ù û ú ú = = = > = - = = - - - å r r r r r r r r l ! ! ! , , , ! , k K (1.15) Estas son las soluciones analíticas para un modelo teórico que puede ser resuelto exactamente [11,12], y corresponden a la situación para el estado estacionario, es decir cuando la evolución del sistema ha alcanzado el equilibrio. Las hipótesis simplificadoras que hemos introducido (llegadas poissonianas, servicios exponenciales) permiten además construir un modelo analítico para esta red de colas [11,12] . Este tipo de modelización analítica se puede conservar en este caso incluso complicando algunas de las hipótesis probabilísticas, como por ejemplo las de los tiempos de servicio, sustituyendo las distribuciones exponenciales por otras, cuyo requisito, de acuerdo con el Teorema de Jackson, es que tengan Transformada de Laplace racional, aun cuando, como en el caso de las colas simples, la obtención de la solución analítica se va haciendo cada vez más compleja, llegamos pues, a una situación que, aunque modelizable analíticamente, llega rápidamente a los límites de lo que los modelos analíticos nos permiten, bastaría simplemente con suponer que los diferentes tipos de trabajo tienen distintas prioridades para tener que sustituir la política de gestión FIFO en cada nodo por una política según prioridades y llegar a un modelo casi intratable. Cerraremos esta exposición sobre modelos dinámicos con el ejemplo de los Modelos Macroscópicos de Simulación de Tráfico. La
  • 45. 45 perspectiva de la modelización macroscópica de los flujos de tráfico es la de adoptar un símil hidráulico, es decir visualizar el flujo de vehículos como flujo o corriente de un fluido continuo, es una asociación natural bastante intuitiva, que de hecho ya se adopta cuando se tiende a describir el tráfico en términos de volúmenes (o flujos), concentraciones (o densidades) y velocidades. En la analogía como flujo de un fluido, el tráfico es tratado como un fluido unidimensional comprensible, lo que conduce a dos hipótesis básicas de modelización: a. El flujo de tráfico se conserva. b. Hay una relación en términos de una función univaluada entre la velocidad y la densidad, o entre el flujo y la densidad. En el modelo matemático la primera hipótesis se traduce en la denominada ecuación de conservación o de continuidad, que implica que si el flujo disminuye con la distancia la densidad se incrementa con el tiempo. En términos prácticos de ingeniería de tráfico la ecuación de conservación implica que en cualquier sistema de tráfico el flujo de entrada es igual al de salida más el almacenado en el sistema. Está hipótesis se acepta, en general, sin mayor controversia, como un supuesto obvio. No ocurre lo mismo, sin embargo, con la segunda hipótesis, que ha levantado y sigue levantando una gran controversia, en parte porque no siempre se entiende y porque las medidas son contradictorias. Concretamente si la velocidad (u) es una función de la densidad como consecuencia los conductores ajustan su velocidad de acuerdo con la densidad, es decir cuando la densidad aumenta la velocidad disminuye. Esto es intuitivamente correcto pero teóricamente puede conducir a velocidades o densidades negativas. Por otra parte, se ha observado que para el mismo valor de la densidad pueden medirse muchos valores de la velocidad. Todo ello conduce a la necesidad de matizar esta hipótesis. La matización consiste en La simulación de sistemas
  • 46. SIMULACIÓN DE SISTEMAS DISCRETOS 46 considerar que la velocidad (o el flujo) es una función de la densidad únicamente en el equilibrio, y puesto que es muy raro poder observar el equilibrio es difícil obtener una relación velocidad-densidad satisfactoria, lo que lleva en la práctica a proponer una relación teórica. Esta dificultad ha llevado a algunos investigadores a relativizar la importancia de los modelos continuos o a tratar de simplificarlos. Sin embargo, como demuestran recientes aplicaciones al control y a estudios de simulación los modelos continuos tienen todavía un gran potencial de aplicaciones que aún no ha sido explotado en todas sus posibilidades. La exposición del modelo continuo simple es un resumen de materiales procedentes de las referencias [13,14,15] . Admitiendo estas dos hipótesis de modelización la ecuación de continuidad puede derivarse fácilmente considerando una sección de carretera continua unidireccional con dos estaciones de contaje 1 y 2 aguas arriba y aguas abajo respectivamente, con un espaciado Dx entre ellas; suponemos además que no hay fuentes ni sumideros en el espacio Dx, es decir que no hay generación ni disipación de flujo en la sección considerada. Sea Ni el número de vehículos (volumen) que pasa por la estación i durante el período de tiempo Dt, y qi el flujo que pasa por la estación i; Dt es la duración del contaje simultáneo en las estaciones 1 y 2. Sin pérdida de generalidad podemos suponer que N1 > N2 ; puesto que no hay desaparición de vehículos en Dx esta hipótesis implica que hay un incremento del número de vehículos entre la estación 1 y la 2. Sea DN = (N2 - N1 ), negativo. A partir de estas definiciones tenemos: N t q N t q N t q N N t N q t 1 1 2 2 2 1 / / / D D D D D D D D D = = = = - ® = (1.16)
  • 47. 47 La simulación de sistemas Entonces el incremento del número de vehículos entre las estaciones durante Dt será de (-Dq) Dt. Si Dx es lo suficientemente corto como para que la densidad (concentración) k en él sea uniforme entonces el incremento de densidad Dk entre las estaciones 1 y 2 durante el período Dt es ( ) D D D D k N N x N x = - - = - 2 1 (1.17) Esto significa que el incremento del número de vehículos es -DN = DkDx, y cómo el número de vehículos se conserva, entonces -(Dq Dt) = DkDx, de donde: D D D D q x k t + = 0 (1.18) Si ahora consideramos el medio continuo y permitimos que los pequeños incrementos se hagan infinitesimales, en el límite: ¶ ¶ ¶ ¶ l x k t + = 0 (1.19) La ecuación (1.19) expresa la ley de conservación de una corriente de tráfico y se conoce con el nombre de ecuación de conservación o de continuidad, es una ecuación similar a la correspondiente para el flujo de un fluido. Si dentro de la sección de carretera existen fuentes o sumideros, como por ejemplo rampas de entrada o salida, entonces la ecuación de conservación adopta la forma general: ( ) ¶ ¶ ¶ ¶ l x k t g x t + = , (1.20) donde g(x,t) es la tasa de generación (o disipación) expresada en vehículos por unidad de tiempo y unidad de longitud. Los primeros que propusieron la resolución de la ecuación de conservación y su aplicación al tráfico fueron Lighthill y Whitham [16] Michalopoulos et al. [8,17,18] han desarrollado una de las
  • 48. SIMULACIÓN DE SISTEMAS DISCRETOS 48 implantaciones más recientes para el análisis por simulación de los flujos de tráfico en autopistas, y sus aplicaciones al control de tráfico, que ha dado lugar al software KRONOS [19] para simulación de tráfico. La ecuación (1.20) es una ecuación de estado que puede utilizarse para determinar analítica o numéricamente el flujo en cualquier sección de la autopista. El atractivo de esta ecuación reside en que relaciona dos variables fundamentales dependientes, la densidad y el flujo, con dos independientes, el tiempo t y el espacio x. La solución de la ecuación (1.20) es imposible sin una ecuación, o hipótesis adicional. La primera alternativa suele conducir a los denominados modelos de orden superior a través de la consideración de la denominada ecuación de momento. La segunda opción, la que se adopta habitualmente en los modelos continuos simples, establece que el flujo es una función de la densidad, es decir q = f(k). Esta hipótesis, o su equivalente u = f(k), es muy razonable, como hemos discutido un poco más arriba, pero sólo se verifica en el equilibrio. Esta hipótesis, combinada con la ecuación fundamental q = ku, permite reescribir la ecuación de conservación de la forma: ( ) f k k df dk k x k t + é ë ê ù û ú + = d d d d 0 (1.21) Debe observarse que f(k) puede ser una función cualquiera y no es necesario formular hipótesis adicionales para mantener la generalidad de los resultados. Habitualmente se suele utilizar una relación lineal, como la propuesta por Greenshields: u u k k f j = - æ è çç ö ø ÷÷ 1 (1.22) donde uf es la velocidad en condiciones de flujo libre, y kj es la densidad de congestión, aunque parece dar mejores resultados una relación más general como: u u k k f j = - æ è çç ö ø ÷÷ é ë ê ê ù û ú ú 1 a b (1.23)
  • 49. 49 donde a y b son parámetros que se pueden calibrar. La ecuación (1.21) es una ecuación diferencial en derivadas parciales de primer orden, casi-lineal, que se puede resolver por el método de las características. Los detalles de la solución pueden encontrarse en la referencia citada de Lighthill y Whitham [16]. La solución de la ecuación sugiere que: 1. La densidad k es una constante a lo largo de una familia de curvas denominadas características u ondas; una onda representa la propagación de un cambio de flujo y densidad a lo largo de la autopista. 2. La características son líneas rectas que parten de las fronteras del dominio espacio-temporal. 3. La pendiente de las características es ( ) [ ] dx dt f k k f k dq dk = + = ( ) , lo que implica que las características tienen una pendiente igual a la de la tangente a la curva flujo-densidad en el punto que representa las condiciones de flujo en la frontera de donde parte la característica. 4. La densidad en cualquier punto (x, t) del dominio espacio tiempo puede obtenerse dibujando la característica que pasa por dicho punto. 5. Las características transportan el valor de la densidad (y el flujo) de la frontera de la que proceden. 6. Cuando dos características se cortan entonces la densidad en el punto de intersección debería tener dos valores, lo que no es factible físicamente; esta discrepancia se puede explicar por la generación de ondas de choque. En otras palabras, cuando dos características intersectan se genera una onda de La simulación de sistemas
  • 50. SIMULACIÓN DE SISTEMAS DISCRETOS 50 choque y se terminan las características. Una onda de choque representa una discontinuidad matemática (cambio abrupto) en k, q ó u. 7. La velocidad de la onda de choque es u q q k k w d u d u = - - , donde kd , qd representan las condiciones del flujo aguas abajo, y ku , qu aguas arriba. En la curva flujo concentración la velocidad de la onda de choque está representada por la pendiente de la recta que conecta ambos puntos, aguas arriba y aguas abajo. Hay que resaltar que cuando uw es positiva la onda de choque se desplaza aguas abajo con respecto a la autopista, mientras que cuando es negativa lo hace aguas arriba. El mero hecho de que exista una diferencia en las condiciones de flujo aguas arriba y aguas abajo no implica que se genere una onda de choque a menos que sus características intersecten. Generalmente esto sólo ocurre cuando la densidad aguas abajo es mayor que aguas arriba. Cuando la densidad aguas abajo es menor que aguas arriba tenemos un fenómeno de difusión de flujo similar al que se observa en el proceso de descarga de una cola. Cuando la densidad aguas abajo es mayor que aguas arriba, entonces se generan ondas de choque y en general aparecen colas aunque vayan desplazándose aguas abajo. La aplicación de la teoría del modelo continuo simple a situaciones más complejas, como cuando hay interrupciones del flujo (confluencias de flujos por carriles de acceso, derivaciones de flujo por rampas de salida, reducciones de capacidad por pérdida de carriles, etc.) requiere la resolución numérica de la ecuación de conservación [8], base del simulador KRONOS [19]. Los procedimientos numéricos para calcular k, u y q parten de la discretización de la autopista que se considera, en pequeños incrementos Dx (del orden de entre 10 y 50 metros) y la actualización de los valores de dichas variables de tráfico a intervalos de tiempo consecutivos Dt
  • 51. 51 (del orden de un segundo más o menos). Obviamente la discretización se realiza únicamente desde el punto de vista computacional. La densidad en cualquier segmento j, excepto en los segmentos frontera, en el intervalo de tiempo n+1 se calcula a partir de la densidad en los segmentos inmediatamente adyacentes, aguas arriba y aguas abajo, j- 1 y j+1 respectivamente, en el intervalo n, de acuerdo con la expresión: ( ) ( ) ( ) k k k t x q q t g g j n j n j n j n j n j n j n + + - + - + - = + - - - + 1 1 1 1 1 1 1 1 2 2 2 D D D (1.24) donde el subíndice identifica el segmento y el superíndice el intervalo de tiempo, g representa la tasa de generación o disipación en el segmento en el intervalo de tiempo considerado, si no hay fuentes ni sumideros en el segmento, entonces g=0. Una vez que se ha determinado la densidad la velocidad puede calcularse a partir de la relación velocidad densidad en el equilibrio ue (k): ( ) u u k j n e j n + + = 1 1 en el caso de la resolución numérica pueden utilizarse relaciones empíricas que admitan discontinuidades. Finalmente, el flujo en el intervalo de tiempo n se obtiene a partir de la relación fundamental: q k u j n j n j n + + + = 1 1 1 . Las ecuaciones (1.24) discretización de la ecuación (1.21), convierten la ecuación diferencial en derivadas parciales en un ecuación en diferencias finitas a la que se pueden aplicar diversos procedimientos numéricos [17] incluyendo posibilidades de paralelización del cálculo [20] . 1.3. Simulación de sistemas continuos y simulación de sistemas discretos En general los modelos matemáticos de tipo dinámico representan sistemas continuos, es decir sistemas en los que las actividades La simulación de sistemas
  • 52. SIMULACIÓN DE SISTEMAS DISCRETOS 52 predominantes del sistema causan pequeños cambios en los atributos de sus entidades, cuando las relaciones entre ellas describen las tasas o ratios de cambio de los atributos, por lo que, en general, tales modelos están definidos formalmente por ecuaciones diferenciales. En muchos casos a partir del modelo matemático del sistema es posible obtener información sobre el mismo por medios analíticos, como en el caso del sistema de amortiguación de un automóvil, que acabamos de presentar como ejemplo de modelo dinámico. Cuando esto no es posible se recurre a procedimientos numéricos para resolver las ecuaciones del modelo, especialmente en el caso de los modelos dinámicos representados por ecuaciones o sistemas de ecuaciones diferenciales, como en los ejemplos de la dinámica de poblaciones y de tráfico. Con el tiempo se ha ido desarrollando una amplia variedad de métodos numéricos de cálculo para resolver las ecuaciones de los modelos, una técnica numérica particular es la que denominamos Simulación de Sistemas, que como veremos consiste en un seguimiento a lo largo del tiempo de los cambios que tienen lugar en el modelo dinámico del sistema. En los modelos dinámicos, bien por la naturaleza del sistema modelizado, bien por las características del proceso numérico utilizado, la introducción de la aleatoriedad nos llevará a hablar de Simulación Estocástica, que es la que va a ser objeto de estudio en esta monografía. La manera de efectuar el seguimiento temporal de los cambios en el modelo, que supondremos en correspondencia con los cambios en el sistema representado por el modelo, nos lleva a la aparición de dos grandes categorías dentro de la Simulación de Sistemas según que los cambios sean continuos o discretos. En el primer caso se supone que la naturaleza del sistema permite cambios de estado continuos, determinados por cambios continuos en los valores de las variables que representan el estado del sistema, mientras que en el segundo los cambios solo pueden tener lugar en instantes discretos en el tiempo.
  • 53. 53 Para los sistemas con cambios continuos, dado que nuestro principal interés a la hora de simular su comportamiento será reproducirlos, los sistemas de ecuaciones diferenciales serán la forma mas adecuada de representarlos. Denominaremos Simulación Continua a la simulación basada en este tipo de modelos. Los simuladores analógicos han sido ampliamente utilizados en este tipo de simulación, aunque el desarrollo de las técnicas numéricas para la resolución de sistemas de ecuaciones diferenciales, el avance tecnológico en los ordenadores digitales, y la evolución de los lenguajes de programación les han hecho perder protagonismo. SIMULINK, software para la simulación de sistemas dinámicos integrado en el entorno de computación numérica MATLAB [21] es un buen ejemplo de esta tendencia. Para los sistemas discretos, el seguimiento de los cambios de estado requiere la identificación de qué es lo que causa el cambio y cuando lo causa, lo que denominaremos un suceso, las ecuaciones del modelo se convierten entonces en las ecuaciones y relaciones lógicas que determinan las condiciones en que tiene lugar la ocurrencia de un suceso. El modelo de red de colas del taller de manufactura, en el que los cambios de estado son producidos por sucesos discretos como las llegadas de las piezas o los finales de las operaciones, corresponde a esta clase de sistemas. Este tipo de simulación, conocida con el nombre de Simulación Discreta, consiste en el seguimiento de los cambios de estado del sistema que tienen lugar como consecuencia de la ocurrencia de una secuencia de sucesos. La simulación de sistemas estáticos y dinámicos, especialmente los continuos, y los lenguajes de simulación para tales simulaciones, como por ejemplo el DYNAMO, han sido tratados con detalle en otras monografías de esta colección, véanse, por ejemplo, las números 2 (A. Sarabia, La Teoría General de Sistemas), 3 (J. Aracil, Dinámica de Sistemas), y 4 (D. R. Drew, Dinámica de Sistemas Aplicada), en las que aparecen numerosos y bien ilustrados ejemplos de modelos deterministas, y de modelos dinámicos de tipo continuo en los que se La simulación de sistemas
  • 54. SIMULACIÓN DE SISTEMAS DISCRETOS 54 ha utilizado el DYNAMO (la monografía de Aracil es un buen ejemplo de ello). Con objeto de proporcionar una visión complementaria vamos a centrar nuestra monografía en el tema de la Simulación de Sistemas Discretos. 1.4. La Simulación como proceso experimental: experimentos y ordenadores La práctica de la simulación es una técnica que no realiza ningún intento especifico para aislar las relaciones entre variables particulares, antes bien adopta un punto de vista global desde el que se intenta observar como cambian conjuntamente todas las variables del modelo con el tiempo. En todo caso, las relaciones entre las variables deben obtenerse a partir de tales observaciones. Esta concepción caracteriza la simulación como una técnica experimental de resolución de problemas, lo que comporta la necesidad de repetir múltiples ejecuciones de la simulación para poder entender las relaciones implicadas por el sistema, en consecuencia el uso de la simulación en un estudio debe planificarse como una serie de experimentos cuyo diseño debe seguir las normas del diseño de experimentos para que los resultados obtenidos puedan conducir a interpretaciones significativas de las relaciones de interés. La simulación con computador es por lo tanto una técnica que realiza experimentos en un computador con un modelo de un sistema dado. El modelo es el vehículo utilizado para la experimentación en sustitución del sistema real. Los experimentos pueden llegar a tener un alto grado de sofisticación que requiera la utilización de técnicas estadísticas de diseño de experimentos. En la mayor parte de los casos los experimentos de simulación son la manera de obtener repuestas a preguntas del tipo "¿qué pasaría sí?", preguntas cuyo objetivo suele ser evaluar el impacto de una posible alternativa que sirva de soporte a un proceso de toma de decisiones sobre un sistema, proceso que puede representarse esquemáticamente mediante el diagrama de la Figura 8 [22].
  • 55. 55 Volvemos a encontrar aquí, en la utilización de la simulación, las características de lo que hemos denominado ingeniería de sistemas, es decir una visión globalizadora que utiliza un modelo para combinando elementos de análisis y diseño entender, por medio de experimentos, cómo un sistema existente funciona, o cómo puede funcionar un sistema planeado, y prever cómo las modificaciones del sistema pueden cambiar su comportamiento. La simulación, y los experimentos de simulación, se convierten así en una herramienta de análisis de sistemas, para entender cómo opera un sistema existente, o cómo puede operar uno propuesto. La situación ideal, en la cual el investigador realizaría los experimentos sobre el sistema real es sustituida por una en la que el investigador construye un modelo del sistema y experimenta sobre él mediante la simulación, utilizando un ordenador, para investigar el comportamiento del modelo e interpretar los resultados en términos del comportamiento del sistema objeto del estudio. La simulación de sistemas
  • 56. SIMULACIÓN DE SISTEMAS DISCRETOS 56 La simulación, y el procedimiento experimental asociado, se convierten también en una herramienta de diseño de sistemas, cuyo objetivo es la producción de un sistema que satisfaga ciertas especificaciones. El diseñador puede seleccionar o planear como deben ser las componentes del sistema y concebir cual debe ser la combinación de componentes y relaciones entre ellas que determinan el sistema propuesto. El diseño se traduce en un modelo cuyo comportamiento permite inducir el del sistema previsto. El diseño se acepta cuando las previsiones se ajustan adecuadamente a los comportamientos deseados, en caso contrario se introducen las modificaciones pertinentes en el modelo y se repite el proceso. Otra posibilidad es la que se da en estudios económicos, políticos, médicos, etc. en los que se conoce el comportamiento del sistema pero no los procesos que producen tal comportamiento. En este caso se formulan hipótesis sobre las entidades y actividades que pueden explicar la conducta. El estudio de simulación por medio del modelo correspondiente permite comparar las respuestas de un modelo basado en tales hipótesis con el comportamiento conocido, de manera que una concordancia adecuada lleva a suponer que la estructura del modelo se corresponde con la del sistema real. La aplicación de la simulación a diferentes tipos de sistemas combinada con las diferentes clases de estudio que se pueden realizar conduce a una gran cantidad de variantes de la manera en que se puede realizar un estudio de simulación. Sin embargo hay determinados pasos básicos del proceso que pueden identificarse como los constituyentes de lo que denominaremos la metodología de un estudio de simulación, y son los siguientes: 1. Definición del problema y planificación del estudio. 2. Recogida de datos. 3. Formulación del modelo matemático. 4. Construcción y verificación del programa para computador del modelo.
  • 57. 57 La simulación de sistemas 5. Ejecuciones de prueba del modelo. 6. Validación del modelo. 7. Diseño de los experimentos de simulación. 8. Ejecución de los experimentos. 9. Análisis de los resultados. El proceso no es, en general, secuencial, sino iterativo, en el que algunos de los pasos pueden tener que repetirse en función de los resultados intermedios tal como muestra la Figura 9. Ningún estudio de simulación puede llevarse a cabo sin establecer claramente una definición precisa del problema que se pretende resolver y los objetivos del estudio. Los diseños alternativos del sistema que se han de estudiar han de quedar claramente especificados, así como los criterios para evaluar dichos diseños. Criterios que servirán de base al proceso de toma de decisiones para elegir uno de los diseños. Para la formulación del modelo debe establecerse su estructura definiendo cuales son los aspectos del funcionamiento del sistema que son significativos para la resolución del problema que tenemos entre manos, y que datos es necesario recoger para proporcionar al modelo la información adecuada. La construcción del modelo de simulación es en muchos casos más un arte que una ciencia, que combina aspectos matemáticos y lógicos. En general la experiencia recomienda empezar con modelos moderadamente detallados que paulatinamente se van haciendo más sofisticados. El modelo únicamente debe contener el nivel de detalle requerido por los objetivos del estudio. Dado un modelo matemático la construcción del programa para computador es el requisito imprescindible para poder manipular numéricamente el modelo para obtener las soluciones que respondan a las preguntas que el analista se formula sobre el sistema. La validación del modelo es uno de los pasos cruciales del proceso, suele ser uno de los más difíciles, pero es un requisito indispensable
  • 58. SIMULACIÓN DE SISTEMAS DISCRETOS 58
  • 59. 59 para establecer si el modelo representa o no adecuadamente el sistema objeto del estudio, de manera que se puedan garantizar las inducciones y extrapolaciones sobre el comportamiento del sistema a partir de lo observado sobre el modelo. Diseñar los experimentos comporta, como hemos comentado anteriormente, aplicar rigurosamente las técnicas observacionales de la estadística, propias del método científico, que permitan garantizar la significación de las respuestas producidas por la ejecución del programa que implanta el modelo en el computador. 1.5. Modelos de simulación frente a soluciones analíticas Aparentemente todos los modelos que hemos presentado hasta ahora han podido ser resueltos exactamente, como en el caso de la ecuación diferencial que modeliza el sistema de amortiguación de un automóvil o, en el peor de los casos, mediante métodos numéricos como en las ecuaciones de Lotka-Volterra del modelo presa-depredador para la dinámica de poblaciones, o por métodos numéricos aproximados, como en el caso de los modelos de tráfico. Estos procedimientos constituyen el primer atisbo de lo que hemos denominado procedimientos de simulación como alternativa a los métodos analíticos. La pregunta es en qué van a consistir y cuando hay que aplicar lo que propiamente vamos a denominar simulación en el caso de los sistemas discretos. Regresemos a nuestro modelo de taller de manufactura, el último comentario apuntaba a que la modelización analítica como sistema de redes de colas podía presentar algunas dificultades. Para hacernos cargo de que tipo de dificultades puede tratarse, consideremos el caso de una delascomponentes,unodelosgruposdemáquinas,loquehemosllamado modelo de colas M/M/s, y simplifiquémoslo al caso M/M/1, para el que hemos visto que la solución analítica de equilibrio es bastante simple. La simulación de sistemas
  • 60. SIMULACIÓN DE SISTEMAS DISCRETOS 60 Sin embargo bastaría que para este caso, relativamente sencillo, nos preguntásemos por el comportamiento durante el período transitorio para que la situación, aún siendo tratable analíticamente, se complique bastante. Pensemos, simplemente, que las preguntas que nos formu- lamos relativas al estado estacionario o de equilibrio, son aquellas que suponen el funcionamiento del sistema a largo plazo, mientras que en otras ocasiones lo que nos interesa analizar es el proceso de arranque del sistema, es decir lo que se denomina el estado transitorio antes de entrar en la supuesta condición de equilibrio a largo plazo. Para responder a tal pregunta sobre el sistema tendríamos que encontrar la solución al sistema siguiente de ecuaciones diferenciales en diferencias (no olvidemos que se trata de un sistema dinámico pero cuyos cambios de estado son discretos): ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) dP t dt P t P t P t k dP t dt P t P t k k k k k = - + + + ³ = - + = - + l m l m l m 1 1 0 0 1 1 0 , , (1.25) donde Pk (t) es la probabilidad de que el sistema se encuentre en el estado k en el instante t. Para obtener la distribución de probabilidad de estados función del tiempo, que vendría dada por Kleinrock [11]. ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) P t e at at at k t k k k i k i k j j k j = + + - é ë ê ù û ú - + - - - - + + - = + + ¥ å l m r r r r r 1 2 1 1 2 1 2 1 2 1 / / / I I I (1.26) donde a=2mr1/2 , y ( ) ( ) ( ) x x k m m k k k m m = + ³ - + = ¥ å 2 0 2 1 / ! ! , , I (1.27) es la función de Bessel modificada de primera clase de orden k. Complicaciones analíticas similares, o de orden superior, aparecen cuandolashipótesissobrelasdistribucionesdeprobabilidaddelasllegadas olasduracionesdelosserviciosdejandeserpoissonianasoexponenciales para ser simplemente Normales o de Erlang, como corresponde a
  • 61. 61 bastantes situaciones reales.En este caso se puede comprobar, Kleinrock [11] que si A(t) y B(x) son las distribuciones de probabilidad de las llegadas al sistema de colas y duración de los servicios respectivamente, y ( ) ( ) ( ) C s A s B s * * * = - (1.28) es la transformada de Laplace de la distribución de probabilidad de la variable aleatoria u x t n n n = - + 1 (1.29) (tiempo de descarga del sistema entre el que le exige la duración del servicio de n-ésimo cliente, xn , y la llegada del n+1-ésimo, en el instante tn+1 ), entonces la distribución de probabilidad del tiempo de espera en la cola, en el estado estacionario, viene dada por: ( ) ( ) ( ) W y W y u dC u y y = - ³ -¥ ò , 0 (1.30) que es una ecuación integral de Lindley. Recordemos que la obtención de esta distribución es necesaria para calcular el tiempo medio de espera en la cola, que como hemos visto es uno de los parámetros clave a la hora de estudiar el rendimiento del sistema. Estas dificultades inherentes a las soluciones analíticas pueden ser solventadas, como veremos, con relativa facilidad, por medio de la simulación, para obtener soluciones numéricas apro- ximadas. A pesar de su utilidad la simulación no puede considerarse como una panacea capaz de resolver todo tipo de situaciones, aún contando con la ayuda de los lenguajes especializados para la simulación, o de los avances que han representado los entornos software para simulación, Henrikssen [23] el desarrollo de los generadores de simuladores, Mathewson [24] o de los simuladores visuales, SIMFACTORY [25], WITNESS [26], etc., la realización de un estudio La simulación de sistemas
  • 62. SIMULACIÓN DE SISTEMAS DISCRETOS 62 de simulación puede comportar un esfuerzo y un consumo de recursos no despreciable en cualquiera de las fases: definición del problema, recogida de información, construcción del modelo y programación del mismo, realización de los experimentos de simulación en computador. Especialmente en este último caso sistemas complejos pueden conducir a programas largos y complejos que requieran cantidades importantes de recursos computacionales. Estas han sido algunas de las razones por las que en ciertos dominios de aplicación la simulación ha sido considerada como un último recurso al que acudir cuando todo lo demás falla. Sin embargo la simulación, por sus características, y por los desarrollos computacionales que se han conseguido en los últimos años, sigue presentando una serie de ventajas que no solo la convierten en el procedimiento mas adecuado en muchos casos, sino que hacen que sea la única alternativa tecnológica en muchos otros. Esto resulta especialmente obvio en aquellos casos en los que las características del sistema que se pretende estudiar hacen inviable, por razones físicas o de coste, la experimentación directa sobre el sistema. El mundo de la producción industrial, del tráfico, la aeronáutica, la industria del automóvil, etc. son claros ejemplos de esta situación, en la que, si bien es cierto que en algunos casos se puede recurrir a modelos analíticos, también lo es que tales modelos no siempre son capaces de recoger todos los aspectos de interés del sistema, que conducirían a modelos inviables, o para los que no se dispone de herramientas adecuadas, obligando a introducir una serie de hipótesis simplificadoras que pueden resultar inadecuadas en función de los objetivos del estudio. El ejemplo relativamente sencillo, de los modelos de colas que estamos discutiendo, puede ilustrar esta afirmación. Los modelos de colas son analíticamente tratables bajo hipótesis de modelización relativamente simples: llegadas según distribuciones de Poisson, tiempos de servicio exponenciales, disciplinas FIFO, etc..Aún en este caso las soluciones para los períodos transitorios pueden ser complicadas de obtener analíticamente, en contraste con la simplicidad
  • 63. 63 de los procedimientos para obtener las soluciones estacionarias, sin embargo, basta introducir hipótesis adicionales aparentemente sencillas, que aproximan el modelo a otras situaciones reales, para entrar rápidamente en el terreno de las dificultades analíticas crecientes, los modelos con distribuciones de probabilidad de llegadas y servicios de tipo general, inclusión de impaciencias o políticas basadas en prioridades, etc., son un buen ejemplo de ello. Incluso en aquellos casos en los que es posible la experimentación directa la simulación puede ofrecer ventajas tales como un coste inferior, tiempo, repeticiones y seguridad. Aún siendo viables los experimentos directos con el sistema físico pueden con frecuencia tener un coste muy superior al de la simulación a pesar de los esfuerzos para construir el modelo y el tiempo y recursos computacionales requeridos para la ejecución de los experimentos. Aunque el desarrollo de un modelo adecuado y su programación para ser ejecutado en un ordenador puede requerir una cantidad de tiempo significativa, una vez construido y depurado el modelo de simulación representa una atractiva posibilidad para trabajar con las más variadas escalas de tiempo, minutos, horas, semanas, meses, años, etc., en unos pocos segundos de tiempo de computador, lo que permite comparar colecciones variadas de alternativas, a través de experimentos de simulación que siempre pueden repetirse en las más diversas condiciones, lo que no siempre es posible en los experimentos con el sistema real, basta pensar en sistemas de manufactura, gestión de empresas, o militares (es difícil pensar en una situación en la que el enemigo permite repetir una batalla). Finalmente, es frecuente que los experimentos persigan el objetivo de determinar la respuesta del sistema en condiciones extremas, lo que puede resultar peligroso o incluso ilegal en la vida real. Las aplicaciones de la simulación en aeronáutica, o en la gestión de aeropuertos constituyen buenos ejemplos de lo que queremos significar. La simulación de sistemas
  • 64. SIMULACIÓN DE SISTEMAS DISCRETOS 64 El dilema modelos analíticos frente a modelos de simulación debe resolverse en cada caso ateniéndose al tiempo de sistema, los objetivos del estudio, las características del modelo, los costes, etc. La cuestión claveesnuestrahabilidadycapacidadparaconstruirelmodelodelsistema, si este es analítico y las hipótesis de modelización no obligan a simplificaciones que invaliden la capacidad del modelo para responder a las cuestiones de interés que nos planteamos sobre el sistema, entonces las soluciones analíticas del modelo matemático pueden ser suficientes. Si nuestro conocimiento del sistema no nos permite formular hipótesis que conduzcan a una completa formalización del modelo en términos analíticos, o el requisito de no realizar hipótesis simplificadoras conduce a modelos matemáticos de difícil, o imposible, tratamiento matemático, entonces posiblemente la simulación será la alternativa válida, si no es la única posible. El analista del sistema no debe olvidar que un mismo sistema puede representarse formalmente mediante diversos modelos en fun- ción de los problemas que el analista se plantea sobre el sistema. De acuerdo con Minsky, un objeto matemático M es un modelo válido de un sistema S para un observador O, si M es capaz de proporcionar res- puestas válidas a las preguntas que O formula sobre S (Figura 10). Law y Kelton [27] formalizan el proceso de decisión modelo matemático-modelo de simulación, experimentación sobre el sistema real o sobre un modelo del sistema, como formas de estudiar un sistema, por medio del diagrama de la Figura 11. El desarrollo experimentado por el software de simulación en estos últimos años ha hecho más fácil el uso de la simulación, lo que ha incrementado notablemente su uso frente al de otros métodos para estudiar sistemas. De lo expuesto hasta aquí se desprende claramente que si bien la simulación tiene muchas ventajas, no deja de presentar algunos problemas, especialmente cuando se usa indebidamente, que cabe tener en cuenta para paliarlos o, si es posible, evitarlos, pues de
  • 65. 65 La simulación de sistemas lo contrario pueden invalidar los resultados de un proyecto de simulación. Law y Kelton [27] resumen en su texto la situación de la manera siguiente. La simulación es recomendable, o incluso puede ser la única alternativa posible, para investigar sistemas complejos en los que estén presentes elementos estocásticos que difícilmente pueden ser tratados con la precisión adecuada en un modelo matemático. La simulación permite con relativa facilidad estimar el funcionamiento del sistema bajo condiciones de operación alternativas, o es la herramienta para comparar diseños alternativos de un sistema que tengan que satisfacer requerimientos específicos. La simulación permite mantener un mayor control sobre las condiciones experimentales que el que se puede mantener en la experimentación con el sistema físico. Por otra parte la simulación permite estudiar el comportamiento del sistema en períodos de tiempo de cualquier longitud, comprimidos a la duración de la ejecución del simulador en un computador.
  • 66. SIMULACIÓN DE SISTEMAS DISCRETOS 66 Sin embargo, no se debe olvidar que la simulación de un modelo estocástico únicamente produce estimaciones de las características verdaderas del modelo para un conjunto particular de parámetros de entrada, lo que comporta la necesidad de diseñar adecuadamente los experimentos de simulación, y repetirlos en cantidad suficiente como para garantizar la calidad de las estimaciones. De ahí que los modelos de simulación no sean tan buenos cuando se pretende optimizar el rendimiento, como lo son cuando lo que se persigue es comparar entre sí diseños alternativos. En particular para sistemas para los que puede definirse un modelo analítico adecuado, que proporciona resultados exactos, este será preferible al modelo de simulación. No hay que olvidar en ningún caso que si un modelo no es una representación válida del sistema que se estudia la información que proporcione será de poca utilidad. Modelos de simulación y modelos analíticos no deben considerarse siempre como antitéticos, en muchos casos pueden jugar
  • 67. 67 un papel complementario sirviendo la simulación para verificar la validez de las hipótesis para el modelo analítico, o el modelo analítico para sugerir cuales son las alternativas razonables que hay que investigar por simulación. Finalmente, suponiendo que se ha decidido proceder a un estudio de simulación, no hay que olvidar las recomendaciones metodológicas, que de no cumplirse pueden llevar al fracaso del estudio, como por ejemplo cuando no están bien definidos los objetivos del estudio, se construye un modelo con un nivel de detalle inadecuado, se concibe el estudio de simulación como una especie de ejercicio de programación de computadores, se utiliza inadecuadamente las capacidades de animación de resultados, no se identifican correctamente las fuentes de aleatoriedad del sistema, o se utilizan distribuciones de probabilidad que no se corresponden como es debido con dichas fuentes de aleatoriedad, o se utilizan métodos estadísticos incorrectos para analizar los resultados (por ejemplo los que suponen independencia), o se intenta extraer conclusiones de una única ejecución del simulador, etc.etc.. 1.6. La simulación de los sistemas discretos En los desarrollos anteriores hemos ido analizando las limitaciones que tiene el tratamiento analítico para manipular numéricamente los modelos matemáticos que representan los sistemas que nos interesa estudiar. Limitaciones que se hacen más patentes cuando el modelo no es puramente analítico sino que incluye, como parte de sus reglas de operación, condiciones de tipo lógico. El ejemplo del sistema de colas ha puesto de manifiesto además cuan rápidamente pueden llegar a grandes complejidades analíticas modelos de sistemas con características aleatorias. En todos estos casos hemos aludido a la simulación como una técnica numérica que permite superar estas limitaciones e inconvenientes, pero, ¿en que consiste esta técnica? Para el caso de los modelos continuos los procedimientos de resolución numérica de las ecuaciones diferenciales del modelo son la componente La simulación de sistemas
  • 68. SIMULACIÓN DE SISTEMAS DISCRETOS 68 fundamental de lo que entendemos por simulación continua. La simulación de los sistemas discretos requiere un tratamiento diferente que vamos a ilustrar, una vez más, con el ejemplo sencillo de los modelos de colas. Supongamos un sistema de colas simple, compuesto por una población fuente que a efectos prácticos pueda ser considerada infinita, de la cual proceden las unidades que requieren servicio, según una distribución de Poisson, con una tasa de l llegadas por unidad de tiempo, la cola puede ser considerada infinita a efectos prácticos por no haber ninguna limitación física, y el servicio es prestado por una estación de servicio única, monofase, cuya capacidad es de µ servicios completados por unidad de tiempo según una ley de distribución exponencial, es decir un sistema M/M/1, en nuestra notación. Un ejemplo práctico de tal situación lo representan las piezas que llegan a una máquina para ser sometidas a una operación, cuando no hay problemas de almacenamiento intermedio. Las unidades que requieren servicio son las piezas, el servicio consiste en la operación ha que han de ser sometidas, y la máquina es la unidad de servicio. Esta descripción constituye lo que anteriormente hemos denominado el modelo conceptual del sistema, la cuestión que se plantea ahora es ¿cómo podemos simular su comportamiento? De acuerdo con los planteamientos expuestos una posibilidad consiste en considerar que el sistema evoluciona en el tiempo cambiando de estado, y que simular consiste en ser capaz de imitar los cambios de estado del sistema emulando su evolución. Ello requiere definir que entendemos por estado del sistema y cómo cambia de estado el sistema. En el caso que nos ocupa podemos definir el estado del sistema como el número de unidades que hay en el sistema en un momento dado. Diremos pues que el sistema se encuentra en el estado n en el
  • 69. 69 La simulación de sistemas instante t si en dicho instante hay n unidades en el sistema, contando las que esperan en la cola a recibir servicio y las que están recibiendo servicio en ese momento. A partir de esta especificación del estado del sistema es evidente que el sistema cambia de estado cada vez que llega a él una nueva unidad para recibir servicio, o cada vez que una unidad ha terminado de recibir servicio y lo abandona. Diremos entonces que el sistema cambia de estado cada vez que se produce un suceso, y que hay dos tipos de suceso susceptibles de cambiar el estado del sistema, el suceso llegada de una nueva unidad al sistema y el suceso salida de una unidad del sistema. Si las llegadas son aleatorias según una distribución de Poisson, y los servicios son exponenciales, simular sucesos llegada al sistema consiste en extraer muestras de números aleatorios que sigan la distribución de Poisson que las describe (o, cómo hemos puesto de manifiesto anteriormente, la distribución exponencial asociada que representa los intervalos de tiempo entre llegadas consecutivas), y simular sucesos salida consiste en extraer muestras de números aleatorios que sigan la distribución exponencial que los describe. A partir de dichas muestras un sencillo mecanismo de seguimiento como el que se ilustra en la Figura 12 permite realizar la simulación del sistema de colas propuesto. En este ejemplo los intervalos de tiempo entre llegadas son: A1 = 55, A2 = 32, A3 = 24, A4 = 40, A5 = 12, A6 = 29, ... y las duraciones de los servicios: S1 = 43, S2 = 36, S3 = 34, ... de manera que la primera llegada se produce a las 55 unidades de tiempo, como en ese momento la unidad de servicio está libre pasa a
  • 70. SIMULACIÓN DE SISTEMAS DISCRETOS 70
  • 71. 71 La simulación de sistemas recibir servicio directamente, y su servicio durará 43 unidades de tiempo, por lo que el suceso salida correspondiente se producirá en el instante 98, la segunda llegada se produce 32 unidades de tiempo después de la primera, es decir en el instante 87, como en ese momento la unidad de servicio aún está ocupada sirviendo a la primera llegada, la segunda se instala en la cola a esperar, de donde saldrá en el instante 98 para pasar a recibir servicio, su servicio durará 36 unidades por lo que su suceso salida se producirá en el instante 134, y así sucesivamente. La simulación nos permite recoger observaciones sobre los estados del sistema y de esta manera estimar los parámetros de rendimiento como longitudes medias de las colas, tiempos medios de espera, etc.. En caso de que las distribuciones de llegada y de duración de los tiempos de servicio no fuesen poisonianas y exponenciales, sino de cualquier otro tipo, Normal, Erlang, etc., el proceso metodológico de la simulación seria el mismo, la única variación estribaría en la extracción de muestras aleatorias de las distribuciones de probabilidad correspondientes.
  • 72. SIMULACIÓN DE SISTEMAS DISCRETOS 72
  • 74. SIMULACIÓN DE SISTEMAS DISCRETOS 74 2.1. Identificación de patrones de comportamiento aleatorio Una característica fundamental de la mayor parte de los sistemas discretos, que interesa estudiar por simulación, es la presencia de la aleatoriedad como atributo intrínseco de algunas o todas sus componentes. Todos los sistemas reales suelen contener al menos una, pero en general más de una, fuente de aleatoriedad. En consecuencia, de acuerdo con la metodología de los estudios de simulación que hemos propuesto, en la primera etapa, la de conocimiento, en la que se recoge información sobre el sistema para formular las hipótesis de modelización que permitirán construir el modelo, uno de los aspectos más importantes es el que concierne a la obtención de información sobre las componentes del sistema que exhiben un comportamiento aleatorio, y la identificación del tipo de aleatoriedad que posibilite la formulación de hipótesis para su modelización o, en otros términos, la determinación de la distribución de probabilidad que reproduzca lo más adecuadamente posible el comportamiento aleatorio observado. Identificar la aleatoriedad en los sistemas es equivalente a identificar las fuentes de aleatoriedad de las componentes de los sistemas y el tipo de distribuciones de probabilidad que las representan. Así, por ejemplo, en todos aquellos sistemas en los que subyace una estructura de fenómenos de espera, simples o de red, que constituyen una de las clases más numerosas a estudiar por simulación, los procesos de llegada y de servicio, es decir como van llegando al sistema
  • 75. 75 Modelización de la aleatoriedad en sistemas discretos las entidades que han de recibir un servicio, y la duración del mismo son, en general, procesos aleatorios que hay que identificar y modelizar. Las llegadas de los vehículos al puesto de peaje de una autopista, las piezas y las materias primas a un proceso de manufactura, llamadas telefónicas a una centralita, los tiempos de llegadas entre mensajes, tipos de mensajes, en los sistemas de comunicaciones, los tiempos de llegada entre trabajos que se han de procesar, los tipos de trabajo, en el caso de los sistemas informáticos, etc., son ejemplos típicos de lo que denominamos procesos de llegada. La duración del acto de abonar el peaje, las operaciones a realizar sobre las piezas en las diferentes máquinas durante el proceso de producción, las duraciones de las llamadas telefónicas, las longitudes de los mensajes, los requerimientos para el procesado de un trabajo etc., constituyen ejemplos de los segundos, los llamados procesos de servicio. En el caso de los sistemas de manufactura podemos identificar además fuentes adicionales de aleatoriedad, como por ejemplo las averías de las máquinas, cuándo se producen, y la duración de las mismas, es decir el tiempo que están fuera de servicio por avería mientras son reparadas, o el tiempo que la máquina esta operativa, o sea, el tiempo entre averías, o el tiempo requerido por operaciones de mantenimiento o de preparación y ajuste para un cambio de modo de operación por cambio del proceso productivo, etc.. Los ejemplos citados pertenecen al dominio de las distribuciones continuas de probabilidad, pero no hay que olvidar fenómenos tales como el resultado de la inspección de una pieza para controlar su calidad (buena o mala, aceptable o rechazable), o el de las dimensiones de los pedidos cuando se agrupan en lotes, que dan lugar a distribuciones discretas. La identificación y modelización adecuada de las fuentes de alea- toriedad es crucial para la corrección del modelo y evitar muchos de los fallos que hemos apuntado al final del capítulo anterior, el texto de Law y Kelton [27] incluye interesantes ejemplos de como puede influir una modelización correcta de los tiempos de parada de las máquinas por avería en modelos de procesos de manufactura. Identificada la fuente de aleatoriedad, es decir la componente del sistema que exhibe
  • 76. SIMULACIÓN DE SISTEMAS DISCRETOS 76 tal comportamiento, una modelización correcta de la aleatoriedad requiere la recogida de observaciones que sirvan de base a un estudio estadístico que permita determinar el tipo de distribución de probabilidad que mejor explica tal comportamiento, y decidir si se utiliza en el estudio de simulación un modelo teórico de tal distribución, o se trabaja con una distribución empírica. Las observaciones que se pueden recoger sobre las variables aleatorias relevantes para el estudio de simulación pueden utilizarse de diferentes maneras a la hora de especificar la distribución de probabilidad correspondiente. Pueden utilizarse esos mismos valores directamente en la simu- lación. Por ejemplo, si los datos representan las duraciones de los servicios, se acude a ellos cada vez que se necesita el valor de un tiempo de servicio. Esta modalidad de simulación recibe el nombre de «dirigida por la traza» (trace-driven). El principal inconveniente de este planteamiento es que la simulación únicamente puede reproducir lo que ha ocurrido históricamente, sin capacidad de proyección futura, y que es difícil que se pueda recoger la cantidad de datos que serían necesarios para repetir las ejecuciones del programa de simulación todas las veces requeridas. Esta alternativa es recomendable frente a otras únicamente el caso de la validación de los modelos, cuando interesa comparar la salida proporcionada por el modelo del sistema con la salida proporcionada por el propio sistema. Otra posibilidad es la de utilizar estos datos para definir una función de distribución empírica, de la cual se extraen muestras a medida que se necesitan los valores. Es un planteamiento preferible al anterior, que en el caso de los datos continuos permite generar cualquier valor entre el máximo y el mínimo de los observados, cada vez que se necesita uno de ellos, por ejemplo un tiempo de servicio. Finalmente se pueden utilizar las técnicas de la inferencia estadística para «ajustar» los datos a la forma de una distribución
  • 77. 77 Modelización de la aleatoriedad en sistemas discretos teórica, y realizar pruebas de hipótesis para determinar la bondad del ajuste. Si una distribución teórica particular, para ciertos valores de sus parámetros, es un buen modelo de los datos observados se puede muestrear desde tal distribución cada vez que se necesita uno de los datos. En el caso de que se pueda encontrar una distribución teórica que ajuste razonablemente bien los datos observados, esta alternativa es preferible a cualquiera de las dos anteriores. La simulación ha de incorporar, por lo tanto, la aleatoriedad presente en el mundo real que el modelo ha de representar.La cuestión es, en consecuencia, ¿cómo decidimos cuál es la naturaleza de esta aleatoriedad? ¿Cómo especificamos las distribuciones de las variables aleatorias que la modelizan? El texto de Bratley, Fox y Schrage [28], dedica un interesante capítulo a analizar las diferentes alternativas, cuyas ideas mas sugerentes glosaremos a continuación. Siempre que sea posible hay que recoger observaciones de las variables aleatorias de entrada. Las decisiones y especificaciones a que nos estamos refiriendo han de hacerse a partir de los datos disponibles, y podemos encontrarnos con una gran variedad de situaciones. En unos casos tendremos un exceso de datos, mientras que en otros dispondremos de muy pocos, y en ambos casos la procedencia de los datos puede ser o bien directamente la distribución de interés o indirectamente una distribución «relacionada». Los autores mencionados sentencian que «Tener pocos datos es malo, pero tener pocos datos de una distribución incorrecta es peor». Tener pocos datos significa que nos encontramos en una de las situaciones siguientes, o en alguna combinación de las mismas: la muestra de que disponemos es pequeña, o solo tenemos un resumen estadístico, por ejemplo, media, variancia, valores mínimo y máximo, mediana, moda, etc., o la información disponible es de tipo cualitativo, consistente, por ejemplo, en entrevistas con personas informadas o con experiencia sobre situaciones relacionadas.
  • 78. SIMULACIÓN DE SISTEMAS DISCRETOS 78 Desgraciadamente en muchos casos información errónea sobre distribuciones «relacionadas» es la única fuente de información disponible. Ejemplos de ello pueden ser: disponer de información agregada incorrecta, como es el caso de la simulación de sistemas de inventario, que requiere datos de la demanda diaria, cuando solo se dispone de datos de la demanda mensual; o de una distribución temporal inadecuada, como cuando se dispone de información histórica pero lo que se necesita es una proyección al futuro inmediato, el próximo mes, año, etc.; o de una distribución censurada, como cuando en lugar de disponer de los datos de la demanda solo disponemos de los datos de ventas, que infraestiman la demanda cuando hay rupturas de stock. En los casos de información poca o incorrecta, pero relacionada, la recomendación es ser escépticos sobre cualquier distribución que se especifique, y recurrir al análisis de sensibilidad. Considerar que la información cualitativa de que disponemos nos permite, en todo caso, formular una conjetura sobre cual puede ser la distribución apropiada, normal, lognormal, exponencial, Poisson, Weibull, etc., considerar que la conjetura es tentativa y verificar la sensibilidad tanto de los parámetros de la distribución conjeturada, como de su forma. Hay que prevenir contra la elaboración de conjeturas basadas en un simple análisis exploratorio, especialmente si este es, sobre todo, visual. En las aplicaciones de la simulación en el mundo de la manufactura es frecuente la recogida de datos que representados en forma de histograma adoptan formas que sugieren fuertemente distribuciones como la exponencial, cuando un análisis mas detallado permite comprobar que esta es una distribución inadecuada en este caso. Law y Kelton [27] ilustran detalladamente algunos casos para ejemplos de estudios de simulación de procesos de manufactura en los que se muestra como distribuciones aparentemente exponenciales por su forma no son las que mejor reproducen los datos observados sobre los tiempos de ocupación de las máquinas en el caso del ejemplo, sino que es una distribución gamma la más adecuada.
  • 79. 79 Modelización de la aleatoriedad en sistemas discretos Una de las recomendaciones es realizar ejecuciones apareadas de la simulación con los mismos números aleatorios. El objetivo de un análisis de sensibilidad es comprobar que el resultado de un estudio de simulación solo depende débilmente de que distribución se utiliza de entre un conjunto de distribuciones plausibles. Las distribuciones teóricas dependen en general de uno o dos parámetros que pueden variar de manera continua, esto facilita el análisis de sensibilidad, suponiendo que solo se toman en cuenta la formas limitadas que pueden tomar las distribuciones teóricas. Hay una tendencia a ajustar distribuciones teóricas a los datos observados, pero esto no es siempre lo más recomendable. Por ejemplo en muchos casos la utilización de distribuciones empíricas, combinación de distribuciones continuas y procedimientos de interpolación que mimetizan los datos con mayor aproximación es mucho más recomendable. De todas maneras, en el dilema distribuciones empíricas- distribuciones teóricas, no hay que perder de vista que una distribución empírica puede tener ciertas «irregularidades», particularmente cuando solo se dispone de pocos datos, mientras que una distribución teórica «suaviza» los datos y puede proporcionar información sobre la distribución subyacente. Las dificultades para generar datos fuera del intervalo de valores observados puede ser una limitación importante a la hora de utilizar una distribución empírica si tenemos en cuenta que muchas de las medidas del rendimiento de los sistemas que se simulan dependen fuertemente de la probabilidad de que ocurran sucesos «extremos», mientras que una distribución teórica permite generar datos fuera del intervalo observado. Sin embargo hay situaciones en las que deberemos recurrir a las distribuciones empíricas por no poder ajustar ninguna distribución teórica con el grado de bondad exigible. Con frecuencia los estudios de sensibilidad se limitan a modificar las medias y las variancias de las distribuciones de los datos de entrada para la simulación, utilizando transformaciones del tipoY = a+bX.Salvo
  • 80. SIMULACIÓN DE SISTEMAS DISCRETOS 80 raras excepciones, como la de los tiempos medios de espera en colas M/G/1 estacionarias, estos dos parámetros no son suficientes para determinar los valores esperados de las distribuciones de salida de la simulación, y en algunos casos ni tan solo la propia distribución. Especialmente cuando se trata de las colas de las distribuciones de entrada, los datos proporcionan un soporte insuficiente a las supuestas formas de las mismas, y no se debe perder de vista que hay diferencias cualitativas significativas entre las conductas de distribuciones como la exponencial, la de Weibull o la normal, por ejemplo. Es recomendable proceder a una investigación sobre la robustez para verificar la sensibilidad de la medida del rendimiento del sistema que se simula con respecto a la forma (por ejemplo la asimetría) de las distribuciones de entrada. En comparación con un análisis solo de la media y la variancia, es obvio que unextensoanálisisdesensibilidadcomoelqueseproponeesmáscostoso y difícil de explicar, pero es un requisito imprescindible para la credibilidad del estudio de simulación. Completaremos estos comentarios con un ejemplo sencillo que ayude a aclarar algunos de los aspectos discutidos. Supongamos una empresa explotadora de la concesión de una autopista que quiere revisar el diseño que se ha realizado de un puesto de peaje en un punto concreto de la misma, pues sospecha que quizás ha sido infradimensionado a la vista de las colas que se forman, sobre todo en alguna de las horas punta.Para llevar acabo dicha revisión pone en marcha, en primer lugar, un plan de recogida de datos sobre las llegadas de los vehículos al puesto de peaje. Para ello instala un equipo de medición de alta sensibilidad, que utiliza una tecnología basada en la detección por radar, que le proporciona los datos de la tabla adjunta, observaciones de 240 intervalos de tiempo, medidos en segundos, entre vehículos que llegan consecutivamente al puesto de peaje, ordenados de menor a mayor. Lo que supone un tiempo total de observación de 3935,563 segundos, que cubre suficientemente el intervalo total de una hora punta (Tabla 3). De acuerdo con la metodología descrita en la descripción previa, tras la recogida de información hemos de proceder a una
  • 81. 81 Modelización de la aleatoriedad en sistemas discretos
  • 82. SIMULACIÓN DE SISTEMAS DISCRETOS 82 análisis de los datos para investigar cuál puede ser la distribución de probabilidad que mejor los puede representar, si una empírica o una teórica, y en este último caso ajustar la distribución teórica más adecuada. El primer paso será, obviamente, un análisis descriptivo que nos ayude a inferir de qué tipo de distribución se puede tratar. La Figura 13 corresponde a la representación de los datos observados en forma de histograma. En el proceso real, que por limitación de espacio no vamos a reproducir aquí en su totalidad, el ejercicio consiste en ir probando con diferentes criterios de agrupación partiendo de diferentes reglas de agrupación basadas en la experiencia, como por ejemplo la de Sturges, que señala un límite inferior recomendado, para el número de clases en el histograma, dado por: ë û ë û k n n = + = + 1 1 3 322 2 10 log , log (2.1)
  • 83. 83 Modelización de la aleatoriedad en sistemas discretos aunque, como señalan Law y Kelton en la obra citada, en muchos casos estas reglas empíricas no funcionan demasiado bien. Por ejemplo en este caso nos sugerirían utilizar 9 ó 10 clases, que conducirían a una agrupación poco clara, mientras que el histograma de la figura, realizado con 25 clases, nos sugiere la posibilidad de que la distribución sea de tipo exponencial. Ahora bien, teniendo en cuenta las recomendaciones efectuadas, hemos de considerar esta inferencia como un primer paso, a corroborar por otros procedimientos. Una distribución exponencial supone que los sucesos que representa son independientes entre sí, y tiene una propiedad característica y es que su coeficiente de variación (cociente entre la desviación estándar y la media: cv = s/m) es igual a la unidad. Los sucesos llegada de vehículos a un puesto de peaje en una autopista son independientes entre sí, por lo que se cumple la primera condición, y puesto que la muestra y desviación estándar de la muestra observada son, respectivamente: $ , $ , m s = = 16 398179 15 855114 (2.2) el coeficiente de variación correspondiente es cv = 0,966882, lo suficientemente próximo a la unidad como para que empecemos a considerar que podemos aceptar la inferencia de que la distribución de probabilidad, que describe aceptablemente los datos observados, es la distribución exponencial: ( ) f x e x = - 0 060928 0 60982 , , (2.3) de media 1/0,060982 = 16,398179. Todo parece indicar que la hipótesis de trabajo es razonable y que esta distribución teórica, que supone que el tiempo medio que transcurre entre las llegadas de dos vehículos consecutivos al puesto
  • 84. SIMULACIÓN DE SISTEMAS DISCRETOS 84 de peaje es de 16.398 segundos. Sin embargo, el rigor metodológico exige comprobaciones adicionales. Cuando agrupamos las observaciones empíricas en un histograma y Nj es número de observaciones de la muestra pertenecientes a la j-ésima clase, es decir al intervalo de extremos [aj- 1 , aj ), cuando la muestra procede de la distribución teórica f(x) el número teórico esperado en dicha clase es Npj , siendo N el número total de observaciones, y pj la proporción esperada, que, de acuerdo con la distribución f(x), viene dada por: ( ) p f x dx j a a j j = - ò 1 (2.4) en consecuencia, el valor empírico de la distribución de c2 correspondiente, vendrá dado por: ( ) c2 2 1 = - = å N Np Np j j j j k (2.5) si el ajuste es aceptablemente bueno, este valor del c2 empírico deberá ser inferior al valor teórico c2 k-1, 1-a para un nivel a de significación estadística. En nuestro caso, tomando probabilidades constantes pj = 0,04, para las k = 25 clases, de manera que el número de observaciones teóricas por clase sea Npj = 240 x 0,04 = 9,6 ( lo que implicalímitesvariablesparalasclases,dadospor a Ln j j = - - æ è ç ö ø ÷ 16 308179 1 25 , , obtendríamos los resultados de la tabla adjunta (Tabla 4). Consultando las tablas de la distribución c2 , y comparando el valor empírico obtenido para c2 = 13,3324con el valor teórico c2 24, 0,90 = 33,196, podemos concluir que, puesto que es sensiblemente inferior, la hipótesis de que los datos observados están distribuidos con suficiente aproximación por la distribución exponencial ajustada es aceptable para un nivel de significación a = 0,10. Supongamos ahora que la empresa concesionaria de la explotación de la autopista continua el análisis de la situación
  • 85. 85 Modelización de la aleatoriedad en sistemas discretos
  • 86. SIMULACIÓN DE SISTEMAS DISCRETOS 86 recogiendo ahora observaciones de las duraciones del proceso de servicio, es decir el pago del peaje, durante el mismo período de tiempo. Vamos a suponer que se trata de un peaje automático, de tipo cerrado, en el que el viajero puede pagar en metálico, si dispone del importe exacto, o con tarjeta de crédito. Los detectores de las instalaciones de peaje miden el tiempo que transcurre desde que el vehículo entra en el puesto de peaje hasta que lo abandona. La operación de pago tiene dos componentes, una de valor constante 3,5 segundos, que depende del ciclo de la máquina, y otra aleatoria que depende de las circunstancias del cliente (tener el dinero preparado o no, que la tarjeta de crédito sea válida, etc.). Las 240 observaciones de la componente aleatoria, correspondientes a los vehículos del período de estudio, ordenadas en orden creciente, en segundos, se muestran en la Tabla 5 Como en el caso anterior realizaremos un análisis para determinar qué posible distribución teórica es la que se ajusta mejor a los datos observados, y utilizaremos la misma metodología. Al proceder a la inspección visual por medio del histograma nos encontramos en este caso con una forma que ya no se asemeja tanto a la de la distribución exponencial, como muestra el histograma de la Figura 14. Sin embargo, el hecho de que los sucesos pago del peaje sean independientes y que la media y variancia muestrales sean, respectivamente: $ , $ , m s = = 9 6075 8 7011 (2.6) y por lo tanto el coeficiente de variación sea cv = 0,9056, podría llevarnos a pensar que, aunque fuera forzar un poco la situación a lo mejor una exponencial aún puede adaptarse aceptablemente a los datos observados. Repitiendo el procedimiento propuesto para realizar el análisis de la bondad del ajuste de la exponencial, por medio de la determinación del valor empírico de la c2 resulta, en este caso, lo mostrado en la Tabla 6.
  • 87. 87 Modelización de la aleatoriedad en sistemas discretos
  • 88. SIMULACIÓN DE SISTEMAS DISCRETOS 88 Comparando ahora el c2 empírico, de valor 41,5083, con el teórico para a = 0,10, hemos de rechazar la hipótesis de que los datos observados pueden ajustarse por medio de una distribución exponencial. Podríamos comprobar que la hipótesis es rechazable para cualquier nivel de significación sensato. A partir de aquí, de acuerdo con la discusión que ha precedido al ejemplo, tenemos dos posibles alternativas, una consistente en continuar nuestra investigación a la búsqueda de una distribución teórica que se ajuste aceptablemente a los datos empíricos, y otra basada en utilizar los datos observados para construir una distribución empírica. En el primer caso, si nuestros esfuerzos se ven coronados por el éxito y podemos encontrar la distribución buscada (en este caso un coeficiente de variación inferior a la unidad nos sugiere probar con una distribución gamma), si persistimos en utilizar un modelo teórico
  • 89. 89 Modelización de la aleatoriedad en sistemas discretos
  • 90. SIMULACIÓN DE SISTEMAS DISCRETOS 90 el puesto de peaje podría ser modelizado como un sistema de colas M/G/1, como corresponde a un sistema con llegadas cuya distribución de tiempos entre llegadas consecutivas es exponencial, y cuyos tiempos de servicio siguen una combinación de un paso de tiempo constante con una distribución no exponencial. Tendríamos que enfrentarnos entonces a las dificultades analíticas y numéricas que hemos mencionado en el Capítulo anterior. La Figura 15 muestra el ajuste entre los datos observados (línea continua), y la distribución gamma de parámetros a = 1,25, b = 7,5, (línea de trazos), para la cual el c2 empírico toma el valor 19,3072, y el teórico para a = 0,05, y 13 grados de libertad (que corresponden a una clasificación con 14 clases, en la que los valores residuales se han acumulado en la última clase) c2 13, 0,95 = 22,362, por lo que, aunque el ajuste no es muy bueno puede ser aceptado (Nota: se trata de un ajuste aproximado, por razones de espacio y dificultad técnica hemos obviado entrar en la discusión de como efectuar el mejor ajuste).
  • 91. 91 Modelización de la aleatoriedad en sistemas discretos Por el contrario, si decidimos construir la distribución empírica correspondiente podemos utilizar un modelo de simulación para estudiar el comportamiento del puesto de peaje. Para construir la distribución empírica podemos proceder de diversas maneras, una de ellas es la siguiente: construimos un nuevo histograma cuyos extremos son, respectivamente la menor y la mayor de las observaciones realizadas, añadiendo los 3,5 segundos del paso de tiempo constante [3,6454, 62,9783] calculamos las frecuencias, y las frecuencias acumuladas, para cada clase, y representamos la clase por el extremo superior del subintervalo que define la clase, tal como se indica en la Tabla 7. La Figura 16 representa gráficamente la distribución empírica acumulada propuesta, a partir de la cual, si X1, X2 , ...., Xn son los valores observados, y están agrupados en k clases cuyos extremos respectivos son [a0 , a1 ) [a1 , a2 ), .... [aj-1 , aj ), .... [ak-1 , ak ), los valores intermedios se pueden obtener por interpolación de acuerdo con la
  • 92. SIMULACIÓN DE SISTEMAS DISCRETOS 92 fórmula siguiente: ( ) ( ) ( ) ( ) [ ] G x G a x a a a G a G a j j j j j j = ì í ï î ï + - - - - - - - 0 1 1 1 1 1 (2.7) donde G(x) = 0 si x < aj , G(x) = 1 si ak £ x, y G(x) igual al resultado de la evaluación de la expresión en los demás casos, cuando aj-1 £ x < aj . Una desventaja de este tipo de distribuciones empíricas es que nunca pueden producir valores menores que a0 , o mayores que ak , lo que puede introducir sesgos en las muestras generadas a partir de ellas. 2.2. Generación de muestras de distribuciones aleatorias: introducción a los métodos de Monte Carlo La reproducción de las fuentes de aleatoriedad en la simulación del comportamiento de un sistema exige la capacidad de generar
  • 93. 93 Modelización de la aleatoriedad en sistemas discretos muestras de números aleatorios que correspondan adecuadamente a la distribución de probabilidad que gobierna la componente particular de conducta aleatoria que se está simulando. El mecanismo generador de tales muestras ha de ser capaz de producir variables aleatorias de cualquier tipo, continuas o discretas. El término «generar una variable aleatoria» se refiere a la actividad de obtener una observación, o realización, de una variable aleatoria a partir de la distribución especificada. Como vamos a ver a continuación, el ingrediente básico para todo procedimiento de generación de variables aleatorias a partir de cualquier distribución o proceso aleatorio, es una fuente de producción de variables aleatorias independientes, idénticamente distribuidas según una distribución uniforme en el intervalo (0,1). Esto es consecuencia de un importante resultado de la teoría de probabilidades en función del cual las muestras de diferentes variables de una gran variedad de distribuciones, tanto teóricas como empíricas pueden generarse a partir de muestras de variables aleatorias independientes uniformemente distribuidas en el intervalo (0,1). Sea X una variable aleatoria continua con una función de probabilidad fX , y una distribución: ( ) ( ) F x f d x x x = -¥ ò q q (2.8) Consideremos la variable aleatoria ( ) ( ) u F x f d x x x = = -¥ ò q q; por la teoría de probabilidades sabemos que la función de probabilidad de U es: ( ) ( ) f u J f x U x = (2.9) donde J x u = ¶ ¶ es el Jacobiano de la transformación, y: ( ) ( ) u F x f d u x x x = = £ £ -¥ ò q q, 0 1 (2.10) en este caso J = [fx (x)]-1 , y en consecuencia:
  • 94. SIMULACIÓN DE SISTEMAS DISCRETOS 94 ( ) ( ) f u u f u en caso contrario U U = £ £ = 1 0 1 0 , , (2.11) que es la función de probabilidad de una variable aleatoria uniformemente distribuida en (0, 1), por lo tanto, si u= Fx (x), y Fx (x) es tal que existe ( ) F u x -1 , entonces: ( ) x F u x = -1 (2.12) en consecuencia si u está uniformemente distribuida en (0, 1), sustituyendo u en ( ) F u x -1 se obtiene x, distribuida segúnFx (x) . Este procedimiento para generar una variable aleatoria según una distribucióndadaapartirdevariablesaleatoriasuniformementedistribuidas recibe el nombre de método de la transformación inversa, puesto que requiere que se pueda calcular Fx -1 (x) Así, por ejemplo, si X es una variable aleatoria exponencial, es decir, con una función de probabilidad dada por: ( ) f x e x x x x = £ < ¥ < ì í î - m m 0 0 0 (2.13) entonces: ( ) F x e dy e u e x y x x x = = - Þ = - - - - ò m m m m 1 1 0 (2.14) y en consecuencia: ( ) x u = - - 1 1 m ln (2.15) por lo tanto cada vez que en esta expresión sustituimos u por un valor en el intervalo (0, 1) correspondiente a una observación de la variable aleatoria U, uniformemente distribuida en dicho intervalo, obtenemos el valor x de una observación de la variable aleatoria exponencial X de parámetro m. Para generar una distribución uniforme en el intervalo [a,b utilizando este procedimiento basta con tener en cuenta que la función de distribución de dicha variable es:
  • 95. 95 Modelización de la aleatoriedad en sistemas discretos ( ) F x b a dy x a b a u con a x b a x = - = - - = £ £ ò 1 , (2.16) por lo tanto: ( ) x a u b a u = + - £ £ , 0 1 (2.17) Las dificultades para calcular analíticamente la función inversa de la variable aleatoria X cuya muestra se pretende generar han llevado a desarrollar variantes de este método o incluso métodos específicos según las características de la variable. En los textos ya referenciados de Law y Kelton [27], Bratley et al. [28] o Kleijnen [29, 30, 31] puede encontrarse una variada colección de procedimientos que cubren la mayor parte de las distribuciones de probabilidad habitualmente utilizadas en los estudios de simulación. Con objeto de completar esta descripción vamos a incluir únicamente dos de los más utilizados, el de las aproximaciones a la función inversa y el de rechazo. Cuando la función de distribución F(x) tiene una inversa que o bien es costosa de calcular, o no se puede calcular analíticamente, podemos recurrir a tabular una secuencia de pares, (F(xi ), xi ) tales que xi < xi+1 El siguiente algoritmo invierte la aproximación poligonal a F(x) que interpola estos pares: 1. Encontrar Xi tal que F(Xi ) £ U £ F(Xi+1 ) 2. Calcular: ( ) [ ] ( ) [ ] ( ) ( ) X F X U X U F X X F X F X i i i i i i = - + - - + + + 1 1 1 (2.18) Este procedimiento puede considerarse como el simétrico del propuesto en el apartado anterior para tratar con distribuciones empíricas. Ahrens y Kohrt [32], citados en [28], proponen un proce- dimiento de interpolación más exacto, pero mas complicado,
  • 96. SIMULACIÓN DE SISTEMAS DISCRETOS 96 basado en la integración numérica de la función de probabilidad para obtener F: 1. Integrar numéricamente la función de probabilidad f(x) para obtener F. 2. Decidir como efectuar una partición de (0,1), el dominio de F-1 , en intervalos de longitud desigual basados en las características de la función F. 3. Determinar la forma y los coeficientes de la función de interpolación para cada uno de los subintervalos. A pesar del coste computacional los resultados numéricos indican que este método es uno de los mejores. El método de la transformada inversa requiere el conocimiento explícito o aproximado de la función de distribución F(x), sin embargo en muchas situaciones disponemos de la función de probabilidad f(x) pero no de la de distribución. Un ejemplo típico es el caso de la ley normal para el que no se conoce ninguna expresión analítica para la función de distribución. El método de rechazo, propuesto por von Neumann [33] puede utilizarse cuando solo conocemos la función de probabilidad f(x). El método requiere que la función de probabilidad f(x) esté acotada y no nula en un intervalo finito [a,b]. Definimos: ( ) { } c max f x a x b = £ £ : (2.19) Entonces: 1. Generar X uniformemente distribuida en (a,b); 2. Generar Y uniformemente distribuida en (0,c); 3. SiY £ f(X), entonces aceptar X, en caso contrario rechazarla y repetir.
  • 97. 97 Modelización de la aleatoriedad en sistemas discretos La Figura 17 ilustra geométricamente la operativa del método de rechazo. Los valores X e Y representan las coordenadas de un punto del rectángulo de lados c y b-a. Si el punto queda por debajo de f(X), es decir pertenece al área encerrada por la curva f(x) y el intervalo (a,b), entonces se acepta el valor de X, en caso contrario se rechaza. El método de rechazo es uno de los procedimientos básicos del conjunto de procedimientos conocidos como Métodos de Monte Carlo [24] que combina propiedades de la integración de funciones con la generación de muestras de variables aleatorias uniformemente distribuidas para calcular integrales numéricamente. Así, por ejemplo, dada una función f(x) acotada, definida en el intervalo [a,b] geométricamente la integral de f(x) en [a,b] es igual al área A1 encerrada por la función y el segmento [a,b] tal como indica la Figura 18: ( ) A f x dx a b 1 = ò (2.20)
  • 98. SIMULACIÓN DE SISTEMAS DISCRETOS 98 Si la función alcanza su máximo en el punto cÎ[a,b] los puntos en el interior del rectángulo de lados [0,c] y [a,b] se pueden interpretar como una distribución uniforme bivariante. Generar valores Xi uniformemente distribuidos en [a,b] e Yi uniformemente distribuidos en [0,c] equivale a generar muestras de tal distribución bivariante, de manera que cada par (Xi ,Yi ) representa las coordenadas de un punto perteneciente a dicho rectángulo, la probabilidad de que uno de dichos puntos pertenezca al área A1 , viene dada por: p A A A A p = Þ = 1 1 * (2.21) donde A es el área del rectángulo.En consecuencia todo procedimiento de estimación de p se convierte en un procedimiento de estimación de A1 puesto que A es conocida. Dado (Xi ,Yi ), si f(Xi )³Yi Þ (Xi ,Yi )ÎA1 , en caso contrario, (Xi ,Yi )ÎA2 . Si generamos una muestra con un total de n puntos, se
  • 99. 99 Modelización de la aleatoriedad en sistemas discretos puede estimar p a partir del contaje del número de puntos m que pertenecen a A1 , la estimación viene dada por: $ p m n = (2.22) Haciendo un cambio de escala de manera que A1 + A2 = A = 1, la estimación de A1, y por tanto del valor de la integral, y su error estándar, vienen dados por: ( ) $ $; $ $ $ A p A A n A 1 1 1 1 1 1 = = - - s (2.23) Un ejemplo sencillo que puede ilustrar como funciona el método es la evaluación por Monte Carlo de la integral: x dx x 2 0 1 3 0 1 3 1 3 = = ò (2.24) La Tabla 8 presenta los resultados de generar una muestra de n = 50 puntos en el cuadrado unidad. Y aplicando los resultados anteriores: $ $ , A p m n 1 15 50 0 3 = = = = (2.25) Los métodos de Monte Carlo admiten gran cantidad de variantes y están consolidados como procedimiento de integración numérica, especialmente en casos de gran dificultad como los que se presentan en muchos problemas de física e ingeniería, en particular cuando se trata de funciones reales no integrables analíticamente y, sobre todo, para integrales múltiples, ya que para las simples se dispone en estos momentos de procedimientos numéricos muy poderosos. Los métodos de Monte Carlo pueden considerarse como procedimientos que utilizan la generación de números aleatorios, especialmente los uniformemente distribuidos en el intervalo (0,1) para resolver problemas estocásticos o deterministas de tipo estático. En el caso de las integrales, además de los argumentos anteriores podemos considerar que si:
  • 100. SIMULACIÓN DE SISTEMAS DISCRETOS 100
  • 101. 101 Modelización de la aleatoriedad en sistemas discretos ( ) A f x dx a b = ò (2.26) es la integral de una función real f(x) no integrable analíticamente, su cálculo, que es un problema determinista, puede aproximarse por medio de los métodos de Monte Carlo de la manera siguiente: Sea Y la variable aleatoria (b-a)f(X), donde X es una variable aleatoria continua uniformemente distribuida en el intervalo [a,b]. El valor esperado de Y es: ( ) ( ) ( ) [ ] ( ) ( ) [ ] ( ) ( ) ( ) ( ) ( ) ( ) E Y E b a f X b a E f X b a f x x dx b a f x dx b a A x a b a b = - = - = - = - - = ò ò j (2.27) donde jX (x) = 1/(b-a) es la función de probabilidad de X. Esto permite reducir el problema de evaluación de la integral al de estimar el valor esperado E(Y), para lo cual podemos utilizar la media muestral: ( ) ( ) ( ) $ A Y n Y n b a f X n i n i i n = = = - = = å å 1 1 1 (2.28) siendo X1 , X2 , ...., Xn variables aleatorias independientes idénticamente distribuidas con una distribución uniforme en (a,b). Fijémonos que esto es equivalente a estimar el área de un rectángulo de base (b-a) y altura A/(b-a), que era la interpretación intuitiva que habíamos dado al principio. Cerraremos está exposición ilustrando otra variante de inte- gración basada en este caso en otra propiedad de la integral definida, la del teorema de la media, variante conocida con el nombre de «Crude Monte Carlo». El primer teorema de la media para el cálculo integral [35] establece que: ( ) ( ) ( ) [ ] f x dx b a f a b a b ò = - Î x x , , (2.29)
  • 102. SIMULACIÓN DE SISTEMAS DISCRETOS 102 Geométricamente significa que A3 = A1 , es decir que el área del rectángulo de lados f(x) y [a,b] es igual al área encerrada por la curva f(x) y el intervalo [a,b] para algún punto interior x del intervalo, como ilustra la Figura 19. De nuevo un cambio de escala tal que A=1 permite que toda estima- ción de f(x) se convierta en una estimación de A3 .En este caso, si Xi es una observación de la variable aleatoria X uniformemente distribuida en el inter- valo [a,b] a partir de una muestra de n valores de Xi unaestimacióndef(x)es: ( ) ( ) $ f n f Xi i n x = = å 1 1 (2.30) Con un error estándar: ( ) [ ] ( ) ( ) s $ $ A i i n f X n A n n 1 2 1 2 1 1 = - - = å (2.31)
  • 103. 103 Modelización de la aleatoriedad en sistemas discretos Utilizando las evaluaciones de f(Xi ) de la tabla del ejemplo, la estimación de A1 hubiese sido en este caso: ( )( ) ( ) $ $ , , A f b a 1 1 50 18 661137 0 372022 = - = = x (2.32) Cerraremos estos comentarios sobre la generación de muestras de variables aleatorias continuas con la presentación de métodos ad-hoc para variables aleatorias con funciones de probabilidad a las que no se puede aplicar alguno de los métodos discutidos, como el de la transformada inversa, y los que se pueden aplicar pueden tener un elevado coste computacional. El ejemplo arquetípico es el de las variables aleatorias que siguen la ley normal: ( ) f x e x x = -¥ < < ¥ - 1 2 2 2 p , (2.33) de media cero y varianza 1, denotada habitualmente com X~N(0, 1), cuya función de distribución no puede representarse analíticamente por lo que habitualmenteserepresentaenformatabularquesecalculanuméricamente. Ilustraremos este caso con un procedimiento sencillo, basado en el teorema del límite central, que aunque actualmente ha caído en desuso pone de manifiesto el tipo de razonamiento que sustenta estos métodos. Sea X1 , X2 , ......, Xn , una secuencia de n variables aleatorias independientes e idénticamente distribuidas de media mX , y varianza sx 2 < ¥ , si la media muestral es: x n X n i i n = = å 1 1 (2.34) Entonces la variable: y x n x x = -m s / (2.35) tiene una distribución que converge a la distribución normal estándar. En la práctica esto significa que cuando n es grande, la diferencia entre y y la variable aleatoria normal estándar es despreciable. En consecuencia para generar una muestra de una distribución normal
  • 104. SIMULACIÓN DE SISTEMAS DISCRETOS 104 estándar podemos utilizar n números aleatorios ui independientes uniformemente distribuidos en (0,1) y formar la variable aleatoria: ( ) z u n n i i n = - = å 2 12 1 / (2.36) Puesto que toda transformación lineal de una variable nor- malmente distribuida produce una variable que también está normal- mente distribuida, si se tiene que generar una variable normalmente distribuida de media m y varianza s, a partir de z se puede hacer: x z = + s m (2.37) Un método más exacto que el que acabamos de exponer, es de Box y Muller que utiliza dos variables independientes u1 y u2 para producir dos variables normales estándar independientes x1 y x2 : ( ) ( ) ( ) ( ) x u u x u u 1 2 1 2 1 2 2 2 2 2 = - = - cos ln cos ln p p (2.38) Los métodos generales, como el de la transformada inversa, y otros, pueden adaptarse a las distribuciones discretas.Así por ejemplo, para la variable aleatoria geométrica, cuya función de probabilidad es: ( ) ( ) f x p p p x x = - < < = - 1 0 1 1 2 3 1 , , , , ,K (2.39) con función de distribución: ( ) ( ) ( ) y F x p p p x r x x = = - = - - - = å 1 1 1 1 1 (2.40) de la relación y = 1 - (1 - p)x se deduce: ( ) ( ) ( ) ( ) ln ln ln ln 1 1 1 1 - = - Þ = - - y x p x y p (2.41)
  • 105. 105 Modelización de la aleatoriedad en sistemas discretos y como x tiene que ser entero, se elige el entero k que satisface la relación: ( ) ( ) ( ) ( ) ln ln ln ln 1 1 1 1 1 - - < £ + - - y p k y p (2.42) en consecuencia, generando una secuencia de números aleatorios independientes yi uniformemente distribuidos en (0, 1), la relación anterior permite generar una secuencia ki que estará distribuida geométricamente con parámetro p. Una adaptación similar puede hacerse en el caso de la ley de Poisson: ( ) f x e x x x = > = - l l l ! , , , , , , 0 0 1 2 3 K (2.43) cuya función de distribución es: ( ) y F x e r e x r x x = = = + + + + + é ë ê ù û ú - = - å c l l l l l l ! ! ! ! 0 2 3 1 2 3 LL (2.44) la adaptación del método de la transformada inversa implica en este caso encontrar el menor entero x tal que: 1 + + + + + ³ l l l l l 2 3 2 3 ! ! ! L x x ye (2.45) 2.2.1. Generación de números pseudo-aleatorios uniformemente distribuidos en (0,1) De todo lo expuesto se deriva que la condición sine qua non para poder producir muestras de variables aleatorias con funciones de probabilidad cualesquiera es disponer de un generador de base de variables aleatorias U uniformemente distribuidas en (0,1), puesto que, por los resultados que hemos establecido a partir de la teoría de probabilidades, todos los métodos recurren a la generación de muestras de tales variables. Hay una amplia variedad de métodos para generar
  • 106. SIMULACIÓN DE SISTEMAS DISCRETOS 106 este tipo de variables, las referencias citadas [27, 28, 29], etc. dedican capítulos específicos a discutirlos, aunque el texto por excelencia sigue siendo el de Knuth [36] . Hay tres consideraciones que juegan un papel influyente en la determinación de si una fuente particular proporciona o no números aleatorios adecuadamente satisfactorios para los propósitos experimentales: En primer lugar las secuencias de números generadas por la fuente han de pasar toda una batería de tests estadísticos, de carácter general (c2 , Kolmogorov-Smirnov, etc.), o específicamente diseñados para revelar desviaciones respecto de la independencia y uniformidad. Para una secuencia verdaderamente aleatoria Zi , i = 1, ..., N; 0 £ Zi £ N, los elementos de cualquier subsecuencia han de ser conjuntamente independientes, y cada una ha de tener una distribución uniforme en (0,N). Una secuencia de números aleatorios que no satisfaga esta propiedad puede conducir a resultados inadecuados en una simulación. La segunda propiedad significativa requiere que los números aleatorios contengan suficientes dígitos como para que la generación de números en el intervalo (0,1) sea lo suficientemente densa. Esto exige que si {Zi } está formada por números enteros, y N es el mayor número que puede alcanzar un elemento Zi de la secuencia, entonces la probabilidad de que cualquier elemento tome un valor particular ha de ser 1/(N+1). Finalmente la tercera propiedad significativa concierne a la eficiencia con que una fuente particular produce las secuencias de números aleatorios, lo que en términos computacionales implica rapidez y mínima ocupación de memoria. 2.2.2 Generación de dígitos aleatorios. En el pasado se han propuesto y utilizado diferentes procedimientos basados en métodos mecánicos o electromecánicos,
  • 107. 107 Modelización de la aleatoriedad en sistemas discretos el texto de Tocher [37] proporciona una buena panorámica histórica. Uno de los grandes inconvenientes de estos métodos era la irreproducibilidad de una secuencia, inconveniente grave puesto que, en muchos experimentos de simulación es importante poder analizar el comportamiento de las alternativas de un sistema sometidas exactamente a las mismas condiciones, lo que requiere utilizar como entrada las mismas muestras de números aleatorios. Los computadores electrónicos han hecho posible el desarrollo de procedimientos que pueden satisfacer todas las propiedades deseables incluyendo la de la repetición de las secuencias. Uno de los primeros procedimientos fue propuesto porVon Neuman [33] en 1951.Es el denominado método de los cuadrados medios, que en esencia consiste en lo siguiente: se parte de un número cualquiera (es recomendable un número par) de n dígitos x0 , se eleva al cuadrado y se extraen los n dígitos del medio, con lo que se obtiene un nuevo número x1 , con el cual se puede repetir el proceso y así sucesivamente, tal como ilustra el siguiente ejemplo: x0 = 5729 x0 2 = 32/8214/41 (2.46) x1 = 8214 La Tabla 9 proporciona el resultado de generar 60 números de cuatro dígitos mediante este procedimiento partiendo del 5729. 2.2.3. ¿Cuán aleatoria es la secuencia generada? Está técnica de generación de dígitos es evidentemente muy fácil de programar, y es obvio que genera secuencias reproducibles, la cuestión de si es adecuada o no como fuente de generación de dígitos aleatorios a partir de los cuales formar números de varios dígitos por el método habitual que se utiliza con las tablas de dígitos aleatorios, depende de otros factores. Un criterio que se puede utilizar es comprobar si los números son aceptablemente aleatorios, para lo cual tendríamos que someterlos a los tests a que hemos aludido anteriormente. Así, por ejemplo, si los dígitos son aleatorios todos
  • 108. SIMULACIÓN DE SISTEMAS DISCRETOS 108 los dígitos han de aparecer con la misma frecuencia, puesto que hay 60 números de cuatro dígitos, hay un total de 240 dígitos y por lo tanto cada uno de ellos tendría que aparecer 24 veces. Aplicando un test de c2 a la tabla de frecuencias observadas obtenemos el resultado mostrado en la Tabla 10. El valor de c2 empírico, correspondiente a esta tabla es: ( ) c2 0 9 12 74994 = - = = å o e e i i i i , (2.47) Comparando este resultado con el valor teórico de c2 para un nivel de significación de 0,05: c c c 2 0 05 2 0 05 2 16 916 , , , = Þ ³ (2.48) y en consecuencia se puede aceptar la hipótesis, con este nivel de significación, de que los dígitos generados son aceptablemente aleatorios.
  • 109. 109 Modelización de la aletoriedad en sistemas discretos El principal inconveniente de este procedimiento es que proporciona secuencias que a partir de un cierto número se repiten cíclicamente y en consecuencia la aleatoriedad se mantiene, estadísticamente limitada solo a la parte primera del ciclo. En el caso del ejemplo, si hubiésemos continuado tendríamos: 7185 8333 0321 6900 2100 6242 4388 1030 6100 4100 9625 2545 0609 2100 8100 6406 4770 3708 4100 6100 0368 7529 7492 8100 2100 1354 6858 1300 6100 4100 La degeneración que representa la presencia de los ciclos justifica el nombre de números pseudoaleatorios que se da a los números genera- dos por cualquiera de estos procedimientos. El análisis estadístico nos indica que las secuencias generadas antes de que empiece el proceso
  • 110. SIMULACIÓN DE SISTEMAS DISCRETOS 110 cíclico pueden ser aceptables estadísticamente como secuencias aleato- rias mientras nos restrinjamos a ellas. El problema en la práctica de la simulación surge cuando las dimensiones de las muestras que necesita- mos son mayores que las longitudes de los ciclos, ya que en tal caso si continuáramos utilizándola la presencia del ciclo invalidaría el carácter aleatorio. Desgraciadamente esta es la situación más frecuente, lo que nos lleva a buscar métodos alternativos, que generen computacionalmente de una manera eficaz secuencias de números pseudoaleatorios, cuyos ciclos sean de longitud suficientemente grande como para que no nos planteen problemas con las dimensiones de las muestras necesarias. 2.2.4. Procedimientos generales. Los métodos más generalizados en estos momentos, por su especial adecuación a los computadores digitales, y la longitud de las secuencias que proporcionan, son los Generadores Congruenciales Lineales, introducidos por Lehmer en 1951 [38]. Tienen la forma: ( ) Z aZ c m i n i i = + = -1 1 2 mod , , , K (2.49) la secuencia se inicia a partir de un número Z0 , que es el inicializador o simiente de la secuencia. La congruencia módulo m implica que: Z aZ c aZ c m m i i i = + - + é êê ù úú - - 1 1 (2.50) (donde X , significa «parte entera de»). A partir de esta expresión es evidente que Zi < m, i = 1, 2, ....., n, es decir que ninguno de los números generados puede ser mayor que el módulo m de la congruencia, que genera entonces números en el intervalo (0, m). Para generar números uniformemente distribuidos en (0,1) basta con dividir por m: U Z m i i = (2.51) Si se resuelve la ecuación en diferencias de primer orden Zi - aZi-1 ºc (mod m) se obtiene la expresión: ( ) Z a Z a a c m n n n º + - - 0 1 1 mod (2.52)
  • 111. 111 cuando c = 0 los generadores se denominan multiplicativos. En la práctica los números pseudoaleatorios se procesan en un computador como enteros. Si g es el número base del computador (2 para los computadores binarios, 10 para los decimales, etc.), haciendo m = gb , donde b es un número entero, la reducción módulo aZ c m i- + 1 (2.53) se lleva a cabo desplazando el punto decimal de aZi-1 +c, b posiciones hacia la izquierda, y reteniendo únicamente los dígitos que permanecen a la izquierda de la nueva posición del punto decimal. El cálculo de Ui por medio de la división de Zi por m también se realiza desplazando el punto decimal â posiciones hacia la izquierda, en consecuencia la simplicidad y eficiencia con que dichas operaciones pueden realizarse en el computador es lo que ha convertido a este tipo de generadores en los más ampliamente utilizados. La calidad del generador depende de la elección los parámetros a, c y m. En las referencias citada, y especialmente en la de Knuth [36], pueden encontrarse detallados estudios teóricos que determinan las con- diciones para la selección de los valores de los parámetros, especialmente en lo que se refiere a la longitud de las secuencias, es decir el número p de números pseudoaleatorios distintos que el generador produce antes de entrar entonces a=2s +b) en el proceso cíclico, el ideal es que el gene- rador sea de período completo, es decir p=m, se puede demostrar que para ello es necesario que: 1. c y m sean primos entre sí. 2. a º1 (mod q) para todo factor primo q de m. 3. a º1 (mod 4) si 4 es divisor de m ( por ejemplo, si m = 2b , entonces a = 2s + b). Modelización de la aleatoriedad en sistemas discretos
  • 112. SIMULACIÓN DE SISTEMAS DISCRETOS 112
  • 113. 113 3 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 114. SIMULACIÓN DE SISTEMAS DISCRETOS 114 3.1. Metodología de la construcción de modelos de simulación de sistemas discretos Las ideas generales expuestas hasta aquí pueden resumirse en los términos siguientes [1]: si las relaciones que constituyen el modelo mate- mático de un sistema lo permiten pueden obtenerse soluciones exactas de forma analítica que proporcionan respuestas a las cuestiones de interés sobre el sistema a través de las soluciones producidas por el modelo. Cuando la complejidad de las ecuaciones del modelo hace inviables las soluciones analíticas hemos de recurrir a métodos numéricos para resolverlas. La Simulación se encuadra dentro de las técnicas numéricas a utilizar en estos casos. Por Simulación de Sistemas entendemos el proceso de representar un sistema por medio de un modelo simbólico que puede manipularse por medio de un computador digital para que proporcione resultados numéricos. El computador permitirá evaluar numéricamente un modelo de simulación durante un intervalo de tiempo significativo para los objetivos del estudio, y recoger durante el mismo datos que posibiliten la estimación de las características deseadas del modelo. Modelización y Simulación son pues los términos que utilizamos para designar el conjunto de actividades asociadas con la construcción de modelos de sistemas, y su utilización para realizar experimentos específicamente diseñados para estudiar aspectos concretos del comportamiento dinámico del sistema representado por el modelo. En particular el término modelización se refiere a las relaciones entre los sistemas reales y sus modelos, es decir el proceso a través del cual
  • 115. 115 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos construimos el modelo que representa al sistema, mientras que simulación se refiere, sobre todo, a la manera en que el modelo es tratado en el computador. La Modelización por Simulación («Simulation Modelling») supone que podemos describir un sistema en unos términos que son aceptables para un computador para poder describir sus cambios. Para aquellos sistemas cuyos cambios son discretos el concepto clave es el de la descripción del estado del sistema. Si un sistema puede ser caracterizado por un conjunto de variables, de manera que cada combinación de valores de las variables represente un estado único, o condición del sistema, entonces la manipulación de las variables simula el movimiento del sistema de estado a estado. En esto es precisamente en lo que consiste la Simulación: la representación de la dinámica del sistema moviéndolo de un estado a otro de acuerdo con reglas de operación bien definidas. En el caso de los sistemas discretos, la simulación se refiere a la modelización en un computador digital de un sistema cuyos cambios de estado tienen lugar de manera discreta como consecuencia de la ocurrencia de agentes del cambio de estado denominados sucesos. Simular es, pues, duplicar el comportamiento dinámico de algún aspecto de un sistema, real o propuesto, sustituyendo las propiedades esenciales del sistema simulado por las propiedades del sistema que lo simula, el modelo. Una vez construido, el modelo de simulación actúa como un labora- torioenelquesepuedenverificar,comparar yajustar fácilmentelasdiferen- tes alternativas de diseño. Mediante la ejecución del modelo en un ordenador se imitan las acciones del sistema propuesto, permitiendo extraer inferencias sobre las prestaciones del sistema global. Estas inferencias se realizan en base a las numerosas medidas de las prestaciones proporcionadas por la simulación, tales como las utilizaciones
  • 116. SIMULACIÓN DE SISTEMAS DISCRETOS 116 de la máquinas, los inventarios durante el proceso, los tiempos de espera de las piezas, y el rendimiento o capacidad de producción (throughput) total, en el caso de la simulación de sistemas de producción, por ejemplo. Mediante este proceso de experimentación se puede elegir el mejor diseño del sistema. La popularidad creciente de la Simulación es debida en parte a su fiel adherencia a los detalles. Las formulaciones analíticas, aunque ofrecen soluciones rápidas en forma analítica compacta (closed-forms), tienden a ser restrictivas incluso para el más simple de los sistemas. Los detalles complicados se omiten con frecuencia para poder acomodar la formulación. La Simulación, por el contrario, puede proporcionar tantos detalles complicados como desee el analista.Todas las características relevantes del sistema pueden ser tenidas en cuenta, tales como la variabilidad de los tiempos de proceso de las operaciones, la fiabilidad de los equipos, restricciones de las instalaciones (fixture restrictions), restricciones de almacenamiento intermedio durante los procesos, decisiones complejas de enrutamiento, políticas de operación y restricciones de programación de operaciones. Las hipótesis restrictivas de simplificación, tales como las exigencias de linealidad o de tiempos constantes, no son necesarias. El resultado es un contexto experimental más realista en el cual verificar y comprobar las estrategias de diseño alternativas, lo cual, a su vez, añade seguridad a las conclusiones a que se llega mediante este planteamiento. En general las condiciones de utilización de la simulación son las siguientes según Shannon [39]: 1. No existe una formulación matemática completa del problema, o no se han desarrollado aún los métodos analíticos para resolver el modelo matemático. 2. Existen los métodos analíticos, pero las hipótesis simplificadoras, necesarias para su aplicación, desvirtúan las soluciones obtenidas y su interpretación.
  • 117. 117 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos 3. Los métodos analíticos existen, y en teoría están disponibles, pero los procedimientos numéricos son tan arduos y complejos que la simulación constituye un método más sencillo para obtener una solución. 4. Es deseable observar una historia simulada del proceso dentro de un horizonte temporal dado para poder estimar ciertos parámetros. 5. La simulación constituye la mejor alternativa por la dificultad de realizar experiencias en el contexto real. 6. Es necesario realizar una compresión temporal para estudiar la evolución del sistema a largo plazo. Un modelo de simulación describe pues el comportamiento diná- mico de un sistema en el tiempo. En la terminología que hemos introducido, el sistema está formado por entidades, elementos componentes cuyo comportamiento es seguido a través del sistema. Las entidades pueden pertenecer a diferentes clases, y poseen atributos identificativos que caracterizan su comportamiento, y por ende el del sistema. Las entidades de una clase dada tienen el mismo conjunto de atributos, aunque sus valores no tengan por que ser idénticos, y tenderán a seguir pautas de comportamiento similares en el tiempo. Las entidades pueden intervenir en actividades, solas o conjuntamente con otras entidades. En un instante determinado el sistema simulado tendrá una configuración dada, definida por las actividades de las entidades y los valores de sus atributos: esta será la caracterización del estado del sistema. El estado cambiará, discretamente, como consecuencia de la ocurrencia de un suceso. La secuencia de sucesos y los cambios de estado que determinan representan el comportamiento dinámico del sistema.
  • 118. SIMULACIÓN DE SISTEMAS DISCRETOS 118 De este planteamiento conceptual de la simulación se desprende que el control del flujo del tiempo en el proceso de simulación es el aspecto clave del proceso de simulación. Tradicionalmente se han propuesto dos procedimientos, un tratamiento síncrono y uno asíncrono. El tratamiento síncrono o de reparto del tiempo a intervalos regulares, consiste en desplazar el tiempo hacia adelante a intervalos iguales, es decir actualizar y examinar el modelo a intervalos regulares. Así, por ejemplo, si el intervalo considerado es de amplitud Dt, el modelo se actualizará en el instante t + Dt para los cambios ocurridos en el intervalo (t, t + Dt). Este enfoque plantea el problema de decidir cuál es la longitud apropiada de la amplitud del intervalo Dt. Evidentemente si la amplitud del intervalo de referencia es muy grande el comportamiento del modelo será muy burdo en relación con el del sistema puesto que será imposible tener en cuenta alguno de los cambios de estado que pueden ocurrir, mientras que por el contrario si el intervalo de tiempo es muy pequeño el modelo será reexaminado innecesariamente con gran frecuencia y el consiguiente incremento del coste computacional. Las dificultades para decidir apropiadamente en muchos casos la longitud del intervalo Dt hacen preferible utilizar un planteamiento asíncrono, en el que la amplitud del intervalo de tiempo es variable. En este caso el estado del modelo es examinado y actualizado únicamente cuando tiene lugar un cambio de estado. Esta es la situación típica cuando el cambio de estado es producido por la ocurrencia de un suceso, y puesto que entonces el tiempo es movido de suceso a suceso este enfoque recibe el nombre de técnica del suceso siguiente o dirigida por sucesos. El ejemplo del modelo de cola M/M/1 de la Sección 1.6 ilustra estos conceptos y materializa la idea de simulación de sistemas discretos por una técnica dirigida por sucesos.
  • 119. 119 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos 3.2. Características generales de los lenguajes de simulación de sistemas discretos: la «visión del mundo» de un lenguaje de simulación. La codificación de un modelo de simulación, de un sistema con sucesos discretos, en términos de un lenguaje de programación, de tipo general o especial para simulación, pone de manifiesto una serie de características comunes a todos ellos, como por ejemplo Fishman [40]: 1. La generación de muestras de números aleatorios uniformemente distribuidos en (0,1). 2. La generación de muestras de variables aleatorias con distribuciones específicas. 3. Los mecanismos de control y flujo del tiempo durante la simulación. 4. La determinación del suceso que ha de ser tratado a continuación del que lo está siendo (técnica next-event). 5. La adición, supresión o actualización de registros en estructuras de datos ad hoc, como por ejemplo listas que representan secuencias de sucesos. 6. La recolección y el análisis de los datos generados por la simulación. 7. La elaboración de informes sobre los resultados obtenidos. 8. La detección de condiciones de error. La existencia de estos y otros factores comunes a la mayor parte de los programas de simulación es lo que ha conducido al desarrollo de los lenguajes de simulación de propósito general, cuyo perfeccionamiento, estandarización y accesibilidad han sido los principales factores del incremento que ha experimentado el uso de la simulación en los últimos años. Una de las decisiones más importantes que ha de tomar un modelizador o analista para la realización de un estudio de simulación es la selección del lenguaje de computador en que va a programar el
  • 120. SIMULACIÓN DE SISTEMAS DISCRETOS 120 modelo.Algunas de las ventajas de programar el modelo de simulación en un lenguaje de simulación en vez de hacerlo en un lenguaje general como FORTRAN, PASCAL, o C, son las siguientes: 1. Los lenguajes de simulación proporcionan automáticamente muchas, si no todas, las características necesarias para la programación de un modelo de simulación, lo que redunda en una reducción significativa del esfuerzo requerido para programar el modelo. 2. Proporcionan un marco de trabajo natural para el uso de modelos de simulación. Los bloques básicos de construcción del lenguaje son mucho más afines a los propósitos de la simulación que los de un lenguaje de tipo general. 3. Los modelos de simulación son mucho más fácilmente modificables cuando están escritos en un lenguaje de simulación, y por consiguiente se pueden ejecutar con mayor facilidad y flexibilidad los cambios requeridos por los experimentos de simulación. 4. Muchos de los lenguajes de simulación proporcionan una asignación dinámica de memoria durante la ejecución, cosa que no ocurre con todos los lenguajes de propósito general. 5. Facilitan una mejor detección de los errores, especialmente los inherentes a la lógica del proceso de simulación. Los lenguajes de simulación para la simulación de sistemas discretos se eligen en base a lo atractivo de sus características, aunque hay una de ellas que resulta determinante e impone la naturaleza del lenguaje, es la estrategia, enfoque o visión del mundo inherente al lenguaje, utilizada para la selección del «suceso siguiente» y la gestión del tiempo. Kiviat [41], en un trabajo seminal, clasificó los procedimientos de control de tiempos de los lenguajes
  • 121. 121 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos de simulación de sucesos discretos, según la estrategia seguida en la selección de sucesos, en: 1. Programación de Sucesos (Event Scheduling). 2. Exploración de Actividades (Activity Scanning). 3. Interacción de Procesos (Process Interaction). LaTabla 11 muestra estrategias que conducen a una clasificación de los lenguajes de simulación [40,41]. El hecho de que algunos lenguajes, SIMSCRIPT II.5, SLAM, SLAM II y SIMAN aparezcan tanto como lenguajes según una estrategia de programación de sucesos (event scheduling), como de interacción de procesos (process interaction), responde a que su estructura y naturaleza permiten al usuario emplear ambas estrategias, lo que refleja la tendencia creciente a la incorporación de múltiples visiones del mundo en la estructura de un solo lenguaje.
  • 122. SIMULACIÓN DE SISTEMAS DISCRETOS 122 Con cualquiera de estas estrategias, cuando se selecciona el «suceso siguiente» para que sea procesado, se ejecuta la correspondiente «rutina de modelización» (bloque de código), para modelizar los cambios apropiados en el estado del modelo. Los conceptos de suceso condicional, o incondicional, son básicos para las estrategias. Un suceso incondicional es elegible para ser ejecutado cuando se llega al instante de tiempo para el que ha sido programado: depende totalmente del tiempo. Un suceso condicional puede depender de condiciones adicionales distintas del tiempo. Las condiciones se refieren usualmente a valores descriptores del estado de las componentes del sistema, por ejemplo, la desocupación, o el fin de la ocupación de un dispositivo del sistema modelizado. Una característica común a los tres planteamientos es que los programas a que dan lugar tienen una estructura jerárquica de tres niveles [40]: • Nivel ejecutivo, o del programa de control. • Nivel de operaciones (secuencia de sentencias que constituyen el programa de computador que constituyen el modelo propiamente dicho). • Nivel de rutinas de detalle, que ejecutan las acciones implicadas por cada una de las operaciones del modelo. El usuario de un lenguaje de simulación basado en uno de estos planteamientos no necesita conocer con detalle como está programado el ejecutivo, sino como funciona, es decir, lo que hemos llamado visión del mundo del lenguaje correspondiente. El ejecutivo es el que se encarga de identificar cuando tiene que ocurrir el siguiente suceso y que se ejecuten correctamente las operaciones por él implicadas en los momentos adecuados. La estrategia de programación de sucesos (event scheduling, ES) implica una secuencia de sucesos incondicionales a lo largo del tiempo. Por lo tanto, la visión del mundo de un lenguaje, o modelo expresado en tal lenguaje, que incorpore la estrategia ES consiste en considerar la operación del sistema como una secuencia temporal,
  • 123. 123 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos ordenada, de sucesos incondicionales, que se implanta de la manera siguiente: El procedimiento ES de control del tiempo selecciona de la lista de sucesos aquel cuyo tiempo de ocurrencia es el más próximo, resolviendo los empates por las prioridades asignadas o por defecto, actualiza el tiempo del reloj de simulación, igualando su valor al del instante en que ocurre el suceso, y llama a la rutina correspondiente al tratamiento del suceso. Cualquier verificación de una condición diferente de la del tiempo del reloj debe realizarse dentro de las rutinas de tratamiento de los diferentes sucesos. Los sucesos se eligen y progresan sucesivamente hasta el instante de terminación. En el caso del modelo de colas simple que hemos utilizado en el Capítulo 1 los sucesos primarios que cambian el estado del sistema, en una modelización por programación de sucesos (event scheduling), son el suceso de llegada al sistema de un nuevo cliente, y el de finalización de un servicio, según la descripción que hemos dado en el diagrama de simulación del sistema de colas ilustrado en la Figura 12, descripción cuya lógica, según la metodología de programación de sucesos (event scheduling), se traduce en los diagramas de la Figura 20. La Figura 21, Emshoff [42], ilustra gráficamente el esquema de la rutina ejecutiva para la estrategia de programación de sucesos (event scheduling). La estrategia de exploración de actividades (activity scanning, AS) elige el suceso siguiente basándose en ambos, el tiempo programado para la ocurrencia del suceso y la verificación de las condiciones. El concepto básico es la actividad, que conceptualmente es una transición de estado del sistema que requiere un período de tiempo. Una actividad se representa habitualmente mediante dos sucesos distintos que marcan respectivamente el principio y el final de la misma. La visión del mundo que corresponde a un lenguaje, o modelo de simulación programado en un lenguaje, basado en la estrategia
  • 124. SIMULACIÓN DE SISTEMAS DISCRETOS 124
  • 125. 125 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 126. SIMULACIÓN DE SISTEMAS DISCRETOS 126 AS, considera que el sistema consta de componentes que desarrollan actividades sujetas a actividades específicas. En la implantación de esta estrategia se particularizan las componentes de «tipo_activo», o componentes «móviles» del sistema, que pueden tener asociada una rutina de actividad que cuando se ejecuta modela las fases de la componente; cada componente de «tipo_activo» tiene también asociado un reloj interno que indica en que instante la componente vuelve a poder ser tenida en cuenta para ser activada de nuevo, y una rutina de condición para determinar si se reúnen la condiciones, distintas del tiempo, requeridas para su reactivación. El procedimiento de control del tiempo AS explora las actividades en orden de prioridad para su elegibilidad en el tiempo y otras condiciones complementarias de activación, y ejecuta la rutina correspondiente a la actividad de la primera componente cuyas condiciones de activación se satisfacen. En el caso del ejemplo de cola simple que nos ocupa podemos distinguir tres clases de actividad, la desencadenada por la ocurrencia de la llegada de un cliente al sistema, la de la finalización del servicio y la de inicialización del servicio, cuyas rutinas correspondientes quedan descritas por los diagramas de la Figura 22. La Figura 23, Emshoff [42], representa la estructura del ejecutivo correspondiente a esta estrategia de simulación. La estrategia de interacción de procesos (process interaction, PI) tiene características híbridas que la relacionan tanto con la estrategia ES como con la AS. La visión del mundo de un lenguaje, o modelo de simulación programado en un lenguaje, basado en una estrategia PI contempla el progreso de las componentes del sistema a través de una secuencia de pasos, o procesos, cada uno de los cuales puede tener dos posibles componentes, un segmento de condición, cuya ejecución identifica si se puede pasar a ejecutar la segunda componente, un segmento de acción.
  • 127. 127 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 128. SIMULACIÓN DE SISTEMAS DISCRETOS 128
  • 129. 129 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos En el caso de la cola simple la rutina del proceso correspondiente al cliente es la descrita por el diagrama de la Figura 24. La implantación de la estrategia PI en un lenguaje como el GPSS, (General Purpose Simulation System, lenguaje pionero desarrollado por Gordon en 1964 [43], que a pesar de los años transcurridos mantiene su vigencia gracias a las continuas actualizaciones [44]) se basa en un procedimiento de control del tiempo que utiliza dos listas de sucesos: • Una lista de sucesos futuros (future events list, FEL), que contiene información sobre los eventos programados para ser ejecutados en un instante posterior. • Una lista de sucesos en curso (current events list, CEL), que contiene información sobre los eventos que ya son elegibles desde el punto de vista del momento en que tienen que ser ejecutados, pero cuyas otras condiciones pueden no satisfacerse aún. La información sobre cada suceso contiene una indicación sobre la localización del paso del proceso en curso en que se encuentra la componente. Con el avance del tiempo, (exploración de FEL para determinar en qué instante ocurrirá el siguiente suceso, y avanzar el reloj de simulación hasta ese instante) todos los sucesos programados para ese instante pasan de FEL a CEL, (movimientos entre listas, aquellas entidades de FEL cuya reactivación ha de tener lugar en ese instante del tiempo marcado por el reloj de simulación pasan de FEL a CEL) entonces tiene lugar una exploración de CEL, consistente en la evaluación de las condiciones de la rutina de entrada para determinar si la correspondiente componente puede proceder al paso siguiente, en caso afirmativo se ejecuta el segmento de acción del paso. Una componente se desplaza a lo largo de tantos pasos sucesivos del modelo como le sea posible, por ejemplo, en tanto en cuanto el tiempo no tenga que avanzar y sea afirmativa la respuesta a la evaluación de los segmentos
  • 130. SIMULACIÓN DE SISTEMAS DISCRETOS 130
  • 131. 131 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos de condición. Cuando una componente se «para», debido al tiempo o a otras condiciones, entonces la exploración pasa a tener en cuenta el elemento siguiente de CEL; cuando no se puede continuar moviendo ninguna de las componentes de CEL entonces se produce el siguiente avance en el flujo del tiempo. La Figura 25 esquematiza la estructura del ejecutivo para la estrategia de interacción de procesos. Si un lenguaje de simulación incluye más de una visión del mundo o estrategia, lo que cada vez es más corriente en el diseño de nuevos lenguajes o nuevas versiones de antiguos, el modelizador está aún constreñido por la estrategia elegida para representar una porción de su modelo, de ahí la necesidad de una buena comprensión de los conceptos subyacentes a cada estrategia y el condicionamiento que imponen sobre la representación del modelo en sus términos. 3.3. Análisis algorítmico de las estrategias de simulación de sistemas discretos Cada una de las estrategias de simulación que hemos propuesto es susceptible de una representación algorítmica genérica, así como las rutinas para el tratamiento de sucesos de la estrategia ES, las rutinas de condición y las de actividades para la estrategia AS, y los segmentos de condición y acción para la estrategia PI. En la representación algorítmica que vamos a dar se supone que los algoritmos utilizan algún conjunto de procedimientos de gestión de estructuras de datos (por ejemplo listas), para ayudar a la introducción y recuperación de las representaciones de la información sobre los sucesos. En el planteamiento que vamos a proponer, y para mantener el carácter genérico de la representación, evitaremos suposiciones sobre las estructuras de datos que se pueden utilizar en las implantaciones específicas de las estrategias. La descripción algorítmica que vamos a hacer será, pues, precisa solo en la descripción de los aspectos
  • 132. SIMULACIÓN DE SISTEMAS DISCRETOS 132
  • 133. 133 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos esenciales de la gestión del tiempo, incluyendo las implicaciones correspondientes a las rutinas de modelización, aunque excluyendo los detalles que no dependen de la estrategia. El punto de partida para esta representación algorítmica es un análisis de las características que dependen de la estrategia adoptada y de las que dependen del problema específico que se simula. De acuerdo con Kiviat [41], los lenguajes de simulación ofrecen, en general, las siguientes capacidades y características: 1. Modelización del estado del sistema. 2. Modelización de la dinámica del sistema. 3. Herramientas para el muestreo estadístico. 4. Especificaciones sobre el proceso de recogida de datos. 5. Recogida de datos generados por la simulación. 6. Análisis de los datos recogidos. 7. Presentación de resultados. 8. Monitorización de la simulación y herramientas de depuración del modelo. 9. Procedimientos de inicialización de la simulación. 10. Herramientas auxiliares complementarias. Las características 1, 2 y 9 son intrínsecas, dependen de la estrate- gia elegida y por lo tanto son las que pueden ser objeto de una descripción algorítmica genérica de la estrategia, mientras que las restantes son relativamente independientes de la estrategia. A partir de la identificación de los elementos intrínsecos podemos dar las siguientes descripciones de las estrategia en pseudocódigo [45] en las Tablas 12, 13 y 14. 3.4. Un ejemplo de lenguaje de simulación de sistemas discretos: El GPSS GPSS es el acrónimo de General Purpose Simulation System, un sistema, o lenguaje, de simulación cuyo propósito es, como su
  • 134. SIMULACIÓN DE SISTEMAS DISCRETOS 134
  • 135. 135 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 136. SIMULACIÓN DE SISTEMAS DISCRETOS 136 nombre indica, el de poder servir para modelizar y simular una gama de sistemas lo más amplia, o general posible. Históricamente fue uno de los primeros lenguajes de simulación propiamente dichos [3, 43], estructurado como lenguaje de programación y no como una librería de rutinas diseñadas para ser utilizadas como componentes de un simulador escrito en un lenguaje de propósito general, pero la solidez de las concepciones en que se basa, y la calidad de su implantación le han permitido no sólo sobrevivir, sino adaptarse, evolucionar y combinarse simbióticamente con entornos de animación gráfica como el PROOF ANIMATION, lo que hace que siga siendo uno de los lenguajes de simulación de sistemas discretos más utilizados en la práctica. Desde el punto de vista de su estructura como lenguaje de simulación de sistemas discretos el GPSS combina la estrategia de interacción de procesos con una descripción del modelo del sistema en términos de diagramas de bloques. La descripción de un sistema en términos de un diagrama de bloques es un procedimiento muy familiar y existen muchos formalismos para formalizar tal descripción, el GPSS adopta un formalismo en el que cada bloque tiene una función precisa para la representación de las entidades del sistema y de sus funciones o características, de manera que cada bloque se corresponde unívocamente con una sentencia del lenguaje de programación, con una sintaxis en la que los descriptores de la función o de los atributos de la entidad se corresponden con los parámetros de las sentencias del lenguaje. A cada tipo de bloque se le da un nombre nemotécnico que describe la acción específica del mismo, el bloque se representa por medio de un símbolo particular. Como consecuencia de este convenio el modelo del sistema descrito mediante tales bloques es al mismo tiempo el programa de simulación en el lenguaje. En la particular visión del mundo del GPSS hay entidades móviles, o transacciones, que se mueven a lo largo de rutas en la estructura de bloques del modelo a medida que se desarrolla la simulación. La naturaleza de las transacciones depende de la del sistema, así, por ejemplo, en un
  • 137. 137 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos sistema de comunicaciones las transacciones pueden representar mensajes, en un sistema de transporte pueden representar vehículos o envíos, en un sistema informático programas de ordenador, etc., etc. Las transacciones nacen en bloques especiales, bloques GENERATE, se mueven a través de los restantes bloques según rutas específicas, sufren demoras o detenciones, pueden ver modificados algunos de sus atributos como consecuencia de las acciones correspondientes en algunos de los bloques, y se destruyen en bloques TERMINATE diseñados para tal función. De acuerdo con las características de los sucesos primarios y los condicionales propios de la estrategia de interacción de procesos, las transacciones pueden encontrarse en diversos estados: • Activa: Es la transacción que, en un instante determinado, se mueve a través de los bloques. • Demorada: Transacción que se encuentra retenida en algún bloque pero tiene un tiempo previsto para su activación. • Detenida: Transacción retenida en algún bloque paro sin un tiempo previsto para su activación que depende de la modificación del estado de alguna de las entidades fijas del sistema (suceso condicional). Las entidades fijas del sistema reciben el nombre de procesadores en el GPSS y representan sistemas de colas, instalaciones («facilities» y «storages»), semáforos y entidades lógicas. Ilustraremos las particularidades de la modelización de un sistema en GPSS mediante un diagrama de bloques por medio del ejemplo arquetípico de la cola simple. La Figura 24 de la Sección 3.2
  • 138. SIMULACIÓN DE SISTEMAS DISCRETOS 138 ilustraba la rutina del proceso de un cliente en dicho sistema de colas. La parte izquierda de la Figura 26 reproduce el diagrama de dicha rutina detallando algunos aspectos de lo que requiere su programación en computador. Las dos primeras funciones a realizar cuando recibe control del programa ejecutivo son la determinación de cuándo tendrá lugar la siguiente llegada al sistema, generación de la siguiente llegada, y su correspondiente programación, es decir inclusión cronológica en la lista de acontecimientos futuros. Estas dos funciones se realizan siempre en este orden y son las primeras, como corresponde, desde el punto de vista de la estructura conceptual del proceso, a la estrategia de interacción de procesos, la diferencias entre las maneras de realizar estas funciones en sistemas distintos, a la hora de simularlos con esta estrategia, residen en las características del proceso aleatorio que describe las llegadas al sistema: distribuciones de probabilidad, parámetros de las mismas, etc.. El bloque GENERATE del GPSS realiza estas dos funciones y engloba en sí los posibles bloques descriptivos de las mismas, tal como indica la relación de la Figura 26. Los parámetros del bloque GENERATE permiten especificar las características del proceso de generación de llegadas al sistema. Cuando el servidor está ocupado el cliente ha de esperar en la cola. Informáticamente, tal como indica la Figura 26, esto significa crear un registro que representa al cliente, incluir el registro en un fichero, o estructura de datos ad hoc, que representa la cola, y mantener el registro en ese fichero hasta que se den las circunstancias que le permitan continuar su camino en el sistema, es decir salir de la cola y pasar a ocupar el servidor para recibir el servicio requerido. El bloque QUEUE engloba y realiza estas tres operaciones tal como indican las relaciones de la Figura 26. Cuando el servidor no está ocupado el cliente pasa a ocuparlo lo que se representa cambiando el estado de la entidad servidor,
  • 139. 139 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 140. SIMULACIÓN DE SISTEMAS DISCRETOS 140 función desempeñada por el bloque SEIZE como describen las relaciones de la Figura 26. En el momento en que el servidor vuelve a quedar libre puede empezar a recibir servicio el cliente de la cola al que le corresponda el turno según la política de gestión de la misma. Informáticamente ello comporta extraer del fichero que representa la cola el registro correspondiente a tal cliente y darlo de baja del fichero, operaciones que realiza el bloque DEPART tal como indica la Figura 26. En el momento en que un cliente pasa a ocupar el servidor hay que determinar la duración del tiempo de servicio de acuerdo con las características del proceso aleatorio que lo representa, y crear el suceso fin de servicio correspondiente e incluirlo en la lista de sucesos futuros en la posición que cronológicamente le corresponda. Operaciones que lleva a cabo el bloque ADVANCE, cuyos parámetros dependen del tipo de distribución que describe el proceso de servicio. Finalmente cuando el cliente ha terminado de recibir servicio hay que cambiar el estado del servidor volviendo a ponerlo en situación de disponible, y hay que dar de baja del sistema al cliente. El bloque RELEASE ejecuta la primera función y el bloque TERMINATE la segunda. El sirviente y la cola son las entidades fijas del sistema y los clientes las móviles o transacciones de este caso. Hemos incluido un bloque adicional, el TABULATE, no considerado en la descripción conceptual de la Figura 24, cuya función es la recogida de datos de la simulación para proceder, al final, al análisis de resultados. Como ejemplo de utilización del GPSS veamos como podríamos analizar el caso del puesto de peaje de una autopista, que hemos utilizado en el Capítulo 2 como ejemplo de análisis de
  • 141. 141 datos observados para estimar la función de llegadas al puesto de peaje, y la distribución del proceso de servicio. Recordemos que el análisis de las observaciones nos llevaba a la conclusión de que las llegadas podían ser modelizadas adecuadamente mediante una función exponencial de media 16,398 segundos entre llegadas consecutivas, y los servicios eran una combinación de una distribución de tiempo constante, y una distribución gamma de parámetros a = 1,25 y b = 7,5, (G (1,25, 7,5)). En consecuencia el modelo de colas que describe el sistema del ejemplo es un modelo M/G/1, modelo analítico que, como hemos visto conlleva cierta dificultad teórica, por lo que decidimos simularlo utilizando el GPSS. El modelo GPSS de cola con un único sirviente (puesto de peaje único) es el descrito por el diagrama de bloques de la Figura 26, que se traduce en el siguiente programa: LINE#STMT# IF DO BLOCK# *LOC OPERATION A,B,C,D,E,F ,G COMMENTS 1 1 SIMULATE 2 2 INTEGER &I 3 3 TPAGO FUNCTION RN(2), D15 4 4 0.0,3.64/0.142,6.09/0.354,8.39/0.496,10.76/0.608,13.14/0.737,15.51/ 5 5 0.804,17.88/0.845,20.26/0.883,22.63/0.916,25.00/0.954,27.38/29.75/ 6 6 0.97,32.12/0.983,36.87/1.0,62.98 7 7 1 GENERATE RVEXPO(1,16.398) 8 8 2 QUEUE COLAP 9 9 3 SEIZE PEAJE 10 10 4 DEPART COLAP 11 11 5 ADVANCE FN(TPAGO) 12 12 6 RELEASE PEAJE 13 13 7 TERMINATE 1 14 14 1 DO &I=1,21,1 15 15 1 START 240 16 16 1 RESET 17 17 ENDDO 18 18 END La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 142. SIMULACIÓN DE SISTEMAS DISCRETOS 142 La primera sentencia es una sentencia de control que le indica al compilador del GPSS que si la compilación acaba satisfac- toriamente proceda a ejecutar el modelo. La segunda sentencia es una indicación de que vamos a utilizar la variable entera I para controlar la ejecución de las replicaciones del modelo. TPAGO es el nombre que le damos a la función empírica que modeliza el proceso de pago, cuyos valores corresponden a la tabla que hemos representado gráficamente en la Figura 16. El GPSS utiliza un proceso de interpolación similar al descrito en el Capítulo 2 para evaluar esta función, en combinación con el generador de números aleatorios número 2. La sentencia GENERATE genera las llegadas de acuerdo con la distribución exponencial que hemos ajustado, utilizando el generador de números aleatorios número 1. COLAP identifica la cola ante el peaje, y PEAJE es, en la terminología GPSS, una «facility» que representa el puesto de peaje. El tiempo que se tarda en proceder al pago, es decir la emulación del proceso de pago, la realiza el bloque ADVANCE evaluando la función TPAGO para cada transacción. Completa el programa un bloque DO de sentencias de control que repite 21 veces la simulación, generando 240 llegadas cada vez, y poniendo a cero los contadores de recogida de resultados pero no el estado del modelo por medio de la instrucción RESET, por lo que cada replicación recoge observaciones independientes pero el último estado de una es el primero de la siguiente. Reproducimos a continuación los resultados producidos por este modelo de simulación en GPSS para las tres primeras repeticiones:
  • 143. 143 1ª Ejecución RELATIVE CLOCK: 4207,8111 ABSOLUTE CLOCK: 4207,8111 — AVG-UTIL-DURING — FACILITY TOTAL AVAIL UNAVL ENTRIES AVERAGE CURRENT TIME TIME TIME TIME/XACT STATUS PEAJE 0,808 240 14,166 AVAIL QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT CONTENTS CONTENTS ENTRIES ENTRIES ZEROS COLAP 11 2,289 241 40 16,6 AVERAGE $AVERAGE QTABLE CURRENT TIME/UNIT TIME/UNIT NUMBER CONTENTS 39,962 47,914 1 2ª Ejecución RELATIVE CLOCK: 3894,2482 ABSOLUTE CLOCK: 8102,0593 — AVG-UTIL-DURING — FACILITY TOTAL AVAIL UNAVL ENTRIES AVERAGE TIME TIME TIME TIME/XACT PEAJE 0,926 240 15,027 QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT CONTENTS CONTENTS ENTRIES ENTRIES ZEROS COLAP 20 5,383 255 20 7,8 AVERAGE $AVERAGE QTABLE CURRENT TIME/UNIT TIME/UNIT NUMBER CONTENTS 82,211 89,208 15 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 144. SIMULACIÓN DE SISTEMAS DISCRETOS 144 3ª Ejecución RELATIVE CLOCK: 3720,2174 ABSOLUTE CLOCK: 11822,2767 — AVG-UTIL-DURING — FACILITY TOTAL AVAIL UNAVL ENTRIES AVERAGE CURRENT TIME TIME TIME TIME/XACT STATUS PEAJE 0,911 240 14,123 AVAIL QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT CONTENTS CONTENTS ENTRIES ENTRIES ZEROS COLAP 22 7,278 245 17 6,9 AVERAGE $AVERAGE QTABLE CURRENT TIME/UNIT TIME/UNIT NUMBER CONTENTS 110,513 118,753 5 Los resultados nos informan de que el puesto de peaje ha operado casi al límite de su capacidad, estando ocupado el 91% del tiempo (3ª Ejecución, columna «Total Time»), ha habido un promedio de poco más de siete coches esperando a que les llegase el turno, (columna «Average Contents»), que es la estimación por simulación de la longitud media de la cola, y los vehículos han tenido que esperar 110,5 segundos en promedio, (columna «Average Time Unit»), lo que representa una estimación del tiempo medio de espera. Aunque la espera es algo mayor si en lugar de promediar sobre todos los vehículos promediamos únicamente sobre aquellos que han llegado al sistema cuando había alguien delante (columna «$Average Time Unit»). En consecuencia, los resultados producidos por el modelo confirman la situación conflictiva que habían detectado los responsables de la explotación de la autopista. La cuestión es ¿qué hacer? Concluiremos esta sucinta exposición del GPSS con el ejemplo del taller de manufactura cuyo modelo conceptual hemos construido
  • 145. 145 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 146. SIMULACIÓN DE SISTEMAS DISCRETOS 146 en el Capitulo 1, y cuyo posible modelo analítico hemos comentado. Se trata en este caso de la situación en que pasamos directamente del modelo conceptual al de simulación en ordenador aprovechando las características del sistema (sucesos discretos), y las propiedades de un lenguaje, el GPSS, específicamente diseñado para poder realizar este paso directo. El pre-modelo descriptivo, o modelo conceptual, en términos de una red de colas nos va a servir de base para una modelización en GPSS. La Figura 27 muestra la traducción del modelo descriptivo de la Figura 3 a un modelo de diagrama de bloques GPSS. En este caso se trata de un diagrama compacto que muestra las posibilidades de direccionamiento indirecto de las versiones avanzadas del GPSS. Un análisis más detallado de la lógica del proceso representado esquemáticamente en la Figura 3 nos permite identificar que para cada tipo de producto, el proceso de fabricación sigue un ciclo que puede describirse en los términos siguientes: • La pieza tipo entra en la cola del primer grupo de máquinas de su proceso de fabricación, espera en la cola hasta que hay disponible una máquina del grupo, entonces pasa a ocuparla (combinación QUEUE/DEPART en términos del GPSS). • La ocupación de una máquina del grupo es modelizada mediante un bloque ENTER, «storage» que representa la grupo, cuya capacidad es el número de máquinas del grupo. • La pieza ocupa la máquina mientras dura la operación correspondiente, duración aleatoria determinada por RVEXPO(2,1.0)* tiempo medio fabricación, producto de la función exponencial de media 1.0 generada mediante el generador número 2 de números aleatorios del GPSS y el tiempo medio de fabricación del tipo de producto. • Terminada la operación de la pieza en la máquina esta queda libre (bloque LEAVE del GPSS). Una forma primaria de construir el modelo consiste en repetir este ciclo tantas veces como tipos de producto, sin embargo el GPSS
  • 147. 147 permite una programación más compacta del modelo mediante direccionamientos indirectos utilizando funciones simbólicas como las GRUPO y COLA del listado adjunto, cuyos argumentos son índices que identifican los itinerarios de las piezas entre los grupos de máquinas, y cuyos argumentos son, respectivamente, las identidades de los grupos y las colas correspondientes. Ambas funciones tienen como variable independiente parámetro auxiliar CONT que controla el itinerario del producto de cada tipo (identificado por la función TIPO) entre los grupos de máquinas y las duraciones de las operaciones. El diagrama de bloques representa la formalización del ciclo genérico en GPSS cuando las identificaciones de los «storages» que representan los grupos de máquinas, y las colas correspondientes se obtienen por medio de las evaluaciones de las funciones simbólicas GRUPO y COLA (Figura 27). El listado adjunto completa el programa para el modelo de simulación añadiendo a las sentencias que corresponden a los bloques GPSS del diagrama de la Figura 27 las sentencias de directivas del compilador, de definición de datos y de control necesarias para la ejecución del programa tras una compilación satisfactoria. * MODELO DELTALLER DE MANUFACTURA CON 6 GRUPOS DE MAQUINASYTRES * TIPOS DE PRODUCTOS DIFERENTES QUE REQUIEREN EL USO DE ALGUNA DE * LAS MAQUINAS DE ALGUNO DE LOS GRUPOS EN UN ORDENY UNOS TIEMPOS DE * OPERACIÓN QUE DEPENDEN DELTIPO DE PRODUCTO * SIMULATE * * AQUÍ EMPIEZA EL BLOQUE DE DIRECTIVAS DEL COMPILADOR, SENTENCIAS DE * CONTROLY DEFINICIÓN DE DATOS * * ÍNDICEDELASENTENCIADOQUECONTROLALAREPLICACIÓNDELASEJECUCIONES * INTEGER &I La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 148. SIMULACIÓN DE SISTEMAS DISCRETOS 148 * * CADA GRUPO DE MAQUINAS ES IDENTIFICADO COMO UN «STORAGE», LA * FUNCIÓN GRUPO,CUYA VARIABLE INDEPENDIENTE ES EL PARÁMETRO CONT * CUYOSVALORESIDENTIFICANELTIPODEPRODUCTOQUESEESTAFABRICANDO, * IDENTIFICA EL GRUPO ACTIVO ENCADA FASE DEL PROCESO DE PRODUCCIÓN * GRUPO FUNCTION PH(CONT), S12, S 1, GR1/2, GR3/3, GR2/4, GR6/5, GR5/6, GR4/7, GR2/8, GR1/9,GR5/10, GR4/ 11, GR3/12, GR6 * * LAFUNCIÓNCOLAIDENTIFICALACOLADEACCESOACADAGRUPODEMAQUINAS * COLA FUNCTION PH(CONT), S12, Q 1, CL1/2, CL3/3, CL2/4, CL6/5, CL5/6, CL4/7, CL2/8, CL1/9, CL5/10, CL4/ 11, CL3/12, CL6 * * LA FUNCIONTMEDIO IDENTIFICA ELTIEMPO MEDIO DE OPERACIÓN PARA LAS * MAQUINASDECADAGRUPOSEGÚNELTIPODEPRODUCTOQUEHANDETRATAR * TMEDIO FUNCTION PH(CONT), D12 1,125 / 2,35 / 3,20 / 4,60 / 5,105 / 6,90 / 7,65 / 8,235 / 9,250 / 10,50 / 11,30 / 12,25 * * LA FUNCIONTIPO IDENTIFICA ELTIPO DE PRODUCTO QUE SE HA DE FABRICAR * SEGÚN LA PROBABILIDAD ESPECIFICADA * TIPO FUNCTION RN(1), D3 .24,1 / .68,2 / 1,3 * * LAS FUNCIONES INICIOY FIN SON FUNCIONES AUXILIARES QUE CONTROLAN LA * EJECUCIÓN DEL BUCLE DE PROGRAMA * INICIO FUNCTION PH(PROD), D3 1,1 / 2,5 / 3,8 FIN FUNCTION PH(PROD), D3 1,5 / 2,8 / 3,13
  • 149. 149 * * DEFINICIÓNDELASCAPACIDADES(NUMERODEMAQUINASENCADAGRUPO)DE * CADA «STORAGE» QUE REPRESENTA UN GRUPO DE MAQUINAS * GR1 STORAGE 14 GR2 STORAGE 5 GR3 STORAGE 4 GR4 STORAGE 8 GR5 STORAGE 16 GR6 STORAGE 4 * * SENTENCIASCORRESPONDIENTESALDIAGRAMADEBLOQUESQUEMODELIZA * * ELSISTEMALASENTENCIAGENERATEGENERAUNATRANSACCIÓN(PRODUCTO * A FABRICAR) CADA 9.6MINUTOS EN PROMEDIO (50 TRANSACCIONES/ PRODUCTOS * CADA 8 HORAS) CON UN TIEMPOENTRE LLEGADAS EXPONENCIALMENTE DISTRIBUIDO (FUNCION RVEXPO) * GENERATE RVEXPO(1,9.6) * * ASIGNA A LATRANSACCIÓN UNA IDENTIDAD COMOTIPO DE PRODUCTO SEGÚN * LA PROBABILIDAD DEFINIDA POR LA FUNCION TIPO * ASSIGN PROD,FN(TIPO),PH * * ASIGNA UNVALOR AL PARÁMETRO CONT SEGÚN ELTIPO DE PRODUCTO QUE * REPRESENTA LA TRANSACCIÓN PARA CONTROLAR EL BUCLE QUE SIMULA EL PROCESO DE PRODUCCIÓN * QUE PASA POR UNA MAQUINA DEL GRUPO CORRESPONDIENTE EN EL ORDEN DE LA * SECUENCIADEFINIDAYLAOCUPAELTIEMPOASIGNADOPORELPROGRAMADE * PRODUCCIÓN * ASSIGN CONT,FN(INICIO),PH La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 150. SIMULACIÓN DE SISTEMAS DISCRETOS 150 * * BUCLE DE SIMULACIÓN DEL PROCESO DE PRODUCCIÓN * REPETIR QUEUE FN(COLA) ENTRA EN LA COLA DEL GRUPO ENTER FN(GRUPO) OCUPA UNA MAQUINA DEL GRUPO DEPART FN(COLA) SALE DE LA COLA ADVANCE RVEXPO(2,1.0)*FN(TMEDIO) TIEMPO DE EJECUCIÓN LEAVE FN(GRUPO) LIBERA LA MAQUINA ASSIGN CONT+,1,PH TEST E PH(CONT),FN(FIN),REPETIR TERMINATE 0 * * AL BUCLE DE FABRICACIÓN NO SE LE HA PUESTO LIMITE, EL SIGUIENTE SEGMENTO * DE PROGRAMA GENERA 5 TRANSACCIONES (START 5) UNA CADA 480 MINUTOS LO QUE * CORRESPONDEAUNASEMANADE5DÍASDE8HORAS.ELPROCESOSEREPITE 5 * VECES PARA SIMULAR 5 SEMANAS * GENERATE 480 TERMINATE 1 * * OTRAS SENTENCIAS DE CONTROL PARA CONTROLAR LA EJECUCIÓN DE LAS * REPLICACIONES * DO &I=1,5,1 START 5 RESET ENDDO END FIN DEL MODELO El listado adjunto muestra los resultados de la simulación de las operaciones durante la primera semana (2400 minutos = 480 minutos/ día x 5 días). La primera tabla muestra el número de transacciones
  • 151. 151 que han pasado por los diferentes bloques del modelo. Por el bloque número 1, bloque GENERATE, han pasado 248 transacciones, de las cuales 200 han llegado al bloque TERMINATE, es decir corresponden a piezas completadas, y 48 han quedado retenidas. Analizando la columna CURRENT CONTENTS de la tabla que presenta los resultados para los «storages» podemos comprobar que el total de piezas retenidas en alguna máquina de alguno de los grupos al finalizar la semana es de 41, que añadidas a las 7 retenidas en la cola del grupo 4, completan las 48 piezas que no han sido acabadas durante la semana. Las columnas de las tablas para los «storages» y las colas permiten identificar el porcentaje de tiempo que cada grupo de máquinas ha estado trabajando, el número total de piezas (ENTRIES) que han sido tratadas en cada grupo de máquinas, el tiempo medio que cada pieza ha ocupado cada máquina, el contenido medio de cada grupo, o nivel medio de utilización de cada grupo, las esperas de las piezas hasta que han dispuesto de máquina en cada uno de los grupos, el porcentaje de piezas que no han tenido que esperar porque cuando han llegada al grupo había una máquina disponible, tiempos medios de espera, etc., etc. RELATIVE CLOCK: 2400,0000 ABSOLUTE CLOCK: 2400,0000 BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL 1 248 11 200 2 248 12 5 3 248 13 5 REPETIR 7 863 5 856 6 856 7 41 856 8 815 9 815 10 815 — AVG-UTIL-DURING — La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos
  • 152. SIMULACIÓN DE SISTEMAS DISCRETOS 152 STORAGE TOTAL AVAIL UNAVL ENTRIES AVERAGE CURRENT PERCENT CAPACITY TIME TIME TIME TIME/UNIT STATUS AVAIL GR1 0,640 135 159,314 AVAIL 100,0 14 GR3 0,430 113 36,547 AVAIL 100,0 4 GR2 0,639 147 52,185 AVAIL 100,0 5 GR6 0,469 112 40,228 AVAIL 100,0 4 GR5 0,811 184 169,171 AVAIL 100,0 16 GR4 0,612 165 71,187 AVAIL 100,0 8 AVERAGE CURRENT MAXIMUM CONTENTS CONTENTS CONTENTS 8,961 12 14 1,721 1 4 3,196 5 5 1,877 3 4 12,970 12 16 4,894 8 8 QUEUE MAXIMUM AVERAGE TOTAL ZEROPERCENT AVERAGE CONTENTS CONTENTS ENTRIES ENTRIES ZEROS TIME/ UNIT CL1 2 0,029 135 130 96,3 0,523 CL3 6 0,224 113 93 82,3 4,755 CL2 6 0,407 147 100 68,0 6,640 CL6 5 0,214 112 82 73,2 4,581 CL5 9 1,010 184 118 64,1 13,172 CL4 8 0,614 172 123 71,5 8,563 $AVERAGE QTABLE CURRENT TIME/UNIT NUMBER CONTENTS 14,119 0 26,863 0 20,767 0 17,103 0 36,723 0 30,057 7
  • 153. 153 La simulación de sistemas discretos: lenguajes de simulación de sistemas discretos El análisis de estos resultados nos proporciona una información interesante sobre el funcionamiento del sistema de manera inmediata, sin proceder a un tratamiento más detallado. A los comentarios que acabamos de hacer sobre la interpretación de los resultados proporcionados por la simulación, podemos añadir los siguientes. La columna «current contents» del segundo conjunto de información producida por el simulador, nos indica que 12 piezas están aún en proceso en el grupo 1, 1 en el grupo 3, 5 en el 2, etc.. La columna «entries» nos informa de que en el grupo 1 se han tratado durante la semana simulada un total de 135 piezas, 113 en el grupo 3, 147 en el 2, etc.. La columna «total time» nos indica la fracción del tiempo total de trabajo disponible (2400 minutos) que han estado ocupadas las máquinas de cada grupo, lo que nos permite identificar que si bien todos los grupos han estado ocupados entre el 45% y el 60% del tiempo, hay un grupo, el 5, que ha estado ocupado el 81%, por lo tanto está próximo a la saturación y podría convertirse en un cuello de botella del proceso de fabricación. Aunque para la demanda simulada las condiciones de fabricación no han producido conflictos es interesante observar que en algún momento todos los grupos han estado ocupados al 100%, es decir todas las máquinas de cada grupo estaban tratando alguna pieza, información contenida en la columna «maximum contents», lo que ha provocado colas que podrían causar otro tipo de problemas si por ejemplo no hay suficiente espacio de almacenamiento para las piezas que acaban de ser tratadas en alguna máquina de un grupo y esperan a que quede libre una máquina de otro grupo para completar el tratamiento. Esta información aparece en la columna «maximun contents» del tercer conjunto de información, el referente a las colas. Las restantes columnas tienen interpretaciones similares referidas a los tiempos de espera, etc.
  • 154. SIMULACIÓN DE SISTEMAS DISCRETOS 154
  • 156. SIMULACIÓN DE SISTEMAS DISCRETOS 156 4.1. Diseño de experimentos de simulación En el Capítulo 1 hemos puesto de manifiesto el carácter experimental de la simulación, subrayando el papel de los modelos de simulación, sujetos del experimento, como sustitutos de la realidad. Un estudio de simulación según la metodología que hemos establecido busca respuestas a preguntas sobre el sistema objeto del estudio a través de la información que le proporcionan los experimentos con el modelo del sistema. Los experimentos buscan, en general, respuestas a preguntas del tipo ¿qué pasaría si?, preguntas que pueden plantearse en cualquier etapa del ciclo de vida del sistema, tanto en la fase de diseño, en cuyo caso el objetivo de las respuestas es encontrar soluciones a las diferentes alternativas de diseño, o investigar los posibles efectos de las diferentes configuraciones factibles; como en fases posteriores, con un sistema ya implantado, cuando se plantea la posibilidad de cambios o modificaciones en el sistema existente para ampliar su capacidad de operación o para adaptarlo a nuevos requerimientos. En general las respuestas que buscamos mediante los experimentos servirán de soporte a una decisión racional sobre el sistema, por lo que nos interesará que las respuestas queden expresadas numéricamente, en términos de los valores de las variables de respuesta que representen las medidas de la utilidad, o del rendimiento esperado, para la alternativa que nos ocupa de diseño o de cambio del sistema. Así, por ejemplo, en sistemas de colas cuyo objeto sea dimensionar las
  • 157. 157 unidades de servicio identificando cuál es el número de canales de servicio que permiten un rendimiento óptimo del sistema, ejemplos de tales funciones de utilidad o variables de medida del rendimiento pueden ser, índices que relacionen el tiempo medio de espera (o la longitud media de la cola) con el nivel de utilización de los servidores, o funciones de coste que engloben el coste de la espera (decreciente cuando se incrementa la eficiencia del servicio) y el del servicio (creciente cuando se aumenta el número de servidores, o los servidores existentes se reemplazan por otros más eficientes). Las alternativas de diseño, o variante de configuración del sistema, constituirán una variante del modelo o escenario de simulación con las que realizaremos los experimentos. Para ello ejecutaremos el modelo introduciendo como datos las muestras aleatorias de las distribuciones de probabilidad correspondientes tal como hemos descrito en el Capítulo 2. Las ejecuciones del modelo nos proporcionarán las estimaciones de los parámetros de interés. Desde un punto de vista metodológico hemos de distinguir varios tipos de situación: • Estimación de variables de respuesta. • Estimación de efectos combinados. • Comparaciones entre alternativas de diseño. Con respecto a la estimación de variables de respuesta, la longitud media de una cola, el tiempo medio de espera, el porcentaje de ocupación de los servidores, por ejemplo, ejecutaremos repetidas veces el modelo correspondiente a una misma configuración con diferentes muestras aleatorias de input, lo que proporcionará variaciones en los resultados debido a las variaciones aleatorias en las muestras utilizadas. Ahora bien, para poder asegurar la validez de nuestras estimaciones, y en definitiva la validez de las respuestas del estudio de simulación, hemos de estar en condiciones de establecer cuándo las diferentes estimaciones de los parámetros de medida del rendimiento del sistema son debidas a la configuración del sistema y cuándo son ocasionadas por las variaciones del muestreo. Los estudios de simulación
  • 158. SIMULACIÓN DE SISTEMAS DISCRETOS 158 En esta ocasión es la metodología de la Estadística, y en particular la de las técnicas de muestreo, la que nos permitirá dar una respuesta correcta a este tipo de cuestiones. No es este el lugar para extendernos sobre el tema, nos limitaremos a apuntar algunas de las técnicas más utilizadas en el ámbito de los estudios de simulación, el lector interesado puede encontrar una información detallada en textos generales de Estadística y Teoría de Muestras, o en los específicos de Kleijnen, «StatisticalTechniques in Simulation» [29], y «StatisticalTools for Simulation Practitioners» [30], de las que la primera constituye en estos momentos un clásico de las técnicas estadísticas en simulación. Nos limitaremos a comentar aquí que los procedimientos más utilizados son los de: • Replicaciones independientes: generando muestras independientes de números aleatorios bien a partir de distintos generadores o un mismo generador, de ciclo muy largo, que produzca muestras de base independientes a partir de diferentes semillas. • Lotes («Batch Means») resultantes del fraccionamiento en submuestras de una muestra de gran dimensión generada con un generador de ciclo muy largo. • Métodos regenerativos, que utilizan muestras de dimensión variable resultantes de la recogida de observaciones del sistema entre dos pasos consecutivos por un punto o estado de regeneración (por ejemplo el estado con las colas vacías en un sistema de colas), lo que requiere previamente la comprobación de que el sistema tiene estados regenerativos y la identificación de los mismos. Otro aspecto que también hay que tener en cuenta, para garantizar la calidad de las estimaciones de las variables de respuesta desde el punto de vista estadístico, es la necesidad de utilizar estimadores insesgados y de variancia mínima, de especial
  • 159. 159 Los estudios de simulación importancia estos últimos si después la estimaciones se van a utilizar para efectuar comparaciones. Una manera de conseguir estos objetivos consiste en recurrir a las técnicas de reducción de variancia, diseñadas específicamente para incrementar la precisión de la estimación de las variables de respuesta y facilitar las comparaciones, entre las técnicas de reducción de variancia más utilizadas en simulación figuran el muestreo estratificado, el muestreo selectivo, la utilización de variables de control y la variables antitéticas. Esta última es una técnica muy discutida en lo que respecta a sus aplicaciones a la simulación discreta, su objetivo es inducir una correlación negativa entre las sucesivas simulaciones de una misma configuración del sistema. Tocher [37], propuso una implantación muy sencilla de esta técnica consistente en ejecutar una de las simulaciones a partir de la muestra {u1 , u2 , u3 , ...} de números aleatorios uniformemente distribuidos en (0, 1), y la segunda, la antitética a partir de la muestra complementaria {1-u1 , 1-u2 , 1-u3 , ...}, con la idea de que esta muestra complementaria asegure una correlación negativa entre las respuestas de las dos simulaciones. En este caso si X1 es la estimación de la variable de respuesta obtenida en la primera simulación, y X2 en la segunda, la antitética, entonces: ( ) X X X = + 1 2 1 2 (4.1) es un estimador insesgado de E(x), y: ( ) ( ) ( ) ( ) [ ] var var var cov , X X X X X = + + 1 4 2 1 2 1 2 (4.2) que al ser comparada con la variancia de dos ejecuciones no correlacionadas debe ser menor si las ejecuciones están correlacionadas negativamente. Este efecto esperado no siempre se consigue en la simulación de sistemas discretos, especialmente si son complejos, debido a las transformaciones complicadas que tales modelos llevan a cabo con las variables de entrada, lo cual hace que no siempre se conserve en el output la correlación negativa del input,
  • 160. SIMULACIÓN DE SISTEMAS DISCRETOS 160 en consecuencia hay que llevar mucho cuidado con el uso del muestreo antitético en la simulación discreta, y asegurarse previamente de que las correlaciones negativas entre las variables de entrada se conservan en las de salida. A la hora de recoger las observaciones producidas por la ejecución de la simulación no hay que olvidar el carácter intrínseco de la simulación discreta tal como lo establecimos en el Capítulo 3. Recordemos que hemos considerado que la simulación de un sistema con estados discretos puede interpretarse como un seguimiento de la evolución del sistema entre sus estados, teniendo en cuenta el carácter aleatorio del input es obvio que la tal evolución puede considerarse como un proceso estocástico y como tal podemos considerar dos tipos de situación la que corresponde a la fase transitoria del proceso y la del estado estacionario. En general la fase transitoria dependerá de las condiciones iniciales, mientras que entendemos que la situación estacionaria, si el sistema la tiene y llega a ella, es independiente de su estado de partida. Según los objetivos del estudio de simulación y el tipo de sistema tendremos que distinguir entre ambas fases. Si lo que interesa es estudiar el comportamiento del sistema en la situación estacionaria deberemos proceder a un proceso previo («warming-up»), durante el que no se recogerán observaciones, durante el cual el sistema atraviese la fase transitoria y entre en la estacionaria, a partir de la cual se procederá a recoger observaciones. Sin embargo no hemos de olvidar que puede haber situaciones en que es precisamente la fase transitoria la que interesa. En general la configuración o las alternativas de diseño de un sistema complejo dependen de muchos factores, así por ejemplo, en los sistemas de colas las variables de decisión, o factores de diseño, pueden ser el número de servidores, las características de los servidores (que afecten por ejemplo al tipo de distribución de los tiempos de servicio, o, dentro de un mismo tipo, a los parámetros de la distribución, como puede ser el caso de los tiempos medios de servicio - más rápidos o más lentos -, política de gestión - FIFO, por prioridades,
  • 161. 161 ... -, etc.). Tenemos por lo tanto varios inputs controlables que afectan a la respuesta del sistema, de tipo cuantitativo (número de sirvientes, tiempo medio de servicio, etc.), o cualitativo (prioridades), que operan a diferentes niveles. En el estudio de simulación interesará identificar el efecto de cada factor, las interacciones entre factores, etc... La técnica de diseño de experimentos en Estadística es la que nos proporcionara las herramientas adecuadas para proceder a los estudios adecuados. Como en el caso anterior nos vamos a limitar a glosar aquí unos comentarios sobre la aplicación de estas técnicas a la simulación, las referencias [30], anteriormente citada, y [27], proporcionan una información detallada, aunque hay que resaltar que todo lo que se puede decir para las aplicaciones a la simulación no es más que una adecuación de la teoría general del diseño de experimentos Estadística por lo que textos generales como el de Box, Hunter y Hunter [46], o el de Box y Draper [47], constituyen una referencia obligada. En el caso de la simulación hay que hacer una observación con respecto al punto de vista del diseño de experimentos en Estadística y es que en el caso de los experimentos de simulación se trata siempre de experimentos controlados, es decir, la impredictibilidad esta originada únicamente por la aleatoriedad del muestreo, no por el modelo, que se supone que el analista conoce y domina completamente. Los diseños experimentales que más se utilizan en la práctica de la simulación suelen ser el de variación de un factor cada vez, los diseños factoriales globales, los fraccionales, los de superficie de respuesta, etc... En la práctica se tiende a evitar los diseños factoriales completos que para k factores y 2 niveles por factor requieren 2k combinaciones, y si para estimar adecuadamente la variable de respuesta para cada combinación hemos de replicar m veces cada combinación, hay que realizar un total de m2k repeticiones de la simulación que puede ser un número prohibitivamente grande. Siempre que se puede se tiende a utilizar Los estudios de simulación
  • 162. SIMULACIÓN DE SISTEMAS DISCRETOS 162 diseños fraccionarios que pueden proporcionar la misma información con menos observaciones. Así, por ejemplo en un modelo M/M/s si la tasa de utilización o factor de carga del sistema r varia entre 0,5 y 0,8, y el número de servidores entre 1 y 3, un diseño experimental para estos dos factores, carga del sistema y número de servidores, con dos niveles cada factor, y cuatro combinaciones posibles de niveles de los factores, es: Combinación r s 1 0,5 1 2 0,8 1 3 0,5 3 4 0,8 3 Para un diseño factorial con k factores y dos niveles por factor suponemos que los efectos de interacción son explicados por el modelo de regresión (o superficie de respuesta): ( ) y x x x NID i j ij jh ij ih i i h j k j k j k = + + + = + = - = å å å b b b e e s 0 2 1 1 1 1 0 , , (4.3) que tiene k efectos principales, o de primer orden, bj y k(k-1)/2 interacciones de dos factores bjh , con errores e con distribuciones normales independientes (NID) de media cero y variancia constante. Interacción entre dos factores, el i y el j por ejemplo, significa que el efecto del cambio en el factor i depende del nivel del factor j. La significación de los efectos principales y las interacciones se determina por medio del análisis de la variancia del modelo de regresión correspondiente. Así, por ejemplo, en el caso de dos factores A y B, el modelo propuesto supone que la relación entre la variable de respuesta y los efectos de los niveles de los factores viene dada por:
  • 163. 163 yijk i j ij ijk = + + + + b a b b e 0 (4.4) donde yijk es el resultado de la combinación del factor A al nivel i y el factor B al nivel j en su replicación k-ésima, b0 es el efecto medio global, ai el efecto principal del factor A al nivel i, bj el efecto principal del factor B al nivel j, bij el efecto de la combinación del factor A al nivel i con el factor B al nivel j, y eijk es la variancia no explicada (residuo o término de error). Como es habitual en el análisis estadístico es importante definir claramente las hipótesis que se toman en consideración. En este tipo de experimentos lo normal es esperar que haya efectos de la interacciones, por lo tanto lo primero que hemos de hacer es verificar si estos son significativos o no, ya que en caso de que lo sean no habría que proceder a estudiar los efectos principales. En consecuencia las hipótesis nulas son: H0(1): la interacción de A y B no tiene efectos: bij = 0, "i y "j H0(2): el factor A no tiene efectos: ai = 0, "i H0(3): el factor B no tiene efectos: bj = 0, "j y las hipótesis alternativas son: H1(1): bij ¹ 0, para algún i, j. H1(2): ai ¹ 0, para algún i. H1(3): bj ¹ 0, para algún j. Suponiendo que el factor A tiene n niveles, cada uno de los cuales se replica m veces, y que lo mismo ocurre con el factor B, y denotando por y... , yi.. , y.j. , e yij. las sumas: y y y y y y y y ijk i. ijk k m j n k m j n i n j ijk ij ijk k m k m i n K= = = = = = = = = = = = å å å å å å å å . . . . 1 1 1 1 1 1 1 1 (4.5) La Tabla 15 muestra el análisis de la variancia. Los estudios de simulación
  • 164. SIMULACIÓN DE SISTEMAS DISCRETOS 164
  • 165. 165 A partir de esta tabla el procedimiento de verificación de las hipótesis procede de la manera siguiente: ( ) ( ) ( ) ( ) ( ) ( ) H i y j chazar H si S n S n m F ij AB E n n m 0 0 2 2 2 2 1 1 1 0 1 1 1 2 2 : , Re : , b = " " ® - - > - - (4.6) Si se rechaza H0 (1), no tiene sentido verificar H0 (2) y H0 (3). En caso de que se acepte H0 (1) entonces el modelo se puede sim- plificar a: yijk i j ijk = + + + b a b e 0 (4.7) En cuyo caso se rechaza H0 (2) si: ( ) ( ) ( ) ( ) ( ) S n S S n m n F A E AB n n m n 2 2 2 2 1 2 1 1 2 1 2 , - + - - > - - - (4.8) se rechaza H0 (3) si: ( ) ( ) ( ) ( ) ( ) S n S S n m n F B E AB n n m n 2 2 2 2 1 2 1 1 2 1 2 : , - + - - > - - - (4.9) siendo F la función de Fisher evaluada al nivel de significación y grados de libertad correspondientes. Si el análisis de la variancia ha demostrado que un conjunto de efectos (b1 , b2 , ..., bn ) son significativamente diferentes entonces resulta pertinente compararlos entre si de manera que se puedan identificar las combinaciones factor-nivel que proporcionan los mejores resultados. El estudio se lleva a cabo aplicando las técnica clásicas del análisis estadístico de comparaciones múltiples. 4.2. Análisis de resultados En un estudio de simulación tanto si tenemos como objetivo la determinación de la mejor alternativa, como si el propósito es simplemente obtener una buena estimación de la variable de Los estudios de simulación
  • 166. SIMULACIÓN DE SISTEMAS DISCRETOS 166 respuesta, o parámetro de rendimiento del sistema, es necesario poder efectuar buenas estimaciones de las variables de respuesta, así como de la estimación de cuán buenas son las estimaciones que estamos obteniendo, pues no hemos de perder de vista el carácter aleatorio de los resultados producidos por una simulación. Los métodos a utilizar dependen de las características del sistema y en especial de si se trata de sistemas con un horizonte finito, es decir sistemas para los cuales llega un momento en que se ha alcanzado cierto objetivo, se ha realizado una tarea, se ha llegado a una condición a partir de la cual el proceso se repite, se ha completado un ciclo, etc.; o de un sistema con un horizonte infinito (y una posibilidad de entrar en un estado estacionario). Ejemplos del primer tipo de situaciones pueden ser procesos productivos en los que el horizonte temporal de fabricación de un producto esté determinado de antemano, de gestión de inventarios con horizontes temporales dados, etc., es decir sistemas cuyo ciclo de vida es finito (lo que, dicho sea de paso, ocurre con todos los sistemas reales), pero en muchas otras situaciones no hay razones para suponer, al menos en teoría, que hay un suceso especial cuya ocurrencia determina el final de la simulación, se trata entonces de sistemas para los que el horizonte temporal puede considerarse indefinidamente largo, la cuestión entonces es si afectan o no las condiciones iniciales, es decir si el sistema tiene o no estado estacionario y si lo que nos interesa es estudiar el comportamiento del sistema en la fase transitoria o en el estado estacionario. El análisis estadístico del estado estacionario es más delicado puesto que hay que tener en cuenta aspectos tales como la correlación que presentan los resultados, o el no siempre claro de a partir de qué momento se puede considerar que el sistema ha entrado en el estado estacionario. Las condiciones de esta monografía no permiten tratar exhaustivamente el tema, cualquiera de las referencias básicas que hemos venido citando dedican espacio suficiente a estas cuestiones, pero entre estas referencias subrayaré el trato que le dan el texto de Law y Kelton [27], y el de Bratley, Fox y Schrage [28], que han inspirado este resumen.
  • 167. 167 El valor esperado de la variable de respuesta o medida del rendimiento de un sistema estocástico se expresa habitualmente en términos de un intervalo de confianza, relacionado intuitivamente con la idea de precisión, que depende de las dimensiones y características de la muestra de observaciones utilizada para realizar la estimación. En general el problema del intervalo de confianza se puede plantear desde dos puntos de vista, en el primero, denominado de la muestra de dimensión fija, se especifica de antemano el número de observaciones con la esperanza de que la precisión resultante sea suficiente, mientras que en el segundo, denominado de muestreo secuencial, se especifica de antemano la precisión requerida, se usa una muestra y partir de los resultados que proporciona se determina si se han de recoger o no observaciones adicionales. La obtención de un intervalo de confianza requiere hipótesis subyacentes de normalidad e independencia, lo que en las condiciones de la simulación exige que se haya de recoger un número de observaciones suficientemente grande como para que las condiciones del teorema del límite central nos permitan ignorar la posible no normalidad de las observaciones, que se utilice algún procedimiento que permita superar las implicaciones de la falta de independencia entre las muestras, especialmente cuando se trata de simulaciones de estados estacionarios, y que utilice algún procedimiento que permita corregir el posible sesgo causado por las condiciones iniciales cuando se simulan estados estacionarios. El análisis del rendimiento esperado de un sistema con un horizonte finito consiste habitualmente en obtener una estimación puntual del mismo y un intervalo de confianza o estimación del error cuadrático medio de dicha estimación puntual. La obtención de esta estimación a partir de una muestra de observaciones producidas por la simulación se realiza por medio de las técnicas habituales del análisis estadístico, es decir determinar un estimador puntual ȳ a ser posible insesgado y de variancia mínima, que esté aproximadamente normalmente distribuido y cuya desviación estándar se pueda estimar adecuadamente. Los estudios de simulación
  • 168. SIMULACIÓN DE SISTEMAS DISCRETOS 168 En estas condiciones, si m es número de ejecuciones de la simulación (número que quizás haya que determinar secuencialmente), e yi es la observación de la variable de rendimiento proporcionada por la i-ésima simulación, i = 1, 2, ...., m, entonces: (4.10) ( ) ( ) y y m s y y m i i m i i m = = - - = = å å 1 2 2 1 1 Si las yi son independientes y están idénticamente distribuidas entonces ȳ es un estimador insesgado del rendimiento esperado y s2 /m es un estimador insesgado de la variancia. Si además las yi están normalmente distribuidas, entonces un intervalo de confianza para el rendimiento esperado viene dado por: y k s m ± 2 (4.11) donde k es la ordenada que da la probabilidad (1-a)/2 en la cola de la distribución t de Student con m-1 grados de libertad, siendo a el coeficiente de probabilidad que determina la región crítica para aceptación del intervalo. Con respecto al análisis del estado estacionario comentaremos simplemente que para satisfacer las condiciones anteriormente establecidas, sobre la eliminación de las posibles influencias de los estados de partida, se han propuesto multitud de procedimientos [27,28] que en esencia conducen a determinar cuál es el número de observaciones iniciales que hay que desechar. Resuelta esta cuestión el problema es entonces cómo proceder con observaciones que no son independientes. Sin ánimos de ser exhaustivos y para dar al lector una idea simple de los métodos estadísticos que se han ido desarrollando mencionaremos los tres más utilizados:
  • 169. 169 Los estudios de simulación • Procedimientos por lotes («Batch Means»), • Métodos Regenerativos, • Análisis Espectral, que pasamos a resumir. A) Procedimientos por lotes Supongamos una secuencia de observaciones producidas por la simulación {y1 , y2 , ..., ym }, posiblemente correlacionadas. Definimos: ( ) ( ) y y m s y y m i i m y i i m = = - - = = å å 1 2 2 1 1 (4.12) siendo b la dimensión de los lotes (definida posiblemente a partir de un estudio estadístico previo) tal que m sea un múltiplo de b, y en consecuencia n = m/b sea entero. Hagamos: ( ) x y b j i i j b jib = = + - å 1 1 (4.13) media del j-ésimo lote de observaciones de dimensión b. A partir de aquí podemos calcular: ( ) ( ) x x n s x x n j j n x j j n = = - - = = å å 1 2 2 1 1 (4.14) El objetivo de nuestro estudio de simulación es, en teoría, estimar [ ] m = ®¥ lim E y i i y var [ȳ]. El método de los lotes estima m a partir del estadístico ȳ. De las definiciones se deduce que ȳ =x̄ . Si las observaciones yi son independientes s2 x /m es un estimador insesgado de var [ȳ], pero como en general las observaciones procedentes de la simulación están correlacionadas entonces: [ ] [ ] ( ) ( ) var var cov , y y m m y y i j j i m i m = + = + = - å å 1 2 1 1 1 2 (4.15)
  • 170. SIMULACIÓN DE SISTEMAS DISCRETOS 170 Asumir la independencia es equivalente a despreciar el término de covariancia, lo que en la práctica implica una infraestimación de var [ȳ] ya que las yi están correlacionadas positivamente. Otro estimador insesgado bajo la hipótesis de independencia es s2 x /m, aunque en el caso de correlación de las yi este estimador también está sesgado lo está menos que el anterior porque la correlación entre las xj tiende a ser menor que entre las yi . El método de los lotes en su versión de muestra de dimensión fija opera de la manera siguiente: 1. Formar n lotes de observaciones xj . 2. Calcular x̄ y s2 x . 3. Utilizar x̄ como estimador puntual de m. 4. Utilizar x̄ x̄± ksx / n como estimador del intervalo de confianza para m. (k es el valor correspondiente de la distribución t de Student con n-1 grados de libertad). Las referencias citadas [27,28] proporcionan versiones más sofisticadas para la implantación del método de los lotes por muestreo secuencial que utilizan un procedimiento de «jackknifing» para estimar la correlación serial y en función de ella determinar la evolución del proceso de generación secuencial de la muestra. En el ejemplo del puesto de peaje de la autopista hemos aprovechado las características del GPSS para repetir 21 veces la simulación, simulando las llegadas de 240 vehículos en cada repetición, de manera que quedase garantizada la independencia de las muestras de números aleatorios utilizadas en cada ejecución. En realidad lo que hemos hecho ha sido aplicar el método de los lotes como procedimiento de estimación de resultados. Suprimiendo la primera ejecución, cuya función es la de inicializar el sistema y suprimir, de forma aproximada, la posible influencia del período transitorio, de manera que podamos considerar que las siguientes repeticiones tienen lugar cuando el
  • 171. 171 Los estudios de simulación sistema ha alcanzado el estado estacionario, los resultados de las 20 repeticiones correspondientes a cada uno de los lotes quedan resumidas en la Tabla 16. La primera columna contiene los porcentajes de utilización del puesto de peaje, la segunda la estimación de los tiempos medios de pago, es decir la duración media del proceso de pago del peaje, la tercera columna registra las longitudes de las máximas colas que se han observado durante la simulación del lote correspondiente, la cuarta las estimaciones que la simulación proporciona de las longitudes medias de las colas, la quinta columna corresponde a los tiempos medios de espera estimados, y la sexta el estado final de la cola al terminar la simulación correspondiente, es decir el número de vehículos que estaban esperando en la cola cuando se ha terminado la ejecución del lote. Ese estado final de un lote es el inicial del lote siguiente dado que hemos utilizado la instrucción RESET del GPSS. Los resultados de cada lote corresponden lo que hemos denominado las xj , aplicando el procedimiento propuesto hubiésemos obtenido las medias e intervalos de confianza mostrados en la Tabla 17. Ahora estamos en condiciones de profundizar la interpretación de resultados que esbozamos en la Sección 3.4. La impresión de que el puesto de peaje esta operando en condiciones de casi saturación queda confirmada por los resultados que proporciona el análisis estadístico de los lotes, una ocupación media del 86,5%, con un intervalo de confianza al 5%, lo suficientemente pequeño como para reforzar la conclusión de que la ocupación experimenta muy poca variación a lo largo del período de tiempo estudiado. Con respecto a los otros parámetros de interés, cola máxima, longitud media de la cola y tiempo medio de espera, no solo resultan significativos los altos valores obtenidos, casi 15 coches, en promedio, como número máximo de vehículos que en un momento dado están esperando a pagar, casi 5 coches en promedio esperando a pagar, y un tiempo de espera para efectuar el pago que en promedio supera ligeramente el minuto, sino que, además, presentan una alta
  • 172. SIMULACIÓN DE SISTEMAS DISCRETOS 172
  • 173. 173 Los estudios de simulación variabilidad, especialmente los tiempos de espera, como, por otra parte, era de esperar dada la variabilidad del proceso de pago. Este análisis podría ampliarse estudiando la posible influencia del estado inicial en el proceso. B) Métodos regenerativos Se basan, como hemos apuntado anteriormente, en que muchos sistemas tienen puntos de renovación o regeneración, a partir de los cuales el comportamiento del sistema es independiente de su pasado. El ejemplo típico es la llegada de un cliente a una cola cuando el sistema está vacío. La idea propuesta y desarrollada por Iglehart [48], puede interpretarse como una generalización del método de los lotes en la que estos en vez de tener longitud fija tienen una longitud variable que corresponde a la longitud del ciclo entre dos pasos consecutivos por un punto de regeneración, si hacemos que a cada ciclo entre do puntos de renovación sucesivos corresponda a una observación tenemos un
  • 174. SIMULACIÓN DE SISTEMAS DISCRETOS 174 conjunto de observaciones independientes y desaparece el sesgo debido a las condiciones iniciales. Desgraciadamente la consecución de la independencia tiene un precio, el del sesgo de las estimaciones obtenidas. La aparición de un sesgo en las estimaciones por el método regenerativo están causadas porque en general los estimadores son cocientes de variables aleatorias y en general el valor esperado de un cociente no es el cociente de los valores esperados. Un ejemplo típico es la estimación del cociente entre el tiempo total de espera en un sistema de colas durante un ciclo y el número de clientes servidos durante ese ciclo. Suponiendo que xi e yi denotan respectivamente el numerador y el denominador del i-ésimo ciclo nuestro objetivo es estimar el cociente E(xi ) / E(yi ) y su intervalo de confianza. Sea n el número de ciclos simulados, definamos x̄, ȳ, s2 x , y s2 y de la manera habitual. Hagamos ( )( ) ( ) z x y s x x y y n s s zs z s xy i i n i x xy y = = - - - = - + = å 2 1 2 2 2 2 2 1 2 (4.16) entonces es la estimación puntual sesgada de E(xi ) / E(yi ), y su intervalo de confianza viene dado por: z ks y n ± (4.17) siendo k la ordenada apropiada de la distribución normal. En la referencia citada [48], Iglehart recomienda la utilización de estimadores "jackknife" cuando las longitudes de los ciclos no son muy largas, entonces si z̃ es el estimador jackknife de z̄ el intervalo de confianza es: ~ ~ z ks y n ± (4.18) donde: ~ ~ ~ s s zs z s x xy y 2 2 2 2 2 2 = - + (4.19)
  • 175. 175 Los estudios de simulación Aunque los procedimientos regenerativos tienen toda una serie de ventajas ya que no están afectados por los problemas transitorios iniciales, producen observaciones independientes, son fáciles de aplicar, etc., no estáncompletamentelibresdeproblemasyaquelaslongitudesdelosciclos son desconocidas de antemano y estos pueden ser muy largos o muy cortosynosiempreesfácilidentificarlospuntosderegeneración,odemostrar que un tipo de punto dado es de regeneración para un sistema dado. C) Análisis espectral Cerraremos esta breve exposición de procedimientos de estimación de resultados por simulación con una familia que, si bien en sus formas sencillas no proporciona buenos resultados, ha abierto una amplia perspectiva en el campo del análisis de resultados en la simulación. Dado que las observaciones producidas por la simulación están correlacionadas se trata de producir estimadores que traten explícitamente esta correlación. Una posibilidad estriba en recoger las observaciones a intervalos discretos igualmente espaciados en el tiempo. La secuencia de resultados así obtenida puede considerarse la observación de una serie temporal para la cual tenemos: ( )( ) [ ] ( )( ) ( ) y y n C E y y u para j n C y y y y n j t t n j t t j j t t j n t j = = - - = = - - = - = + - å å 1 1 0 1 2 m , , , , K (4.20) y bajo la hipótesis de que la secuencia {yt } es estacionaria covariante, es decir, que Cj no depende de t: [ ] ( ) var y C j n C n j j n = + - é ë ê ù û ú = - å 0 1 1 2 1 (4.21) si sustituimos Cj por Cj para estimar var [ȳ] resulta que cuando las yt son dependientes entonces Cj es un estimador muy sesgado de Cj , en general el estimador truncado
  • 176. SIMULACIÓN DE SISTEMAS DISCRETOS 176 ( ) V C j n C n m j j m = + - é ë ê ù û ú = å 0 1 2 1 (4.22) es mucho mejor estimador de var [ȳ] para m<<n. Una modificación de este estimador se obtiene introduciendo una función de ponderación wm (j): ( )[ ] ( ) ( ) [ ] ~ cos / V C w j j n C n w j j m m m j j m m = + - ì í î ü ý þ = + = å 0 1 2 1 1 2 p (4.23) El origen de esta función de ponderación radica en el hecho de que la densidad espectral f es la transformada de Fourier de la secuencia covariante: ( ) ( ) f C j j j l p l p l p = - £ £ =-¥ ¥ å 1 2 cos , (4.24) y si comparamos las expresiones para f(0) y Vm nos percatamos de que Vm es un estimador natural truncado de 2p f(o)/n, aunque no muy bueno.
  • 177. 177 Los estudios de simulación
  • 178. SIMULACIÓN DE SISTEMAS DISCRETOS 178
  • 179. 179 5 La construcción de modelos de simulación válidos y creíbles
  • 180. SIMULACIÓN DE SISTEMAS DISCRETOS 180 5.1. Validación, verificación y credibilidad (I) El objetivo principal de la metodología de la modelización que hemos establecido en el Capítulo 1, y luego en el Capítulo 3 hemos reforzado y particularizado en lo que se refiere a la simulación, es que un modelo debe ser una representación adecuada del sistema que se estudia, para poder responder de manera fiable a las preguntas que el analista se formula sobre el sistema, especialmente cuando el objeto del estudio del sistema a través del modelo es la toma de decisiones sobre alternativas de diseño, cambio, etc. Este es uno de los problemas más difíciles a que se enfrenta el practicante de la simulación: cómo determinar cuando un modelo de simulación es una representación suficientemente exacta del sistema que se estudia, o en otras palabras cuando el modelo del sistema es válido. Desgraciadamente no hay una colección de reglas y procedimientos que permitan establecer inequívocamente la validez de un modelo en general, y de uno de simulación en particular. De forma anecdótica, pero significativa, recordaré aquí el comentario de J. Kleijnen en la conferencia de la Federación Internacional de Sociedades de Investigación Operativa, (IFORS), en 1993 en Lisboa, cuando al iniciar la presentación de sus ponencia sobre Verificación y Validación de Modelos de Simulación, confesaba que a pesar de tener mas de 25 años de experiencia en la práctica de simulación, y de haber sido autor de varios libros sobre el tema, siempre había sido reacio a hablar de Verificación y Validación, aún
  • 181. 181 reconociendo la importancia que tienen en la práctica, por que nunca estaba completamente seguro de qué es lo que había que hacer, ya que en muchos casos dependía de las situaciones concretas, siendo muy difícil establecer unas reglas generales, pero que después de tantos años se había decidido a enfrentarse al problema y si bien no tenía una solución definitiva, al menos estaba en condiciones de glosar una colección de ideas y procedimientos que al menos sirviesen para guía para enfrentarse al problema. El objetivo de este capítulo, planteado con el mismo espíritu que glosaba Kleijnen, es resumir las líneas generales más significativas, en un ejercicio de síntesis de ideas propias y de otros autores como el ya citado Kleijnen [31] el texto de Law y Kelton [27], y artículos como los de Sargent [49], Balci [50], o Bryan y Natrella [51]. El lector encontrará que muchas de las pautas propuestas para la construcción de buenos modelos se repiten al considerar la validación de los mismos, lo cual no es sorprendente si nos percatamos de que un buen modelo es, valga la redundancia, un modelo válido, por lo tanto todo aquello que nos conduce a construir un buen modelo nos sirve, al mismo tiempo, para asegurar su validez. Empezaremos estos comentarios intentando establecer claramente que entendemos por verificación y qué por validación. Sargent puntualiza en su artículo que: el modelo conceptual es una representación matemática, lógica o mímica del problema, formulado para un estudio particular, mientras que el modelo computarizado es la implantación del modelo conceptual en un ordenador, y que si bien el modelo conceptual es que se desarrolla durante la fase de análisis y modelización, el modelo computarizado es que se desarrolla en la fase de traducción del modelo conceptual a un programa de computador, o fase de programación e implantación del programa de computador, y las inferencias sobre el problema se obtienen mediante los experimentos computacionales durante la fase de experimentación. La construcción de modelos de simulación válidos y creíbles
  • 182. SIMULACIÓN DE SISTEMAS DISCRETOS 182 De acuerdo con este planteamiento habremos de distinguir metodológicamente entre los problemas de determinación de la adecuación del modelo conceptual, problemas que se refieren fundamentalmente a la adecuación de las hipótesis de modelización y su traducción en términos de ecuaciones o relaciones entre las entidades del sistema, los problemas que pueden derivarse de la traducción del modelo en términos del programa de computador y, finalmente, los que son consecuencia del método experimental. Este criterio sirve a Law y Kelton para establecer las siguientes definiciones, compartidas por la mayoría de los autores citados: Verificación es determinar que el programa de computador se comporta como es debido, es decir está libre de errores de programación («debugging» del programa), en otras palabras, la verificación comprueba que se ha realizado una traducción correcta del modelo conceptual a un programa de computador que trabaja correctamente. Validación, se refiere a determinar si el modelo conceptual es una representación adecuada del sistema que se estudia. Es decir si nuestro conocimiento del sistema se ha traducido en hipótesis de modelización que reproducen correctamente el comportamiento del sistema en los aspectos relevantes para los objetivos del estudio. La validez del modelo es crucial para las decisiones que han de soportar los experimentos realizados con el modelo, ya que el objetivo de los experimentos es inferir cuál seria el comportamiento del sistema si los experimentos se realizasen físicamente sobre él mismo. Credibilidad, este es un aspecto complementario, pero no menos importante, en lo que se refiere a la práctica de la simulación, sobre todo en modelos de sistemas complejos en situaciones en las que el responsable de la toma de decisiones no es el analista que ha construido el modelo. Los resultados del modelo han de ser aceptados por el decisor para ser utilizados en el proceso de toma decisiones, en
  • 183. 183 otras palabras, los resultados del modelo han de ser creíbles para aquellos que los han de utilizar. La relación entre los procesos de verificación, validación y esta- blecimiento de la credibilidad, su secuencia temporal, y su relación con la metodología de la simulación propuesta en la Sección 1.4 (Figura 9), se ponen de manifiesto en la Figura 28, adaptada de la propuesta por Law y Kelton, así como, una vez más el carácter iterativo inherente a la meto- dología de la utilización de modelos, en general, y de simulación en parti- cular, de manera que los resultados de cualquiera de las etapas del proceso puede obligar a volver atrás para obtener más información, replan- tear hipótesis de modelización, reprogramar partes del modelo conceptual, o reformular algunos de los experimentos de simulación. Con respecto a este último punto hay que establecer una distinción entre los objetivos de la validación y los del análisis de resultados, ya que en estos lo que se pretende, como hemos expuesto en el Capítulo anterior, es determinar la calidad de la estimación de una variable de respuesta o medida del ren- dimiento, por medio de los procedimientos estadísticos pertinentes, mien- tras que la validación se propone determinar si esa medida representa o no adecuadamente el rendimiento que se pretende analizar. 5.2. Validación de modelos de simulación Por definición un modelo válido es aquel que proporciona una representación adecuada de los aspectos de la realidad relevantes para el analista o, recordando la proposición de Minsky formulada en la Sección 1.5 es capaz de proporcionar respuestas válidas a las preguntas que el analista se formula sobre el sistema. La primera fase de validación implica, en consecuencia, determinar si de todos los aspectos del sistema hemos incorporado al modelo aquellos que son de real interés para el estudio que nos ocupa, y hemos dejado fuera aquellos que podemos ignorar sin consecuencias para nuestro estudio, o no hemos considerado alguno que puede influir en el comportamiento del sistema cuyo estudio pretendemos. La construcción de modelos de simulación válidos y creíbles
  • 184. SIMULACIÓN DE SISTEMAS DISCRETOS 184
  • 185. 185 Las respuestas a nuestras preguntas sobre el sistema las intentaremos obtener mediante los experimentos de simulación, en este sentido no debemos olvidar que experimentar con el modelo de simulación es experimentar con un sucedáneo o sustituto del modelo real o propuesto, de manera que hemos de asegurarnos de que el modelo es válido, al menos hasta el punto de que las respuestas que proporciona a nuestras preguntas puedan considerarse aceptablemente válidas, sobre todo si han de servir de base a una toma de decisiones. En sistemas grandes y complejos difícilmente será de interés tener en cuenta todas sus componentes y toda las posibles relaciones entre ellas, de ahí que el primer paso del analista sea hacer operativo su conocimiento del sistema, definir claramente cuales son los aspectos que le interesa investigar, cuales son las leyes que gobiernan tales aspectos del sistema, qué medidas del rendimiento son las apropiadas para cuantificar el fenómeno, cuál es el entorno en que opera el sistema y cuales sus relaciones con el mismo y como lo determinan. No olvidemos que según nuestra metodología no nos planteamos construir modelos de validez universal (cuya existencia podría, además, ser cuestionable), sino modelos diseñados y construidos para satisfacer propósitos, particulares y concretos que deben estar bien definidos. Será por lo tanto difícil, si no imposible, determinar que aspectos del sistema hemos de tener en cuenta, qué datos hemos de recoger, que variantes posibles hemos de analizar, etc., si no hemos definido previamente con claridad los objetivos del estudio, y en esta definición no hemos de olvidar que nuestro modelo no solo ha de ser válido sino también creíble, lo cual significa que el responsable de la toma de decisiones ha de estar implicado en el establecimiento de las objetivos. Una regla sencilla, pero clave, es intentar conseguir un punto de equilibrio entre el grado de realismo, o complejidad, del modelo y los objetivos del mismo, no incluyendo detalles innecesarios, o que no sean consistentes con los datos de que disponemos, observables o inferidos. No hay que olvidar que, a pesar de nuestros esfuerzos, el La construcción de modelos de simulación válidos y creíbles
  • 186. SIMULACIÓN DE SISTEMAS DISCRETOS 186 modelo de simulación de un sistema, especialmente si es complejo, solo será una aproximación del sistema real, y que no podemos olvidar los aspectos coste-eficiencia en la práctica de la simulación, que pueden hacer que se descarte llevar la validez más allá de un cierto grado por los costes de obtención de la información suficiente. Desde el punto de vista metodológico es muy distinto el tratamiento de sistemas observables para los cuales al definir los parámetros de interés podemos obtener medidas empíricas de los mismos, que sistemas para los cuales tales observaciones son imposibles, como por ejemplo los que intentan inferir panoramas de la evoluciones tecnológicas, económicas o sociales en el futuro. Para sistemas muy complejos es recomendable seguir un procedimiento jerárquico en su modelización. Es decir en lugar de intentar abarcar de golpe toda su complejidad empezar por construir un modelo rudimentario que nos ayude a entender mejor el sistema y a identificar los factores relevantes para, a partir de este mejor entendimiento ir complicando gradualmente el primer modelo. 5.3. Verificación de modelos de simulación Se trata, como hemos dicho, de determinar si el programa de computador tiene errores o si, por el contrario, trabaja correctamente, en consecuencia las primeras reglas a observar en el proceso de verificación son, en esencia las mismas que tienden a asegurar la corrección de un programa de computador, y hacen referencia a la manera en que se estructura el programa, recomendando para programas largos y complejos organizarlos en módulos o subprogramas con una clara estructura de interrelaciones, de manera que cada uno de ellos pueda verificarse por separado, y la verificación del programa final resultante pueda realizarse paso a paso, añadiendo en cada uno subprogramas previamente verificados. Para modelos de sistemas complejos es recomendable utilizar lenguajes de simulación, en lugar de lenguajes de programación de propósito
  • 187. 187 general, para reducir la longitud del programa y simplificar su estructura. Una vez comprobado que el programa de computador esta libre de errores de programación hay que establecer si trabaja correctamente o no. Una primera posibilidad puede consistir en ejecutar el programa bajo hipótesis simplificadoras para las cuales sea conocido, o se pueda calcular fácilmente por otros medios, como se comporta el sistema modelizado. Es recomendable ejecutar el programa con diferentes con- juntos de valores de los parámetros del modelo y comprobar si los resultados son razonables o no. Por ejemplo, en muchos casos, los modelos teóricos subyacentes, son modelos de colas que pueden ser colas simples para los submodelos, o redes de colas para el modelo global, bajo hipótesis simplificadoras se pueden obtener soluciones analíticas para los modelos teóricos, soluciones que se pueden contrastar con las del modelo de simulación para determinar hasta que punto los resultados del modelo son razonables. En la referencia ya citada de Kobayashi [12] puedeencontrarseunaampliavariedaddemodelosteóricosdeltipocitado. Uno de los aspectos más importantes de un modelo de simulación es comprobar si reproduce adecuadamente la lógica de los procesos que tienen lugar en el sistema, verificar la corrección con que el programa de computador emula esa lógica es pues otro punto clave de la verificación. Una manera de realizarlo es seguir una traza de la ejecución del programa. En el caso de los programas de simulación de sucesos discretos una traza de la ejecución del programa consiste en un seguimiento de los estados del sistema simulado, es decir el contenido de la lista de sucesos, los valores de las variables de estado, etc.Tener acceso a esta información después de que ocurra cada uno de los sucesos para compararlo con nuestras previsiones de lo que tenía que ocurrir es una manera de comprobar si el programa, y en consecuencia el modelo del que este es una traducción, opera como es debido o no. La tendencia actual en la mayoría de los lenguajes avanzados para simulación es incluir un «debugger» interactivo que permite al analista parar la simulación en cualquier instante y examinar La construcción de modelos de simulación válidos y creíbles
  • 188. SIMULACIÓN DE SISTEMAS DISCRETOS 188 el estado del sistema, para proceder al seguimiento paso a paso de los cambios de estado. Finalmente es importante señalar que el desarrollo tecnológico de los computadores, especialmente en lo que se refiere a las técnicas de computación gráfica, ha hecho posible en muchos casos una animación gráfica del proceso de simulación. Simuladores como el SIMFACTORY [25], o el WITNESS [26], permiten una visualización animada de los procesos de producción simulados con ellos.AIMSUN2 [13,52] es un ejemplo de animación gráfica para la simulación de tráfico. La animación gráfica permite de una manera directa, a partir de una simple ojeada, comprobar si el modelo se comporta como se supone que se ha de comportar la realidad, identificando afinidades y discrepancias. Como luego subrayaremos la animación gráfica es también una herramienta importante para dar credibilidad al simulador. 5.4. Validación, verificación y credibilidad (II) Un trabajo clásico en la literatura sobre la validación y credibilidad de los modelos de simulación es el debido a Naylor y Finger [53] , que plantea una metodología basada en un proceso de tres pasos, aceptada por la mayoría de autores, cuyos ingredientes principales vamos a glosar a continuación. El primer paso es intentar desarrollar desde el principio un modelo que, de acuerdo con la metodología de la modelización, se enfrente explícitamente al objetivo de ser bueno, es decir válido, y que por lo tanto pueda resultar creíble, es decir razonable, a aquellos que lo han de utilizar.Ello comporta necesariamente involucrar a los usuarios desde el principio, es decir a aquellos que están familiarizados con el sistema y que posteriormente se supone que han de convertir el modelo en el soporte de su proceso racional de toma de decisiones, y mantener esta relación durante todo el proceso de construcción y validación del modelo.
  • 189. 189 Cuando se trate de construir modelos de sistemas existentes, o similares a los existentes, hay que proceder a la obtención de los datos necesarios para la construcción del modelo. Bien utilizando datos históricos existentes, o datos recogidos durante el proceso de construcción del modelo, cuidando de verificar la corrección de los mismos, es decir la supresión de los posibles errores de recogida. Siempre que sea posible intentar basar aspectos del modelo en teorías bien establecidas, como por ejemplo las referentes a la independencia de distribuciones de probabilidad, tipos de distribuciones para procesos de llegada o de servicio, etc. Aunque en muchos otros casos será la experiencia o la intuición del analista las que le indicarán que tipo de hipótesis son las más plausibles para describir la operación del sistema, especialmente cuando se trata de un sistema no existente. El segundo paso consiste en verificar empíricamente las hipótesis en que se basa el modelo. Así, por ejemplo, si de los datos empíricos inferimos un determinado tipo de comportamiento probabilístico para un proceso de llegadas o de servicios, y ajustamos una distribución teórica a dichos datos, hay que verificar adecuadamente la bondad de tal ajuste. Hay que recordar aquí los comentarios sobre la utilización de distribuciones teóricas y distribuciones empíricas que hemos hecho en el Capítulo 2, sin olvidar los errores a que un muestreo incorrecto puede inducirnos, como hemos comentado en el Capítulo 4, que podría llevarnos a situaciones en que nuestras hipótesis son correctas, las distribuciones correspondientes son consistentes con los datos empíricos, y sin embargo el proceso queda desvirtuado por un procedimiento de muestreo incorrecto. Un aspecto complementario de este paso es la posibilidad de realizar un análisis de sensibilidad, es decir determinar si los resultados de la simulación cambian significativamente cuando se cambia el valor de un parámetro, una distribución de probabilidad o el grado de detalle de un subsistema. En caso de identificar que el resultado de la simulación es especialmente sensible a algún aspecto del modelo habrá que tener especial cuidado en la modelización de ese aspecto. Los métodos de La construcción de modelos de simulación válidos y creíbles
  • 190. SIMULACIÓN DE SISTEMAS DISCRETOS 190 diseño de experimentos esbozados en el Capítulo 4 son especialmente relevantes a la hora de realizar este análisis de sensibilidad. El último paso del proceso propuesto por Naylor y Finger consiste en determinar cuán representativos son los resultados de la simulación. En el caso de la simulación de sistemas existentes, o similares a los existentes, este ejercicio puede consistir en la comparación de dos conjuntos de datos, uno procedente del sistema real y otro del modelo que lo simula. Si la comparación de los dos conjuntos de datos resulta ser «aceptable» entonces se puede considerar «válido» al modelo del sistema. Cuanto mayor sea el grado de aceptabilidad de la comparación, mayor será la confianza que podremos depositar en el modelo. Suele haber una resistencia a construir un modelo de un sistema existente por considerarlo un coste inútil, sin embargo, como Law y Kelton subrayan, los resultados de un modelo no validado pueden ser muy dudosos, especialmente cuando se pretenden extrapolar, y por otra parte, un modelo de un sistema existente pude sugerir maneras de mejorarlo, especialmente cuando se pueden realizar experimentos sobre el modelo de difícil, o imposible, realización sobre el sistema real; el éxito en el esfuerzo de modelización incrementa la credibilidad del estudio, y finalmente no hay que olvidar que un modelo del sistema existente puede ser necesario a la hora de compararlo con las alternativas propuestas. Cuando no existen sistemas similares al propuesto la única manera es recurrir al juicio de los expertos para establecer la aceptabilidad de los resultados de la simulación. En estos casos el recurso a la animación gráfica suele ser crucial para determinar cuan razonables son. La comparación entre los datos reales y los simulados no es un proceso sencillo. Law y Kelton proponen varias alternativas: Inspección, Análisis de Intervalos de Confianza basados en datos independientes, y Análisis de Series Cronológicas. Suponiendo que {R1 , R2 , ....., Rk } son las observaciones del mundo real y {M1 , M2 , ....., Mk } las procedentes del modelo de simulación, la primera idea a la hora de determinar si el modelo es una representación suficientemente aproximada del mundo real es
  • 191. 191 utilizar alguno de los tests estadísticos clásicos (Mann-Whitney, Chi cuadrado, Kolmogorov-Smirnov, etc.) para determinar si se puede considerar que las dos muestras proceden de la misma distribución, sin embargo, como hemos puesto de manifiesto en el Capítulo 4, la mayor parte de los resultados de una simulación, y podemos añadir, del mundo real, están autocorrelacionados y no son estacionarios, lo que impide la aplicación directa de cualquiera de los tests mencionados. En su lugar la práctica de la simulación ha llevado a proponer comparaciones directas de las medias, variancias, funciones de correlación, etc., sin recurrir a ningún procedimiento estadístico formal. Este procedimiento es peligroso porque es particularmente vulnerable a la aleatoriedad inherente de los dos sistemas, el real y el simulado. Law y Kelton proporcionan contra ejemplos que ponen de manifiesto las incorrecciones en que se puede incurrir, y proponen una alternativa, la que denominan inspección correlacionada, que permite apreciar mejor la adecuación entre el modelo de simulación y el sistema modelizado. El procedimiento, ilustrado gráficamente en la Figura 29, consiste en esencia en establecer las La construcción de modelos de simulación válidos y creíbles
  • 192. SIMULACIÓN DE SISTEMAS DISCRETOS 192 comparaciones entre el modelo y el sistema alimentando el modelo con los datos históricos en vez de con los generados a partir de la muestras de las distribuciones de probabilidad de entrada. En este caso el sistema y el modelo están sometidos exactamente a las mismas observaciones con respecto a los datos de entrada, lo que debe derivar en una comparación estadísticamente más precisa. La denominación de inspección correlacionada proviene de que en general los resultados de las estadísticas comparables para el modelo y el sistema estarán correlacionadas positivamente. Un procedimiento alternativo, para comparar un modelo y el sistema correspondiente para aquellas situaciones en las que es posible recoger grandes cantidades de observaciones tanto para el sistema como para el modelo, es el inspirado en la metodología de análisis de resultados de los sistemas con horizonte finito. Suponiendo que se recogen m conjuntos independientes de datos del sistema y n del modelo, y que Xj e Yj son respectivamente los promedios de las observaciones del j-ésimo conjunto del sistema y del modelo, entonces podemos suponer, como en el procedimiento de los lotes, que las Xj son variables aleatorias independientes idénticamente distribuidas con media mX = E(Xj ), suponiendo que los m conjuntos de resultados del sistema son homogéneos, similarmente podemos suponer que las Yj , si los n conjuntos de observaciones son homogéneos, don variables aleatorias independientes e idénticamente distribuidas cuya media es mY = E(Yj ). Podemos intentar comparar el modelo con el sistema construyendo un intervalo de confianza para V= mX - mY . Hay razones para preferir la construcción de un intervalo de confianza para V en vez de verificar la hipótesis nula H0 : mX = mY , ya que, por una parte, dado que el modelo es solo una aproximación del sistema la hipótesis será falsa en la mayoría de los casos, mientras que un intervalo de confianza proporciona más información que el correspondiente test de hipótesis, ya que si el test de hipótesis indica que mX ¹ mY , el intervalo de confianza
  • 193. 193 La construcción de modelos de simulación válidos y creíbles también proporcionará esta información, pero nos indicará además cual es el orden de magnitud de la diferencia entre mX y mY . El procedimiento estadístico para construir el intervalo de confianza es el siguiente: Se estiman las medias y variancias muestrales: [ ] [ ] X X m Y Y S X X m S X X n j j m i i n x j j m y i i n = = = - - = - - = = = å å å å 1 1 2 2 2 2 1 1 1 (5.1) y a continuación se calculan los grados de libertad estimados: [ ] [ ] ( ) [ ] ( ) $ f S m S n S m m S n n X Y X Y = + - + - 2 2 2 2 2 2 2 1 1 (5.2) y utilizamos ( ) x y t s m s n f x y - ± + - $, 1 2 2 2 a para estimar el intervalo de confianza al 100(1-a) por ciento, y puesto que ^ f no será, en general, entero, habremos de interpolar en las tablas de la distribución t de Student. Sean l(a) y u(a) los extremos inferior y superior respectivamente del correspondiente intervalo de confianza para V, si 0 Ï [l(a), u(a) , entonces la diferencia observada entre mX y mY es estadísticamente significativa al nivel a, lo que es equivalente a rechazar la hipótesis nula H0 : mX = mY en favor de la alternativa H1 : mX ¹ mY al mismo nivel. Pero si 0 Î [I(a), u(a)], entonces cualquier diferencia observada entre mX y mY no es estadísticamente significativa al nivel a, y puede ser explicada por las fluctuaciones del muestreo. Incluso en el caso en que la diferencia observada entre mX y mY es estadísticamente significativa no siempre se puede concluir que el modelo no es válido, habría que analizar la magnitud de la diferencia para llegar a tal conclusión. La última alternativa que proponen Law y Kelton esta basada en el método del análisis espectral, como el procedimiento de análisis
  • 194. SIMULACIÓN DE SISTEMAS DISCRETOS 194 de resultados descrito en el Capítulo 4, para determinar si los conjuntos de observaciones del modelo y del sistema son similares o no. Para ello construye la función de autocovariancia de cada conjunto de observaciones y utiliza la teoría correspondiente para construir un intervalo de confianza para la diferencia de los logaritmos de los dos espectros, y utiliza este intervalo de confianza para establecer el grado de similaridad de las dos funciones de autocorrelación. El inconveniente principal de este método estriba en el requerimiento de que las dos secuencias de observaciones sean estacionarias covariantes.
  • 195. 195 La construcción de modelos de simulación válidos y creíbles
  • 196. SIMULACIÓN DE SISTEMAS DISCRETOS 196
  • 198. SIMULACIÓN DE SISTEMAS DISCRETOS 198 6.1. Generadores de simuladores, entornos de simulación y animación gráfica La metodología de la simulación que hemos descrito en los capítulos anteriores, a pesar de sus éxitos y de su implantación mediante los lenguajes de simulación que la incorporan, puso de manifiesto hace ya tiempo una serie de limitaciones en lo que se refiere a la comunicación con el usuario (interfaces hombre-máquina), al marco conceptual del proceso modelizador y a las herramientas software y estructuras de datos necesarias para construir el modelo en el computador y organizar eficientemente los datos requeridos. Una posibilidad de superar tales limitaciones fue planteada ya en 1979 por Oren y Zeigler [54], en su formulación de un marco metodológico para el desarrollo de software avanzado de simulación, dentro del cual se han realizado la mayor parte de los progresos que comentaremos en este apartado. Proponían Oren y Zeigler diseñar nuevos lenguajes de simulación, o rediseñar algunos de los existentes si fuese posible, incorporando al diseño de manera directa los conceptos fundamentales de la teoría de sistemas, de manera que: • Permitiesen al modelizador plantearse su problema dentro del marco de la teoría de sistemas, expresando sus concepciones directamente de forma inteligible para el computador, lo que equivale a realizar en un solo paso el proceso de construcción del modelo y su programación para computador, haciendo posible.
  • 199. 199 • Especificar directamente los modelos en términos de inputs, estados y outputs. • Tuviesen capacidad para combinar, descomponer y recombinar modelos, es decir considerar los modelos como posibles componentes de macromodelos, de acuerdo con las recomendaciones para los procedimientos de validación de modelos de sistemas complejos. • Proporcionasen los fundamentos operacionales para proponer metodologías avanzadas de simulación En consecuencia una metodología avanzada para la simulación, y el contexto computacional que la soporta, debe incluir elementos para: A) La modelización. A.1. Selección del formalismo de modelización. El modelizador debería tener la posibilidad de elegir diversos formalismos de modelización según las características del sistema que pretende modelizar, continuo, discreto, etc. Por lo tanto debería tener acceso a formalizaciones en términos de ecuaciones diferenciales y/o en diferencias, sucesos discretos/tiempo discretos, procesos markovianos, sistemas de colas, etc. Llegando al extremo de poder concebir modelos de sistemas cuya estructura varíe con el tiempo, es decir la posibilidad de especificar cambios controlados por el modelo en su estructura estática y dinámica. A.2. Manipulación del modelo. Descomposición del modelo en submodelos, simplificación del modelo, agregación de modelos en macromodelos refinamientos del modelo, adaptación a diferentes marcos experimentales, etc. Tendencias actuales de la simulación
  • 200. SIMULACIÓN DE SISTEMAS DISCRETOS 200 A.3. Construcción modular del modelo. Que haga posible, de acuerdo con las técnicas que hemos propuesto para la validación y verificación de modelos, construir macromodelos acoplando e integrando modelos de subsistemas componentes que se han modelizado por separado, o se toman de bases de modelos preexistentes, cuando se integran en sistemas informáticos de ayuda a la toma de decisiones. B) Marcos experimentales. Posibilidad de su manipulación interactiva. C) Programas de simulación. Especificación algorítmica de los programas de simulación que permita un tratamiento automático de los pares modelo-marco experimental, lo que supone una especificación del lenguaje de simulación que haga posible: • Una expresión modular de los modelos y sus acoplamientos e interacciones de acuerdo con los diferentes formalismos de modelización. • Una especificación modular de los marcos experimentales. La consecuencia de todos los requisitos y especificaciones mencionados es una metodología de simulación, y un lenguaje que la materialice, que hagan posible un proceso de modelización asistida por computador. Los primeros intentos de desarrollar una plataforma software que incorporase sino todos los ingredientes propuestos al menos los más significativos, fueron los generadores interactivos de programas de simulación, el DRAFT de Mathewson [24], y el MISDEM de Davies [55].
  • 201. 201 Cuyo punto de partida está en el hecho que hemos puesto de manifiesto de que ciertas características de los programas de simulación son especí- ficas del modelo particular que se está implantando, mientras que otras son comunes a todos los modelos, especialmente los mecanismos de avance del tiempo. En el caso de la simulación de sistemas discretos el problema central es el de la ejecución en una secuencia cronológicamente correcta («scheduling») de las secciones del programa que representan la ocurrencia de los sucesos aleatorios. Cada lenguaje particular de simulación (Simulation Programming Language, SPL) proporciona, según hemos visto en el Capítulo 3, el esqueleto de un programa y un mecanismo de avance del tiempo, con una serie de rutinas y estructuras de datos que se pueden utilizar para añadirle la «carne» al esqueleto, que describa las características peculiares del modelo que nos ocupa. En otras palabras, el SPL nos proporciona los conceptos de alto nivel que nos ayudan a articular las características peculiares de nuestro modelo, y esta es su ventaja, pero al mismo tiempo, y esta es la posible desventaja, impone una estructura rígida dentro de la cual hay que definir el comportamiento dinámico de las componentes del modelo. Las características peculiares esenciales de un modelo pueden resumirse en: 1. Identificación de los recursos requeridos por cada actividad o suceso. 2. Identificación de donde se encuentran los recursos. 3. Cantidad de tiempo durante la cual los recursos interaccionan entre sí o están siendo utilizados para la realización de una actividad. 4. Qué les ocurre a los recursos cuando termina un período de actividad cooperativa. Teniendo en cuenta estas características, desde la óptica de diseñar una metodología de modelización asistida por ordenador, una de las líneas de enfoque es el diseño de cuestionarios interactivos para solicitar de una manera sistemática esta información esencial sobre las peculiaridades de un modelo particular, para utilizarla en la generación automática de un programa de simulación, sintácticamente Tendencias actuales de la simulación
  • 202. SIMULACIÓN DE SISTEMAS DISCRETOS 202 correcto en el SPL elegido para la programación de la simulación.Tanto el DRAFT como el MISDEM responden a este planteamiento, ambos tienen una estructura modular, y se trata de programas interactivos generadores de programas de simulación que cubren las terminologías y estructural del esqueleto de la mayoría de los SPL. Un aspecto importante que hay que resaltar es que al estar basados en la metodología general de la modelización estos sistemas generadores han sido diseñados de manera que son independientes del lenguaje de simulación satisfaciendo de esta manera el requisito de ser independientes de los lenguajes, tal como habíamos planteado en las especificaciones generales de las metodologías avanzadas. La base de algunos de los sistemas de simulación interactivos la forman los GENERADORES DE PROGRAMAS: Un generador de programas es una herramienta de software interactivo que traduce la lógica de un modelo de simulación, descrita mediante un simbolismo relativamente general, al código de un lenguaje de simulación y de esta manera permite al computador imitar el comportamiento del modelo. La familia DRAFT de generadores de programas es un conjunto de unidades modulares encadenadas de la forma que indica la Figura 30. Permiten al usuario introducir la estructura del modelo en términos de ciclos de actividades de las entidades, y ejecutar interactivamente la simulación mediante un diálogo de preguntas y respuestas. El módulo INPUT/EDITOR acepta la descripción del modelo, identifica los errores semánticos, como por ejemplo el uso de nombre de variables reservados, y permite al usuario corregirlos interactivamente. El módulo de ANÁLISIS verifica que el input no tienen errores, permite corregir interactivamente algunas de las inconsistencias de tipo lógico que sean detectables, y prepara el fichero codificado de las interacciones entre las entidades del modelo.
  • 203. 203 Tendencias actuales de la simulación
  • 204. SIMULACIÓN DE SISTEMAS DISCRETOS 204 Este fichero forma un input, de carácter general, para el escritor de programas elegido por el usuario. Es después de esta etapa cuando la descripción del modelo es configurada según la estructura particular, o visión del mundo, en términos de SUCESO, ACTIVIDAD, PROCESO, asociada al lenguaje objetivo (target language) en que se va a programar el modelo, y entonces se produce la traducción que genera el código ejecutable, y si la traducción es satisfactoria se compila y, con los datos requeridos, se ejecuta. En general, el diseño de un sistema Generador de Programas de Modelos consta de tres partes [56]: a. Lenguaje descriptor del modelo. b. Generador de la estructura estandarizada del modelo. c. Traductor. A. Lenguaje descriptor del modelo. Siguiendo la propuesta de Oren y Zeigler [54], el lenguaje descriptor del modelo supone que los sistemas discretos constan de sucesos externos, inputs, outputs, estados, funciones de transición y una base de tiempos, en consecuencia su estructura consta de seis módulos: • De especificación del modelo. 1. Componentes del modelo. 2. Variables descriptivas de las componentes. 3. Interacciones de las componentes. • De experimentación. 4. Dispositivos de salida. 5. Especificación de las condiciones terminales. 6. Inicialización.
  • 205. 205 Tendencias actuales de la simulación Los diagramas de ciclos de actividades son, como hemos señalado, la propuesta más utilizada para la especificación del modelo. B. Generador estandarizado de la estructura del modelo. Desde el punto de vista informático la primera parte del generador de la estructura del modelo es un analizador gramático («parser») de la especificación del modelo. La descripción es analizada módulo a modulo, en el orden establecido por el lenguaje descriptor, para producir un conjunto de ficheros que sirven de input al traductor. Las experiencias iniciales en el desarrollo e implantación de los generadores de programas de simulación llevaron rápidamente al convencimiento de que desde el punto de vista de la arquitectura del software las funciones del sistema podían integrarse de una forma más compacta y coherente, al tiempo que se potenciaban algunas de sus componentes haciéndolas más flexibles, sobre todo si se aprovechaban los desarrollos tecnológicos del hardware en lo que se refiere a interactividad hombre-máquina, especialmente si esta se realiza mediante sistemas gráficos. Henriksen [23] realizó en 1983 una propuesta de tipo conceptual, que ha jugado un papel seminal en todos los desarrollos posteriores. La Figura 31 resume el esquema de la propuesta de Henriksen, de lo que a partir de él se han denominado Entornos Software de Simulación. En ella se separan los dos tipos de componentes estructurales de este tipo de sistemas: • Las herramientas puramente software tales como los Editores Orientados a la Sintaxis, para realizar las funciones de input y edición en función de las características del lenguaje de descripción del modelo, Parsers y Editores de Programa, para analizar y escribir el programa en el lenguaje objetivo, y
  • 206. SIMULACIÓN DE SISTEMAS DISCRETOS 206 • Las que representan la información referente al modelo, su estructura, los datos, las condiciones experimentales, resultados etc., que se aglutinan en una Base de Conocimientos, lo que supone, al menos desde el punto de vista conceptual, enmarcar este tipo de sistemas en un contexto de Inteligencia Artificial. El desarrollo de entornos de simulación a partir de esta propuesta ha venido determinado por dos factores, por una parte el desarrollo tecnológico de los sistema gráficos, que ha permitido ir sustituyendo los editores orientados a sintaxis por editores gráficos que permiten una visualización de la estructura de física del sistema modelizado en términos de una representación iconográfica, al tiempo que un diálogo interactivo, basado en una filosofía de ventanas, hace posible la introducción de la información complementaria interactivamente de forma algebraica o en un lenguaje más próximo al natural, según el tipo de información. Por
  • 207. 207 Tendencias actuales de la simulación otra, las facilidades interactivas que, contempladas desde la perspectiva del uso de los modelos de simulación como soporte a la toma de decisiones, posibilitan una materialización ad hoc de este tipo de sistemas en forma de entorno de simulación, en el que en lugar de una base de modelos el usuario dispone de un lenguaje de especificación de modelos, o de un sistema gráfico de descripción de los mismos. Los datos para la ejecución pueden estar contenidos en la base de conocimientos, o pueden ser introducidos interactivamente y almacenados en ella, así como las condiciones para la ejecución del modelo y el análisis de resultados, es decir las condiciones experimentales que permitirán obtener respuesta a las preguntas del tipo ¿qué pasaría sí? ("what if") características de la toma de decisiones basada en los experimentos de simulación. Otra consecuencia de la combinación de este esquema con el desarrollo de los sistemas gráficos es la posibilidad de una presentación gráfica de los resultados de la simulación, e incluso de la animación gráfica de los mismos, de acuerdo con las recomendaciones del capítulo 5 en lo referente a la verificación, validación y credibilidad de los modelos de simulación. Panorámicas de realizaciones en esta dirección pueden encontrarse en los trabajos de Pidd [22,57]. 6.2. Simulación visual interactiva La incorporación de los conceptos básicos de la simulación visual interactiva, especialmente a partir de las propuestas resumidas por Pidd en las referencias citadas, representaron un cambio fundamental en la forma de trabajo en el campo de la simulación [1]. La construcción de un modelo de simulación ha pasado, de ser una labor reservada a especialistas en programación, de difícil y costosa realización, basada en procesos batch y en una interpretación en general elaborada a partir del procesado de tediosos listados, a ser un ejercicio estructurado alrededor de la utilización de entornos cada vez más amables y flexibles que permiten aprovechar la característica más destacable de la
  • 208. SIMULACIÓN DE SISTEMAS DISCRETOS 208 simulación: la posibilidad de estudiar la evolución dinámica de los sistemas a lo largo del tiempo. Según Hurrion [58], la Simulación Visual Interactiva puede definirse como aquella que «posibilita la creación gráfica de modelos de simulación, permite mostrar por pantalla dinámicamente el sistema simulado, así como la interacción entre el usuario y el programa en ejecución. La interacción implica que la simulación se detiene y solicita información al usuario, o bien que éste puede parar la simulación a su voluntad e interaccionar con el mencionado programa». Actualmente hay varios paquetes comerciales que incorporan plenamente estos conceptos como, por ejemplo, Simfactory de CACI Inc [25], Witness de ATT & Istel [26], o FACTOR/AIM de Pritsker Corporation. Todos ellos son productos orientados primordialmente a la utilización de la simulación para la resolución de problemas en el ámbito de la producción. Utilizables desde entorno Windows, y ejecu- tables sobre ordenadores personales o sobre otras plataformas más potentes como Workstations, permiten construir modelos complejos de manera incremental, a partir de la selección de los componentes del sistema de entre un repertorio limitado de entidades predefinidas. Estas suelen ser representativas de los principales objetos- entidades que nos podemos encontrar en una planta de producción y adoptan, en consecuencia, los nombres más cercanos a la terminología apropiada a la aplicación. Así, por ejemplo, parts, buffer, machine, conveyor, track, vehicle, labor, pipe, tank, processor, etc... son elementos físicos de Witness, y en el caso de en FACTOR/AIM son parts o loads, batches, resources, pools, materials, agv’s, transporters y conveyors. Se representan mediante iconos fácilmente editables, manipulables y reubicables libremente en la pantalla. Las Figuras 32 y 33 ilustran gráficamente como se construye mediante el WITNESS el modelo del taller de manufactura, definido en la Sección 1.3, cuyo modelo conceptual como sistema de red de
  • 209. 209 Tendencias actuales de la simulación
  • 210. SIMULACIÓN DE SISTEMAS DISCRETOS 210
  • 211. 211 Tendencias actuales de la simulación colas hemos descrito en la Figura 3, y cuyo modelo de simulación en GPSS hemos presentado en la Figura 6. La Figura 32 presenta el modelo tal como aparece al ser construido gráficamente mediante el WITNESS, comparando esta figura con la Figura 3 nos percatamos de que lo que hemos hecho ha sido representar directamente en la pantalla del ordenador el modelo conceptual del sistema. Un convenio de iconos, previamente definido por el usuario, asocia cada entidad del sistema con su representación gráfica mediante el icono convenido. En la figura podemos distinguir los iconos utilizados para representar las colas de cada grupo de máquinas, y las máquinas de cada grupo. El gráfico presenta así mismo la disposición espacial de los grupos de máquinas y las flechas que los unen las rutas de las piezas entre las máquinas de acuerdo con las secuencias de operaciones que les corresponden. La construcción del modelo queda reducida a la representación gráfica del modelo conceptual. Cuando se ejecuta interactivamente el modelo aparecen en la pantalla dos ventanas auxiliares, también representadas en la Figura 32. La ventana superior derecha presenta el reloj de simulación, mientras que la de la parte inferior de la figura va informando de la secuencia de sucesos a medida que van ocurriendo. Al mismo tiempo los iconos que representan las máquinas de cada grupo van cambiando de color según que la máquina esté ocupada o desocupada. En el detalle de la Figura 33 se pueden apreciar además las colas delante de cada grupo de máquinas y el número de piezas de cada tipo que hay en la cola, distinguidas por su color. Al hacer un doble clic sobre un icono parece una ventana auxiliar como la representada en la Figura 33. Esta ventana tiene una doble función. Cuando el modelo esta totalmente definido permite consultar cuales son los valores de los atributos que caracterizan la entidad definida por el icono. En el caso del ejemplo nos indica que el grupo fundición consta de 14 unidades, que no hay reglas de prioridad en la selección de las piezas, que en consecuencia son tratadas según una disciplina FIFO, y que el tiempo requerido para
  • 212. SIMULACIÓN DE SISTEMAS DISCRETOS 212 procesar cada pieza en la máquina esta definido por la función t_fund (). Durante el proceso de definición del modelo, una vez que se ha construido la representación gráfica del modelo conceptual mediante los iconos, esta ventana permite establecer el dialogo a través del cual se van definiendo los valores de estos parámetros. El informe final que proporciona el simulador tiene unas características muy similares a los del GPSS que hemos discutido anteriormente. FACTOR/AIM (Lilegdon,Martin,Pritsker,1994) es un lenguaje orientado a la interacción entre procesos, que permite describir y mostrar interactivamente sistemas de fabricación complejos mediante la correspondiente interfaz gráfica, e interpretar de forma ágil los resultados obtenidos a partir de la observación de la evolución dinámica del sistema a simular. Entre los distintos componentes predefinidos en el lenguaje, se establece un mecanismo de intercambio de mensajes relacionados con la animación (dibujar, borrar, refrescar), la simulación y el cambio de las características o el estado del componente), la manipulación gráfica (edición, traslación por la pantalla), las operaciones habituales de edición como cut y paste, o la relación con bases de datos relacionales basándose en estándares como SQL. Como algunos otros paquetes de simulación, SIMAN por ejemplo, permite la visualización de la simulación mediante unos diagramas pseudo-3D, que dan al conjunto un cierto aire de realismo que facilita extraordinariamente la interpretación y la aceptación del modelo por parte del cliente. Ello conecta con la interesante discusión sobre el tema de la credibilidad en simulación [27] como problema fundamental para la necesaria cooperación, e incluso a veces «complicidad», entre analistas y clientes finales. Un estudio de simulación es a menudo un trabajo de difícil cuantificación en términos de costes reales de desarrollo. A medida que avanza el proyecto, surgen nuevas propuestas no necesariamente
  • 213. 213 Tendencias actuales de la simulación especificadas en el pliego de condiciones pero de obligada aceptación, faltan datos, cambian los equipos o los interlocutores. La participación del usuario en el proceso de modelización y en la visualización de las primeras pruebas del prototipo de simulador, puede ayudar cosiderablemente al buen progreso del proyecto. Surge a continuación un primer nivel de discusión sobre la necesidad y conveniencia de un esfuerzo tan considerable, en términos de coste de desarrollo del entorno y de potencia de procesado, que es necesario para proporcionar dos de las características fundamentales de los entornos visuales interactivos de desarrollo de proyectos de simulación: el sistema de diálogos explícitos e implícitos para la construcción y modificación del modelo, y el subsistema de representación gráfica para la animación, en tiempo real o con postprocesado. Muchos analistas empiezan a poner en duda la conveniencia de construir simuladores con este tipo de vocación visual interactiva, sin profundizar previamente mas en el campo de las interfases y, específicamente, en la relación persona-maquina. La extensión en el uso de generadores de interfases de usuario personalizables puede ser un paso adelante en este sentido. En todo caso, la construcción de modelos de grandes dimensiones puede constituir una labor excesivamente laboriosa si se parte de los actuales sistemas de identificación, definición de aspecto gráfico y de características vinculadas al proceso de animación, y especificación de detalle disponibles sobre muchos de los productos actualmente en el mercado. Evidentemente, no se trata de paralizar la evolución de los entornos de simulación hasta que el panorama quede mas definido, ya que la propia evolución de la tecnología y del software disponibles impelen a la mejora continua de los productos hoy en día comercializados, y los conducen hacia una mejor presentación y una mayor facilidad de uso que es de agradecer. Sin embargo, una reflexión sobre las necesidades y las posibilidades reales de los
  • 214. SIMULACIÓN DE SISTEMAS DISCRETOS 214 usuarios actuales y potenciales de la simulación seria muy conveniente a fin de no frustrar expectativas alimentadas por una apariencia de uso engañosamente fácil para la construcción de modelos sencillos. 6.3. Simulación e inteligencia artificial Como hemos señalado la propuesta de Henriksen para los entornos del simulación representaba un primer paso en las posibles relaciones entre la Simulación y la Inteligencia Artificial, al menos en el aspecto que se refiere a la manera de estructurar, almacenar y relacionar la información para la descripción del modelo y los datos para su ejecución. Sin embargo, como pone de manifiesto, Paul [59], «investigadores y practicantes en ambos campos se han enfrentado a problemas bastante similares en la creación de modelos de sistemas complejos, y a veces solo parcialmente entendidos, lo que ha hecho que, a pesar de que el desarrollo de soluciones haya sido independiente en cada disciplina, se haya llegado a herramientas software y técnicas que a menudo se solapan no solo conceptual sino también terminológicamente». Un ejemplo de esta afirmación lo constituyen no sólo los entornos software para simulación, sino también todos los desarrollos en la generación de programas de simulación o de herramientas de ayuda a la modelización asistida por ordenador. En este sentido Haddock [60] propuso en 1987 la integración de los Generadores de Programas de Simulación en la estructura de los denominados Intelligent Front-Ends: Sistemas Expertos que hacen de interfaz con el usuario, generan el código de programa siguiendo un diálogo con el usuario, e interpretan y explican los resultados de la simulación. La Figura 34 ilustra la estructura conceptual de los sistemas propuestos y experimentados por Haddock. No obstante, al margen de estas realizaciones, las relaciones aunque potencialmente tienen grandes perspectivas no han dado, por el momento, mucho más de sí, especialmente en el terreno que se
  • 215. 215 presentaba como el que tenía más perspectivas de fructificar, el de las relaciones entre Simulación y Sistemas Expertos. Dejo fuera de estas consideraciones el tema de la simulación cualitativa [61], que constituye un capítulo a parte. A mediados de la década de los ochenta aparecieron dos artículos en la revista Simulation, el primero debido a Shannon, Mayer y Adelberger [62], y el segundo a Moser [63], que parecían abrir una nueva perspectiva por medio de la simbiosis entre Sistemas Expertos y Simulación. Considerando los Sistemas Expertos como programas de computador orientados a la resolución de problemas difíciles que requieren experiencia, denominados habitualmente programas basados en el conocimiento porque su capacidad depende críticamente del uso de los hechos y las heurísticas que utilizan los expertos, podemos diferenciarlos de las aplicaciones puras de la Inteligencia Artificial en Tendencias actuales de la simulación
  • 216. SIMULACIÓN DE SISTEMAS DISCRETOS 216 el sentido de que su objetivo no es el entendimiento de los mecanismos básicos utilizados por el experto humano para llegar a un resultado dado, sino más bien duplicar, de una manera consistente, los resultados del experto humano para la resolución de un tipo de problemas. Un Sistema Experto difiere de un programa de computador tradicional tanto en su arquitectura como en el proceso de desarrollo seguido para construirlos. En un Sistema Experto el énfasis se pone no en los procedimientos e instrucciones para el computador, sino en la adquisición, organización y utilización del «conocimiento». En un Sistema Experto típico, cuya estructura está representada en la Figura 35, el conocimiento está organizado en tres categorías: • Una base de datos global que proporciona los datos de entrada, o conocimiento declarativo, que define el problema particular y registra el estado en curso de la solución o situación. • Una base de conocimientos, que describe los hechos y las heurísticas asociadas con el dominio general del problema. Puesto que este dominio de conocimiento tomo con frecuencia forma de reglas, a veces se denomina conocimiento relacional o de procedimientos. • Una estructura de control o de inferencia, denominada motor de inferencia, que define el enfoque de resolución del problema o como pueden manipularse los datos y el conocimiento para resolver el problema. En la base de conocimientos los hechos representan el conocimiento disponible en general, aceptado por los expertos, en un cierto campo. Los hechos se incorporan a la base de conocimientos por medio de alguna de las técnicas de representación del conocimiento, combinación de estructuras de datos y procedimientos interpretativos:
  • 217. 217 Tendencias actuales de la simulación
  • 218. SIMULACIÓN DE SISTEMAS DISCRETOS 218 • Pares Atributo-Valor. • Ternas Objeto-Atributo-Valor. • Reglas de producción. • Estructuras («Frames», almacenamiento del conocimiento asociado a un objeto en forma de árbol jerárquico que contiene todos los atributos y valores correspondientes). • Redes Semánticas. y para su recuperación se utilizan procedimientos basados en lógica formal, cálculo de predicados, o de exploración de las estructuras utilizadas. Las reglas de producción son conjuntos de heurísticas utilizadas típicamente por los usuarios para tomar una decisión, habitualmente adoptan la forma: [situación ðacción]. El sistema trata de buscar una solución subóptima que satisfaga la mayoría de las restricciones y condiciones del problema. Las reglas se introducen por medio del sistema de adquisición del conocimiento, que puede adoptar diversas formas, desde un simple editor hasta un sofisticado proceso de diálogo. Mediante el Motor de Inferencia el programa de computador toma decisiones sobre cual es la cuestión cuya respuesta hay que encontrar y la estrategia sobre como utilizar la base de datos y de conocimientos para resolver el problema planteado. Muchos de los mecanismos para manipular las reglas para formar inferencias pueden considerarse como una variante de demostraciones de teoremas. La resolución del problema se realiza mediante una exploración, no exhaustiva, del conjunto de soluciones. Algunos de los procedimientos más utilizados son métodos de búsqueda por objetivos («goal-driven») o por encadenamiento retroactivo («backward chaining»), búsqueda dirigida por los datos («data-driven»), o por encadenamiento progresivo («forward chaining»), y estrategia de control bidireccional. En una estrategia «backward chaining» se realiza la exploración retroactivamente a partir del objetivo, procediendo jerárquicamente intentando satisfacer las condiciones necesarias para alcanzar la meta
  • 219. 219 elegida. Una estrategia «forward chaining» significa explorar en El sistema explora el conjunto de reglas hasta encontrar una que satisfaga todas las condiciones. La interfaz con el usuario tiene, entre otras, la capacidad para explicar al usuario la línea de razonamiento seguida para llegar a las conclusiones. Como hemos puesto de manifiesto, los lenguajes y modelos de simulación contienen muchas de las ideas utilizadas en Inteligencia Artificial: la capacidad de las entidades y los procesos de tener asociados atributos que describen sus características (Estructuras), cuyos valores pueden cambiar dinámicamente, modificar dinámicamente el flujo de las entidades a través del sistema (Producción de Reglas y de Probabilidades Condicionales), cambiar el sistema en función de las variables de estado, y representar el conocimiento sobre el sistema en forma de una red de flujos. La diferencia fundamental con la Inteligencia Artificial estriba no tanto en algunos de los conceptos subyacentes cuanto en la forma en que se construye y ejecuta el modelo. La similaridades entre algunas de las estructuras básicas de los sistemas basados en el conocimiento, como las reglas de producción, y los bloques de los programas de simulación fueron identificadas y analizadas por diversos autores hace bastante tiempo, las referencias siguientes, son solo una muestra, pequeña pero significativa, O’Keefe [64,65], Doukidis [66], Vaucher [67]. El artículo de Paul [59], que hemos referenciado anteriormente, proporciona una amplia panorámica de este tema. Sin embargo las perspectivas que estos análisis abrían no se han concretado, por el momento, en realizaciones, con la excepción del desarrollo de simuladores basados en el método de las tres fases [68,22]. El método de las tres fases, propuesto inicialmente por Tocher [37], combina los enfoques de la exploración de actividades («activity Tendencias actuales de la simulación
  • 220. SIMULACIÓN DE SISTEMAS DISCRETOS 220 scanning»), con la programación de sucesos («event scheduling»). Es un planteamiento que había sido marginado durante mucho tiempo, quizás por su aparente dificultad de implantación, pero que la modelización en términos de ciclos de actividades ha vuelto a poner de actualidad. Este planteamiento considera que en la mayor parte de sistemas hay dos tipos de actividades: • Actividades para las que se puede predecir en que instante han de comenzar por lo que su ocurrencia puede ser programada, («scheduled»), a las que Tocher denomina actividades «book-keeping», o actividades B. • Actividades cuya realización depende de las condiciones de la simulación en cada instante, que suelen ser actividades de tipo cooperativo, por lo que Tocher las definió como actividades C. En términos de la descripción que hemos realizado en el Capítulo 3, esto significa que mientras que hay actividades que pueden ser controladas directamente por el ejecutivo, hay otras actividades cuya realización depende del estado del sistema. El tratamiento de actividades directamente controladas por el ejecutivo es propio del planteamiento de la programación de sucesos, por lo que en este la ocurrencia de un suceso tiene que tratar todas las posibles implicaciones lógicas del cambio de estado del sistema que él provoca, mientras que el tratamiento condicional es el que corresponde al planteamiento de la exploración de actividades, lo que supone que el ejecutivo no sabe en ningún momento que actividad concreta es la que debe ejecutarse en cada instante, por lo que debe proceder a una exploración de todas ellas hasta que identifica cuales son las que reúnen las condiciones para ser ejecutadas en ese momento. El planteamiento de las tres fases es un compromiso entre ambos y distingue entre los dos tipos de actividades, de manera que el ejecutivo
  • 221. 221 trata directamente aquellas actividades cuya ocurrencia puede ser programada, y explora las restantes para identificar las consecuencias lógicas de la realización de la actividad programada. En términos de Pidd [22], los dos tipos de actividades se pueden definir de la manera siguiente: • Actividades B (actividades «book-keeping») ejecutadas directamente por el ejecutivo cada vez que se llega al instante en que su ocurrencia ha sido programada • Actividades C (actividades condicionales o cooperativas) cuya ejecución puede depender de la cooperación de diferentes clases de entidades, o de la satisfacción de condiciones específicas durante la simulación.Tienen un carácter similar a las actividades definidas en el enfoque «activity scanning». En el caso del ejemplo de cola simple que hemos utilizado a lo largo de toda esta monografía, en el que los clientes llegan aleatoriamente según una distribución de probabilidad dada (Poisson en el caso más sencillo), esperan hasta que les llega el turno para ser servidos, reciben un servicio cuya duración puede ser también aleatoria (exponencialmente distribuida en el caso más sencillo), y abandonan el sistema cuando han recibido el servicio), hay dos sucesos cuya ocurrencia puede ser predicha con exactitud: • Llegada de un cliente: Si se encadenan las llegadas puede hacerse que el cliente n-ésimo se produzca al final del intervalo entre el cliente n-1 y el n. No hay ninguna condición que afecte a este suceso y por lo tanto su ocurrencia está determinada. Se trate de una actividad B en la terminología del planteamiento de las tres fases para la simulación. • Final del servicio: Cuando se inicia un servicio su duración puede ser determinada a partir de la distribución de probabilidad correspondiente, por lo tanto su finalización, y Tendencias actuales de la simulación
  • 222. SIMULACIÓN DE SISTEMAS DISCRETOS 222 las actividades que vienen a continuación (abandono del sistema por el cliente y liberación del sirviente) ocurrirán de manera determinada al finalizar el servicio. En consecuencia el final del servicio también es una actividad B. • Iniciación del servicio: solo puede tener lugar si se satisfacen dos condiciones. En primer lugar debe haber al menos un cliente esperando a recibir servicio, y en segundo el sirviente debe estar libre para poder dispensar el servicio. En consecuencia esta actividad es a la vez condicional y cooperativa por lo que se trata de una actividad C. En resumen un modelo de tres fases para un sistema simple de colas consiste en dos actividades de tipo B y una de tipo C. El análisis de como opera el planteamiento de las tres fases y comparación con el diagrama de ciclos de actividades permite establecer una regla que los vincula: Un estado activo se inicia con una actividad C y termina con una B a menos que el estado genere nuevas entidades en el sistema. El ejecutivo del planteamiento de las tres fases puede describirse en los términos siguientes: • Fase A:Exploración del tiempo.El ejecutivo determina cuando debe ocurrir el siguiente suceso y decide cual de los sucesos B debe ejecutarse en ese instante. Después avanza el tiempo en el reloj de simulación hasta el instante para la ocurrencia del siguiente suceso, y se mantiene allí hasta que las fases B y C se han completado. • Fase B: Llamada a las actividades B. El ejecutivo verifica cual es la actividad B que debe ejecutarse en ese instante y pasa a realizarla. • Fase C: Exploración de las actividades C. El ejecutivo intenta activar cada una de las actividades C según su orden
  • 223. 223 Tendencias actuales de la simulación y realiza aquellas cuyas condiciones se satisfacen en ese momento. El proceso se repite hasta que no quedan más actividades C. La Figura 36 ilustra gráficamente la estructura de este ejecutivo. Esta estructura puede rediseñarse para configurar un sistema experto basado en las reglas de producción como el que muestra la Figura 37. La base de conocimientos contiene el conjunto de reglas que describen el conocimiento general sobre el dominio de conocimiento del problema. Las reglas tienen dos composiciones las de las actividades B y las de las C. Las actividades o sucesos B se activan cuando el tiempo de simulación alcanza determinados valores, desde el punto de vista de la Inteligencia Artificial son considerados como «demons» puesto que no tienen una parte condicional, sino solo la de las acciones. Las actividades C son típicas reglas de producción del tipo if- then. Cada vez que se encuentra cierta situación en la parte IF de la regla se ejecutan las acciones en la parte THEN o, en la terminología de la simulación, cuando se verifican las condiciones para la realización de una actividad esta se ejecuta. La componente de memoria de trabajo del sistema de producción guarda la información sobre el estado actual del sistema. Sus estructuras son ensambladas y manipuladas desde el motor de inferencia por medio de llamadas a la biblioteca de unidades de simulación. Estas últimas son las que crean las estructuras de datos requeridas y permiten su actualización o eliminación. La parte principal de la memoria de trabajo esta constituida por metas y hechos, como en cualquier sistema de producción. Los hechos, estados del modelo de simulación en cualquier instante, son los estados de las entidades utilizadas por las reglas para extraer inferencias. Las metas son los elementos del mecanismo
  • 224. SIMULACIÓN DE SISTEMAS DISCRETOS 224
  • 225. 225 Tendencias actuales de la simulación
  • 226. SIMULACIÓN DE SISTEMAS DISCRETOS 226 temporal y representan la programación de las actividades B. Como en cualquier sistema de producción, las metas proporcionan la dirección para el procesamiento del sistema suministrando el estado que debe ser alcanzado. En un proceso de simulación de tres fases las propiedades de las metas que se utilizan son el tiempo (cuando una actividad B debe ocurrir), y las prioridades de las actividades. Como parte auxiliar de la memoria de trabajo se guarda la información sobre los procedimientos de muestreo y de recogida de resultados. El motor de inferencia controla el tiempo, las condiciones de terminación, las llamadas a los «demons» B y la verificación de todas las reglas de producción C. El sistema de simulación no es típico en el mecanismo de inferencia de las reglas de producción, se ocupa de encontrar, en primer lugar, todas las reglas que son satisfechas por los datos contenidos en la memoria en ese momento y entonces aplica una estrategia de selección para determinar cuales ejecuta. La metarregla de la fase A avanza el tiempo hasta el instante en que algo tiene que ocurrir. La metarregla de interrupción, común a todos los sistemas de producción, verifica las condiciones de terminación de la ejecución. La metarregla de la fase B ejecuta todos los sucesos B identificados por la metarregla de la fase A. Finalmente la metarregla de la fase C verifica por turno todas las reglas C de producción y ejecuta aquellas que satisfacen los requisitos de los datos de la memoria de trabajo. Las cuatro metarreglas se aplican repetidamente hasta que se cumplen las condiciones de la metarregla de interrupción. El motor de inferencia utiliza un procedimiento de encadenamiento retroactivo para la verificación y ejecución de las reglas C de producción. Es un mecanismo de inferencia obvio para una situación en la que hay una multiplicidad de metas igualmente aceptables y un estado inicial único. Las posibles ineficiencias en el caso de problemas complejos pueden resolverse con versiones más sofisticadas del motor de inferencia y de la estructura de la base de conocimientos. Observaciones similares pueden hacerse con respecto al tratamiento del tiempo [22], extremo no muy desarrollado en el campo
  • 227. 227 de la Inteligencia Artificial pero que forma parte de la naturaleza de la Simulación. A parte de la referencia de Crookes [68], en lo que se refiere al simulador CASM basado en el procedimiento de las tres fases, y los desarrollos posteriores incluidos en el texto de Pidd [22], las relaciones entre Inteligencia Artificial y Simulación siguen siendo un área abierta de investigación en la que aún puede haber muchas cosas que decir. Un comentario adicional, para cerrar este apartado, es el que se refiere a algunas utilizaciones de la simulación en combinación con sistemas basados en el conocimiento, como en el caso de algunos proyectos europeos de aplicaciones avanzadas de tecnologías telemáticas al tráfico CLAIRE [69], KITS [70], o nacionales [71], en los que se ha experimentado otro tipo de relación entre los sistemas expertos y los modelos de simulación estructurada en forma de un diálogo entre un sistema basado en el conocimiento para el control del tráfico y un modelo se simulación de la red viaria controlada por el sistema experto, en el que el modelo de simulación juega un doble papel con respecto al sistema experto, como fuente de aprendizaje y herramienta de conocimiento por una parte, y como mecanismo de evaluación del impacto de los diagnósticos y propuestas del sistema basado en el conocimiento por otra. Tendencias actuales de la simulación
  • 228. SIMULACIÓN DE SISTEMAS DISCRETOS 228
  • 230. SIMULACIÓN DE SISTEMAS DISCRETOS 230 [1] Barceló, J. y J. Casanovas , Simulación y Modelización de Sistemas, en: Panorama Informático, Editado por FESI, 1996. [2] Isdefe, Presentación de las Monografías de Ingeniería de Sistemas, Madrid, 1995. [3] Gordon, G., System Simulation, Prentice-Hall, 1978. [4] García, M. R., Discrete Event Simulation Methodologies and Formalisms, Proceedings of the Winter Simulation Conference, 1990. [5] Ackoff, R. L., The Scientific Method, John Wiley and Sons, 1963. [6] Volterra, V., Variazioni e Fluttuacioni del Numero d’Individui in Specie Animali Conviventi, Mem. Accad. Naz. Lincei, 2, 31-33, 1926. [7] Lotka, A. J., Undamped Oscillations Derived from the Law of Mass Action, J. Amer. Chem. Soc., 42, 1595-9, 1920. [8] Michalopoulos, P . G., J. K. Lin y D. E. Beskos, Integrated Modelling and Numerical Treatement of Freeway Flow, Appl. Mathem. Model. Vol. 11, No. 401, pp. 447- 458, 1987. [9] Drazin, P . G., Nonlinear Systems, Cambridge University Press, Cambridge Texts in Applied Mathematics, 1993. [10] Stewart, J., Does God Play Dice - The New Mathematics: Putting Theory into Practice, Prentice-Hall, 1986 of Chaos, Penguin 1990. [11] Kleinrock, L., Queueing Systems,Volume I:Theory, Volume II: Computer Applications, John Wiley, 1975.
  • 231. 231 Referencias [12] Kobayashi, H., Modeling and Analysis: An Introduction to System Performance Evaluation Methodology, Addison-Wesley, 1978. [13] Barceló, J., J. L. Ferrer y R. Grau , Simuladores de Tráfico: Herramientas para Ayudar al Diseño de Proyectos y Evaluación de Estrategias, Revista Carreteras, Asociación Española de la Carretera, Nº 74, Noviembre-Diciembre 1994. [14] Kühne, R. D. y P. G. Michalopoulos, Continuous Flow Models, Capítulo 5 del libro pendiente de publicación por el Transportation Research Board sobre Traffic Flow Theory, 1994. [15] Papageorgiou, M., Freeway Traffic Modelling, in M. Papageorgiou, Ed. Concise Encyclopedia of Traffic and Transportation Systems, Pergamon Press, 1991. [16] Lighthill, M. H. y G. B. Whitham, On Kinematic Waves-II: A Theory of Traffic Flow on Long Crowded Roads, Proceedings, Royal Society, London, A229, No.1178, pp.317-345, 1955. [17] Michalopoulos, P . G., Analysis of Traffic Flows at Complex Congested Arterials, Transp. Res. Rec. #1194, pp. 77-86, 1988. [18] Michalopoulos, P. G., E. Kwon and I.G. Khang, Enhancements and Field Testing of a Dynamic Simulation Program, Transp. Res. Rec.#1320, pp. 203-215, 1991. [19] KRONOS6, An Interactive Freeway Simulation Program for Personal Computers, User’s Manual, Prepared by C.F.Lee, R.Plum and P .Michalopoulos, Center for Transportation Studies, Department of Civil and Mineral Engineering, University of Minnesota, 1990. [20] Chronopoulos, A., P . Michalopoulos y J. Donohoe, Traffic Flow Simulation Through Parallel Processing, AHPCRC Preprint 91-90, University of Minnesota, Dept. of Civil and Mineral Engineering, 1991.
  • 232. SIMULACIÓN DE SISTEMAS DISCRETOS 232 [21] MATLAB and SIMULINK, The Mathworks Inc., 1993. [22] Pidd, M., Computer Simulation in Management Science, John Wiley, 1992. [23] Henriksen, J. O., The Integrated Simulation Environment (Simulation Software of the 1990’s), Operations Research, 31,6, pp. 1053-1073, 1983. [24] Mathewson, S. C., The Application of Program Generator Software and Its Extensions to Discrete Event Simulation Modeling, IIE Transactions, 16, 1, pp. 3-17, 1984. [25] SIMFACTORY, CACI Inc. [26] WITNESS, ATT&ISTEL. [27] Law, A. M. y W. D. Kelton, Simulation Modeling and Analysis, McGraw Hill, 1991. [28] Bratley, P ., B.L.Fox y L.E.Schrage, A Guide to Simulation, Springer-Verlag, 1987. [29] Kleijnen, J. P. C., Statistical Techniques in Simulation, Marcel Dekker, 1975. [30] Kleijnen, J. P. C., Statistical Tools for Simulation Practitioners, Marcel Dekker, 1987. [31] Kleijnen, J.P .C., Simulation: A Statistical Perspective, John Wiley, 1992. [32] Ahrens, J. H. y K. D. Kohrt, Computer Methods for Efficient Sampling from Largely Arbitrary Statistical Distributions, Computing, 26, 19-31, 1981.
  • 233. 233 Referencias [33] Von Neumann, J., Various Techniques Used in Connection with Random Digits, National Bureau of Standards Applied Mathematics, Series 12, pp. 36-38, 1951. [34] Hammersley, J. M. y D. C. Handscomb, Monte Carlo Methods, John Wiley, 1964. [35] Apostol, T. M., Análisis Matemático, Reverté, 1960. [36] Knuth, D. E., The Art of Computer Programming, Vol. 2, Seminumerical Algorithms, Addison-Wesley, 1981. [37] Tocher, K. D., The Art of Simulation, English University Press, 1960. [38] Lehmer, D. H., Mathematical Models in Large-Scale Computing Units, Ann. Comput. Lab. Hardward University, 26, 141- 146, 1951. [39] Shannon, R. E., Systems Simulation: The Art and the Science, Prentice-Hall, 1975. [40] Fishman, G. S., Principles of Discrete Event Simulation, John Wiley, 1978. [41] Kiviat, P. J., Simulation Languages, in: Computer Simulation Experiments with Models of Economic Systems, John Wiley, 1971. [42] Emshoff, J.R.y Sisson, R.L., Design and Use of Computer Simulation Models, MacMillan, 1970. [43] Gordon, G.y R.Efron, A General Purpose Digital Simulator and Examples of its Application: Part I - Description of the Simulator, IBM Systems Journal, IV, No. 3, pp 174-183, 1964.
  • 234. SIMULACIÓN DE SISTEMAS DISCRETOS 234 [44] Schriber, J., An Introduction to Simulation Using GPSS/H, John Wiley, 1990. [45] Hooper, J. W., Strategy-related Characteristics of Discrete-Event Languages and Models, Simulation 46, No.4, pp. 86-106, 1986. [46] Box, G. E. P ., W. G. Hunter y J. S. Hunter, Statistics for Experimenters, John Wiley, 1978. [47] Box, G. E. P . y N. R. Draper, Empirical Model Building and Response Surfaces, John Wiley, 1987. [48] Iglehart, D. L., The Regenerative Method for Simulation Analysis, In: Current Trends in Programming Methodology-Software Modeling, Ed. K.M. Chandy and R.T.Yeh, Prentice-Hall 1978. [49] Sargent, R. G, Simulation Model Verification and Validation, Proceedings of the 1991 Winter Simulation Conference, 1991. [50] Balci, O., Credibility and Assessment of Simulation Results: The State of the Art, Proceedings of the Conference on Methodology and Validation, Orlando, 1987. [51] Bryan, O. F. y M. C. Natrella, Testing Large Scale Simulations, Byte 10, pp. 183-194, 1985. [52] Barceló, J., Ferrer, J. L. y Martin, R., Simulation Assisted Design and Assessment of Vehicle Guidance Systems, Report de Recerca DR 95/05, Departament d’Estadística i Investigació Operativa, Universitat Politécnica de Catalunya, 1995. [53] Naylor, T. H. y J. M. Finger, Verification of Computer Simulation Models, Management Science 14, pp. 92-101, 1967.
  • 235. 235 [54] Oren,T.I.y B.P .Zeigler, Concepts for Advanced Simulation Methodologies, Simulation Vol 32, No. 3, pp.69-82, 1979. [55] Davies, N. R., Interactive Simulation Program Generation In: Methodology in Systems Modeling and Simulation, Eds.B.P .Zeigler, M.S. Elzas, G.J.Klir, and T.I. Oren, North Holland, 1979. [56] Subrahmanian, E. y R. L. Cannon, A Generator Program for Models of Discrete-Event Systems, Simulation, Vol. 35, No. 3, pp. 93-101, 1981. [57] Pidd, M., Computer Modeling for Discrete Simulation, John Wiley, 1989. [58] Hurrion, R. D., Engineering Journal of Operations Research, Vol.23, 1986. [59] Paul, R. J., Artificial Intelligence and Simulation Modeling, in: Computer Modeling for Discrete Simulation, Ed.by M.Pidd, JohnWiley, 1989. [60] Haddock, J., An Expert System Framework Based on a Simulator Generator, Simulation, Vol 42, No. 2, 1987. [61] Kuipers, B. J., Qualitative Simulation, Artificial Intelligence 29, pp. 289-238, 1986. [62] Shannon, R.E., R.Mayer y H.H.Adelberger, Expert Systems and Simulation, Simulation, Vol.44, No. 6, pp. 275-284, 1985. [63] Moser, J. G., Integration of Artificial Intelligence and Simulation in a Comprehensive Decision-Support System, Simulation, Vol 47, No. 6, pp. 223-229, 1986. [64] O’Keefe, R.M., Simulation and Expert Systems - Taxonomy and Some Examples, Simulation Vol. 46, No. 1, pp. 10-16, 1986.
  • 236. SIMULACIÓN DE SISTEMAS DISCRETOS 236 [65] O’Keefe, R. M. y J. W. Roach, Artificial Intelligence Approaches to Simulation, Journal of the Operational Research Society, Vol 38, pp. 713-722, 1987. [66] Doukidis, G.I., An Anthology on the Homology of Simulation with Artificial Intelligence, Journal of the Operational Research Society, Vol. 38, pp. 701-712, 1987. [67] Vaucher, J. G., Views of Modeling: Comparing the Simulation and AI Approaches, in: AI, Graphics and Simulation, ed. G. Birtwhistle, Society for Computer Simulation, San Diego, USA, 1985. [68] Crookes, J. G., D. W. Balmer, S. T. Chew y R. J. Paul, A Three Phase Simulation System Written in Pascal, Journal of the Operational Research Society, Vol. 37, pp. 603-618, 1986. [69] CLAIRE, Project V1015, Commission of the European Communities, Programme DRIVE I, 1991. [70] KITS, Project V2039, Commission of the European Union, Advanced Transport Telematics Programme (DRIVE II), 1994. [71] Cuena, J., Tráfico, Razonamiento y Simulación, Especificación Preliminar de la Arquitectura TRYS, Universidad Politécnica de Madrid, Departamento de Inteligencia Artificial, Madrid, 1991.
  • 237. 237
  • 238. SIMULACIÓN DE SISTEMAS DISCRETOS 238
  • 240. SIMULACIÓN DE SISTEMAS DISCRETOS 240 Fishman, G.S.: Mitchell, G.: P.R. Nelson, E.J. Dudernier, A. Öztürn & E.C. Van der Meulen, ed.: Pedgen, C.D.: Pritsker, A.A.B.: A.A.B. Pritsker, C.E. Sigal & R.D.J. Hammenrsfahr: Rubinstein, R.Y.: Monte Carlo: Concepts, Algorithms and Applications. Springer, 1996. The Practice of Operational Research. John Wiley, 1993. The Frontiers of Statistical Computation, Simulation and Modeling. American Sciences Press, 1991. Introduction to SIMAN. Systems Modeling Corporation, 1986. - Modelling and Analysis UsingQ-GERT Networks. Halsted Press, 1977. - Introduction to Simulation and SLAM II. Halsted Press, 1984. SLAM II, Network Models for Decision Support. The Scientific Press, 1994. Simulation and the Monte Carlo Method. John Wiley, 1981.
  • 242. SIMULACIÓN DE SISTEMAS DISCRETOS 242
  • 244. SIMULACIÓN DE SISTEMAS DISCRETOS 244 1. ATRIBUTOS. Propiedades que caracterizan a las entidades que componen un sistema. 2. ENTIDADES. Objetos o elementos de interés que constituyen un sistema. 3. ESTADO DEL SISTEMA. Caracterización de las entidades del sistema y de sus atributos en un instante dado. 4. LENGUAJE DE SIMULACIÓN. Lenguaje de programación de computadores específicamente diseñado para construir los programas de computador que representan los modelos de simulación. 5. MODELO. Representación formal de un sistema capaz de proporcionar respuestas válidas a las preguntas que un observador se formula sobre el sistema. 6. MODELO MATEMÁTICO. Modelo en el que la representación del sistema se formaliza en términos matemáticos. 7. SIMULACIÓN. Técnica numérica para el estudio del comportamiento de un sistema a través de una representación o modelo del mismo. 8. SIMULACIÓN DISCRETA.Técnica numérica para el estudio del comportamiento de un sistema a través del seguimiento de los cambios de estado del modelo que lo representa, cuando estos tienen lugar como consecuencia de la ocurrencia de sucesos que ocurren en instantes discretos.
  • 245. 245 Glosario 10. SIMULADOR. Formalización del modelo de simulación de un Sistema en términos de un lenguaje de programación para computadores. 11. SISTEMA. Conjunto de elementos que ordenadamente relacionados entre sí contribuyen a un determinado objeto común. 12. VARIABLE. Representación formal de un atributo de un elemento de un sistema a cuyos valores se puede asociar una medida numérica cuyo valor puede cambiar a lo largo del tiempo. 13. VARIABLE DE CONTROL O DE DECISIÓN. Variable de diseño del sistema cuyos valores pueden ser el resultado de una decisión del diseñador del sistema. 14. VARIABLE EXÓGENA O NO CONTROLABLE. Variable cuyos valores afectan al sistema pero que no dependen de las restantes variables que caracterizan al sistema. 15. VARIABLES DE ESTADO. Variables cuyos valores caracterizan las entidades y atributos que determinan el estado del sistema en un instante dado.
  • 246. SIMULACIÓN DE SISTEMAS DISCRETOS 246
  • 247. 247 Esta primera edición de SIMULACIÓN DE SISTEMAS DISCRETOS de la serie de Monografías de Ingeniería de Sistemas se terminó de imprimir el día 1 de septiembre de 1996.