Documente Academic
Documente Profesional
Documente Cultură
"!i8-:8-,633-B
"j!T"ll 1111 !: !I
1
MORIEGA
@;
MEGABYTE
GR:;JF ~:)
~~
. ~ \ ::I:'.... '"''lES
1
~
Simulacin
por colllputadora
'
--'----- -~
Sirllulacin
por computadora
Stanislaw Raczynski
Profesor de la
Escuela de Ingeniera de la
Universidad de Panamericana, Mxico
"""
MEGABYTE
----"-----
GRU~,,~:,:'.:~:m ::TORES
............................................................................................................."""
--~""''"""'"""""""""'"""'"""""
Contenido
Introduccin
\!arcas R~g istrad a s: A !o largo de teda la obra. MEGABYTE hizo todo lo posible por diferenciar los nombres de
marc.is registradas de los trminos descriptivos usados en ella. Como es la costumbre. para hacerlo recurri al uso
Je letras mayuscuias. MEGABYTE no est afiliada a ningn fabricante.
CAPTULO 1.
Se ha hecho todo lo posible por proporcionar informacin precisa y completa. No obstante, MEGABYTE no asume
ninguna responsabilidad por el uso de sta, ni por violaciones a la ley de derechos de autor sobre la propiedad
intelectual en que incurran terceras personas como resultado de dicho uso.
CAPTULO 2.
l..n presentacin .v disposicin en conjunto de
SI~1ULAClN POR COMPUTADORA
,-un propiedad del editor. Ninguna parre de e>ca obra puede ser reproducida
o rransmirida, mediante ningn sistema o mtodo, electrnico o mecnico
!INCLUYENDO EL FOTOCOPIADO, la grabacin o cualquier sis1ema
dt! recuperacin y ulmacenamiento de informacin), sin consentimienco
por escrito de! editor.
De re ~hos
15
21
reserv ados:
2.1
2.2
~ !EGABYTE
21
23
25
26
28
29
30
30
32
33
CAPTULO 3.
Impreso en Mxico
3.1
3.2
3.3
,39 ~2)
lSSN-96 8 -18-4633-8
--------
37
37
40
42
Contenido
6
Contenido
3.4
3.5
CAPTULO 4.
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
CAPTULO 5.
5.1
5.2
5.3
55
56
58
60
62
64
66
69
70
72
75
77
5.2.1
5.2.2
5.2.3
5.2.4
77
80
80
83
Problemas
CAPTULO 6.
6.1
6.2
6.3
6.4
6.5
Introduccin
El mtodo de Euler
Los algoritmos de Runge-Kutta
Los mtodos lineales de maltipaso
Estabilidad de los mtodos numricos
La ecuacin de muertes y nacimientos ................................
Sistem.a s con retraso ................................................... ............
Sistemas rgidos .......................................................................
Sistemas distribuidos-dificultades computacionales .........
Problemas ..................................................................................
Lenguajes de simulacin
48
54
87
91
Introduccin ............................................................................. 91
Las estrategias de simulacin de eventos y procesos ....... 92
El lenguaje CSL .......................................................................... 94
El lenguaje SIMULA .................................................................. 99
El lenguaje PASJON ................................................................... 106
6.5.1 Introduccin ................................................................... 106
6.5.2 Procesos y eventos ........................................................ 107
6.5.3 Jerarqua de procesos y herencia de propiedades .. 112
6.6
6. 7
6.8
6.9
El paquete GPSS
El lenguaje Dynamo y el mtodo de Forrester
Hoja extendida
Otros lenguajes y paquetes de simulacin
129
135
138
141
CAPTULO 7.
7.1
7.2
7.3
7.4
CAPTULO 8.
8.1
8.2
8.3
8.4
8.5
8.6
Introduccin
Planteamiento del problema
Algoritmos de control ptimo
Control ptimo y simulacin
Un ejemplo; control ptimo de vuelo
Conclusiones
CAPTULO 9.
9.1
9.2
173
173
173
174
175
176
181
183
183
188
Contenido
9.2.1 Introduccin
9.2.2 Teora de redes en la simulacin del sistema
inmunolgico
9.2.3 Un modelo'discreto del sistema inmunolgico
del SIDA
9.2.4 Algunos resultados
Referencias
188
190
191
195
Introduccin
201
Frecuentemente es necesario simular , es decir, r eproducir artificialm ente un fenmeno o las relaciones en trada-salida de un sistema. Esto ocurre siempre cuando la operacin de un sistema o la experi mentacin en
l son imposibles, costosas, peligrosas o poco prcticas , como en el entrenamiento de personal de op eracin , pilotos de aviones , etc. Si esta
reproduccin est basada en la ejecucin de un programa en una
computadora digital, entonces la simulacin se llama digital y usualmente se conoce como simulacin por computadora, aunque hay que
recordar que este trmino tambin incluye la simulacin en las computadoras analgicas.
En este libro hablaremos solamente sobre la simulacin digital. La
simulacin por computadora est relacionada directamente con los simuladores. Por simulador entendemos no slo un programa de simulacin y la computadora que lo realiza, sino tambin un aparato que
muestra visualmente y a menudo fsicamente las entradas y salidas
(resultados) de la simulacin, como es el caso de los simuladores profesionales de vuelo. Sin embargo, antes de seguir con las dems caractersticas de la simulacin, se mencionar lo que no est incluido
en el presente libro, es decir, no vamos a hablar sobre simuladores ni
sobre la simulacin analgica.
La simulacin llamada "Monte-Cario", que consiste en la investigacin del comportamiento estadstico de ciertos modelos probabilsticos, se estudiar en este texto en forma limitada, dado que existen
muchos libros que tratan este tema, como el libro de Coss Buf 26 l, o el de
Naylor y coautoresr121. El enfoque del presente texto es la simulacin
de los sistemas continuos, simulacin discreta (secuencias de eventos), mtodos de modelado y simulacin, lenguajes para simulacin ,
9
10
Introduccin
Introduccin
modelado y simulacin de sistemas con procesos paralelos, las tendencias en el "software" de simulacin contemporneo, entre otros
temas.
L.a necesidad de los mtodos para modelacin de sistemas complejos fue reconocida hace tiempo, aun antes de la era de las computadoras. Rosenblueth y Wienerl 93 1 sealaron en 1945 que los modelos
constituyen una necesidad central del procedimiento cientfico. La
aparicin de las computadoras analgicas y digitales abri nuevas posibilidades para el anlisis de modelos que podan ser procesados con
ms rapidez y exactitud. As surgi el trmino simulacin por computadora y toda la rama de "Computer Science" dedicada a este tema.
Existen muchas definiciones de la simulacin por computadora,
algunas muy distintas (vase Pritsker' 84 f). Zeiglerll 101 en su libro dedicado a los aspectos tericos de la simulacin, dice: "La frase 'modelado
y simulacin' designa el complejo de actividades relacionadas con la
construccin de modelos de los sistemas del mundo real y su simulacin en computadora. En particular, modelado trata, en principio, sobre
las relaciones entre sistemas reales y modelos; simulacin se refiere
principalmente a las relaciones entre las computadoras y los modelos."
Esta definicin refleja lo que comnmente se entiende sobre modelado y simulacin, aunque en la primera sentencia la palabra "simulacin"
se usa para definirse a s misma. No obstante, Zeigler no dice nada sobre
cul es la naturaleza de los sistemas y modelos involucrados. Vamos a
restringir un poco la clase de modelos, relacionando la simulacin con
el tiempo y propiedades dinmicas de los sistemas. As lo hacen algunos
autores, por ejemplo, Gordonl 37 1 dice que "podemos entonces definir la
simulacin de sistemas como una tcnica de solucin de problemas a
travs de la observacin del comportamiento de un modelo dinmico
del sistema en el tiempo". De manera similar definen la simulacin
Shruben y Margolinl 97 1, Naylor y coautoresl7 21, y Pritskeri86 1. Este ltimo involucra el concepto de "estado" del sistema y trata su dinmica
como "el movimiento de un estado a otro segn las reglas de operacin
bien definidas". Algunos autores limitan la simulacin a la simulacin
de tipo Monte-Cario (Kleijnenl 55 l, Tocheri 103 f) .
Simulacin por computadora es una herramienta interdisciplinaria y tiene aplicaciones en muchos campos de la ciencia y la tecnologa,
como ciencias tcnicas, biologa, medicina, sociologa, mercadotecnia, desarrollo urbano e incluso la economa poltica y mundial. Los
resultados de los experimentos obtenidos a travs de la simulacin
influyen cada vez ms en las decisiones tomadas no slo en la industria.
Por ejemplo, Thomas H. Naylor1 731 describe en uno de sus artculos el
impacto de la simulacin por computadora sobre las reformas econmicas en la Unin Sovitica. Las simulaciones de la economa de la URSS se
usaban hace muchos aos para analizar la dinmica de este sistema.
De acuerdo con Naylor, las investigaciones que conduca el Instituto
Central de la Economa Matemtica de la Academia de Ciencias de la
11
URSS y la Agencia Estatal de Planeacin (GOSPLAN) eran muy avanzadas en los aos setenta. Puedo confirmar esta opinin completndola
con mis observaciones del periodo 1972-1977, cuando trabajaba en el
Grupo Internacional de Investigadores de la COMECON; este grupo actuaba dentro del Instituto de Problemas de Control en Mosc, donde un
grupo muy fuerte y numeroso de economistas, matemticos y expertos
en simulacin intentaban simular la economa del pas. Segn Naylor,
los pronsticos para el desarrollo de la economa eran poco favorables
y mostraban creciente escsez de bienes de consumo, insuficiente desarrollo del sistema energtico y creciente falta de materia prima. En la
dcada de los setenta se llevaron a cabo en la URSS simulaciones para
averiguar la posibilidad de crear un "sector monetario" con bancos comerciales, el rublo intercambiable y mercado libre. Mijail Gorbachov
fue el primer dirigente ruso que tom en serio estos resultados, los
cuales mostraban una quiebra inevitable del sistema comunista y una
necesidad urgente no slo de reformas econmicas, sino tambin polticas. De esta manera, se puede observar que la simulacin por computadora tuvo un papel importante en los cambios econmicos y polticos
en la URSS y en la Europa del Este, Jos cuales van a influir en la economa
mundial.
La simulacin por computadora a veces puede provocar confusin
cuando es mal interpretada. Un buen ejemplo se observ en la cada de
la bolsa de Nueva York, en octubre de 1988. Los expertos opinan que
una de las causas de este fenmeno fue el uso de los progr amas de
simulacin por los corredores de bolsa, quienes tuvieron acceso a
pronsticos inmediatos y tomaron decisiones rpidas de venta de
acciones. Esto probablemente desestabiliz el sistema financiero.
La simuiacin sirve a la sociedad en muchos campos, incluso en la
medicina. Uno de los problemas de salud ms importantes es el desarrollo del SIDA y el entendimiento de los mecanismos del sistema
inmunolgico humano. La revista Simulation (enero, 1990) dedica uno
de sus recientes nmeros a la simulacin de la propagacin de esta enfermedad. El captulo 9 de este libro describe este importante problema con ms detalles.
Una parte del presente libro est dedicada a los mtodos de simulacin, los cuales permiten construir modelos y programas para los
sistemas complejos con componentes que corren en forma paralela,
tanto en la realidad como en el programa de simulacin . El rpido desarrollo de las computadoras paralelas en los ltimos aos hace que el
desarrollo del "software" para simulacin (y el "software" en general)
est atrasado algunos aos con respecto al "hardware". En realidad
slo se utiliza una pequea parte de las posibilidades de las computadoras contemporneas. El paralelismo es, sin duda, uno de los aspectos
ms importantes y poco aprovechados de los nuevos mtodos de
simulacin.
Las computadoras de la primera y segunda generacin que se usaban para ejecutar simulaciones no tenan procesadores mltiples. Por
eso, los lenguajes y paquetes para simulacin desarrollados en la
r
12
Introduccin
Introduccin
13
para aprovechar este libro, as como cualquier otro texto sobre esta
materia, el lector debe tener ciertos antecedentes en el anlisis de los
sistemas dinmicos, ecuaciones diferenciales, diferencias, procesos estocsticos, mtodos numricos y, desde luego, computacin. El conocimiento bsico de estas materias permite comprender el contenido de
los captulos l a 6. El captulo 7 est dedicado a unas aplicaciones de la
simulacin en mercadotecnia, por lo que se necesita un conocimiento
elemental de los problemas de esta materia, como la demanda, modelos de mercado, influencia de la publicidad, etc. El captulo 8 describe
una aplicacin en control y puede omitirse si el lector no est enterado de los mtodos de simulacin de vueio y los elementos de control
ptimo que pertenecen a la parte un poco ms avanzada de la teora de
control. Por otra parte, esta aplicacin muestra el uso de los modelos
no slo para correr unas simulaciones, sino para llevar a cabo un proceso computacional ms complejo. Aplicaciones como sta son cada
vez ms visibles y tiles, gracias al tremendo crecimiento de la capacidad de las computadoras contemporneas, sin duda ms rpido que el
desarrollo de algoritmos y sistemas de "software". Los mtodos avanzados de la simulacin por computadora pueden, quizs en el futuro,
aprovechar adecuadamente la enorme capacidad de las supercomputadoras y, adems, ofrecer herramientas tiles para los usuarios de las
computadoras personales.
1
CAPTULO 1
Sistemas causales y
clasificacin de los
sistemas dinmicos
s,
13
16
17
Y(t) =
U(t+KH)
K= 1
Y (t )
p (t + s) U (s) ds
o
en donde p(t) es una funcin dada, es un sistema causal. Si cambiamos los lmites de integracin como sigue
Figura l. l. Un esquema de bloques y el reograma correspondiente.
Y (t)
p (t - s) U (s) ds
salida
entrada
U'
U', U'
u
U(t) = U"(t) '\/ tE
[V 1 ] ~Y (t) = Y"(t)
2.
tiempo
18
Denotemos con U{a, b) la seal U sobre todo el intervalo [a, b], con
a 5 t $; b, y con e+) la siguiente operacin
4.
Y {a, b)
5.
S (U {a, b))
Vamos a decir que las entradas U' y U" son equivalentes sobre un
intervalo de tiempo [t0 , t 1) si
$;
IV))= S(U"{V 1l
Estos sistemas se llaman autmatas infinitos. Por ejemplo, un sistema de servicio con una fila no limitada y un puesto de servicio es un
autmata infinito.
El nmero de clases de equivalencia es infinito no numerable, pero
existe una correspondencia biunvoca entre los nmeros reales y las
clases de equivalencia. stos son los sistemas con parmetros concentrados. Cualquier sistema descrito con un sistema finito de ecuaciones
diferenciales ordinarias pertenece a esta clase.
Hay ms clases de equivalencia que los nmeros reales. I;:n este caso
sedicequeelsistemaesdeparmetros distribuidos. A esta clase pertenecen todos los sistemas descritos con ecuaciones diferenciales
parciales. Ejemplos:
l. El proceso de propagacin de temperatura en un pedazo de metal,
donde la temperatura depende de la posicin (dentro de la pieza) y
del tiempo.
2. El proceso de difusin de un componente qumico dentro de un
tanque con una solucin, sin mezclar el contenido del tanque.
Ejemplo
Consideremos un sistema de control digital de temperatura, cuyo instrumento de medicin compara la temperatura actual (controlada) con la
temperatura deseada (de referencia) cada diez segundos, esto es, en los
momentos t=O, 10, 20,30,40, ... Para este instrumento de medicin todas
las entradas (temperaturas) iguales en los momentos de comparacin y
distintos en otros momentos (figura 1.4) son equivalentes.
Podemos definir la clase de equivalencia de las entradas de un
sistema S como el conjunto de todas las entradas equivalentes de este
sistema, sobre un intervalo dado [t0 ,t]. Hay que observar que esta propiedad depende del intervalo de tiempo, y constituye una relacin de
equivalencia. El concepto de la clase de equivalencia nos permite clasificar los sistemas dinmicos de la siguiente manera [refirindose siempre
al intervalo [tJ ]:
2.
19
J
tiempo
10
20
30
40
50
20
CAPTULO 2
Variables aleatorias
distribucin bsica y
generadores
2.1
21
,.--.~-
_, __
22
Variables aleatorias
Hay que observar que, en este caso, la densidad f(x) no es exactamente una funcin, sino una distribucin o funcin genera liz ada, porque para expresarla hay que usar impulsos de Dirac en los puntos 1,
2, 3, 4, 5 y 6. La funcin de distribucin acumulativa es, p ues, una
funcin con discontinuidades.
2. Escogemos al azar un valor real dentro del intervalo [0, 1] de ta!
manera que cada nmero tenga la misma probabilidad de ser escogido. El resultado es un nmero aleatorio con la distribucin uniforme
en [O, l ]. Su funcin ac.umulativa y la densidad de probabilidad se
muestran en la figura 2.2.
1
i
23
De las propiedades de la funcin de densidad de probabilidad resulta que la probabilidad P [a:::; X:::; b] de que el resultado X Oa variable
aleatoria X) caiga en un intervalo [a, b ] est dado por la integral
i
i
I IIIII:
P=
f (x ) dx
2.2
do X sea menor o igual a un valor dado Y La funcin F ( Y ) = P (X:::; Y)
(que depende slo de Y) se llama la funcin de distribucin acumulativa
de probabilidad. Tenemos O:::; F (Y) :::; 1, porque la probabilidad de un
evento no puede ser negativa y tampoco mayor que uno. Si existe una
funcin f (x ), tal que
F (Y) =
f (x) dx
t
1.0
1----------,
1.0 1
FI
\
1
1
Ejemplos
l. Si tiramos un cubo cuyos lados llevan 1,2, ... ,6 puntitos y el resultado
es el nmero de puntitos en el lado superior al pararse el cubo,
entonces, suponiendo que el cubo es simtrico, tenemos las funciones Fy f como muestra la figura 2.1, ya que el resultado puede ser
1,2,3,4,5 o 6 co n la misma probabi lidad.
_.,,__,
24
Variables aleatorias
La distribucin exponencial 25
Los generadores con distribucin uniforme permiten obtener series de nmeros con otras funciones de distribucin de probabilidad.
Uno de los ms sencillos es el mtodo de la transformacin inversa. Si la
funcin acum4lativa de distribucin deseada es F(x), entonces los nmeros definidos con la frmula
FUNCTION RU(A,B:REAL):REAL;
BEGlN RU:= A+ (B - A)*RND END;
Aqu, y en los siguientes procedimientos, RND significa una llamada
ala funcin (sin parmetros), cuyo valor es un nmero aleatorio en [0.1]
(en Turbo-Pascal, por ejemplo, esta funcin se llama RANDOM). Vamos
a caracterizar brevemente otras de las ms importantes distribuciones
de probabilidad y algunos de los generadores de las variables correspondientes.
Los generadores ms usados que satisfacen estos requisitos pertenecen a la clase de los llamados mtodos de congruencias. Si rl'r2,r3, son
los nmeros de la serie deseada, entonces la frmula (aditiva) de congruencias correspondiente es como sigue
2.3
r,.
i
La distribucin exponencial
z,.JC
= 0,1,2,3, .....
0 ,
f (x)
A EXP (-Ax )
Aqu A es una constante, denotada tambin comol/A. en la literatura. El valor esperado correspondiente es igual a l/A y la varianza
l/(A2). La figura 2.3 muestra la forma de la funcin de densidad f (x ).
Esta distribucin tiene muchas aplicaciones en la simulacin de
eventos aleatorios, ya que usualmente los flujos de entrada y tiempos
La distribucin de Poisson
26
27
Variables aleatorias
f(x)
P = EXP(-T /A) (T /A
Y /x !
2.4
La distribucin de Poisson
Consideremos una secuencia de eventos, por ejemplo Ja llegada de los
clientes a un sistema de servicio. Si los eventos son independientes entre
Y /x !
sta es la densidad para la distribucin de Poisson. Hay que recordar que en esta interpretacin x es una variable entera.
El valor de una variable aleatoria con distribucin de Poisson es, por
la definicin, el nmero de ocurrencias de un evento descrito con el flujo
de Poisson, dentro de un intervalo de tiempo T. En consecuencia, para
generar estos nmeros, podemos simular dicho proceso de ocurrencias o llegadas. As, hallamos que el nmero deseado N tiene que
cumplir con la siguiente desigualdad
N
u,~ T~
u,
i= 1
i= 1
1t
r,
~ EXP(-T/A) ~
i =l
7t
r,
i =l
La siguiente funcin en PASCAL genera los valores de N (denotados como el valor de la funcin POISS ON), para T =1
FUNCTION POISSON(A:REAL):INTEGER;
VAR Y,V:REAL; N:INTEGER;
BEGIN
Y:=l.O;
V:=EXP(-1.0/A); N:=O;
,=-
28
Variables aleatorias
La distribucin normal
29
f(x)
5:=0,0;
FOR K:=l TO n DO S:=S + EX(A);
ERLANG:=S END .
2.6
La distribucin normal
sta es una de las ms importantes distribuciones de probabilidad. El
conocido Teorema Lmite en la teora de probabilidad dice, que la
distribucin de la suma de unas variables aleatorias independientes
tiende a la distribucin normal si el nmero de las variables tiende a
infinito. aun cualquiera que sea la distribucin de cada una de dichas
variables. La funcin de densidad para esta distribucin es
--
f(x)
2.5
La distribucin de Erlang
\
Esta distribucin es la de la suma de un nmero de variables aleatorias independientes que tienen la misma distribucin exponencial. La
distribucin Erlang tiene aplicaciones en los modelos de los sistemas
de servicio masivo, por ejemplo en las situaciones donde el servidor
tiene que efectuar dos operaciones cada una con tiempo de servicio exponencial. El tiempo total de servicio tiene en este caso la distribucin
Erlang. (Ver figura 2.4.)
30
Variables aleatorias
La distribucin emprica
2. 7
La distribucin Gamma
sta es una generalizacin de la distribucin de Eriang, en donde el nmero de las variables a sumar (con la distribucin exponencial) ya no es
un entero. La distribucin Gamma puede relacionarse con la distribucin normal como la distribucin de la suma de los cuadrados de unas
variables con la distribucin normal. La funcin de densidad para la
distribucin Gamma puede tener una variedad de formas segn sus parmetros y puede describir diversos procesos fsicos.
2.8
La distribucin emprica
A menudo la distribucin de una variable del modelo no se puede calificar como ninguna de las distribuciones conocidas y no se puede
expresar con ninguna expresin determinada. La nica informacin
sobre la variable son los valores de un nmero de sus realizaciones. Su-
31
1.0
T I T ll TITllT
r'
1
F1~ura
Problemas
32
Variables aleatorias
BEGIN B:=TRUE;
S:=RND; Sl:=Y[N]; K:=l;
WHILE B ANO (lM) DO BEGIN
IF H[K]>=S THEN BEGIN
Sl:=Y[K];
B:=FALSE END; K:=K+l END;
SAMPLE:=Sl END;
nadas.
Con la tabla de observaciones formamos los arreglos Y y X (vea la
descripcin del generador de la variable con distribucin emprica). Tenemos N = 8 , Y= 10, 20, 30, 40, 50, 60, 70, 80 y el arreglo X normalizado
que contiene los valores 0.017, 0.043, 0. 148, 0.383, 0.261, 0.104, 0.035,
0.009. Ahora podemos usar estos arreglos para generar el nmero de
piezas vendidas.
La simulacin de un da de trabajo consiste en sumar al estado
actual AL del almacn el nmero de piezas que llegaron, generar el nmero de compradores C que vinieron durante el da y restar C veces del
estado AL el nmero de piezas vendidas que proporciona el generador
con distribuci n emprica. El siguiente diagrama de flujo (figura 2.7)
muestra el algoritmo de simulacin correspondiente.
ste es uno de los ejemplos ms sencillos de la simulacin MonteCarlo, donde se usan algunos de los generadores descritos antes. Este
problema es difcil de resolver analticamente, ya que el nmero de piezas que compra un mayorista tiene distribucin emprica.
La simulacin Monte-Carla no es el tema principal de este libro y
no vamos a discutirlo ms (vea -las referencias [26], [74]). Hay que
observar que Jos generadores de las variables aleatorias se usan no slo
en los problemas de este tipo . Cada sistema o lenguaje para simulacin
de eventos cont iene una biblioteca de los generadores para las var iables aleatorias que sirve para generar los intervalos aleatorios de tiempo
del modelo y para simular todas las variables descriptivas no
2.9
33
100
determinsticas.
2.10
Problemas
Un experimento consiste en tirar un dado dos veces y sumar los
resultados. Calcule la probabilidad para cada uno de los resultados
posibles (1.2.3, ...,12), trace la funcin de densidad de distribucin y
la funcin acumulativa para el resultado. Construya un procedimiento para generar los valo res aleatorios segn la distribucin
obtenida.
2. Suponga que el resultado de los tiros en el problema 1 es el
promedio de los resultados de cada tiro. Cul de Jos generadores
descritos en este captulo puede usarse para generar Jos valores
aleatorios con la distribucin que aproxima la distribucin del
resultado. suponiendo que el nmero de tiros es grande (tiende a
infinito) ?
l.
Nmero de piezas
vendidas
Nmero de casos
10
20
30
40
50
60
70
80
2
5
17
1
44
30
12
4
1
Problemas
esrr)
Entrada de datos:
O - El nmero de das a simular
A 1 - el parmetro de la distribucin
de Poisson de las piezas producidas
durante un da
A 1 - el parmetro de la distribucin
de Poisson de las llegadas de los
compradores
AL - estado inicial del almacn
X, Y - los arreglos con
las observaciones sobre las ventas
<
I
K=1 to O
AL = AL + Poisson (A 1)
H = Poisson (A2)
~{
r~
l
l
l,.
L= 1 toH
l
~
Imprimir;
K =el nmero del da
al= EL ESTADO DEL ALMACN
~
Figura 2.7.
35
t
1
1
1
1
CAPTULO 3
Especificaciones
del modelo
3.1
2.
3.
La descripcin informal del modelo no tiene que incluir ninguna descripcin matemtica y slo sirve para dividir el modelo en componentes,
37
-- -
-~
~...:..;..'li&R@
i!@M'efif-i,fR#?i!FM<tM!WP#Wl*.S. \#
Mf! g;
::: :;:::;-'-
',__;._;::~.l:"Z''"'~~
39
~F1
estado del modelo puede expresarse a travs de slo dos variables, por
ejemplo hAy ha. Las dems variables no son de estado. El flujo F1 es la variable de entrada, el flujo F3 es la variable de salida y el flujo F2 es una
variable interna del modelo, que puede calcularse a travs del nivel hA.
Esta descripcin no es nica. Por ejemplo, otra versin de la descripcin informal puede interpretar aF2 como una de las variables de salida,
segn el objetivo de simulacin (los objetivos pueden ser "evaluar F3
sobre un intervalo de tiempo dado" o "evaluar F2 y F3 sobre el mismo
intervalo"). Este ejemplo muestra cmo el objetivo de simulacin influye en la descripcin del modelo.
Las ecuaciones de estado para este modelo se mostrarn en la
siguiente seccin.
hA
~3
Ejemplo 2
listar las variables descriptivas con sus interpretaciones fsicas y describir el funcionamiento del sistema. La descripcin informal puede expresarse en palabras.
Ejemplo 1
~\'
l.
>---
--"'
40
entrada
"'"'
a.
u
"'
"O
"'
15
-~
estado
i:::
J.
"'
i:::
salida
"'
>
.....
_ Descripcin formal del modelo
~?
Para pasar de una descripcin informal a la descripcin formal correspon di ente hay que especificar los espacios a los cuales pertenecen todas las vari ables descriptivas y dar una descripcin exacta de la funcin
de transici< )n de estados, que dice cmo cambia el estado del sistema
con el tiempo, y la funcin de salida, la cual muestra cmo depende la
sa li da de l sistema de su estado. Vamos a anotar con U el espacio de las
variables de entrada, con Q el espacio de las variables de estado y con
Y el de la snlida. Si el modelo cont iene otras variables descriptivas,
tambin tene mos que describir exactamente cules son los espacios
donde pertenecen estas variables. Entonces, si u es una de las variables de entra da. q es una de las variables de estado y y' es una de salida, tenemos u E U, q E Q, y y E Y. La funcin de transicin de estados
calcula el nuevo estado basndose en las variables de entrada y de
estado actual. Podemos decir que esta funcin, llamada 8 acta desde
el prod ucto de los espacios Uy Q hasta el espacio Q, en otras palabras
8: U~ Q. La funcin de salida es A.: Q ~ Y.
La descripcin formal del modelo es el conjunto <U,Q,Y, 8, h. La
figura 3.3 muestra esquemticamente las funciones 8, A. y los espacios
de las variables descriptivas.
La descripcin formal para el ejemplo anterior (el sistema de presas) t iene q ue incluir las siguientes especificaciones:
E:! es pacio de entrada: U=R+ (el espacio de reales no negativos) .
. . . Pr.
~ !~iiS
:a:, rcnce s F
R+.
41
El espacio de estado: Q=R+ xR+ (el espacio de vectores con componentes no negativos con dimensionalidad 2). Tenemos (hA,h;J E Q.
El espacio.de salida: Y=R+. En nuestro caso F3 E R+.
El flujo F2 (una variable interna del modelo) pertenece a R+.
Las reglas de interaccin en la descripcin formal del modelo tienen
que definir el funcionamiento del modelo de manera nica y exacta. Casi
siempre esta parte de la descripcin formal consiste en un sistema de
ecuaciones. Si el sistema tiene el estado discreto y se modela a travs
de secuencias de eventos. la descripcin formal de las reglas de interaccin puede expresarse en la forma de esquemas de bloques (como en el
paquete de simulacin GPSS) o directamente en la forma del programa
correspondiente para la computadora.
Vamos a derivar las ecuaciones de estado para los modelos de los
ejemplos l y 2 de !a seccin anterior. Las ecuaciones de estado para el
modelo del ejemplo 1 resultan del balance de volumen. Considerando un
pequeo intervalo de tiempo dt tenernos
dV 1 = dt(F1 -F)
dV,
dtCFt F)
donde dV 1 y dV, son los cam bios en los volmenes del agua almacenada
en las presas A y B respectivamente, dentro del in tervalo dt. Tornando en
cuenta que el cambio de volumen es dV =S dh para un cambio pequeo
del nivel dh con el rea de la supelicie actual S. podemos reordenar estas
ecuaciones como sigue (observe que la superficie actual del agua es una
funcin del nivel).
dh /t)/d t = [F1(t) - F/h ) ]!S /h)
dh 13 (t )/dt = [F/ h) -Fj(hJ]/S ChJ
42
dV(t)
dt[F1(t) - F/f)]
El balance para el calor se obtiene considerando el calor almacenado dentro del tanque durante el intervalo dty la diferencia de los flujos
de calor que corresponden a los flujos F1 y F2 Este balance tiene la
siguiente forma:
d[T(t)cV(t)]
m1~
F 1(t) - F/t)
dT(t)/dt
[F1(t)T1(t)-F/t)T(t) - T(t)dV/dt]/V(t)
=
o o
>~
.;= :J
~E
a.
.o-
<JJ
Q)
W-0
-F2 (t)T(t)]/V(t)
1
1
3.3
:~
n 1
1
1
jl
~ ~ ~
Q)
. -8
\ o~
-o
11
1
.gro
,g
Qi
-o
//
~
ro
E
Q)
a.
Q)
a.
Q)
ro
ro
-~
(J)
l.
~~
~~
a.
'
Q)
J
'
'
Segn las consideraciones anteriores podemos observar que ni la descripcin informal ni tampoco la descripcin formal del modelo son
nicas. Para escoger la descripcin adecuada, que implicar cierta simplificacin del modelo, hay que considerar los siguientes seis aspectos
de simulacin:
...........
(i 1
~~ i
- -- -
:-=
1it1
/ j
L__jro\.
1
o"'
-o
;;;;
o"'
-o
..,;
M
"'...
Se
G:
~~~~~&;:;.;-;.
t - :!ttf*WS#A,i#Bk irii'iiNMWAA*JA&H ES
iM&tb&@iif@~._~~~ -~~
45
4.
5.
6.
Ejemplo
Vamos a modelar una pequea peluquera. cons iderando dos posibles
marcos experimentales y las simplificaciones correspondientes del
modelo.
mente.
Todo este conjunto de variables descriptivas define un MARCO
E.XPERIMENTAL ai cuai le corresponde un MODELO simplificado.
Simplificacin 1
Los clientes llegan a !a puerta de la peluquera en momentos aleatorios. segn un fl ui o de tipo Poisson. La llegada de un cliente es una
actividad del CLIENTE. ya que ste s es un compon ente del modelo. Si
la FILA est llena (esto es. si L = UYfAX:), el cliente no entra y sale del
modelo (va a buscar otra peluquera). La FILA es de tipo FJFO (first in,
first out). El peluquero atiende a los clientes que vienen de la FILA. El
tiempo de servicio es aleato rio con la distribucin negativa exponencial,
y el tiempo promedio de servicio depende de los deseos Dn 1, ... , DnM del
clie!lte actualmente atendido. Despus de ser atendido, el cliente sale
del modelo.
Este marco experimental implica una simplificacin del modelo.
Vamos a ver que sta no es la nica simplificacin posible.
Simplificacin 2
--
Los clientes
La cola
11
El peluquero
;~_J'"'".'
Los componentes.
Peluquero
Fila
~~~~~~~~~~~~~~~~~~~~~~~--~Jsn-,..k'~"~~
;-:
.....
-~~~~~~,~~"""
"""""'.......................................................................
47
(1-/....Dt-Dt)P(n, l)(t).
Las variables descriptivas:
2.
Para el PELUQUERO y la FILA las variables descriptivas son como en la
simplificacin nmero 1, menos el conjunto de variables Vl ,... , VM del
peluquero.
Las reglas de interaccin:
Son similares a las reglas de la simplificacin l. La diferencia es que la
llegada de un cliente ahora significa slo un cambio en la longitud de
la fila, y no una accin de un CLIENTE, ya que los CLIENTES, en esta
simplificacin, no son componentes del modelo. El tiempo promedio de
servicio se calcu l a como una variable aleatoria y no como una funcin
de los deseos de los clientes. La distribucin para esta variable se deriva de las observaciones estadsticas sobre el comportamiento del sistema real en el pasado.
Hay que observar que la simplificacin 2 implica un modelo ms
sencillo. que necesita mucho menos de la memoria operativa de la computadora y corre ms rpido que el modelo que corresponde a la
simpli ficacin 1. Los marcos experimentales de estos modelos son distintos . La simplificacin 2 no permite, por ejemplo , observar la historia
de uD cliente durar.te su Vida en el modelo. Sin embargo, si e! objetivo
de la simulacin es nada ms observar la longitud de la fila. el nmero de
clientes atendidos y la ocupaci n promedio del peluquero, la simplificacin 2 es suficiente.
Es comn que ios marcos experimentales ms .. grandes incluyan
los ms simplificados. Sin embargo , no siempre es as. Vamos a construir un marco experimental y el modelo simplificado correspondiente
para la misma peluquera, que es completamente distinto de los marcos
ele las simplificaciones l y 2. Anotemos con P(n.l) (t) la probabilidad de
que en el momento t la fila tiene la longitud n y que el peluquero est
ocupado. y con P{n.O}(t) la probabilidad de que en el momento t la fila
tiene una longitud n y el peluquero est desocupado. Por supuesto
P(n.O)(t) = O es posible siempre y cuando n > O. Averiguamos cmo
cambia. por ejemplo. P (n. l ) dentro de un intervalo de tiempo Dt, suponie:-ido Dt suficientemente pequeo para que no ocurran dos eventos
dentro Dt. y que el tiem po de atencin de cada cliente tiene la distribucin negativa-exponencial con la constante. La probabilidad de que el
peluquero termine el servicio dentro del intervalo DTes igual a Dt. La
probabilidad de que ilegue un cliente en este intervalo es f.. Dt, donde f..
es una constante. Hay que pensar cmo el sistema puede encontrarse en
el estado "n, I" (esto es. con fila = n y el peluquero ocupado) en el momento ( t + Dt). Esto puede ocurrir cuando:
l.
~-'""*";--21\
ii!ic
-.,1{$,
3.
o
P \n . l} (t
- >. P l (n
= [ - (/.. +
- 1), l} (t) + P ( (n
) P {n, l} (t)
1, 1} ]DT
dP\n.l)
- - =-(f..+) P (n. l) (t)
dt
+P[(n 1).1)} (t)
J,-..P-
,.~~~:~"'~7:7,~:
48
l.
3.4
49
2.
3.
4.
5.
Usar los lenguajes de 'simulacin, o de uso general, bien estructurados, como Pascal, C, Simula, Modula 2. etc., o paquetes adecuados
para simulacin de sistemas del mismo tipo que el sistema dado.
Verificar el funcionamiento del programa con una gran variedad de
datos de entrada, analizando la sensibilidad con respecto a los cambios en los parmetros del modelo.
Captar y procesar un gran nmero de estadsticas sobre las salidas
del modelo.
Sacar las gr ficas de todas las variab les descrip tivas que cambian
.con el tiempo del modelo. usar la animacin y todas las gricas
posibles que puede producir la computadora. para facilitar ei proceso de verificacin.
Aplicar todas las dems tcnicas ne venficacin, ("trace") oe soitware de uso general. alcanzables en .a computadora.
:-iu
Entrada
x(t)
9 r
SI
~el
v.
_I
s\
Is
IS
figura 3.8. Cn circuito RC con Ja tensil>n de excitacin.
X5(tTh)
X5 (t)
ejemplo que muestra cmo el mismo modelo simplificado puede ser vlido en un marco experimental y ser invlido en otro. (Ver figura 3.7)
La figura 3.8 muestra un circuito elctrico RC con una fuente ideal
de tensin de Vl volts conectada a travs de un interruptor (tambin
ideal. con tiempo de cambio de estado cero). Suponemos que R = O.O!
ohmos. e= 0.1 microfarads, y que el interruptor cambia su posicin
cada segundo. As. al circuito RC aplica una tensin "rectangular" con
fr ecuencia 0. 5 Hz. Se consideran dos modelos simplificados:
).
).
Y 5 (t-h)
Y5 (t)
SIMPLIFICACIN B: Rechazamos la resistencia. por ser muy pequeria. prcticamente cero. Las dems suposiciones son las de Ja simplificacin A.
iguales
salidas
'.\1ARCO EXPERIMENTAL 1: Observamos la tensin v de la capacitancia y la corriente i. La tensin y la corriente se mide con el error
posible de 0.1 %. para todo t (tiempo) sin medir la tensin en los
momentos cercanos a los momentos "ts" de cambio de la posicin del
interruptor. esto es, para ts - e< t < ts +e. donde e = l milisegundo. La
variable de entrada es la posicin del interruptor y la de la salida es la
tensin i:.
MARCO EXPERIMENTAL 2: Observamos la tensin y la corriente de
la capacitancia. como en el marco 1, y tambin el flujo de la energa que
sale de la fuente. Este flujo es el valor de la variable descriptiva E. igual
a la energa suministrada por la fuente. por el periodo T(dos segundos).
Las variables de salida son u y E.
Con la simplificacin A la capacitanc i a se carga y descarga a travs
de la resistencia R. La constante de tiempo de estos cambios de la
tensin es muy pequea (igual a 0.00000001 seg). as que la tensin de
bastante cercanas?
_J ~
~dolo
W--
...
-
-.. ??
;.i(~:'t"''.T
,. _ ~ .....~;- , ~?tM.~(~
5 :e""vef4iis1:1th ~
- .\i'~s
~-,
. . :
,;k(~'.;~l'!-~-rn~k~'bkffi,:t'.:i("&'{',,,wfi;~)t.--
~n
;;-,~
:-t:w u
t>_.la
:;:
')
Ve 1ifk ;"
(1)
V/Re
~
~~
'./i
u u\..)
1
1
.~., . .-,:.,~y.v~'rt ~+
fS'ti'titf'
./ ilif,;-g:..,.
- "-::i~'h;.;it'ikr!'eir.i!"Et hr&,;
M2
>'( t )
M1
F2
1
1
Fi
(3)
a-
- Sw-' 4-tifY~
f(tf'-
L~
~~
..
L___J
- i
1
1
11
11\
1 ;
M,
1
1
\~
,,-
:b//~/////~~~0'//%7//~//,/:;;,,-;/7
ri="'::0. 4 -\o;'-'1."":;-,_-{
~-j
- ' ~ \J \J ------I
1
E= C(VIY/(27)
(2)
53
dificultad es. si durant e el proceso de co ll struccin del modelo y su validacin el autor mantiene ei contacto con el usuario l cliente) y si ste
participa en el proceso de validacin. Por otra parte , podemos decir que
no existen modelos absolutamente confiables. y que la confiabilidad total del usuario puede conducirle a errores en la interpretacin de los
resultados y a tomar decisiones errneas sobre el sistema real. Aun si el
modelo es casi perfecto. el sistema real puede cambiar paulatinamente
por causa de unos eventos impredecibl es. En consecuencia. un modelo
confiable tiene que ser verificado y comparado con el sistema real y
corregido si es necesario. Esto es el "mantenimiento" de software, que es
indispensable para software de cualquier tipo , no slo para programas
de simulacin.
- t/(RC)
i(t)
te +:
-~~......-.~,,.
. -;;f&'i-b --&~
mh~~~Q~~....--~
....
La-~~::;.._.-
-~,.,,,i~-~
.._
t"". c
"''"
:j
54
3.5
Problemas
l.
2.
3.
4.
5.
6.
7.
Dado un sistema mecnico que contiene dos masas lvf1, lvf2 (figura 3.9
ver pgina anterior) y dos resortes.
Las masas se mueven sobre la superficie S, sujetas a las fuerzas de
los resortes correspondientes, las fuerzas de friccin F1 y F2 y una
fuerza externa F(t), dada en funcin de tiempo. Establezca la descripcin informal de un modelo simplificado de este sistema, especifique el marco experimental, las variables de entrada, salida y
estado, suponiendo que el objetivo de simulacin es investigar el
movimiento de las masas.
Establezca la descripcin formal para el modelo del problema 1,
suponiendo que la fuerza de friccin es proporcional a la velocidad
de la masa correspondiente.
Cmo cambiar la descripcin informal para el modelo de la iigura
3.9. si el objetivo de la simulacin sera "averiguar la potencia disipada debida a la friccin entre !a masa y la superficie S"?
Encuentre dos (o ms) posibles marcos experimentales y modelos
simplificados con sus descripciones informales y formales correspondientes. para la suspensin de un automvil. Considere las simplificaciones que corresponden a una sola rueda ( figura 3.1O ver
pgina anterior) que tiene la masa :vl 1
Considere dos casos: primero. cuando la llanta funciona como un resorte con amortiguamiento y segundo, cuando la llanta tiene la
rigidez infinita.
Cul es la diferencia entre la validacin y verificacin de los
programas y modelos de simulacin?
Puede un modelo vlido no ser confiable?
Cul de los modelos mencionados en este captulo es vlido pero
no puede ser programado y verificado?
CAPTULO 4
Modelos matemticos
de los sistemas
dinmicos y algunos
algoritmos numricos
4.1
Introduccin
En este captulo se d iscuten algunos modelos matemticos y mtodos
numricos que pueden utilizarse para si mular el comportamiento dinmico de sistemas con parmetros concentrados y se comentan algunos aspectos computacionales que surgen en la simulacion de sistemas
con parmetros distribuidos (vea la clasificacin de sistemas del captulo 1). Para mayor informacin sobre mtodos numricos se recomienda consultar, por ejemplo, los libros de Conte y Boor o Lambert (vea
referencias) .
Antes de hablar sobre los mtodos n umricos, hemos de suponer
que la mayora de los modelos que aparecen en este captulo pueden ser
descritos por sistemas de ecuaciones diferenciales ordinarias lineales o
no-lineales del primer orden. Al final del captulo se discuten problemas
computacionales que aparecen cuando el modelo matemtico es un sistema de ecuaciones diferenciales parciales. Hay que observar que la
mayora de los modelos dinmicos de los sistemas con parmetros
concentrados pueden expresarse en esta forma. A veces hay que introducir unas variables auxiliares y reordenar las ecuaciones para hallar el
sistema equivalente de ecuaciones del primer orden. Consideremos,
por ejemplo. la ecuacin del segundo orden
ux ~ bx ex ; f(t. x)
(1)
S6
'vlodelos matemi1tic o s
x 1 = x, x,
.'i7
dx/dt
(2)
ux,
donde y 0 es el valor en el punto t y ' Y,,. 1 es y(t + h). Desde luego Y,,. 1
calculada segn la frmul a (2), es una so lucin aproximada. normalmente distinta de l a solucin exacta y (t).
La f rmula (l) tiene tambin otra interpretacin: si el sistema es
.. de tiempo discreto. esto quiere decir. si su estado c ambia de t,. a tn. , y
este cambio depende slo del estado en t. la frmula ( 2) es la ecuacin
completa ( en d1ferencws) de estado. En este caso /J est fijo y no podernos pas ar con /1 a cero. Si el sistema es con tinuo y su ecuacin o ri ginal
es ( 1) . la frmula ( 2) solamente proporciona una aproximacin a la
solucin exacta. Hay que subrayar . que las ecuaciones ( 1) y ( 2) pueden proporcionar soluciones con las propiedades cualitativas compietarnente distint as. por ejemplo. no es cierto que a una ecuacin de tipo
( 1) que describe un sistema dinmico estable I"' corres ponda una
ecuacin en diferencias (2), la solucin de la cual es estable. Tericamen te . si h _, O. entonces la sol ucin y ( aproximada) tiende a y V,)
( verdadera). En realidad esto no es cierto. Si resolvemos !a ecuacin
( 2) por computadora. no podemos dismin uir /J demasiado por dos razones: primero. si calculamos la solucin sobre un inter valo [t. t A].
entonces e! nmero de pasos (clculos) segn la frmula ( 2) es por lo
menos A /h . .Si h tiende a cero. el tiempo de cmputo tiende a infinito.
Segundo. si h es muy pequeo. aparecen los errores de compu tacin.
Si. por ejemplo. la computadora tiene la exactitud hasta 7 dgitos. el
valor de y es l OO. f vale 0.1 y h es igual a 0.0000 l. obtenemos siempre
Y,.. 1 =Y.. ~ hf =Y,,. ya que el producto hf es muy pequeo y la comput adoralo ignora sumndolo ay,,. La so luc in que obtuvimos es constante y
aparentemente falsa ya que f ~O.
Podemos conc luir que siempre exi ste un valor ptimo pa r a h .
Existen frmulas que nos permiten estimar el error del mtodo de Euler.
Supongamos que y es la solucin aproximada. la solucin exacta y(t)
tiene la segunda der ivada en (t, t + A), f(t. y) es diferenciab le con respecto a y y'
x,
x 1 = x,
x,
(2)
(3)
f (t, y)
4.2
<
L y '. y"(t)
<
El mtodo de Euler
don de L y Y son unas constantes positivas. Entonces. el error
e = y(t) - Y,, cumple con !a desigualdad
ste es quizs el ms simple de los mtodos para resolver ecuaciones
diferenciales del primer orden. Consideremo s !a ecuacin
y(t)
f [t. y (t) l
( 1)
"
hY
S:: - ( eAL - 1)
2L
~-
..
~-
....-
--~ .._~,._
-~
IA..,~
S8
Modelos matemticos
59
a+ b
4.3
1 /2(~
aK,
l =
b~
rr,.
~ =
1/ 2.
(3)
bK2
donde
K1
K2
= hf(t Y,,),
hf(tn + CI. h. Yn + ~ K 1 ).
y(f
1)
= y(f) +
hy(t.)
y(t,)
+ hf(t0 ,
h'((,
2ffty
h 2 y(f)/2!
Y.)
+ .... =
(~ +{ f)/2! +
+ ~ f' + ~ fy +
r:f)j3!
+ o(h')
(4)
Kjh
f(t" +a h. Y,,
a hf t
K)
f(t. , Y,)
a2h2
2
K,, f y - - - ftt
~2kf
+
'
f fY
o(h 3 )
(5)
. ~,
~-..-
&c)
't:
.~
ui
. ,,
'J;
X=~=l
K;
M(t,,. Y)
K,
M(t,,
K,
K,
Y,,
2 K3
K,)
3 K 1f ry
b = 1/ 2
ff.) = b a~
Yn.i
#')-.\,:J.>=
> z.~..,
'P-:;+..B'.___ _.._~
.
-
......
-L-'~'-:.:..~,,;;_,,.,,_,-~
....
- ~--~;_,_,,~:,!"'""~;.h)
nO
Mo<lelos matemticos
I
j
a.i Yri .,
=h
={)
K, = hf(y(t), t)
Ki
K3
hf(y(t)
K4
K,
(7296/2!97)K.j' t +(12/13)/J)
hf(y(t)
C36so1s 13) K,
K.,
h)
y (t)
(6)
O'. = y
J
k
.
a1
)
,/-J
~I
J. ..;
=o
k
L..
h)
~)
'<\"""'
- (845/4104)K4 , t
n1
o5h)
37(., - 9(. J
+(2191/4104)K4 - 0.2K,
Este algoritmo es de quinto orden. Su gran ventaja consiste en que
RKF permite calcubr una estimada del error, sin evaluaciones adicionales de la funcin (y. t). El error est dado por la siguiente expresin:
(1 50)K5 + (2/55)K0
4.4
~~~"j,j;~--~-~.J
n2
Modelos matem:1ticos
+
1
v__c
V= A [ 1 - EXP(-t/ RC) ]
dV
-=
dt
1/(RC) ( U - V) = f( V, t)
di
y A. = - l / (RC). Esto implica que para RC = 1 la condicin de estabilidad
es O < h < 2.
Para los algoritmos de Runge-Kutta las regiones de estabilidad son
como indica la siguiente tabla.
( A , 8)
(-2 . o)
(-2 . o)
(-2.51, o)
(-2 .78, o)
dV
V+RC--=U
(8)
4.5
(7)
___....,..._.
-j~
'>t
1> c'r-?hcWm
~'-fuhEL -~w~,"''i
63
,.,,m".(@.-,1.;7:e&;.
s ;l
":"'"-:~- ~-~
f.+-rn. ..
J,.
4, I~"
~~
.e .: -------~~:.....t.:.::_.__C\~~;~-~_~
fi4
Modelos m a tem:iticus
difer encias, basndose en el lu ~ ar geomtrico de las races de la "ecuacin caracterstica" derivada d e la frmula del mtodo, en el plano complejo. Estas condiciones no se discutirn en este texto.
4.6
2.
3.
Entonces
P,, (t
E'.
2.
l.
fi.S
l.
y n;:cimientos
En el momento t el sistema estuvo en el estado E,, y no hubo cambios. La probabilidad de que no nazca nadie es 1 - A.,, h, y la de que
no muera nadie es 1 - ,,h . Entonces. la probabilidad para esta opcin es (l - A.,, h - ,, h) P,. (t).
h)
P (t)(l-A,, h - ,, h)
+ \,_ ,
hP,,. ; (t)
o(h)
dt
paran
1. Paran
(1 )
O tenemos
dP0 (!) _ \ p" (t)
dt
, P1 (t)
(l a)
Las ecuaciones (1) y (la) son las "ecuaciones de muertes y nacimientos". Hay que observar que ste es un sistema infinito de ecuaciones
ordinarias lineales de primer orden. Si conocemos las probabilidades
iniciales P (0). P ( 0) ..... el sistema ( 1) ( 1a) describe las probabilidades futuras P (t). P (!),. ... .
El modelo matemtico (1) (la) es un modelo continuo que descr i be
el comportamiento de un sistema real discreto. El marco experimental
para este modelo (simplificado) es el de las probabilidades y no de los
estados. Con este marco experimental slo se pueden simular y observar
las propiedades estadsticas del modelo y no las trayectorias reales ( los
estados).
La ecuacin de muertes y nacimientos tiene varias aplicaciones . Por
ejemplo, para simular el crecimiento de una poblacin hay que observar
que P,, (!) significa la probabilidad de que existen n miembros de la
poblacin en el momer.to ry que tanto la intens idad de nacimientos comola de muertes es proporc ional al nmero de miembros de la poblacin. Esto significa. que en este caso hay que sustituir en las ecuaciones
(l) y (la) \ ,= A,. y,, = 0 , donde A. y son unas constantes positivas . La
condicin inicial son las probabilidades iniciales P (O) .
..,
-~.:~~--
--'-
...A-!... __..__......_ _ _
.,._
n para n
,.
<
mulacin. hay que actualizar esta parte de memoria y sacar los valores
con el retraso deseado. Vamos a mostrar un ejemplo de la realizacin de
este mecanismo en los lenguajes FORTRAN y PASCAL. Suponemos que
nuestro modelo es de parmetros concentrados y contiene] componentes de puro retraso cuyo valor es R unidades de tiempo del modelo. Si el
paso de solucin de las ecuaciones del sistema es H, tenemos el retraso
de L pasos, igual (aproximadamente) a R/H. Para guardar la historia de
las seales de entrada en la memoria operativa reservamos un espacio
de L = R/H + l registros. cada uno del valores de tipo REAL. Este conjunto
de registros, que vamos a llamar RET y declararlo como un arreglo con
dos ndices. tiene que ser cclico, esto es, la posicin actual NC tiene
que recorrer el registro como muestra la figura 4.2.
Para recordar los valores actuales de entradas en el registro RET
podemos usar el siguiente procedimiento en FORTRAN
Jf para n <::M
y \, = A. constante. Para calcular P (t) para t > O hay que sustituir estas
funciones J.,, y,, en las ecuaciones ( 1) y (la), definir las probabilidades
iniciales y resolver las ecuaciones sobre un intervalo de tiempo deseado.
La ecuacin de muertes y nacimientos es, en el caso general. un
sistema de ecuaciones infinito. Esto implica ciertas dificultades computaciona l es. Hay que observar que cada ecuacin para P,,, n >O. depende de la probabilidad P,. 1 y de P,,. 1 Por eso. si limitamos el nmero
d e ecuaciones a. por ejemplo, L. la solucin para PL (t) ser seguramente falsa. Prcticamente. desde luego, tenemos que limitar el nmero de
ecuaciones. pero si queremos observar L probabilidades. el lmite tiene
que ser mucho mayor que L.
4.7
67
.v1oaelos n1aten1at1cos
NC = l - l 00 * ( (l-1)/ 100)
DO l K = l. J
l RET(K. NC) = U(K)
RETURN
END
x(t)
"
~
' ii
Mpasos
1s=T=r
1
1 11
NC
u(t - r)
.. ""'
Los registros
_,..,,,__
'1".
~-
~-:.l
f)8
Modelos m<ltem[1ticos
Sistem<ls rigidos
6lJ
4.8
Sistemas rgidos
FUNCTION UR(N, M)
COMMON/RETRASO/NC, RET(!O, 100)
1 = NC-M
IF (l.LT.l) 1=1+100
UR = RET(N, l)
RETURN
END
.t-p)
x, (t)
Esta funcin usa los valores de NCy RET. Se calcula la posicin I donde
se encuentran los valores guardados hace M pasos. El valor I se corrige
de tal manera que 1::; :::; 100 y se asigna RET(N, !) al valor de la funcin.
El usuario de estos procedimientos slo tiene que definir el valor inicial
para NC y RET. Despus ya no se preocupa por estos valores. que no
aparecen en forma directa en el modelo. El modelo slo contiene llamadas a REC (para guardar los valores actuales) y UR (para sacar valores con retraso). Por ejemplo. CALL REC(X, T. 0.1, 5) guarda los valores
actuales de un arreglo X de cinco componentes. El paso de tiempo es
igual a 0.1. En el modelo se puede usar. en cualquier expresin, por
ejemplo. el valor UR(3, 17) que devuelve el valor deX(3) con retraso de
17 pasos. La funcin UR proporciona los valores con retraso de un nmero entero de pasos. Con una simple interpolacin podemos obtener
el valor interpolado para cualquier retraso real. La realizacin de esta
funcin en PASCAL es como sigue
x 1 (t)
A 1e
x, (t)
ii.i +
A,e
ii.:.!.
A,e '''
donde /.. 1 =-1001 yi..,= -1. La solucin contiene componentes que cambian
muy rpido y componentes muy lentos. Si queremos que el algoritmo
numrico que se aplica para resolver estas ecuaciones numricamente
sea estable, hay que usar el incremento de tiempo h muy pequeo. por
ejemplo, para el algoritmo de Runge-Kutta de segundo orden tiene que
ser h:::; 0.002. aunque algunas soluciones cambian lentamente (et componente "rpido" no se nota o desaparece rpidamente). Sistemas de
ecuaciones de este tipo se llaman rgidos (stiff equations) y provocan
dificultades computacionales111 . i""I . La rigidez se debe a que hay graneles diferencias en los valores absolutos de los valores propios de lamatr iz de coeficientes del sistema. En general. no se puede hacer mucho
para evitar la rigidez. porque sta tiene el origen en !a naturaieza fsica
de l sistema real. Por ejemplo, un sistema mecnico que est compues-
~-;
"'t""~'f"
.~"
,.__
-"""
...
.....,;,.~~.
-'
70
Modelos matemticos
rlt
.....,.,..
.....
(4)
DC AR
dt
ib
a
T
----'
le
1
1
1
-+-
:...,
..........
~:
.. ,,
d T, (x . l)
~..,,.
(3)
Segn la clasificacin de los sistemas dinmicos introducida en el captulo 1. los sistemas distribuidos tienen el conjunto de clases de equivalencia de entradas ms grande que el conjunto de todos los nmeros
reales. Corrientemente estos sistemas son descritos por ecuaciones diferenciales parciales. El estado de un sistema distribuido no puede ser
representado por un nmero real ni tampoco con un vector de nmeros
reales. El estado de tal sistema pertenece a un espacio ms amplio, con
la dimensionalidad infinita. El caso ms tpico es el del estado dado como una funcin (toda la funcin y no su valor en el momento), por
ejemplo la distribucin de temperatura en una regin o la funcin que
describe la concentracin de un componente en todo el volumen de un
tanque donde avanza el proceso de difusin.
Los problemas computacionales provocados por la naturaleza de
los sistemas distribuidos son bien conocidos y descritos en la literatura
sobre mtodos numricosl6 ll. 11. Vamos a mostrar aqu un ejemplo que
muestra las dificultades en su simulacin y explicar de una manera
sencilla las causas de estas dificultades.
Consideremos el proceso de distribucin de temperatura en un pedazo de metal. suponiendo. para simplificar las ecuaciones. que el sistema es unidimensional (por ejemplo. una barra cilndrica delgada con
longitud L y dimetro constante D). Denotamos la posicin a lo largo de
~._......_..
a~ T (x . t) /( C AR)
(x. t)
(J T
4.9
71
~:~
__,.,t..,_,~....,:..... _~~
-~j
72
P ro blemas
Modelos matemticos
4.10
6.
7.
8.
9.
73
Cul es el valor mximo del incr emento de tiempo "h" para que el
algoritmo de Runge-Kutta de ord en 4 aplicado a esta ecuacin sea
estable?
Qu hay que suponer sobre un proceso estocstico discreto para
hallar la ecuacin de muertes y nac imientos que lo describe?
Cul es la informacin que proporc iona y cul es la que no proporciona la ecuacin de muertes y n acimientos?
Encuentre unos ejemplos de sistemas mecnicos (masas. resortes
y amortiguamientos) cuya descripcin matemtica resulta en las
ecuaciones rgidas.
.
Cules son las principales causas de las dificultades computacionales en l a simulac in de !os sistem as d istribui dos.,
Problemas
l.
2.
3.
4.
5.
u(t)
-5x (t)
sen (O.lt)
""-
. ...,.
..._
~.
CAPTULO 5
Ejemplos de programacin
usando lenguajes algortmicos
(Basic, For.tran, Pascal) en
simulacin de sistemas
dinmicos continuos
5.1
a -s.- ;,.
44."'z'As,{;-
-"r. ...,
~"'}~'u,.__
ll.-.:..
7;
Aplicaciones
Ejemplos de programacin
nada en otros segmentos. cambiar la funci n de fue rza, o usar el mismo procedimiento Runge-Kutta en otros prob lemas de simulacin. El
esquema de flujo para el programa es como muestra la figura 5.2. (ver
pgina siguiente).
LJ
Figura 5.1. Un sistema mecnico
Bx (t) Ax (t)
5.2
Aplicaciones
5.2.1
Simulacin en PASCAL
( 1)
U(t)
donde A es el coeficiente del resorte y Bes el coeficiente del amortiguador. Reordenando la ecuacin (1) en la forma de dos ecuaciones del
primer orden obtenernos
x ,(t)
xJt)
(2)
-=--~~...._.,...,.~ "'
...._:....
~"'-..~~
P+
)'t" - _ _ _ . _
M+'
""1
.P
* ~'L,
.,____
.~
"!"~".
t1 ~-~-
77
- J 2f&'1~;;..,_-
..,.-44
tL-#
s.+.,,_
#~!~
..,....;-..
.:.=.tT~H;ih-~f-':"~ -~-
1---46''
.._
....._.......
..;;...,. } ..._.~.:..,.-
~...._
___._ .. ...,""'
~
~.,..,;,E~ ..'Y.:....;...,_-
i _.....,,;;._.
....
=:~.d
7X
Ejemplos de programacin
Aplicaciones 79
Listadol
PROGRAM MECAN;
{Esta verison es compatible con Turbo-Pascal 3 de
Borland. Para hacerlo compatible con Turbo-Pascal 4 o 5
hay que agregar aqui la clausula USES correspond iente}
TYPE VECTOR=ARRAY[l .. 2 ] OF REAL;
VAR A,B,T,H:REAL; K:INTEGER; X:VECTOR ;
-&
~
.c..
i) (
i> j
M veces )
1
i
1
'V
Procedimiento Runge-Kutta
, <l __
~
1
,
1
1 - -:
1
.
Almacenamiento o
impres1on de los
resultados
:
j
'
"7
~
i
1
I
I mpres1on
.. d e /os
resultados almacenados
,- -------------
- - 1--;)j
1
1
,
j
~
Figura 5. 2. El diagrama de flujo del programa de s imulaci n.
.,
i
1
E1aluacin de la
fuerza
80
5.2.2
Listado 2
DIMENSION X(2)
COMMON /PARAM/ A,B
H=0.1
A=0.5
B=0.5
T=O.O
DO 1 K=l,150
CALL RK4(2,X,~ 1 H)
1 WRITE(2,3) T,X
3 FORMAT(JH T=,F5.2,3X,7H
ENO
FUNCTION U(T,X,N)
DIMENSION X(N)
U=O.O
IF (T .LT. (0.99)) U=lO. O
RETURN
END
Simulacin en FORTR.\.N
El listado 2 muestra una realizacin del mismo modelo en FORTRAN.
Este programa tiene la misma estructura de la realizacin en PASCAL descrita en la seccin anterior. La funcin U es la funcin de la
fuerza. el procedimiento RHS describe el modelo (los lados derechos de
las ecuaciones) y el procedimiento RK4 es el algoritmo de Runge-Kutta
del cuarto orden. Hay pocas diferencias en la programacin: por ejemplo, los arreglos en FORTRAN que son parmetros formales de procedimientos y funciones pueden ser declarados dinmicamente y as se
hace en este programa. Los parmetros del modelo que no son parmetros formales del procedimiento RHS se mandan a las ecuaciones a
travs del bloque COMMON/PARAJ\11/.
5.2.3
Simulacin en BASIC
El mismo problema de simulacin puede tener tambin una realizacin
en BASIC. como lo muestra el listado 3.
Este programa tiene la misma estructura que las versiones PASCAL y FORTRAN aunque en BASlC es un poco ms difcil realizarla. El
programa principal empieza con la lnea 100 y termina en la 170. Las
funciones del programa principal son las mismas que en las versiones
PASCAL y FORTR.~'\/. El procedimiento de Runge-Kutta empieza en la
lnea 1000 y termina en 1270. Los lados derechos de las ecuaciones del
modelo estn descritos en el procedimiento que empieza en la lnea
2000 y termina en 2040. Las lneas 3000 hasta 3020 describen la fuerza.
Los procedimientos de BASIC no tienen parmetros formales. Por esto,
hay que usar las variables auxiliares T.4 y XA para guardar el valor del
....
,,
~
'
..,N
;"':.:. '!iP"
~~,.,.,......~..,
~;
Xl,2=,2(F8.4,2X ))
-1.,_ .
t;~
:~
~A'
t ..,
' _.Jtm
, 4 iAi=.;,'~~-o.:..cd.-...i:......,f- _..._:__~--.
.;.,_
;.,:
Ejempios de program'-lcin
Aplicaciones
tiempo y estado respectivamente. que se usa en el procedimiento Runge-Kutta y no daar a los valores de Ty X que representan el tiempo y el
estado mientras que el algoritmo cambia a TA y XA como lo necesita. Las
dems funciones y resultados de este programa son iguales a las
versiones PASCAL y FORTRAN.
Listado 3
1 OO DIM XA ( 2) , Kl ( 2) , K2 ( 2) , K3 ( 2) , K4 ( 3)
110 DIM F(2) ,X(2)
115 N=2
120 A=.5: B=.5: X(l)=O: X(2)=0: T=O: H~.l
125 PRINT 11 TIEMPO
Xl
X2"
130 FOR K=l TO 150
140 GOSUB 1000
150 PRINT USING"#####. ####" ;T,X(l) ,X(2)
160 NEXT K
170 END
1000 REM *******************************
1010 REM RUNGE-KUUTA 4
1020 REM PARA SISTEMAS DE ORDEN mas ALTO
1030 REM HAY QUE CAMBIAR DECLARACION DIM
1040 TA=T
1050 FOR I=l TO N
1060 XA(I)=X(I): NEXT I
1070 GOSUB 2000
1080 FOR I=l TO N
1090 Kl(I)=H*F(I): NEXT I
1100 TA=T.,-H/2
1110 FOR I=l TO N
1120 XA(I)=X(I)+Kl(I)/2: NEXT I
1130 GOSUB 2000
1140 FOR I=l TO N
1150 K2(I)=H*F(I): NEXT I
1160 FOR I=l TO N
1170 XA(I)=X(I)+K2(I)/2: NEXT I
1180 GOSUB 2000
1190 FOR I=l TO N
1200 KJ(I)=H*F(I): NEXT I
1210 TA=T+H
1220 FOR I=l TO N
1230 XA(I)=X(I)+KJ(I): NEXT I
1240 GOSUB 2000
1250 FOR I=l TO N
1255 K4(I)=H*F(I)
1260 V=l / 6*(Kl(I)+K2(I)*2+K3(I)*2+K4(I))
12 7 0 X(I)=X(I)+V: NEXT I: T=T+H : RETURN
2000 REM **************************************
2010 REM AQUI VIENEN LAS ECUACIONES DEL MODELO
2020 F(l)=XA(2)
2030 GOSUB 3000:
2040 F(2)=U-A*XA(2)-B*XA(l): RETURN
3000 REM **************************************
3010 IF TA<.99 THEN U=lO ELSE U=O
3020 RETURN
5.2.4
....;._
-...
-~
1
1
TB
11
p segundos
1
RG
....-'"'
-~ -~.
;-y- ~,
83
:,;,_.s.
e
1
X4
Ejemplos de programacin
u+ ,~
-----4
e 1
)--__..,
. ...
Aplicaciones
---1.--------!V1vul~~l
'
L _ _ ____ _ ____
~T=X
Regulador
_j
quemador
'u~~ u
t _ _ _ _ . __ _ _ _ __J
recipiente
Listado 4
PROGRAM CONTROL;
{Simulacion de un sistema de control
con retraso}
TYPE VECTOR=ARRAY[l .. 1] CF REAL;
TABLA=ARRAY(l .. 500] OF REAL;
VECTOR2=ARRAY(l .. 2] OF REAL;
VAR RET:ARRAY[l .. 2,1 .. 100] OF REAL;
NC,K,TR,KMAX,M,L:lNTEGER;
Tl,KR,H:REAL; X: VECTOR; Y:TABLA;
T,TX,TFlN,XMl, XMA:REAL;
DEL:VECTOR2;
, 1
!
1
Gr(sl=
4 - - - - ------- - ---
__}--------
--- -c:i~~:t~
_J
Figura 5.4. Esquema de bloques del sistema de control de la figura 5.3. Se supone que la funcin de
transierencia de la vlvula. del quemador y del termmetro son iguales a uno.
G(s)= - - 1 + T1s
+ T1 .~(t) =
K e(t- p)
{$1 TRR.PAS}
[K(U(t-p)-x(t-p))-x(t)J!TI
{$1 RK4.PAS)
ft'
-.r!""::~
f.
~-- '"-
BEGIN
WRlTE ( 'KR --> ') ; READLN ( KR) ;
WRlTE('Tl --> '); READLN ( Tl ) ;
WRlTE('TX --> '); READLN (TX ) ;
WR1TE( 1 H --> ' ) ; READLN ( H); TR:=TRUNC ( TX/ H) ;
WRITE('TFIN --> ' ) ; READLN(TFIN ) ;
~-'?!t.~
85
8n
Problemas
Ejemplos de programacin
PAS . Novamos a comentar aqu cmo funciona TRAZA 1. Hace notar que
en lugar de TRAZA 1 podemos usar cualquier procedimiento de graficacin o. simplemente. imprimir los resultados. El listado 5 muestra el
procedimiento TRAZA 1 que se us en esta simulacin.
La figura 5.5 (ver pgina 89) muestra un ejemplo de la simulacin. En
este caso T = 5, TX (el retraso)= 0.3, TFIN = 10. H = 0.05. Las curvas
muestran los cambios de temperatura para tres valores de la ganancia
del regulador: KR = 8, 12 y 16. Es fcil ver cmo el sistema pierde estabilidad si la ganancia del regulador crece demasiado.
5.3
1
Problemas
l.
mensionalidad uno (hay slo una ecuacin del primer orden con retraso). El tipo T ..\BLA es un arreglo auxiliar que slo sirve para gua rdar e
imprimir o trazar resultados. Las variables declaradas en el programa
2.
~~
t',,
.......
..,_..,,.., .. -..,.....
;;,
:....Jtt
..... _,_-~--!;&~~-_a...__
Listado 5
,.
87
~:;
PROCEDURE TRAZAl (Wl, W2, WJ, W4, N, M: INTEGER; Z: T.'\BLA; XMA, XMI: REAL;
REG,CLEAR:BOOLEAN; CH:CHAR);
{Pararnetros formales:
Wl, W2 : coordinadas del punto mas arriba a la izquierda
de la grafica (puede ser Wl=O, W2=0)
WJ, W4 : coordinadas del puntomas abajo a la derecha
N : numero de puntos a trazar
M : cada M puntos (pasos) seran marcados en el eje horizontal
Z : un arreglo de tipo TABLA , que guarde los valores a trazar.
El tipo TABLA tiene que ser:
TABLA= ARRAY[l .. N] OF REAL;
XMA, XMI : el valor maximo y mnimo de los valores en Z. No se
necesita sustituir ninguno de estos parametros si REG=TRUE.
REG
si igual a TRUE, el procedimiento evaluara automaticarnente
XMI y XMA. Si FALSE, hay que sustituir valores para
XMI y XMA.
CLEAR :
Si CLEAR=TRUE, el prucedimiento borra la pantalla y despues
de trazar espera hasta que el usuario teclee RETURN. Despues
borra la pantalla y sale.
Si CLEAR=FALSE no se borra la pantalla antes de trazar y el
procedimiento no espera a return. En este caso la grafica
queda en la pantalla .
88
Ejemplos de programa<.:im
END;
r8
I~
;
END;
END END;
1
1
PROCEDURE DRAWP(A,B,C,D,E:INTEGER);
(un procedimiento auxiliar para TR.l\ZAl}
VAR K,L,M:INTEGER;
BEGIN
L:=ROUND(A/ 2); M:=ROUND ( C/ 2);
FOR K:=L TO M DO
PLOT(2*K,ROUND((K-L) /( M-L)* ( D-B))+B,l) END;
J..-L~ -
=
o
.,
V
-o
.,
</)
'~
v
-o
.,
</)
!
i
o
::;
..::
=
.
"'
</)
"'
!I
-o
2
;;
"'
:::;:
"'o
1
,,
;'.
1
1
':2
..::i
.,,;
"'...
<'ll
;,,
e
8!-l
:;;..,..
~-,
L~-..,..,,J-.:
~.b-;._,,..
..."'"'
E
I ~
LABEL l;
VAR ZZ,Al,A2,A3,A4,K,H,X,Y,Xl,Yl:INTEGER; U:STRING[20];
BEGIN
I F CLEAR THEN BEGIN HIRES; HIRESCOLOR(lS) END;
r"
,:!-~ ..............
YO
Ejemplos de programacin
3.
4.
CAPITULO 6
Lenguajes de
simulacin
6.1
Introduccin
Hay dos reas principales donde se desarrollan los lenguajes de simu
[acin: el rea de sistemas continuos con parmetros concentrados o
distribuidos, y el rea de simulacin discreta (sim ulacin de eventos o
actividades). Recientemente se pone ms atencin a los lenguajes orientados a objetos. los cuales permiten crear programas ms flexibles,
donde los objetos continuos y discretos corren en la forma paralela o
semiparalela en el mismo mode!o. Hace notar que la simulacin de
sistemas co ntinuos es reJlmente continua slo al usar las computadoras analgicas. Hablando sobre aplicaciones de las computadoras digitales podemos observar que la simulacin continua se realiza siempre
con un incremento pequeo, fijo o variable. de tiempo de modelo. En
consecuencia. los cambios de estado de modelo ocurren en unos momentos discretos de tiempo. que constituyen una secuencia de eventos.
Esto no significa que podemos usar lenguJjes diseados para la simu lacin discreta en los problemas ele simulacin continua. aunque existen
lenguajes basarlos en la simulacin de eventos que s permiten simular
sistemas cu1 1 procesos continuos y discretos corriendo simultneamente. Empezamos nuestra discusin con la simulacin de eventos y
procesos discretos. ya que ste p;:irece ser el campo ms importante.
L11ego vn1os J mencionilr algunos lenguajes y mtodos para la simulacin continua. corno ACSL. DY:\A~lO y el mtoclo de Forrester.
,_..
,_
-~
~--
-..-.~ ....
6.2
fuse l.
fuse 2.
lse
Se han desarrollado tres estrategias principales de simulacin: Escrutamiento de uctividudes (EA) ("activity scanning"), programaci(;n de euenrris (PA) ("even t schecluling") e interucci<>n de procesos (IP) ("process
interaction") 1:n1.11.1 7'I. En lo que sigue trataremos" actividad" y "evento"
como sinnimos.
EA fue la primera estrategia de simulacin que apareci en los aos
cincuenta en Europa. Una de las primeras imp lementaciones ele EA fue
el lenguaje CSL - Control and Sim11lation Language 11"1 . Segn esta estra tegia . el tiempo de modelo avanza !lasta que puede llevarse a cabo
la prxima actividad. L11ego se ejec11tan todas las activid<icles que pueden ocurrir en el momento y vuelve a avanzar el tiempo. Este ciclo se
repite hast a el fin de la simulacin. esto es. cuando ya no hay ms actividades por ejecutar.
Cada actividad tiene su representacin como un segmento del
progr<ima. La primera parte de est e segmento descr ibe las condiciones y la ot ra d escribe las operaciones de la actividad. Las condiciones
pueden ser relacionadas al tiempo o al estado de modelo. La parte.operacional puede cam hi;ir el estado del mod elo e influi r a los momentos
cte ejec uci n de las actividades f11t uras. CSL es un lenguaje ant iguo como todos los lenguajes relacion ados a FORTR....\.N. Las ideas de CSL se
ckscrilwn con ms detalles en la siguiente seccin.
EA funciona bien con modelos peq L>eos. Si el n mero de ;ictividades crece. el tiemo erclido para el escrutamiento crece rpi damente
y el algoritmo EA resulta ser ineficiente.
La idea de programacin de eventos (PE) es muy simple: hay que
guardar en la memoria operativa no slo el momento de ocurr encia ele!
prximo evento. sino tambin la informacin scbre cul evento se ejecutar. Esto resulta en una lista de eventos segn la cual los eventos se
ejecutan sin revisar o buscar en todo el conjunto de ev entos. La lista es
dinmica. esto es. puede ser modificada por los eventos que pueden
programar la ejecuci n de otros even tos en unos mom entos determinados a aleatorios. Lo que consume ms tiempo es l a actualizacin de la
lista ele eventos y. por supuesto. las partes operacionales de tos eventos. PE fue implementado en lenguajes como SIMULA ''"i ( aunque en
SIMULA se habla sobre " procesos" y no sobre "eventos") . en GPSS 1 1.
en PAStON :"' '" '" ..,; y muchos ms.
Alguno s lenguajes usan el algoritmo de "tres fases". que es un a
combinacin ele EA y PE. Este algoritmo se aplica si en el modelo hay
eve ntos que no son r elacio nados al tiem po. sino a las condiciones que
dependen del estado de modelo. Estos eventos condicionales no se
pueden ubicar en la lista de eventos y tienen que ser revisados cada vez
cuando camb ia el estado. El algoritmo de t res fases es c omo sigue:
:r
~\
,'\.:'
43
...:. .
~_:
-=-~
:r
94
El len!tuaje CSL
Lenguajes de si1111ilaci<'>n
6.3
El lenguaje CSL
CSL (Control and Simulat ion Language)i '! fue desarrollado en la dcada ele los cincuenta en lng!aterr:i. basndose en FORTRAN. Aunque CSL
es un lenguaie antiguo y recientemente no se usa mucho. vale la pena
comentarlo como uno ele los primeros lenguajes de simulacin que
:JI"
..
~~~=-___.- ..,...,.....~--~
~::;
..._
l.
2.
3.
El nombre de la clase.
El nmero mximo de los elementos ele la clase.
Dice s a cada elemento de la clase le corresponde una variable
ele tem po.
4.
5.
9fi
El lenguaje CSL
Lenguajes de simulacin
La parte declarativa
declaraciones de clase
Ejemplo
Definiciones de las
condiciones iniciales
1'''
~... ~
:~
-..,,.,;._"..d; ~
.&,_L~l;.,_.,,..,_
~~....; . .:__
.:.-......;_e,.........:_
ACTIVIDAD 1
ACTIVIDAD2
~
1
1
'V
~.,,;:~
~.:...-~
i....-~.
.t..r.....~...:..i.. _- _ '"
ACTIVIDAD N
l
1
FIN
.............
- --,.,.e--~~~-
&
di'.-'
"'
ACTIVIDADES
97
lJ8
Lenguajes de simulacin
El lenguaje SIMULA
99
BEGIN
T.LLEGADA EQ O
T.LLEGADA
6.4
= NEGEXP(20)
El lenguaje SIMUIA
~,
......~--~~1'"'-1
--..~~
al a2 ........ an
<
,;p,
I>
En este esquema al, a2, ... , an son los nombres de los atributos y vi,
u2, .... un son los valores correspondientes./ es la lista de instrucciones
del objeto. Los atributos pueden ser variables de cualquier tipo y tambin procedimientos. Si un atributo es de tipo "procedimiento", su
nombre es el nombre del procedimiento y su valor es todo el "cuerpo"
del procedimiento con sus declaraciones locales e instrucciones. La lista de instrucciones I describe las propias actividades del objeto. Si la
lista est vaca Oo denotamos como f =O) , esto significa que el objeto es
"pasivo" y no puede actuar independientemente. La figura 6.3 muestra
un objeto pasivo que puede interpretarse como un nmero complejo
( 7. 0.5) o como un vector que incluye componentes 7 y 0.5.
'"':.:-t-
~~
--.'-
'-'-.,,,.:_,_.
ul u2 ........ un
~ ~~- -- ----<"
""
--
.1.
l 00
Lenguajes de simulacin
El le n guaje SIMULA
Re lm
<
Ninguno de los dos objetos puede t erminar sus accio nes, porque
nunca se ejecutar el ltimo "end". "Almacn" es una varia bl e global. El
Consumidor. al ser creado, suspende sus actividades con la instruccin
detach. El objeto llamado Productor define el valor de su at ributo xy lo
pone en el Almacn. Luego activa al Consumidor con la instruccin
"resume". El Productor suspende sus acciones y el Consumidor "consume" lo que se encuentra en el Almacn , con la instruccin y:= Almacn.
Despus de efectuar algunas operaciones sigue resume(Productor) que
suspende al Consumidor y reactiva al Productor, etc. Este modelo
Productor-Consumidor es slo un ejemplo de dos objetos que interactan
desactivando y reactivndose mutuamente sin ser todava un modelo de
simulacin, ya que no refiere a tiempo de modelo. Sin embargo, este
ejemplo muestra las posibilidades de SIM ULA como una h erram ienta
para construir modelos con el algoritmo IP.
El segmento bsico de cada progr ama en SIMULA es la decla racin
de clase de objetos. Esta declaracin tiene la siguiente fo rma gen era l.
o>
7 0.5
Figura 6.3. Un nmero complejo como objeto de SIMULA.
Odl:
be gin
sqrt(bl -al)"2
(b2 - a2)"2;
end;
o>
begin DA:
end A:
en donde PR es el prefijo de la clase (lo explicaremos despus) . A es el
nombre de la clase, PA son los parmetros formales , SA son las especificaciones de los parametros formales, DA son las declaraciones de los
atributos de la clase e l es la lista d e instrucciones. Consideremo s el
siguiente ejemplo:
sta es una declaracin de una clase de o bjetos c uyo nombre es
Vector. La clase tiene un parmetro form al n de tipo entero. Desde luego,
a cada declaracin le corresponde uno o ms objeto s en la memoria
operativa. Los objetos ~e crean con la inst ruccin New. Por ejemplo New
Vector(k) crea a un objeto de tipo V ector con n = k (k es el parmetro
actual), y New Vector(5) crea un o bjeto de tipo V ector con n = 5. El
arreglo A es un atributo de la clase. Est e arreglo es local para cada objeto. pero visible desde afuera con la construccin X.A. suponiendo que
X es una referencia (" pointer") al objeto. Otros dos atributos son los
procedimientos Suma y Norma. Suma calcula la suma d e t odos los componentes de A y Norma calcula la longitud de A trat ndolo como un
vector. La lista de instrucciones est co ntenida en el lt imo bloque que
empieza con la lnea begin integer i;. Un objeto de t ipo Vector al aparecer pide los datos con la instruccin A[i ] : = inreal. para todos los componentes de A . Despus de leer estos n n meros reales el o bj eto termina
sus actividades y permanece en la memoria operativa como una estructura de datos (el arreglo A) y dos procedimientos Su ma y Norma .
Listado 6
Producto r:
... .
)(
. ...
<
beqin
Nhle true d o begin
Consumidor:
... y ...
< -----------
101
begin
detach;
.,..hile true do begin
y : - Al macen ;
~e sume { Productor ) ;
.......
102
Lenguajes de simulacin
Listado 7
Class Vector(n); integer n;
begin array A[l .. n];
real procedure Suma;
begin real s; integer i;
for i:=l step 1 until n do
s:=s+a[i];
suma:=s;
end Suma;
z
Los ejemplos anteriores muestran las posibilidades de SIMULA para
construir modelos bastante complejos y abstractos. Otro mecanismo
muy valioso que ofrece este lenguaje es la jerarqua de clases y la herencia de propiedades . Es comn que al desarrollar modelos se agreguen nuevas propiedades a los abjetos que ya tienen su descripcin en
el programa. En lenguajes como ALGOL o PASCAL cada cambio de la
estructura de los atributos o instrucciones es una intervencin en los
segmentos ya programados y necesita una reedicin del programa. La
jerarqua de clases en SIMULA facilita estas operaciones . Supongamos
que X (figura 6.5 ver pgina siguiente) representa grficamente el conjunto de propiedades de una clase llamada X. por ejemplo la clase de los
pacientes de una clnica.
Si ahora queremos describir una clase Y con ms atributos y actividades que posea todas las propiedades de la clase X. por ejemplo un
"paciente-mujer", podemos hacerlo simplemente poniendo prefijo X en
la declaracin de la clase Y, esto es. X Class Y. Despus sigue la d ecla-
...;_--.,,-~-::-- --
Vi
e:
<lJ
"'<lJ
"'
-2
u
><
<lJ
-::i
"'
-::i
"'
CJ
-::i
a.
1
;
<lJ
-::i
.::'!
~
......
.,;
!
j
1
""'""
>-
<.::>
~
:..
S'ti
;,;..
104
Lenguajes de simulacin
El lenguaje PASION
Li stado 8
Pr o cess Class Product o r;
begin
while tru e d o begin
X := . . . . ;
Al macen :=x ;
hold ( 2 ) ;
activate (Cons ) ;
passiv a t e;
end ;
end Prod uctor;
........
........
y :=Al macen;
l'
h old ( J );
activate ( Pr od) ;
end ;
e nd Consumi d or;
1
~-
~~
'\;.._, ..
_,~
New
Consideremos el siguiente ejemplo que representa dos procesos: Productor y Consumidor. La diferencia entre estas declaraciones de clases
y los objetos Productor y Consumidor mencionados anteriormente es,
que stas son declaraciones de clases que son procesos de SIMULA
( tiene prefijo Process). Se supone que Prod y Cons son referencias a los
!OS
~~.--,O.
~~,
6.5
El lenguaje PASION
6.5. l Introduccin
"">f
.,,W\''.;;,
c"flP'~~/'{JI
~1"'"--'
J-\.:)IUN
107
Sandm ayr '1 (1980). El mismo problema para el lenguaje C est descrito por Bailes!! (1985). PASION. en lugar de usar cor rutinas, utiliza Ja
estructura "proceso/evento", donde la ejecucin de un proceso puede
ser suspend ida, pero no la ejecucin de un evento. Los cdigos de eventos son secuencias de instrucciones descritas en PASCAL. Un PROCESO
es una declaracin que dice cules son los atributos (parmetros y variables) del proceso y cules son sus eventos. sta es una declarac in
que puede ser usada para generar objetos (u no o ms para cada proceso). Los objetos son los segmentos ejecutables del programa. Cada
objeto, segn la declaracin del proceso correspondiente, tiene sus
atributos y as existe en la memoria operativa. Los cdigos de los eventos se guardan en un solo lugar, no obstante el nmero de objetos del
mismo tipo que se generaron. PASION no es la nica extensin de
PASCAL destinada a la simulacin. Un paquete tambin ~elacionado
a PASCAL (llamado PASSli\1) est descrito por Uyeno y Vaessen ( 1980).
PASSIM es un puquete y no lenguuje , ya que programas en est e len . guaje son secuencias de invocac iones de procedimientos. PASION
tiene caractersticas muy distintas y no funciona a t ravs de procedimientos. Algunos procedimientos auxiliares existen. desde luego. en el
"'ambiente'" del lenguaje (graficacin. reportes. etc.). pero stos solamente tienen un papel auxiliar.
108
Lenguajes de simulacin
El lengua je PA.S! ON
Listad o 9
-~I""
~.......~ ...
~~z:,,Ak_... _ ..,..,,
.;.._~ ~A_
.... .. 1.-(
109
PROCESS P,25;
ATR A,B:REAL; ID:STRING[20 ] ;
EVENT ONE,NEXT;
BEGIN
A:=A + 2.0; B:=J. O*A;
NEXT:=TIME +5.0
ENDEV;
&VENT TWO, NOW;
WRI TELN('Algo pasa ....
ENDEV
tiempo =',TIME, ID )
Listado 10
PROGRAM TRIGGER;
REF A,B: Y;
PROCESS Y,2;
{Y es el tipo de proceso }
ATR N:STRING[ 5 ] ;
EVENT UNO,T;
BEGIN
WRITELN( 'Objeto activo:' , N) ;
IF THIS=A THEN B.T:=TIME+l.O
ELSE A.T:=TIME+l.O ENDEV;
START
{Aqui empieza el programa principal}
NEWPR A;
{Esta instruccin crea un n u e v o objeto l l amado A}
A.N:='Pedro';
NEWPR B;
{Esta instruccin crea un nu e v o objeto llamado B}
B.N:='Paco';
A.T:=TIME;
{El proceso A e mpieza c o rre r.
B esp era. }
$
{Este caracter termina el te x to d el pro grama }
-_..:;_
l l ()
Lengucijes de simulacin
El lenguaje PASION
Ejemplo de aplicacin
Pedro
Paco
Pedro
Paco
Pedro
Paco
........,.,,._.,...,._
~~~~
111
112
El lengua je PASlON
Lenguajes de simulacin
---
Listado 11
o o o QJ
o o ooo
oo o
o o
C3
'_J
B~ o~
o o
o o o o
o oo o
o
PROGRAM BACTER;
o~
li
o o@
Q []]
O(]
END;
PROCESS REPLOT , l;
( Este proceso reconstru y e la irnagenes de la bacterias en
la pantalla )
EVENT Tl;
VAR K:INTEGER;
BEGIN
Tl:=TIME+O.l;
FORALL K BACTA BEGIN
RYSB ( 'A' ,BACTA[K].X,BACTA [K] .Y,l) ENDALL;
FORALL K BACTB BEGIN
RYSB('B' ,BACTB[K].X,BACTB[K].Y,l) ENDALL ENDEV;
PROCESS BACTA,500;
ATR ID,X,Y: INTEGER;
{BACTA es un proceso que representa
las actividades de la bacteria de tipo A )
EVENT EATS,NOW;
{Bacteria de tipo A devora a una de tipo B)
VAR K:INTEGER;
BEGIN
FINO BACTB,K, (ABS (X-BACTB [K] .X) <S) AND
(ABS(Y-BACTB[K].Y)<8); {se busca una bacteria de tipo B que
se encuentra bastante cerca para comerla }
IF K>O THEN BEGIN
NXTB:=TIME+0.01;
IF RYS THEN RYSB('B',BACTB [ K].X,BACTB(K ] . Y,O )
EATS BACTERIUM A', ID );
ELSE WRITELN('TIME=',TIME , '
KILL BACTB(K] END ENDEV;
EVENT DIVIDES,NXTB;
BEGIN
(La bacteria se reproduce )
NXTB:=TIME+NEGEXP{20.0);
NEWPR BA;
IDA:=IDA+l; BA.ID:=IDA;
113
114
Lenguajes de simulacin
El lenguaje PASION
BA.X:=X+l; BA.Y:=Y+l;
IF RYS THEN RYSB{'A',BA.X,BA.Y,l) ELSE
WRITELN('TIME=',TIME,'
DIVIDES BACTERIUM
BA.NXTB:=TIME+NEGEXP(15.0);
BA.NEXTC:=TIME+O.l; NEXTC:=TIME+O.l;
BA.NXTD:=TIME+7.0 ENDEV;
A ',ID);
ELSE WRITELN('TIME=',TIME,'
KILL THIS ENDEV;
EVENT MOVES,
NXTOVB;
VAR DX,DY:INTEGER; {La bacteria se mueve}
BEGIN
IF RYS THEN RYSB('B',X,Y,O);
DX:=IRND(WM)+IRND{65); DY:=IRND(WM)-IRND(50);
IF (X+DX>600) OR (X+DX<lO) THEN DX:=-DX;
IF (Y+DY>200) OR (Y+DY<lO) THEN DY:=-DY;
X:=X+DX; Y:=Y+DY;
IF RYS THEN RYSB('B',X,Y,l} ELSE
WRITELN('TIME=',TIME,' MOVES BACTERIUM B ',ID);
NXTOVB:=TIME+2.0;
IF RYS THEN BEGIN
GOTOXY(60,l}; WRITE('TIME= ',TIME:l0:2) END ENDEV;
START
(Aqui empieza el program principal. Se crea una bacteria de
tipo A y una de tipo B. Se determinan los atributos de los
dos objetos, }
WRITE('REGIME? (G FOR GRAPHICS) '); READ(REG);
RYS:=REG='G'; IDA:=O; IDB:=O;
IF RYS THEN BEGIN
GRAPHMODE; HIRES; HIRESCOLOR(15) END ELSE TEXTMODE(BW80);
NEl'lPR BA;
(Aparece la primera bactera de tipo A.}
IDA:=IDA+l;(BA es el nombre del objeto correspondiente}
INSIDE BA DO BEGIN
X:=50;
ID:=IDA; Y:=50 END;
BA.NXTB:=200.0;BA.NEXTC:=l.O;
BA.NXTD:=l99.0;
NEWPR BB;
(Aparece la primera bacteria de tipo B.}
IDB:=IDB+l;BB.ID:=IDB;
BB.NXTB:=NEGEXP(0.2); BB.X:=200; BB.Y:=l50;
BB.NXTDB:=8.0; BB.NXTOVB:=2.0; WM:=35;
IF RYS THEN BEGIN
NEWPR PREPLOT; PREPLOT.Tl:=0.25 END;
RANDOMIZE
A ',ID);
EVENT DIES,NXTDB;
(La bacteria muere)
BEGIN
IF RYS THEN RYSBf'B',X,Y,O)
-~~-"'""'
115
116
Lenguajes de simulacin
El lengua je PASION
Listado 12
PROCESS PA/PB,25;
PROGEAM BACTER;
El programa del listado 11 (modelo con las bacterias) puede ser mucho ms corto, si primero declaramos el proceso BACTB y luego el proceso BACTA como el proceso derivado, ya que los dos procesos tienen
Jos mismos atributos y tres de los eventos se repiten en las dos declaraciones. El programa correspondiente puede ser como el listado 12 (ver
pgina siguiente) (es una abreviacin).
Por supuesto, hay que _modificar un poco los eventos para preservar las diferencias (en los eventos DIVIDE y MOVES), pero la estructura
general es como se muestra en el listado 12 y e! programa queda ms
corto que el programa original d el listado 11.
............
.-~~':"-
.,}
117
El lenguaje PASION
_g
"'
Q)
~
<11
(/)
-~ <
~a..
::J
"'
::J
::J Q)
C1l "O
"'
(/)
<
a..
Q)
"O
"'o
Q)
o> -e
:.eo ..o
-~
.2:
<~
Q)
..c.
o
Q)
e:
Q)
::J
C1l
E
C1l
o,
~
a..
_J
_J
ca
<
e"""
~ 1-
-<
za..
o
<
<
a..
(/)
<
a..
<
a..
Q)
Ol
<
<
:o
o
(/)
Q)
"O
o
"O
~
a.
Q)
:o<ll
5
o
Q)
v
o
O>
'5
-o
()
lJ
r
'
"'
~
""'
::i
':io
::
~~.---"!':."0'-0''.""\~ .. _.,,...-
119
120
Lenguajes de simulacin
El lenguaje P ASION
-- ~,...._._
!
1
nerarse con una cierta distribucin de intervalos de tiempo entre llegadas y pueden aparecer uno por uno o en lotes. Todos los dems
bloques describen a todos los posibles eventos en la "vida" del objeto en
el modelo. As, los bloques del esquema grfico corresponden a los
eventos del modelo.
Si un objeto entra al bloque TERMINAL, entonces termina sus
acciones y desaparece del modelo.
SERVIDOR es un puesto de servicio o trabajo. Es te bloque puede ser
disponible u ocupado en el momento, y el objeto tarda un cierto tiempo
al pasar por este bloque. El tiempo de servicio puede ser calculado por
una expresin o puede ser aleatorio con una distribucin predefinida o
definida por el usuario. SERVIDOR puede tener una o ms entradas,
donde el objeto a servir se puede escoger por prioridad. probabilidad o
a travs de cualquier otra regla definida por el usuario y descrita en
PASCAL. Un retardo adicional puede agregarse al salir del SERVIDOR.
En la OPERACIN DE ENSAlY1BLE dos o ms objetos se convierten en
un nuevo objeto. Los objetos que entraron al bloque desaparecen y el
nuevo objeto sigue con sus eventos. Este objeto puede "recordar" todos los atributos de los objetos que han sido usados para construirlo .
El SERVIDOR, la OPERACIN DE ENSAlY1BLE. el GENERADOR y el bloque
TERMINAL pueden efectuar cualquier nmero de operaciones definidas
por el usuario sobre los atributos de los objetos que los atraviesan. Estas
operaciones tienen que ser programadas en PASCAL.
FILA es una lnea de esper-a donde los objetos pueden formarse
antes de entrar en otros bloques. Filas pueden ser de tipo FIFO (first-infirst-0ut), UFO Oast-in-first-0ut) o RANDOM (con salida aleatoria), y
pueden tener la longitud limitada o ilimitada. La fila de tipo RANDOM
puede usarse como un lugar ('storage" de GPSS) o sala de espera sin ningn orden de salida establecido.
El flujo de objetos puede dividirse al entrar a un bloque de DIVISIN.
Este bloque tiene una entrada y algunas salidas que se determinan por
probabilidad, por prioridad o a travs de cualquier otra regla definida
por el usuario y programada como una funcin de P..\SCAL.
La secuencia de eventos se define con flechas que conectan a los
bloques. Antes de entrar al servicio o ensamble, el objeto puede esperar
solamente en una de las filas. Si un objeto no puede entrar al servicio y
no puede formarse en una fila, entonces se pierde y desaparece del
modelo. Para canalizar estos objetos a otros bloques se puede usar el
bloque de DIVISIN. En general, cada fila debe corresponder a uno o ms
servidores . Por ejemplo, la fila nmero 5 en la figura 6.11 contiene
objetos que esperan para entrar al bloque nmero 8.
-O'
4
'
121
'~..,..
~
1.c..~
LengUilJes
El lenguaje PASION
a.e s1n1u1ac1on
2FIFO
-1
,---
. 3
l,___~o-<
5 FIFO
j-J
(1
6
LJ
)>-----<
----,
.
a~
2.
_J
~--~~
123
.........--..-~-~~---
Ejemplo de aplicacin
Consideremos un sistema de produccin con tres puestos de operacin
conectados a travs de un transportador "en lnea" que consiste de un
carrito-robot que puede moverse solamente a lo largo de una trayectoria
recta ( ver figura 6.12) .
Los puestos de operacin tienen bufors en la entrada y salida. Las
piezas que entran al sistema esperan en tres lneas correspondientes a
los puestos , antes de ser transportadas. Los puestos Wl y iV2 pueden
procesar piezas de cualquier tipo y el puesto W3 solamente procesa
piezas de tipo A o 8 (que entraron en puntos A y 8 respectivamente) . El
mismo carrito transporta las piezas procesadas que esperan en bufors
87 , 88 y 89 al punto de salida T. El tiempo de transporte depende de la
distancia que tiene que cubrir el carrito y puede depender de algunos de
los atributos de la pieza (como el peso, dimensiones o tipo de pieza). La
computadora que controla el sistema determina en qu orden las piezas
son transportadas por el carrito. La tarea consiste en simular los eventos en el sistema junto con el algoritmo de control, para comparar
diferentes estrategias de control.
La figura 6.13 (ver pgina 125) muestra un posible diagrama de
QMG para este modelo. El robot transportador se modela como un
puesto de servicio con 6 entradas Oas tres filas de entrada y las tres filas
en las salidas de los puestos de operacin) . En la salida de este bloque
hay un bloque de divisin de flujos con 4 salidas Oas tres filas en las
entradas de los puestos de operacin y el punto terminal
El algoritmo de control (sus diversas versiones) est programado en
PASCAL en la forma de dos funciones que determinan los puntos de
n.
--,
124
Lenguajes de simulacin
A lenguaje PASlON
lenguaje algortmico y orientado a objetos. Si nuestro nico fin es simular un sistema de filas sencillo (esto no qui,ere decir pequeo) o el
nivel ms bajo de un sistema flexible de manufactura, entonces paquetes como GPSS o XCELL pueden ser suficientes. Por otra parte, si queremos aprovechar las estructuras y posibilidades de un lenguaje de nivel
ms alto para agregar ms procesos al modelo, multiplicar los objetos,
usar los mecanismos de herencia de propiedades o enlaces con bases de
datos, etc., entonces sistemas como PASION con su ambiente podran
ser ms adecuados.
El ambiente de PASION tiene ms mdulos que no se discutirn
aqu. Por ejemplo, para simular los sistemas continuos existe un Generador de Modelos Continuos (CMG), similar al QMG en el sentido de
que el usuario puede generar programas de simulacin en PASION o en
PASCAL sin programar. El CMG interpreta el reograma del modelo creado por el usuario en la pantalla, y genera automticamente las ecuaciones. el programa fuente en PASION y el programa correspondiente en
PASCAL. El programa en PASION es una descripcin completa de un
proceso. que se puede incluir en cualquier programa en PASION,
junto con procesos discretos, y, a la hora de correr, generar uno o ms
objetos correspondientes.
84
W1
87
85
W2
88
1
L:J
l !
----
___J
entrada y salida para el carrito. El programa de simulacin correspondiente que genera QMG proporciona hasta 56 diferentes grficas, tales
como las longitudes de todas las filas, longitudes promedio, conjuntos
alcanzables para estos valores, variancias, intervalos de confianza, etc.,
todo en funcin del tiempo. La figura 6.12 indica una pantalla tpica de
los resultados. Las barras mviles representan la longitud actual de las
filas correspondientes. El nmero de piezas en la salida corresponde a
la barra marcada TER18. "TRUE" y "FALSE" para los servidores (puestos
Wl, W2 y \V3) significan "disponible" u "ocupado'', respectivamente.
La figura 6.14 (ver pgina 126) muestra la traza de la longitud promedio de la longitud de una de !as filas junto con los intervalos de confianza para este valor, en funcin del tiempo. En la figura 6.16 (ver pgina
128 podemos ver la imagen tridimensional de la distribucin de la probabilidad (funcin de densidad) para una de las filas en funcin de la
longitud de la fila y del tiempo del modelo.
2 FIFO
4 FIFO
13 UFO
(2)
oFIFO
17 UFO
(3)
( 1 ) ______...
(2)
(3)
Conclusiones
Es posible desarrollar un sistema de simulacin rpido y fcil de usar
tambin en el caso en que !a simulacin se lleva a cabo a travs de un
r:!l.'
.~
125
....,,_.,...~
Figura 6.13. El esquema Q\\IG para el modelo del sistema FJS de la figura f:i . 13 .
Scale = 66
Oueues:
Model time=
88.000
OUE2
OUE9
OUE14 OUE4
OUE11 -
,.e
OUE13
OUE6
OUE15
OUE17 Terminal points:
TER18
Servers:- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SER7
BUSY
SER10 BUSY
SER12 BUSY
SEH16 FREE
<rw;.
-.J
'"
Maximum =
- - --,-- - -- - - -.-----
63.2500
Minimum
0.6000
Tiempo
Figura 6.15 Una trayectoria promedio y los Intervalos de confianza para la longitud de una de las colas del modelo en funcin de !lempo.
El paquete GPSS
6.6
.,1i
:::>
"O
E
'V
"O
o"'"'
<.)
(\J
:::>
"'
.2
:::>
"O
2.
e"'
"'
~O~~~~~~~~~~~~~~~~~~~~~~~~-,
:i
"'
.
:;
.a
;:
"O
"O
<i
ii
&
e
o
:i
.g
.2
.a
"'o.
ci:
El paquete GPSS
(\J
w
:::>
w
129
"O
"'
"O
1i
"'
~
.Cl
!:
"'
"O
"O
"'
"O
"__::"'
l)
-o
-;o
e
o
i
e
"'
E
;;
:.:i
e:
"""'
_"'
e
N
"'
TERMINATE. Este bloque termina las activid ades de una transaccin. Al entrar a este bloque la transaccin desaparece de la memori a.
...l
"'
"'...
"'
::1
t>O
:
12!$
...;
""'-
l:lO
Lenguajes de simulacin
El paquete GPSS
-Cb
---
generate, termnate
en ter
advance
lea ve
c=JA
seize
~
ralease
link
un link
gate
test
131
queue
a==r>
select
132
Lenguajes de simulacin
14
ph l
,3
link
IV
....
lL
,_:.,_
ph1
fito
Ll4
Lenguajes de simulacin
--
-.~-~.--~-~--
ti.'
.y.~-
. ....
~-~~~~~.~----- -~--,---~-~w~-~~~-
135
6.7
l.
2.
3.
4.
5.
->
flujo de informacin
=================>
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=->
flujo de maquinaria
J:lfi
Lenguajes de simulacin
FO
-~~~o
FE-::: -
>-:::::-
:::: 7
:::::::
NI .K = NI J
--- -<.- /
FA
t1'
'-...
- ----- --/
'/
/
__,.-
---
FG
....
N4
dNl j dt =FA - FB
\0 /
/
/
-/
La sintaxis de las ecuaciones del mtodo de Forrester es precisamente la del lenguaje DYNAMO. El programador escribe las ecuaciones
del modelo sin preocuparse por el orden de las ecuaciones. El resto del
trabajo lo hace el programa compilador. Las ecuaciones son analizadas
y se establece si el modelo es correcto en el sent ido de q ue todos los
flujos pueden evaluarse antes de evaluar los cambios de niveles. Si es
as. se establece el orden de las ecuaciones y el programa empieza a
correr saliendo de las condiciones iniciales que tiene que proporcionar
el programador.
DYNAMO puede aplicarse a modelos con tiempo discreto (DTfijo) o
con tiempo continuo (DT pequeo o variable), y el usuario tiene posibilidad de escoger el mtodo de integracin que se aplicar. Podemos
F1
__,.-
E:.
'
~-
X
1
X.K
X.L
X.J
tiempo
figura 6.20.
__z1 "
N2
FB
N1
37
'up. '-h'-'l::UUIOa
6.8
Hoja extendida
Existe toda la familia de programas de uso general de tipo "hoja extendida" ( spread-sheet) l " l como Multiplan. Visicalc li"I. Su perca le. Lotus,
etc. El objetivo de estos programas fue desarrollar un software que
hace todo lo que necesita el usuario de una computadora personal. en
particular clculos aritmticos. operaciones sobre series de datos y
matrices. creacin de bases de datos. ordenamiento, manejo de archivos. graficacin. estadsticas, etc. Veremos que hoja extendida tambin tiene aplicacin para algunos problemas de simulacin.
Un programa de tipo hoja extendida ejecuta sus operaciones sobre
datos que tienen la forma de una matriz grande o una hoja de papel
enorme rellena con clulas. Por ejemplo, en el caso del programa LOTUS.
e! tamario de la hoja es 256 columnas y 2048 renglones. en total 52-!,288
c l ulas. Cacl:i cluia se identifica a travs del nombre de la columna y el
nmero del rengln donde se encuentra. Las clulas pueden tener valores o ser indefinidas. Lo que se puede ver en la pantalla es un frag-
....-., ...
,....~_...,.,_--.-,......
~~.
. . , ~ . .
~--~--:....-._~..,__~
'
'
"
ABCDrGHI
: e
( 1
5
Ceiuia E4
~;-ll>"'.'j4WWWt.}_
----~~~~~""~~".'.'l'l"!""~
l:~~
P-~
140
Lengu;_ijes de s imul;_icin
una parte de un rengln a las partes correspondientes de un gran nmero de renglones consecutivos. que, como veremos, puede realizar un
algoritmo para ecuaciones diferenciales.
Consideremos como ejemplo las ecuaciones de movimiento de un
sistema mecnico de segundo orden compuesto de una masa, un resorte y un amortiguador, sujeto a una fuerza externa f(t). Las ecuaciones
correspondientes son como sigue:
dx/dt =
x,
hr)
x,(t)
6.9
+ hx~(r)
6.9.1
+A 1+0.05* El en la clula A2
, ...
~ --:0-- -~-~:...
__.... ..,.......
141
~-
142
Leng11ajes de simulacin
TOP. Es un paquete para simulacin continua de los sistemas distribuidos descritos con ecuaciones diferenciales parciales 1z1 (vea la
seccin 4.9). La solucin de las ecuaciones del modelo se hace con el
programa TWODEPEP IUJ. TWODEPEP utiliza un "archivo de entrada"
preparado por el usuario, que describe el modelo. Este archivo se traduce a FORTRAi'\l y las ecuaciones se resuelven con el mtodo de
elementos linitos. TOP ofrece la posibilidad de simular sistemas distribuidos de control con retroalimentacin. Est implementado en la
computadora VAX 11 / 780.
ATOMCC. No es exactamente un lenguaje de simulacin sino un generador de programas, desarrollado por Y. F. Chang, Claremont McKenna
College, EE.UU. AT0~1CC genera programas en FORTRAN para resolver
sistemas de ecuaciones diferenciales ordinarias. El usuario crea un
archivo que describe las ecuaciones y las condiciones iniciales. El
generador ofrece mecanismos especiales para sistemas r!gidos y un
nmero de procedimientos sofisticados para resolver las ecuaciones,
basndose en series de Taylor. Se pueden manejar sistemas de ecuaciones en el plano complejo. Alcanzable para la IBM PC y computadoras
ms grandes.
STELLA. Es un lenguaje para simulacin continua desarrollado para la computadora Macintosh, por High Performance Systems, lnc.,
Lyne, NH, EE.uu.1n1 Los principios de este lenguaje son casi los mismos
que los de DYN.Ai\10. Los niveles de DYNAMO se llaman " depsitos"
(stocks), los flujos se usan de la misma manera como en DYNA"vtO. Los
"convertidores" y "enlaces de entrada" conectan los depsitos en el
esquema grfico determinando la estructura del modelo. Al definir
(grficamente) a la estructura del modelo y determinar a las condiciones iniciales, se calcula automticamente Ja trayectoria del modelo. El
lenguaje ofrece buenas facilidades para graficacin y animacin para
visualizar los resultados.
TUTSIM. Un lenguaje para simulacin continua en computadoras
pequeas t 1cr'1. Es til para sistemas con elementos no lineales. El modelo
se define en trminos de diagramas de bloques o grficas llamadas
"bondgraphs". Las grficas se traducen fcilmente en el programa
correspondiente en TUTSIM.
MICRO-CAP 11. Un programa para simulacin y diseo de los circuitos electrnicos. Permite simular, graficar y analizar circuitos con transistores. amplificadores operacionales y circuitos lgicos. Desa1 rollado
por "Spectrum", Sunnyvale, California, EE.UU.
'
... ~_,___,
143
6.9.2
144
Lenguajes de simulacin
145
PASION.
cin 5.5.
MODSIM 11. Un lenguaje de simulacin orientado a objetos. Es similar a SIMULA pero relacionado con el lenguaje de programacin C.
SlAM 11. Un lenguaje de simulacin orientado a procesos y eventos l""l. Por el proceso se entiende una secuencia de eventos, actividades y decisiones. Los componentes u objetos (entities) atraviesan el
proceso , como lo hacen transacciones de GPSS atravesando el esquema grfico. SLAM 11 usa esquemas que tienen la forma de redes. Los
nodos representan creacin de los objetos, terminacin de actividades,
lneas de espera. toma de decisiones, etc. Las ramas representan actividades. por ejemplo el servicio que dura cierto tiempo. Cambios continuos del estado de modelo pueden simularse usando las ecuaciones
diferenciales o en diferencias. Esto permite simular sistemas continuos
o discret~ontinuos. Los eventos de SLAM describen los posibles cambios en el estado de modelo. Las reglas matemtico lgicas de la ocurrencia de los eventos las programa el usuario, en FORTRAN. SLAM
proporciona un conjunto de procedimientos tpicos que facilitan la simulacin, incluso el "mecanismo de reloj" para controlar la ejecucin
de los eventos. La primera versin de SLAM fue desarrollada en 1979.
La nueva versin, llamada SLAM II 2.3, elaborada por Pritsker &
Associates, EE.UU., corre en la lBM PC y otras computadoras.
Vamos a describir unos bloques de SLAM 11 y una simple aplicacin
con ms detalles, ya que el lenguaje parece ser bastante completo Y
popular entre los simulacionistas.
La figura 6.22 (ver pgina siguiente) muestra el smbolo grfico del
nodo de creacin de objetos. TF es el momento cuando el nodo empieza
a funcionar (cuando aparece el primer objeto). TBC es el intervalo entre
las llegadas consecutivas. MC es el nmero mximo de objetos que puede generar el nodo.
Cada objeto tiene un nmero de atributos que tienen el papel de las
variables descriptivas. El valor MA muestra el nmero del atributo,
:"~'
-'--".\, -'
~- - -
----
14()
Lenguajes de simulacin
147
----"'-1.1
donde se puede guardar (si MA esto presente) el momento de creacin
del objeto. para anlisis posterior.Mes el nmero de salidas (posibles
ramas de la grofica). donde puede proceder el objeto.
La figura G.~3 muestra el smbolo del nodo de tipo lneu de esperu
(quew:). IQ es el nmero inicial de objetos en la lnea. QC es el nmero
mximo posible. IFL es el nmero de archivo donde se guarda la
informacin sobre los objetos que esperan en la lnea.
Nmero inicial
Capacidad
de la lnea
Nmero
del archivo
~~~~~~~~~~~~~~~~~~~
VAR valor
VAR = valor
I '\
80
Figura 6 .26. Representacin de la actividad
en SLlM 11.
148
Lenguajes de simulacin
en el espacio. Ahora, conecte los procedimientos con los datos que usan
y con los segmentos que desempean funciones semejantes con cuerdas y trate de minimizar la longitud total de las cuerdas. Lo que resultar son unos objetos compuestos con procedimientos pegados a los
datos correspondientes . En otras palabras, la idea de LOO es simplemente poner las cosas donde pertenecen.
Los LOO se distinguen por los siguientes elementos: proteccin (u
ocultamiento) de datos, tipos de datos abstractos, atadura dinmica de
datos y herencia de propiedades de objetos. Algunos autores f7 8J. J79J
tratan estos cuatro elementos como indispensables para que un lenguaje sea "relacionado a objetos". En este texto no se supone que es as.
Vamos a tratar un lenguaje como uno de los LOO en el caso cuando el
,lenguaje permite crear objetos independientes en la memoria operativa,
que corren en forma paralela o cuasi-paralela.
La proteccin de datos hace el lenguaje ms confiable y elimina la
dependencia indeseable entre los mdulos de sistemas de software.
Gran parte de las variables descriptivas del objeto se guarda en su parte "privada" o local de datos y est oculta y protegida ante el acceso
desde afuera del objeto y la destruccin accidental. Hay que notar que
las declaraciones locales dentro de los procedimientos no proporcionan , en general, mecanismos suficientes para la proteccin de datos.
Por ejemplo, las variables locales en PASCAL no se pueden usar para
guardar al estado de ningn objeto, ya que se destruyen al salir del
procedimiento. En el lenguaje C, por ejemplo, y aun en FORTRAN sf
existe esta posibilidad (datos "estticos").
Tipos abstractos de datos es un mecanismo importante que hace el
programa ms flexible. En el cdigo fuente no se especifica ningn tipo particular (ya declarado), dejando la tarea de sustituir el tipo adecuado al compilador. Este mecanismo se ha usado en muchos lenguajes
pero slo para tipos y operaciones bsicas. Por ejemplo "+" y"-" en
FORTRAl'l sirven igualmente para datos de tipo REAL e INTEGER. La
generalizacin de este concepto es usar segmentos con propiedades
"genricas" donde no se especifican tipos. Los tipos actuales se definen
a la hora de compilacin y no de programacin, segn los tipos actuales
de los datos en el momento. Este concepto es relativamente nuevo y no
se usa en lenguajes ms viejos como SIMULA
Atadura dinmica de datos permite ejecutar las operaciones sobre
datos sin preocuparse por sus tipos y estructuracin. La operacin no
es una llamada a un procedimiento, pero consiste en mandar un mensaje
a un objeto. El objeto ejecuta la operacin sobre s mismo, usando sus
mtodos. Por ejemplo "Print" no es un procedimiento pero sf un mensaje que hay que mandar a un objeto (un nmero real, complejo, una
matriz, etc.) para que se imprima su valor. As. "Print" es el mismo
mensaje para todos los objetos y no hay que cambiar nada en el programa principal o en los segmentos que mandan el mensaje en el ~aso
de c ambiar completamente la estructura de los objetos. Herencia de
propiedades permite construir clases de objetos con propiedades nue-
Q
Figura 6.27. Esquema de un modelo en SLAM 11.
6.9.3
"-WL~.J
\F.i_. -"~,.-,..v:
iL;'>'
x:~~
-""t'' '>i;<i--+~
ar , ::.'
149
A--"'!!'r".....,,.,,~:~-''"""..._
""
rlfl
,,
;....."
.:.. ....
"S'~
...-....:.~,~;t.:~.:.<A- _,.
150
Lenguajes de simulacin
151
6.9.4
LOO y simulacin
No todos los aspect os de LOO son de igual importancia en l a simulacin.
Los ms impo r t ant es son la posibilidad de crear objetos independientes en la memor ia y construir clases de o bjet os con propiedades nuevas usando el mecanismo de herencia. Los lenguajes LOO no son , en
princi pio. lenguajes de simulacin. Por otra part e. hay que o bservar que
hay una relacin clar a y dir ecta entre los conceptos de LOO y la descripcin formal de modelos. A los componentes del modelo les corresponden !os objetos de LOO. a las variables descriptivas -el estado de
o bjeto y sus atributos, a las reglas de int eraccin- la imp lementacin
152
Lenguajes de simulacin
CAPTULo 7
Aplicaciones de la
simulacin en
mercadotecnia
7.1
1
!
Introduccin
Hay dos funciones bsicas que desemperian todos los negocios: crear
un producto o servicio y comercializarlo. Las computadoras pueden
ayudar no slo en el proceso de produccin sino tambin en las aplicaciones de los mtodos de mercadotecnia para establecer las estrategias ptimas de comercializacin. Los paquetes que vamos a describir
brevemente fuero n diseados para sistemas de cmpu t o pequeos y
empresas pequerias o med ianas.
Cada mercado es un sistema complejo y su comportamiento es difcil de predecir. Un analista o vendedor con cierta experiencia puede
prever la respuest a del mercado en un estmulo simple. pero difcilmente puede confiarse en su intuicin al determinar la estrategia ptima de
comercializacin en una situacin ms compleja. y ste es el trabajo
que la computadora puede facilitar. Los objetivos de este trabajo, que
se !lev a cabo en la Universidad Panamerican a. fueron lo s siguientes:
l.
2.
154
7.2
Q(t)
v(t)(l
g)' (
P(t)
P(O)
)e
)eA
A(t)
v(t)A(O)(l
Y(t)
(
g)'
Y(O)
)ey
(1)
en donde
- es el tiempo del modelo, O < t
<
T,
I:
t00-Z--- ~flAfm
/C3
n
unidad de tiempo),
::;
G = (P - cp) Q - A
donde cp es el costo de produccin. La figura 7.1 muestra la gaiiancia
como la funcin de las dos variables P y A (precio y gastos de publicidad), donde las ventas Q se calculan segn el modelo (1). En la grfica
se muestran slo los valores positivos de la ganancia. Se puede ver que
s existe un punto ptimo que proporciona la ganancia mxima. El
modelo para los productos con respuesta lenta usa. en lugar de los
precios y los gastos de publicidad, ciertas variables que describen la
dinmica del mercado y se conocen como la "benevolencia" de mercado
(marketing goodwll). Estas variables dependen de la historia de pre-
CD
::::>
a..
<
z
z<
<
(!'
...:
i...:
~
,.,
!Sf-i
cios y de la publicidad y reflejan los retrasos de anotacin, retrasos entre la anotacin y la compra. entre el gasto promociona! y el estmulo
correspondiente, etc.(todos los llamados "carryover effects").
157
Tabla7.1
Producto: PAPIT AS
Mercado : D. F.
Unidades: KILOS
MES
PREC IO
VENTAS
GASTOS P.
10
11
12
1
2
3
4
5
6
7
8
9
53.00
57.50
52.00
52.00
49.00
40.00
40.00
47 .50
53.00
57.50
65.50
71 .00
10000.00
8400.00
8700.00
11600.00
11000.00
13700.00
13700.00
850 0 .00
8600.00
7600 .00
5600.00
5100.00
100000.00
100000.00
100000.00
11 4000.00
123000.00
100000.00
100000.00
57000.00
99000 .00
102000.00
105000.00
107000 .00
NDICE TEM.
1.00
1.00
1.00
1.00
1.00
1.00
1.00
1. 00
1.00
1.10
1. 10
1. 06
INGRESO CON .
80000.00
80000.00
81600 .00
8 1600.00
84000 .00
84000.00
86400.00
86400.00
88800.00
90400 .00
92000.00
96800 .00
Tabla 7.2
El pronstico para el siguiente ao:
Producto: PAP ITAS
Unidades: KILOS
Mercado: D. F.
MES
PRECIO
VENTAS
GAS TOS P.
10
68.90
74.75
67.60
67.60
63.70
52.00
52.00
61.75
68.90
74.75
85.15
92.30
9422.18
8473 . 13
10077 .65
10800 .56
12533.72
15755.76
16213 .72
10085 .59
1 1107 .03
10786.75
92 14 .44
8394.85
175500.00
175500.00
175500.00
200070.00
215865 .00
175500.00
175500.00
100035.00
173745.00
179010.00
184275.00
187785.00
11
12
2
3
4
5
6
7
8
9
NDICE TEM .
1.00
1.00
1.00
1.00
1.00
1. 00
1.00
1.00
1.00
1.10
1. 10
1 06
INGRESO CON.
104000 00
104000.00
1060 80.00
1060 80.00
109200. 00
109200.00
112320.00
112320.00
11 5440.00
11 7520 .00
i 19600.00
125840 .00
1:;.;
oa:
:;)
1-
:l
u..
u:
ci
!:?
m
:E
=~~~~~~~=-~=-=-=-=~=
=
~=-
=
-====:E-UJ=
----o:_
oo
<(
7.4
-8
!:?
"'m
l.
en
<(
o..
E
~
Los modelos estticos de mercado son insuficientes para describir relaciones entre la demanda, ganancia, promocin, precios y otros parmetros. si existe un retraso o inercia de la respuesta de mercado (carryover effects). Estos efectos son provocados por retrasos entre gastos
promocionales o cambios de precios y cambios de demanda correspondientes. La inercia de mercado es . en realidad. una combinacin de diversos procesos dinmicos tales como retraso de anotacin, retraso
entre la anotacin y compra. retraso entre el gasto promociona! y estmulo correspondiente. retraso de anotacin de ventas. etc.'"" " '""
Algunos autores suponen que la demanda actual es una !uncin de la
"benevolencia de mercado" l marketing goodwill) que a su vez depende
"'c.o
.a
2
. 1
1
1
~
j
en
o..
o..
,..
r-
...eo:
=
""
......
Precio
Publ.
DEMANDA
PASADO
Producto: PAPITAS
FUTUl'.10
Mercado: D.F .
-------------------------1
Figura 7.3.
----------
11IIJJJI JLOJ
A:
CHIAPAS 23.00 %
B:
TULA
22. 81%
C: MONTERREY 20.93 %
D:
D.F 16. 67 %
_ _ _J
ih _!.
..-~f,!h. IC 1 1:H_''.'j
de
163
rprecio 1
puthcidad
.1
~
1 Funcin de l
demanda
VJ~
2 1~---__
DE
s(t)
~-----,..-__
utilidad
utilidad
acumulada
,_____.
r(t)
1
L
__ _ ___,
FP!Ul:":l -
1
- j
; _
g1
(}
<>2
,o
J; llistpn;; d,_.i
S'~
:;e ccn ~idrr:t cnrnu r.._.. su it:1tio cj ,:. ~ndn s :i)~ prcH..~e~n s din.1n1icos aci
::1erc:idu.
?.,.; 1111!'ns:bie c onstruir un rnodeiu que rdleje to(ios los procesos
que corr,..n en rn1 nien;irlo real. El enfoqtie q ue se pr0pont> t>n este texto
-.:011sistt' en l!na s1rniifiCKi<'>n que crniteng a un modelo no line;!I ele
Otn1; ~nd1. un tnv d Plo JJi'lr~1 itl gan~u1cia y dos bloques r~inttnncos qui: reilrt' Sentan !o,.: t'ft>ctos de in ercia en ias resu11estas de mercado a !os
c;1111h ius de los ire<'io ~ y de lzt puhlic i d;1d (f i~ur:1 75 ...\c!t111s. se dese-a
t 1 ts ;1rn_.1 lf~1r un !l! tot !o cie sHnulacin y 0Dt!rnizltc1,) n de ias estrtneg1l1 S
lit' :11e1T;Hlu que se pue<b n impleme11t0r en una comoutadora personJi.
7.-L l
_:..;
i :i :asa
<
<
s(f)
s0 }'(t) (1
gy
( g 1g(t)~e"(
}
\e(c(t))e,
g,(t)
(t) (1
g)
g)
(1)
T.
ac~u~1!.
d' g, T
d.,;
'
do
T ~ (T
' dt
1
T.' ".! ) - g
u
!
(::'.)
l 64
La funcin de ganancia es
r(t)
P=
(3)
r(t) dt
o
Se supone que para todo ten el intervalo [O .
71
!1(1 ) . q(t ). s (i). u (!). e( !). ft. (t) . e ... e . y Tno son negativos y que el valor de
n.
l.
2.
3.
7.4.2
165
Determinar los parmetros del modelo , esto es, establecer los valores de T 11 T1, , T, 1 e 1,. e,.. ev. g, y u(t) y todos los valores iniciales
necesari os.
Simular por computadora la trayectoria del sistema dentro del intervalo [O. Jl.
Determinar la estrategia ptima de mercado p(t) y q(t). En realidad hay tres problemas de optimizacin: (1 ) calcular los gastos
ptimos de publicidad q(!) sin cambiar precios . (2) calcular los
precios ptimos sin cambiar los gastos q(t), y (3) calcular la estrategia ptima para los gastos q(I) y los precios p(t) simultneamente. El criterio de optimizacin es maximizar la ganancia total P en el
periodo [ O. 71.
Demanda
r-\
1
5
~:;>:<-
10
semanas
l t;1)
.\plic~n. :1011es
7.4.:3
de la sin1uL1ci1.ll\ en n1erc;1dotecnia
Simulacin
Las ecuaciones del modelo (1) y ('.2) se resuelven a travs del mtodo
de Runge-Kutta. No hay ningn problema con implementar el algoritmo correspondiente. El incremento de tiempo es una semana. aunque el
alsoritmo puede disminuir automticamente el paso segn los parmetros del modelo. El programa simulador correspondiente fue escrito en
Pascal e implementado en la !BM PC con 256K de memoria. El tiempo
real necesario para calcular una trayectoria del modelo (un ao. 52
pasos). tarda aproximadamente 1O segundos. incluyendo todas las
operaciones necesarias para graficar la trayectoria en la pantalla.
Despus ele correr una simulacin. el usuario puede cambiar alg1Jnos
parmetros del modelo y ver los cambios correspondientes en la trayectoria. Las grficas incluyen e1 precio. gastos prornocionaies. la demanda y la ganancia como funciones dei tiempo. Todas las variables
Jparecen. adems. en iorma grfic:1 en la impresora.
El simubdor result ser til tanto como un mtodo para evaluar
pronsticos de comport:imiento de mt'rcado. as como tambin una herramienta didctica para los analistas ele mercado. Algunas tr:iyectorias obtt'nidas de la simulacin se muestran en las figuras 7.7 y 7.8 (ver
p3ginas 167 y 168). como resultados del procedimiento de opt irnizacin.
La explicacin ele estas grficas est tbda en la siguie;ite seccin.
i..t...t
~~
',
//
..u
~(
Uj
__
_,
-,--
\
1
;::
I \
il .
f;1
c..
....
=
dxU)
-.....
- !
f [x(I). uuJ. t]
dt
en donde x es el estado del sistema. en nuestro caso xU) = [g, (t). g., (t).
[p(t). q(t)] y fes una funcin
vectorial que se puede obtent'r de las ecuaciones (2). Adems. x(O) = x
es una condicin inicial dada. u(t) E C. donde C son las restricciones
para el control.
El problema es maximizar la ganancia total P dada por la frmula
(..\ ) .Existen algunos algoritmos conocidos en la teora de control ptimo
para problemas ck este tipo. El algoritmo que se aplic es un algoritmo itrarivo !Jasado en el principio de :Vlximum de Pontriagin. H La idea
principal clet>ste mtodo es la siguiente. Se introduce el vector z = (z," z 1,
z, . z .. z, J ele las !la macias variables conjugadas. Este vector satisface a un
.;:
>
I w1)
Optimizacin
1
1
:-21
i::
"O
"~"'
U)
.!9
"O
~~~~
=:;o..>:::
- .. .
i...
1.
WJ <n -..1:>
'
'
tt-
::
::
g_
...
1(ilJ
::;
dx,,
dt
= _r
(/)
(5)
l.
2.
3.
:'2"" (/)
~
8 ..0g :.::
.g
CD
._ :l 'Zl
Q.CL:::i
>
o.. w ....
U)
C:
12)
4.
~
"O
a.
E
5.
"'o
"O
"5
~
-;
6.
:!)
Algunos resultados
~
..
Ejemplo l
t-
:::
;:;;:
""'
..
La compaa vende su producto en el mercado que tiene las elasticidades -1.4 . l .6 y !l.3 para el precio. los gas tos de public!dad y e! ingreso
del cons umidor respectivamente. Suponemos que el ingreso del con-
J ";"O
.\.p!lcdci<HH:~s
de la
sumidor. el costo de produccin y el ndice de t empor ada sun constantes y que la tasa de Gecimento del mercado es iguai a ceru. Los eectos
de inercia ( carryover) son del segundo orden. con las co nst;intes de
tiempo (l.6 y 3.0 para los precios y 1.0 y 2.0 para los gastos de publicidad.
Se supone tambin que el precio ya fue programado para todo el ao y,
en consecuencia. el nico instrumento de control que queda es la publicidad. Se supone que ei precio es constante para las primeras 16
semanas . sube en la semana nm. 17 y queda constante para el resto del
ao. El pro blema de optimizacin es como cambiar los gastos de publicidad para maximizar la ganancia total para un afio de actividade s.
Los resuitaclos ele una corricla dd rograma de optimi zacin para este
p roblema se nn;estran en la fit:ura 7. 7.
Las p r imeras 5 s tman as ( interv:.ilo !) representan un pe nodo inicial
<k .. ,,uste". Los gastos in iciales d~ pub licid ad r esultaron ser demasiado
elev;dus y ei programa calcul el nivel ptimo co rr espundiente. Es intere::;;nte \er cmo cambia el nivel de estos gas.tos en ei intervai o que
t'111p iez:1 cerca de ia semana nin iO (intenalo !! ). El algoritmo "prev"
c'l Jiza ck los precius y aumenta !a publicid:.id para ebbora r b "ve n ta a"
del me r cado . En el perlado Ill los gastos de publicidad son tan eieva dos.
que lJ. ginanc!a resuita ser negativa . La compa a tiene que invertir ..:n
el me r cado. para ganar m[1s ckspus del incremento de! precio. Despus de inc r ement ar los prec ios. la v entaja y la inercia del mercado
hacen !as ventas bastante grand es para recoger el d!nero y ganar m:'ls.
El periodo IV es un estado estacionario con los gasws ptimos de p ubiic!dad. Es tambin inter esante ver qu pasa en el periodo V. Observe
que. por !a suposicin. las v en tas y toda la actividnd de i;> compaa
terminan en la sem:.ina 52. Es claro que en esta situacin no tiene caso
p romover al producto en las lti m as semanas y as dice t;i.mhin el
program;i. de optimizacin.
Ejemplo 2
Con siclc>re rnos dt nue\'O el mercido del ejemp lo 1. ,\hora suponemos
que cl indice de t' r11or<.1da es igual a 1 para todas las seman as exce pto
la serna n;i. nmero 17 . cua ndo alca nza el valor de~- El problema es o ptimizar !:i estrJtegia de merc:ic!o tanto ara l os precios como ara la
pu blic icla cl. El resultado se muestra en la figura 7.8. Observe que antes
del "pico" del ndice de temporada (las vacaciones. navidad. etc.) bajan
los precios. Dur:rnte el "p ico" el precio incrementa casi 300'K. pero la
inercia en la respllesta de mercado (la ventaja) es bastante grande para que la cornpa1i::J. gane en este periodo. Los result;;.dos muestran que
en este caso la pub li cidad no tiene mucha importanc ia y aun baja en el
periodo de "pico". Despus de la serna na l 1 los precios y la publicidad
vuelven Jl est ado est:icionar:o ptimo .
LJs estr:itt>gias de mercado en los ejemplos l y? son tpicas para
:os prnductos que nt'cesi tan una u l>i icidad perma11c:me. Desde ha~go
liitrCJducci1.1n ;1
la
l ll
7.4.5
Conclusiones
CAPTULO 8
El uso de simulacin
en algoritmos
iterativos; control
ptimo de vuelo
8.1
Introduccin
El uso tpico de simulacin consiste en simular un fenmeno durante un
periodo de modelo para observar su comportamiento dinmico. Si el
modelo del !enmeno contiene procesos estocsticos, podemos repetir la simulacin algunas veces y calcular las estadsticas que nos interesan. Adems, se pueden investigar algunas versiones del modelo y la
influencia de las variables de entrada. stas, sin embargo, no son todas las aplicaciones de simulacin. Hay que notar que los modelos de
simulacin pueden usarse como partes de los programas que realizan
algoritmos ms complicados (de ms alto nivel algortmico). Uno de los
ejemplos de esta clase de aplicaciones es el control ptimo, donde todo
el procedimiento de simulacin de un proceso es slo una parte del
algoritmo. Algoritmos de este tipo ya fueron mencionados en el captulo 7, como uno de los mtodos de optimizacin en mercadotecnia. Trataremos de describir un ejemplo ms sin entrar demasiado en la teora
de control ptimo.
8.2
l 7S
una integral
T
X,.=
J IJxU). u(!) . t] dt
11
donde x" es el valor del criterio. T es el tiempo final del proceso, tes el
tiempo de modelo. u es el control. x es el vector de estado y f es una
funcin integrable. Se trata de encontrar tal control u(t) par~ que el
valor correspondiente de x,, sea mnimo (o mximo). Por ejemplo. si
tratamos de minimizar la energa total consumida por el proceso. la
funcin
debe representar la potencia instantnea. Si el problema es
seguir una trayectoria d eseada x ,, . hay que evaluar el erro r x"(t) - x (t)
el onde X\I) es el valor act ual ele estado. En este caso uno de los criterios
t:.
posibles es
8.4
minimizar x , =
J [x (t) -x(t)]' dt
1
{I
S.:3
Para resol,:er el problema planteado en es te ca ptulo aplicando e! Principio de \1 ximum hay que resolver primero dos problemas de modelacin y sim ulacin: !a simulacin del sistema originai y el problema
similar pa ra el sistema conjugad o. La situacin ms comn es cuando el
probl ema de contro l pti mo es de '"ti empo lijo .. de contro l. con el estarlo
final "lib r e". por ejemplo: "controlar un p roc eso tecnolgi co durante
una hora con el gasto mnimo de energ a sin salir de un rgimen de oper aci n dado . En este caso pod emos encontrar la trayectoria x(t) p.1ra
un control dado u(r' . ya que normalmente se conocen las con<i icion es
iniciales. Para calcular y maximizar el Hami lt oniano necesitamos. sin
embargo . ca lcular ta:nb:n ia trayectoria p(tl del modelo conjugado.
...\hor a apa r ece una diflcu ltad: no conocernos las condiciones inicial es
para p (l) . Del Princ ipio de i\lximum slo resultan la s condiciones
finales para p ( llamadas condiciones de transversalidad). En consecuencia. no podemos corr'r los dos modelos (origi nal y conjugado)
paso po r paso en paralelo. maximi z:rncio el Hami!ton ian o en cada paso.
1711
Hay que simular primero el sistema original con cuaiquier control u(t)
que cumple las restricciones. no necesariamente el ptimo. Despus de
correr una simulacin con este control guardando los x(t), podemos
correr el otro modelo, empezando con el estado final de p(T) y yendo
atrs en el tiempo del modelo. Si ya tenemos los valores de x y p
calculados para cada t, podemos ver cmo cambiar ei control con el fin
de maximizar el Hamiltoniano. Esta "direccin de bsqueda" en el espacio de controles est relacionada al "gradiente de Hamiltoniano".
Ahora corregimos el control segn la direccin de la bsqueda y repetimos todo el procedimiento, calculando de nuevo x(t) y p(t). Todo este
ciclo se repite muchas veces hasta encontrar un control bastante
cercano a la solucin deseada.
Hace notar que este algoritmo contiene entre sus operaciones corridas mltiples de dos modelos. de simulacin. El modelo original con
el estado x(t) y el conjugado con el estado p(t). El modelo conjugado es
ele la misma dimensionalidad que el original y sus ecuaciones son por lo
menos de la misma complejidad que la de las originales. As. podemos
d ecir que el algoritmo de control ptimo descrito antes es uno de nivel
ms alto que el de la simulacin. La simulacin de los modelos involucrados se ejecuta muchas veces y est controlada por el algoritmo del
nivel ms alto.
mico tiene el estado x = ('(.a, e. h). la variable de entrada es u y el modelo matemtico incluye las ecuaciones (1) y (2). El procedimiento de
integracin de las ecuaciones es el de Runge-Kutta de cuarto orden , y el
programa correspondiente se muestra en el listado 13.
La estructura de este programa es similar a la del programa MECAN
descrito en el captulo 5. El procedimiento TRAZA! no se muestra en el
listado y sirve slo para graficar los resultados, esto es, la altura X[ 4] y
el control U. Esto es slo el programa de simulacin, en donde la dinmica del sistema se encuentra en el procedimiento RHS. Este procedimiento, junto con el de Runge-Kutta RK4 pueden usarse en el programa
de control ptimo.
El criterio de control ptimo es la integral del error cuadrtico, como sigue
T
Xo =
da./dt
d8/dt
=y
a., 1y
a.2 a+ b,u
dh/dt
(2)
V sen(8 - a.)
'"""''
(3)
en donde h(t) es la altura actual y g(t) es la altura deseada. El problema de control ptimo es hallar tal control u(t) que h(t) correspondiente
sea igual a g(t), donde g(t) es una funcin dada. por ejemplo la trayectoria deseada de ascenso. En otras palabras, el control ptimo tiene que
minimizar el criterio x0 dado por la frmula (3).
Consideremos el modelo de la dinmica de vuelo de un avin limitndose al plano vertical , esto es, considerando solamente los cambios de
la altura. Vamos a usar el siguiente modelo dinmico1 100 1.
=u 11 y+a 1,a.+b 1u
f [h(t) - g(t)]2 dt
o
dy/dt
177
Figura 8.1.
l ~')
Denotemos
Listado 13
x 1= y, x.,= a, x,= 8. x 1 = h
PROGRAM AVION;
TYPE VECTOR=ARRAY[l .. 4] OF REAL;
TABLA=ARRAY[l .. 500] OF REAL;
VAR All,Al2,A21,A22,Bl,B2,T,H,V:REAL;
K:INTEGSR; X:VECTOR; Z,Y:TABL~;
{0=
i $I TRR.Q?\S)
b 1 u(t)
f.,= u, 1 x 1(t)
be u(t)
a'C,! x.,(t)
(El control}
f ,=X 1(t)
BE GI~
D
D
:=All*X [ l J +Al2*X~2J+Bl*U ( T ) ;
:=X [ l];
:=V*SIN(X[3]-X[2]) END;
dx(t) / dt
en donde x es el vector x
= ![x(t).
=
(!l
u ( f) l
h
u
El control u
tiempo
');
Figura 8.2.
178
nrvn;;;: ;t~'""ih' M~iQ:fi~~~:I&ll
80
Conclusiones
dp,/dt
= -
a1;
aF0
ox,
ax,
--pi+--
j =1
(5)
H = - [x,(t)-g(t)]2+
P, f,
181
(6)
j : l
Segn el Principio de Mximun:i. el control ptimo tiene que maximizar el hamiltoniano (6) para casi todo t E [O,
En consecuencia, el
problema onginal se reemplaza con el problema de bsqueda de
mximum de H con respecto a u, con la restriccin umn < u < umu El
gradiente del Hamiltoniano est dado por
_::-
n.
~=''
"" ~
l
.::
grad H = oH/dU
P, ar,;au
(7)
P1 bl +Pi b,
j= 1
Paso l.
Paso 2.
Paso 3.
Paso 4.
Paso 5.
Paso 6.
. ---"
Tiempo
Figura 8.3.
8.6
Conclusiones
El algoritmo de control ptimo descrito anteriormente es un ejemplo
ms de las aplicaciones de simulacin de sistemas dinmicos. Se puede observar que un buen modelo de simulacin para el sistema que
intentamos controlar de una manera ptima es indispensable y tiene
que ser bien preparado. junto con un modelo similar para e! sistema
conjugado. Los modelos corren bajo el control del programa de optimizacin y no bajo e! control del usuario. como ocurre en las aplicaciones ms comunes de simulacin. Por eso. el modelo tiene que ser
preparado como un procedimiento que no tiene ninguna operacin de
entrada-salida y su cdigo tiene que ser optimizado con respecto al
tiempo de ejecucin. Aplicaciones de simulacin como sta fueron .
'2
El us o de simulacin en aigoritmos
CAP,.fULO 9
--
Simulacin de SIDA
----
y del sistema
inn1unolgico
hu111ano
Control
N.
,
--------~------
-i1
E! gradiente
Ti empo
L~~~~~~~~~~~~~Figura 8.4.
9.1
.~_.j.;..f11.:;- ~{.:,i_
[1'4
Simulacin de SIDA
promedio" habla sobre 1.000,000 de casos, pero este nmero oscila entre
100,000 y 10,000,000 de un pronstico a otro. Los datos que us el grupo
de Goforth vienen del Centro de Control de las Enfermedades (Center
for Desease Control, CDC). en Atlanta, Georgia. El CDC publica el Reporte
Semanal que contiene datos ms recientes y los ms confiables que se
pueden conseguir sobre la enfermedad. Los datos del Reporte vienen en
la forma desglosada entre 12 categoras o "clases del comportamiento
sexual" que incluyen 7 diferentes categoras de homosexuales, 5 categoras de bisexuales (hombres y mujeres) y 11 categoras sobre !a
manera de transmisin (homosexuales. drogadictos y otros, hombres,
mujeres y nios).
Segn Goforth. el modelo para la propagacin del SIDA, as como de
todas las dems enfermedades venreas ("sexuallytransmitted disease",
STD) depende de los siguientes parmetros:
l.
2.
3.
r-!:l!'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.......;,._;d
"'
"'
..o
"'o
UJ
t-
()
;=
UJ
u.
!i
Adems de estos factores. en el caso del SIDA hay que tomar en cuenta
una posible transmisin entre los drogadictos.
El modelo de Goforth simula la trayectoria del crecimiento de la
epidemia en el espacio de dimensin 12, segn las 12 categoras de personas susceptibles, sobre las cuales existen datos en los reportes del
CDC. As, por ejemplo, la tasa de cambio de la pareja y las probabilidades de contagio son matrices de la dimensin 12 por 12. La simulacin se lleva a cabo con la suposicin del carcter "sigmoidal" de las
trayectorias. Esto significa que el modelo no es estrictamente "simulacional" en el sentido de que la transferencia de estados no est descrita
por ecuaciones diferenciales o por una sucesin de eventos, como se
consideraba en los captulos anteriores. Sin embargo, el programa
que se desarrolla basndose en las curvas sigmoidales parece reflejar
bien la realidad . Los resultados son bastante alarmantes. Como muestra la figura 9.1. se espera en la dcada de los noventa, alrededor de l4
millones de casos (en los EE.UU.), y, para el ao 2000, el nmero total de
muertes va a ascender a 25,000,000.
La Sociedad de Simulacin por Computadora dedic todo un nmero de su boletn "Simulation" a la simulacin de la propagacin del
SIDA (Simulation. Vol.54. nm. 1, Enero 1990). D.J. Ahlgren y AC. Stein
publican (en el mismo nmero de Simulation) un artculo sobre la dinmica de la enfermedad. En el mtodo que se presenta se pone ms
atencin en los siguientes problemas:
"'
>_J
$:
UJ
;z
...
o
(.)
o
e::
:::l
"'..o
8
"'
en
"'
<{
a
o
UJ
t-
oUJ
u.
Vi
v
-o
~
~
-o
a.
V
~
V
-o
"'
-o
en
:::e:
"'
~
i-=.,.
<(
UJ
<O
"'
t-
"'
;;
"'
"'
<O
.,.
"'
v
"'
1
o
'-'
;:"'
a:.....;
e;
~
:;::
187
Simulacin de SIDA
l.
2.
seleccin de la pareja.
Caracterstica de los cambios en el comportamiento de las perso-
3.
nas susceptibles.
Variaciones en la probabilidad de la transmisin del virus en distintas etapas de la infeccin.
189
Simulacin de SIDA
9.2
9.2.1.
~'ll
para la respuesta antiviral del S!H. Belykh,17 1 usa un sistema de ecuaciones diferenciales con retraso. Otro tipo de ecuaciones resulta cuando
se usa el concepto de Von ForsterP"I, quien describe el crecimiento de
poblaciones de clulas usando ecuaciones diferenciales parciales.
Perelson1~ 0 1 sugiere que el lenguaje de la teora de grficas puede ser til
cuando se analizan modelos de tipo "red" y proporciona como ejemplo
un sistema de ecuaciones que describen el comportamiento de anticuerpos, clulas "B" y antgenos . Una sugestin interesante de Perelson
es que, bajo algunas condiciones , el SIH no puede actuar en un estado
estable, siendo un sistema inestable que cambia su estado constantemente. En el artculo de Farmer, Packard y Perelsont 31 1 podemos encontrar lo relacionado con las habilidades de "aprendizaje" del SlH y el
modelo simulacional correspondiente.
Es imposible mencionar aqu todas las contribuciones significativ as. Mohler y coautoreslbI, por ejemplo, proporcionan 187 referencias
en su artculo. La lista de referencias del artculo de Boy er y coautoresl71 comprende 458 (cuatrocientas cincuenta y ocho) posicio nes.
Hoffman y coautoresl71 calculan que actuaimente se conocen ms que
1,000,000 de hechos (fenmenos , propiedades) en la ciencia de la inmunologa. Este nmero es el resultado de la multipiicacin del nmero de trabajos publicados cada ao (son alrededor de 8.000) por el
nmero de hechos que se describen en cada artculo, y por el periodo
de 25 aos del desarrollo de la inmunologa.
La mayora de los modelos publicados del SIH se desarrolla en la
forma de un sistema de ecuaciones diferenciales, que se derivan de los
balances para las cantidades de macrfagos, clulas "T" , "B". anticuerpos, etc. Por ejemplo, el modelo de Marchuk, Petrov y Druzchenko166 1
consiste en 7 ecuaciones que describen las velocidades de crecimiento
de poblaciones de clulas involucradas en el SIH, para los modelos en
cancerologa. Las ecuaciones tienen tres diferentes componentes de
retraso. Ecuaciones de este tipo pueden resolverse fcilmente. Sin
embargo, utilizando modelos tan sencillos no hay que olvidar que las
ecuaciones diferenciales de tipo "muertes y nacimientos " que se usan,
son vlidas solamente cuando se cumplen unas suposiciones muy estrictas sobre el sistema real. No todas las poblaciones que crecen cumplen con estas suposiciones, que refieren a la estacionalidad de los
procesos estocsticos involucrados. Una suposicin fundamental de la
ecuacin de muertes y nacimientos es que el proceso no tiene "memoria". Para el modelo de Marchuk. Petrov y Druzchenko esto significa
que las siete variables de estado ms las tres variables de retraso y las
variables de entrada determinan completamente el estado del sistema
en el momento. que parece ser una suposicin poco realista para el
SIH. Esta observacin hace todos los modelos del SIH basados en las
ecuaciones diferenciales poco confiables . Mi opinin personal es que
es poco probable que el SIH obedezca a cualquier ecuacin diferencial. en general.
191
9.2.2
Este enfoque en la inmunologa fue desarrollado por Jerne y Richter151. 91 1 y modificado posteriormente por muchos investigadores.
Consiste en la observacin de que los anticuerpos que combaten directamente a virus y bacterias tienen dos regiones en su superficie,
llamadas "paratope" y "epitope". El paratope funciona como una llave
que puede "abrir" el epitope correspondiente de una clula y desactivarla. El epitope es lo que caracteriza el tipo de clula y permite al
anticuerpo distinguir entre las propias clulas del organismo y las clulas o virus invasores. El sistema inmunolgico produce constante
mente los anticuerpos con trillones de paratopes distintos, que estn
listos para combatir cualquier infeccin. Uno de los conceptos bsicos
de la teora de redes es que los mismos anticuerpos tambin tienen sus
epitopes y pueden atacarse entre s. formando una red de interacciones. De esta manera, el SlH est en permanente movimiento, cambiando
su estado actual y modificando constantemente el nmero de anticuerpos con distintos paratopes. respondiendo as a los estmulos e infecciones exteriores. Los anticuerpos son producidos por clulas de
tipo "B" del SIH. Estas clulas, a su vez, se activan a travs de un sistema sofisticado de mensajes que llevan sustancias llamadas linfoquines.
Todo el mecanismo est controlado por las clulas auxiliares de tipo "H".
El virus del SIDA (el HIV) ataca exactamente a las clulas "H", rompiendo efectivamente toda la cadena de actividades del SIH. La muerte no la
provoca el SIDA. sino cualquier otra enfermedad que ataque el organismo infectado con el HIY.
El modelo bsico en la teora de redes consiste en el siguiente sistema de ecuaciones:
dx/dt=S-x,
j
=1
K,f1
(1)
r.
permanente.
L":.:~~, -:."';..-",:f.w
1Wacrfagos. Estas clulas del SIH son los primeros defensores. Con-
sumen todo lo que reconocen como una materia extraa al organismo. Tambin pueden activar otros mecanismos defensivos, activando las clulas auxiliares de tipo "r.
Clulas auxiliares "T'". Estas clulas. c uando se activan, empiezan a
reproducirse ms rpido. Cuando un macrfago entra en contacto
con una clula "T" y la activa. se producen el "!nterleukin l y 2" (IL1, IL-2), "gamma interferon" (IF) y l a sustancia llamada BCGF que
activan otras clu las del SIH.
,...~( - '
;>/t.~ :-
":-Z;;;...~~~- :
i.--~
/._'<:
;1~0e:':<-~
)2
Simulacin de SIDA
ste es un modelo muy simplificado , donde no se modela todo el mecanismo descrito por la teora de redes mencionada anteriormente.
El modelo para la infeccin por el virus del SIDA es similar. La nica diferencia consiste en el hecho de que el virus HIV entra a estas clulas "T" para multiplicarse. La disminucin en el nmero de estas
clulas desactiva el SlH, que ya no es capaz de combatir otras infecciones.
Este modelo puede codificarse en uno de los lenguajes orientados
a objetos, como una cadena de eventos aleatorios. En los experimentos que se llevaron a cabo en el Centro de Cmputo de la Universidad
Panamericana en Mxico, se aplic el lenguaje PASlON. _El listado 14
muestra la forma general (un bosquejo) del programa. Slo se muestran los nombres de los procesos y eventos.
El proceso lNGEN genera conjuntos ini;:iales de las clulas . Elevento GENER tiene algunos ciclos que generan un nmero de clulas T. B,
macrfagos. etc.. as como un nmero de "clulas de cuerpoft generalizadas (body cells). El proceso VRGE controla la generacin del virus
que infecta al organismo. Los objetos BOD son las clulas del cuerpo. El
evento MULTIP describe la multiplicacin de las clulas del cuerpo, y el
evento DIE.Ses la muerte de la clula. Evento REL representa la muerte de
una clula infectada, donde aparecen nuevos virus. Proceso HTC representa clulas auxiliares "T". Eventos RELIL2 y RELBCGF describen
la produccin de los linfoquines IL-1, IL-2 y BCGF. El proceso KTC
describe las clulas cazadoras ''T".
El proceso lLTEM es un proceso continuo que controla los cambios
en la temperatura del cuerpo y la descomposicin de los linfoqunes.
El proceso MACROF describe las actividades de un macrfago. El
evento EATS ocurre cuando el macrfago encuentra a un virus y lo come. Despus, el macrfago busca y entra en contacto con una clula
"T" (evento UNION). De esta manera se activan las clulas "T". que
empiezan a producir los linfoquines para activar las clulas "B". Las
clulas "B" sueltan anticuerpos (evento PROD) descritos por el proceso ANTIB. El evento FND del proceso ANTIB consiste en encontrar a un
virus y desactivarlo.
El proceso SUPRT describe las clulas supresoras T. THYMUS es
un generador de nuevas clulas de tipo "T".
El programa completo del modelo es bastante largo y no semostrar aqu. El programa necesita alrededor de 50 parmetros, tales
como la duracin promedio de la vida (natural) para las clulas. probabilidades del contacto entre las clulas y el virus, etc. Algunos de los
parmetros se pueden encontrar en la iiteratura, y algunos son bastante difciles para definir. La identificacin de los parmetros para
modelos de este tipo es un problema difcil y muchos investigadores trabajan intensamente para resolverlo (Belll"' . Brunif 13 1, Covan y Cupin27 l,
Jilek y Ursinovar5z: entre otros).
9.2.4
Algunos resultados
Como se ha dicho antes, ste es un modelo incompleto del SIH. El
objetivo de la simulacin fue mostrar que es posible simular algunos
de los mecanismos del SIH como cadenas de eventos discretos. Desarrollando posteriormente modelos de este tipo podemos llegar a modelos ms reales que permitirn ver el comportamiento del SIH en
distintas situaciones y entenderlo mejor. La PC no es la computador a
definitiva para este tipo de simulaciones. Los experimentos que se llevaron a cabo en la PC pueden correr con 200-500 clulas de cada tipo. no
ms de 2000 en total. No se efecturcn ningunas comparaciones cuantitativas con el sistema real. Las comparaciones cualitativas de respuesta simulada a la infeccin muestran que el comport amiento del modelo
es parecido al comportamiento del sistema real.
La figura 9.2 muestra una de las pantallas de los resultad os. Las
barras mviles ind ican el estado actual del modelo, y la ventana co n
!'.'4
LISTADO 14
PROGRAJ.\1 IMMUN:
PROCESS INGEN. l:
EVENT GENER:
PROCESS ANTIB.1000:
EVENTFND:
EVENTDIES:
PROCESS VRGE. 1:
EVENT ONE:
PROCESS SUPITT.1000:
EVENT MULTIP:
EVENTSP:
EVENTDIES:
? ROCESS BOD,1000;
EVENT MULTIP:
E\'ENT DIES:
E VENT REL:
PROCESS THYMUS, l;
EVENT RELHT:
EVENT RELKT;
EVENT RELST;
r~ROC ESS
VIRUS.1000:
!::X ENT MULTIP:
EVE:'.'IT
E~iTEPS:
C:VENT D!ES:
PROCESS HTC.1000:
EVENT MULTIP:
EVENT REL:
EVE:'.'JT RELBCGF:
EVENT RELBCDF:
EVENT RELIL2:
EVENT DIES:
1 ~5
START
{programa principal}
$
?ROCESS KTC.1000;
EVENT MULTIP:
EVENT FND:
EVEI\TT DIES;
PROCESS ILTEM.1:
E\ -ENT IL;
EVENTTEM:
PROCESS ~CROF.1000:
EVENT MULTIP:
EVENT EATS;
EVENT UNION;
E V E NT DIES:
TIME =
BO
Vir
HT
MA
VI
88
IH
ID
24
Body c. =
50
H-T=
10
B- cells =
17
ant =
lnf. b =
lnf.H =
SUPRS=
0 .000
Temp. =
36.60
IL1 =
!L2=
0.018
Figura 9.2.
.,
KT
0.015
KTC=
EA
0 .0 25
ST
12
BCGF=
0.001
EAKT=
BCDF =
0 .001
EANT=
mem =
227 36
-1 Body cal
.----1+-----lf----JJ------lrf-----IJ...---_j.:=IJ~-~ Helper T
X -1Killer T
t.-1 Virus
L -1 Infectad
ANTIBODY
:;~F=====~-......=~~::::::::::8:~==~~~1-1-Antibody
-1
BODY CELLS
VIRUS
Max
1. 678057301BE + 02
time -1
O. OOOOOOOOOOE + 00
Min =
figura 9.3.
r - - -- - -- - - - - -- - - - - - -
Average
.,"
<C
....
H,
~~
IJ
h
'
,...
IJ
11' /
V
)
'-
'
\
\
l/
' v
Maxirnum =
Figura 9.4.
5.0689
Minirnum =
0 . 0000
time -1
19'!
modelos de este tipo usando declaraciones preparadas ameriorrnente. Adems . el programa fuente en PASION es "portable" en el sentido de
que produce el cdigo correspondiente en Pascal, que puede ser compilado con un compilador de Pascal en cualquier mquina.
1'
Q)
o
o
o
L~
>-
O;
"-
2
"'
<':i
>
-~
"~>
ss
ss
\
Q)
L_
e:""'
ou
-e
e
"'
t.n
a;:
2:'0
::i
Q)
Ol
'a;
>
<{
ff/ff
"'>
"' "' Cl
:;
>
<
~~
e~
u
ill
c
:g"'
c
o
u
'
r1
::;:
..
::;
.s
""
::1
00
G:
Referencias
202
Referencias
Referencias
9 Black .J.R., Even J.C. Jr.,"Computer solution of queuing models'', SIMULATION, October 1973. pp. 113-116.
203
25 Conway R., Maxwell W.L., Worona S.L., 1986, User 's guide to XCELL factory
modeling system, The Scientific Press, Palo Alto, California.
10 Brown D.. Hutsinger R.C., '.'A parta! simulation of an X.25 network leve!
protocol in Simula with Demos", in Simulation in Ada, Proceedings of the
Eastern Simulation Conference on Simulation in Ada, SCS, Norfolk, VA.
1985.
11 Bocharov L.N., 1983. "Mathematical model of the antiviral immune response of a cellular type". in: Mathematical Modeling in lmmunology and
Medicine, Eds. Marchuk and Belykh, North-Holland Pub!ishing Company.
12 Boyer C.:\11., 1988. "Antigenic celi surface rnarkers in human solid tumo rs",
Antihody, lmmunoconjugares and Radiopharmaceuticals, Vol l. no.::!, Mary
Ann Libert. lnc.
J:l Bruni C. Gerrnani A., Koch G., 1978. "Optima! derivation of antibody dis-
tribution in the immune response fro m noisy data". in: Proceedngs o f the
>ith IFIP Conference un Optimi;:;utiun Techniques, Springer-Verlag.
31 Farmer .l.D.. Packard N.H., Perelson A.S.. 1986. "The immune system,
adaptatlon and machine learning", Physica 220. :'lort h-Holland , .AJ'llsterda m, pp. 187-204.
14 Bui Tien D.. "Solving Stiff Differential Equatio ns" in: "The Simulation of
Physical Systemas. SlMULl.TION37(2), pp.37-46, August 198 1.
15 Buxton J.:-.1 .. Laski J.G., "Control and Simulation Language", Computer Journal, 5. 19fi2. pp. 194-199.
33 Fishman G.S .. Concepts and 1\!feth ods in Discrete Event Digital Simulation,
John Wiley & So ns, New York. 1973.
16 Canales Ruiz R.. Barrera Rivera R.."Anlisis de sistemas dinmicos y control uutomtico", L!MUSA.
34 Fan 1.5., Sackett P .J., 1988, "A PROLOG sim ulator for interactive flexible manufacturing systems control", S/i\,/ULATION 50(6). pp. 239-247.
18 Castlevitz D.M., Chisansky L.J., Kronberg P., Chukman L.D., VISICALC: Home
and Office Companion, Osbornei McGraw-Hill. New York. 1982.
38 Gordon G., The Application ofGPSS ro Discrete _\ystem Simulation, PrenticeHall, Englewood Cliffs , New Jersey, 1975.
2:Z Clementson A.T.," ECSL. Proceedings of the 1918 UKSC Conference on Com{Jllter S imulation, IPC Business Press. Guildford, England. 1978, pp.174-191.
40 Gray P. Borovits l. "The cont rasting roles of Mo nte Cario simu lation and
gaming in decision support systems", SIMULATION. Vol H. no. 6. December 1986.
23 Collins W.R., Feyock S.. King LA., \1o rell L.J., " Moving target. distributed,
real-time simulation using Ada", in "Simulation in Ada", Proceedings ofthe
Eastern Simulution Conference on Sirr.ulation in Ada, SCS, Norfolk, VA, 1985.
~.;''SilL-
'-9f:-:"i~-~f~
'0J;:;~
-~'l'f;,;_;.":,
..~. 'i~
11 -. .
, . .., .
~04
Referencias
Referencias
205
42 Hibbard P., Hisgen A., Rosenberg J., Shaw M., Sherman M., Studies in Ada
Style. Springer-Verlag, 1985.
58 Kotler P., Marketing Decis;on Making: A Model Building Apptoach, Holt-Rinehart-Wilson, 1971.
44 Hooper J.W .. "Strategy-related characteristics of discrete-event languages and models", SIMULA TION 46(4), 1986, pp.153-159.
45 Hoffmann G.W., 1978. "lncorporation of a non-speclfic T cell dependent
helper factor lnto a network theory of the regulation of the lmmune
response", in: Bel!, Perelson and Pimbley (Eds.), "Theoretical lmmunology", Marce! Dekker, New York.
46 Hoffmann G.W., 1982. "The appllcatlon of stability criteria in evaluating
network regulation models", in: De Lisi and Hiernaux (Eds.). "Regulation of
lmmune Response Dynamics", Vol!, chapter 2 . CRC Press . Boca Raton.
47 Hotfmann G.W., Kion T.A.. Forsyth R.B., Soga K.G .. Cooper-Willis A.. 1988,
"The N-<limensional network", in: Theoretical Jmmunology, Segunda Parte,
Addison-Wesley, 1988.
64 Lenz J.E., Talavage J.J., 1977, "General Computerized Manufacturing Systems Simulator (CCMS)" , Report no.7. Purdue University, School of Industrial Engineering,West Lafayette. lnd.
49 Hooper J. W., "Activity scanning and the three-phase approach ",SIMULA TJON
47(5), November 1986, pp.210-211.
65 Mamalis A.G., Bilalis N.G., Konstantinidis M.J.,1987, "On simulation modeling FMS", SIMULATJON 48(1), pp.19-23.
50 Hraba T., Klein P., Dolezal J., 1983. "A simple mathematical model of immunological tolerance in chickens", in: Mathematical Modeling in Immunology and Medicine , Eds. Marchuk and Belykh, North-Holland Publishing
Company.
66 Marchuk G.l., Petrov R.V. , 1983. "The mathematical model of the antivira.l
immune response", in: Jfathematical Jfodelling in lmmunology and Medicine, Eds. Marchuk and Belykh, North-Holland Publishing Company.
51 Jeme N.K., 1974. "Towards a network theory of the immune system", Ann.
lmmunol., 125C.
52 Jilek M.. Ursinova Z., 1970. "The probability of contact between the immunocomponent cell and antigen", Folia J1icrobiol., Vol.15, pp.294-301.
53 Jilek M., 1973. "lmmune response and its stochastic theory", in: Proceedings of the 3rd IFAC Symp. on ldentification and Parameter Estimation,
Hague, Netherlands, pp.209-212.
54 Kiviat P.J., Villanueva R.. Markowitz H., The Simscript ll Programming
Language. Prentice-Hall, 1969.
67 Mellichamp J.M., Wahab A.F.A., 1987, "An expert system for FMS design",
SIMULA TION 48(5), pp.201-208.
68 Mohler R.R.. 1983 "On mathematics and statistics in immunology" . in:
Mathematical .\1odelling in lmmunology and !11fedicine, Eds. Marchuk and
Belykh, North-Holland Publishing Company.
69 Mohler R.R., Barton C.F. and Hsu C.S., 1978. "T and B cells in the immune
system", in: Bell, Perelson and Pimbley (Eds.), "Theoretical lmmunology".
Marce) Dekker. New York.
70 Mohler R.R., Bruni C.. Gondolfi A., 1980. "A system approach to immunology". Proc. IEEE, Vol. 68. pp. 964-990 .
71 Murray-Lasso M.A., "Anatoma de un compilador para simulacin dinmica", Revista de Computacin 010, 7(-t). Septiembre 1984. Fundacin
Arturo Rosenblueth. :\lxico.
72 Naylor T.H .. Balintfy J.L., Burdlck D.S .. Hong Chu. Tcnicas de Simulacin
en Computadoras. LIML'SA. 1982.
2!Hi
Referencias
Referencias
207
90 Raczynski S., 1988, "Process hierarchy and inheritance in PASION", SIMULA TION 50(6).
74 Nerlove M, Arrow K.J., "Optima! Advertising Policy Under Dynamic Conditions", Economics, May 1962.
91 Richter, P.H. Jr., 1974. "Periodic solutions of predator-prey equations simulating an immune response", Math. Biosci., Vol.20, pp. 27-SL
76 O'Keefe R.M .. Davies R.M. "A microcomputer System for Simulation modelling", European Journal ofOperational Research 24(1), 1986.
93 Rosenblueth A., Wiener N.. " The Role of Models in Science, Philosophy of
Science", XII, No.4, October 1945, pp.316-321.
94 Said Ashour, Jha R.O., "Numerical transient-state solutions of queulng
systems", SIMULA TION, October 1973, pp.117-122.
95 Shmucker K.J .. "Objec t-0riented Languages for the Macintosh", BYTE 11 (8),
August l98fi, pp.177-185.
9fi Seila A.F., 1988, "SIMTOOLS: A software tool kit for discrete event simulation in Pascal". SIMULAT!ON 50(3), pp.9:!.-100.
97 Shruben L.W .. Margolin 8.M .. "Random Number Assignment in Statistically Desgned Simulation and Dstribution Sampling Experiments", Journal of rhe American Stalistical Association, 73(363), September 1978.
98 Shtern V., "Testing ol software for discrete simulation models in Ada", in
"Simulation in Ada '', Proceedings of the Eastern Simulation Conlerence on
Simulation in Ada. SCS. Norfolk. VA, 1985.
99 Siebert J.P .. Winning D.J., "The Control Oriented Language", SIMULAT!ON
48(1). 1987.
83 Powers S.W .. Nute ., "lmplementing a simulator as a set of Ada tasks", in "Simulation in Ada", Proceedings of the Eastern Simulation Conference on
Simulation in Ada. SCS. Norfolk. VA 1985.
100 Stirling R., "Simulation of a digital aircralt flight control system", SIMULATION 40(5), 1983.
101 Stute G, Storr A., Chmielnicki S .. 1982. "Planning of Flexible Systems. Simulation and Motion Display on a Graphic CRT', CIRP Seminar on
1\fanufa<.:turing Systems , Torndheim, Norway.
85 Pritsker A.A.8 .. "The GASP IV Simulation Language", John Wiley & Sons,
1974.
86 Pritsker A.A.8.. 1984, "lntroduction to Simulation and SLAMlr, John Wiley
&Sons.
87 Raczynski S.. ?ASlON - Pascal-related simulation language for small systems", SIMULATION 46(6) . June 1986. pp.239-242.
88 Raczynski S., "PA.SION. Lenguaje para Simulaclon: una Introduccin",
ComputerWorlcl/ Mxico. no.178 .179, 180, April-May 1987.
89 Raczynski S., "On a simulation experiment with a par ali el algorithm for optima! control", Transaction of the Society for Computer Simulation, Vol.5,
no.1. pp.87-97.
102 Thoma J.U., "Block Bond Graphs for Simulation o Nonlinear Systems: A
Technical note", Transactions of the Society for Computer Simulation
2(3), September 1985, pp.249-255.
103 Tocher K.D .. "The Art of Simulation", D. Van Nostrand Co .. Princeton, New
Jersey 1Yfi3.
104 Uyeno D.H .. Vaessen W., "PASSIM: a discrete-event simulation package for
Pascal". SIMULA TION 3S(fi), December 1980. pp. 183-190.
105 Van den Bout. O.E .. "AXE: A language for the simulation o digital hardware". SIMULATION 48(2), pp.Sfi-61 , 1987.
106 Velayas J.:vl .. Levary R.R. "Validation o simuiation models using decision
theory". SIMULAT!ON 48(3). 1987.
'
W8
Reierencias
107 Vidale rv{L, Wolfe H.C., "An Operations-Research Study of Sales Response
~
~
OTRAS OBRAS DE
MEGABYTE
1 l Zeigler B.P .. Theory of Modelling and Simulation, John Wiley & Sons, New
York 1976.
-oOo-
J-
i,
* Introduccin a la Programacin
de Visual Basic
Brown
1
* Introduccin a la Informtica
Fournier
,1
'
* DS para inexpertos
I~
528
! r,f
.
\.,.. ~~'- )
108 Von Foerster, H., 1959. "Sorne remarks on changing populatlons", In:
Stahlman F, Jr. (Ed.), "The Kinetics of Cellular Prolileration", Grune &
Stratton, pp. 382-409.
'
Gookin
~
~
* Secretos de Windows 3J
Livingston
r:1