128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ......

62
UNIVERSIDAD AUTONOMA NETROPOLITANA-IZTAPALAPA 128272 PROYECTO DE INVESTIGACION II CONPILADOR PARA UN LENGUAJE DE SIMILACION REPORTE FINAL / A.1 umnos : / Ortega Bonequi Mauricio Sáinz Bravo ñubén Alfonso Asesor: Pedro Luis Flores Octubre de 1991. / -

Transcript of 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ......

Page 1: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

UNIVERSIDAD AUTONOMA NETROPOLITANA-IZTAPALAPA

128272 PROYECTO DE INVESTIGACION II

CONPILADOR PARA UN LENGUAJE DE SIMILACION

REPORTE FINAL /

A.1 umnos : / Ortega Bonequi Mauricio

Sáinz Bravo ñubén Alfonso

Asesor:

Pedro Luis Flores

Octubre de 1991. / -

Page 2: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

J PRESENTACI6N DEL PROYECTO 1 2 8 2 7 2 Debido a la gran importancia que han adquirido las

,computadoras tipo PC en nuestros tiempos, surge también la

necesidad de crear aplicaciones para una gran variedad de temas,

tal es el caso de la dinámica de sistemas.

Para real izar aplicaciones de dinámica de sistemas contamos

con un compilador llamado dynamo cuya principal desventaja radica

en que está diseñado para computadores grandes, además de contar

con un medio ambiente no muy agradable para el usuario.

El presente reporte corresponde a la realización de un

compilador para dinámica de sistemas diseñado para usuarios de PC,

cuenta con las funciones principales que se realizan en un modelo

de simulación, además de tener la facilidad de trabajar en su

propio editor de textos y mediante un medio ambiente a base de

menus. De esta manera se puede elegir entre varias opciones:

Cargar archivo

Guardar archivo

Editar archivo

Desplegar directorio

Cambiar directorio

Renombrar archivo

Compilar

Ejecutar

Llamar al S.O.

Terminar

Page 3: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Al ejecutar un modelo se obtiene una salida gráfica-tabular,

ésta se depliega a pantalla en ventanas separadas correspondiendo

cada variable graficada a una variable tabulada, de tal forma que

para cada gráfica se puede obtener sus correspondientes puntos.

Dentro de la ventana en salida tabular se tiene la facilidad

de desplazarse páginas arriba y abajo de tal manera que se logra

ver todos los puntos asociados 8 una gráfica.

Page 4: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

DINMICA DE SISTEMAS

La dinámica de sistemas no es sino una metodología para

construcción de modelos de sistemas sociales, considerando en ésta

clase a sistemas socioeconómicos, sociológicos y psicológicos,

pudiendo aplicar también sus técnicas a sistemas ecológicos. Su

desarrollo se inserta en el intento de establecer técnicas que

permitan expresar en un lenguaje formalizado -el de las

matemáticas- los modelos verbales (mentales) de los sistemas

sociales. La dinámica de sistemas se basa en la teoría de los

servomecanismos que son ingenios cuya caracteristica fundamental

es la existencia en los mismos de una realimentación de

información. Se entiende por realimentación el proceso en virtud

del cual, cuando se actúa sobre un determinado sistema, se

obtiene (realimenta) continuamente información sobre los

resultados de las decisiones tomadas, información que servirá para

tomar las decisiones sucesivas. La teoría de los servomecanismos

tiene dos caracteristicas particularmente interesantes: el estudio

sistemático del concepto de realimentación y un amplio desarrollo

del estudio del comportamiento dinámico de los sistemas, en el

cual se encuentra el gérmen de la noción de sistema dinámico.

Las ideas desarrolladas inicialmente para el estudio de los

servomecanismos se aplicaron inmediatamente a otro tipo de

problemas como por ejemplo la regulación de los procesos químicos.

Posteriormente la fecundidad de las ideas de realimentación y de

sistemas dinámicos indujo a intentar su generalización al estudio

de procesos socioecon6micos ya que todas las organizaciones

Y

- 4 -

Page 5: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

sociales o económicas, muestran un comportamiento dinámico y una

fuerte interacción entre sus partes.

Debemos tener en cuenta que la teoría de sistemas tal como se

encuentra desarrollada en la actualidad suministra un útil

analítico suficientemente elaborado para el estudio de los

sistemas lineales. Sin embargo, en el estudio de los sistemas

socioeconómicos debe tenerse especialmente en cuenta la presencia

de no linealidades que determinan, en gran medida, las formas de

comportamiento observadas en la realidad. La consideración de éstas

no linealidades impide, normalmente, una resolución analítica del

modelo, es entonces cuando surge la necesidad de recurrir a un

computador.

El especialista en ciencias sociales rara vez será capaz de

descomponer su sistema en partes ni de experimentar con los

componentes independientemente, pero éste especialista puede, por

otra parte, emplear un procedimiento que, aunque de aparente

categoría inferior, constituye una alternativa posible; consiste

en disponer de una lista de interacciones hipotéticas entre las

variables del sistema e intentar dar validez a éstas relaciones

con ayuda de datos tomados del sistema real. Basandose en éstas

relaciones se construyen modelos que reciben la denominación de

modelos de simulación.

El disponer de un modelo de un sistema social permite

realizar experiencias sobre el mismo. La posibilidad de éstas

experiencias sobre el modelo da lugar a un trabajo similar al

trabajo de laboratorio. Así, por ejemplo se puede estudiar el

- 5 -

Page 6: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

comportamiento del sistema bajo circunstancias que raramente se

den en la practica. Con ello se tienen respuestas rápidas y

baratas a cuestiones que, de ser experimentadas en la vida real,

requerirían un enorme costo de dinero y de tiempo.

En lugar de emplearse en las experiencias la realidad misma,

se emplea un modelo de ella. Se observa el comportamiento del

modelo y se realizan experimentos mediante los que se responde a

cuestiones específicas acerca del sistema real que se ha

representado por el modelo. El proceso mediante el cual se

realizan experiencias sobre el modelo, y no sobre la realidad,

recibe la denominación genérica de simulación.

Se puede considerar que' hay dos puntos de vista radicalmente

opuestos en relación al problema del establecimiento de modelos

matemáticos de sistemas sociales. El primero está sustentado por

especialistas que pretenden construir el modelo de un sistema

social partir, fundamentalmente, del procesamiento de datos

"históricos" de evolución del mismo. Es un punto de vista que, en

cierta manera, se puede considerar conductista, porque no trata de

establecer la estructura interna del sistema, sino únicamente

ajustar un modelo a los datos reales que se conocen. A éste

enfoque pertenece la econometría.

Otro punto de vista es aquél según el cual se trata de

construir un modelo tras un análisis cuidadoso y detenido de los

distintos elementos que intervienen en el sistema observado. De

éste análisis cuidadoso se extrae la lógica interna del modelo, y

a partir de la estructura así construida se intenta un ajuste con

- 6 -

Page 7: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

los datos históricos.

La dinámica de sistemas pertenece a ésta segunda escuela, a

la que, en cierta forma, cabe considerar estructuralista.

La dinámica de sistemas es una versión especializada, ligada

a Jay U. Forrester. La técnica de Forrester establece una

estructura para el modelo de fácil caracterización gráfica. Para

obtener los valores mas probables tomados por un suceso futuro

normalmente se emplean métodos estadisticos, pero para comprender

la respuesta del sistema a un conjunto de condiciones futuras es

preferible el empleo de la dinámica de sistemas. Asimismo, los

métodos estadísticos son Útiles en estudios a corto plazo,

mientras que los modelos que suministra la dinámica de sistemas

tienen interés para la previsión de las tendencias a largo plazo.

La caracteristica esencial de los sistemas sociales, reside

en la consideración de que en el interior de los mismos se generan

las fuerzas que determinan su evolución en el tiempo, es decir, en

el interior de un sistema se realizan una serie de interacciones

entre sus elementos constituyentes que generan el comportamiento

dinámico del mismo. El estudio, análisis e integración de todas

estas interacciones elementales para explicar en conjunto el

comportamiento global del sistema, constituye uno de los objetivos

básicos de la dinámica de sistemas.

la caracteristica fundamental en el estudio de un sistema es

su evolución en el tiempo y, en concreto, como las interacciones

entre las partes determinan esta evolución.

El modelo del comportamiento dinámico de un sistema se

- 7 -

Page 8: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

I

denomina sistema dinámico y se puede decir que éste en

cuanto a modelo de una cierta parcela de la realidad, constituye un

resumen abstracto de los datos observados en la misma.

La? variaciones que se producen en los sistemas son

consecuencia, fundamentalmente, de las propias interacc iones. Estas

interacciones constituyen la estructura del sistema, de ahí que se

diga que bajo el punto de vista de la dinámica de sistemas, el

comportamiento dinámico de un sistema está determinado por su

estructura.

- 8 -

Page 9: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

NETODOLOGIA DE PROGRANACION EN D I N M I C A DE S I S E N A S

DIAGRANAS CAUSALES.

Entre los elementos que constituyen el sistema se

establece un bosquejo esquemático de aquellos que están

relacionados entre sí , lo cual se hace por medio de un diagrama en

el cual los nombres de los distintos elementos están unidos entre

s í por flechas. El diagrama que así se obtiene recibe las

denominaciones de diqgrama causal.

El diagrama causal permite conocer la estructura de un

sistema dinámico.Esta estructura viene dada por la especificación

de las variables que aparecen en el mismo, y por el

establecimiento de la existencia, o no existencia, de una relación

entre cada par de variables.

El diagrama causal no contiene información cuantitativa sobre

la naturaleza de las relaciones que ligan a los distintos

elementos, sino que solo suministra un bosquejo esquemático de las

relaciones de influencia causal.

En un diagrama causal complejo se pueden distinguir bucles

realimentados. Un bucle realimentado es una cadena cerrada de 1

relaciones causales, estos pueden ser bucles de realimentación

positiva (son aquellos en los que la variación de un elemento se

propaga a lo largo del bucle de manera que se refuerza la

variación inicial) o bucles de realimentación negativa (son

aquellos en los que una variación en un elemento se transmite a lo

largo del bucle de manera que determine una variación de signo

contrario en el mismo elemento).

- 9 -

Page 10: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

En todo diagrama causal coexisten normalmente bucles de

realimentación positiva con bucles de realimentación negativa. Las

interacciones entre ambos tipos de bucles determinan el

comportamiento global del sistema.

- Y O -

Page 11: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

í

Page 12: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

El diagrama causal anterior indica que a mayor población,

menor comida per cápita y a menor comida per cápita menor tasa de

nacimientos y a menor tasa de nacimientos menos nacimientos por

aiio y a menos nacimientos por año menos población y a menos

población mayor comida per cápita (siempre tendiendo al

equilibrio). Entonces sucederá que en los estados iniciales del

desarrollo de una población el bucle que limita su crecimiento por

agotamiento del territorio disponible, y por lo tanto por

disminución de la comida per cápita, tendrá un efecto

practicamente nulo debido a que no se ha llegado a niveles de

saturación. En consecuencia, en ésta primera etapa será el bucle

de crecimiento de población el que dominará y se registrará un

crecimiento de la misma tal como el indicado en la respectiva

grafica del diagrama causal. Sin embargo, según se vaya aumentando

la población, se producirán problemas de agotamiento de recursos,

por lo que el bucle negativo empezará a dominar sobre el bucle

positivo, dando como resultado una tendencia al estancamiento en

el crecimiento, tal como se aprecia en la misma gráfica.

Observese que es la existencia de bucles de realimentación lo

que determina un comportamiento peculiar para cada sistema

di námi co .

- 11 -

Page 13: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

DIAGRAMAS DE FORRESTER

Los distintos elementos que constituyen el diagrama

causal se representan por medio de variables, las cuales se

clasifican de acuerdo con los tres grupos siguientes: variables de

nivel, varibles de flujo y variables auxiliares.

Para ayudar a comprender el significado de estas clases de

variables se puede concebir un símil hidrodinámico tal como el

representado en la figura siguiente. En ésta se representan

tres depósitos con los que se acumulan tres niveles Ni ,N2 y N3.

Las variaciones de los niveles vienen determinadas por las

actuaciones sobre unas ciertas \rálvulas que regulan los caudales

que alimentan a cada uno de los depósitos.

La decisión sobre la apertura de éstas válvulas se toma

teniendo como única información los valores alcanzados por los

niveles en cada uno de los depósitos en el instante de tiempo

considerado. En la figura ésto se representa con ayuda de un

observador que teniendo como única información el conocimiento de

los niveles en el resto de los dep6sitos determina la apertura de

la válvula correspondiente. Aunque en la figura solo aparece el

observador para una de las válvulas, debe considerarse que

existiría uno por cada una de ellas. Se observa como el valor

tomado por la variable de fl.ujo en cada instante depende,

exclusivamente, de los valores alcanzados por los niveles en dicho

instante; de forma análoga, los valores alcanzados por los niveles

dependen de los valores tomados por las variables de flujo que

alimentan a dichos niveles.

- 1.2 -

Page 14: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

/

I I

1

I I

\

J i

/

/

/ /

Page 15: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Es inmediato ver que no se hace sino representar de forma

analógica, un sistema de ecuaciones diferenciales tal como:

dNi/dt Fi - F2 dNz/dt = F4

dN~/dt F2 - F3

s i endo

Fi fi(Ni,N2,N3) para i=1,2,3,4

Estas funciones fi pueden ser lineales o no lineales. La

determinación del valor tomado por una variable de flujo, por

ejemplo Fi , a partir de los niveles Ni, N2 y N3 puede que sea

conveniente hacerla en distintas etapas, requiriendose para ello

el establecimiento de unas variables auxiliares; por ejemplo, la

función fi puede descomponerse en tres etapas, empleando dos

variables auxiliares VAi y VA2 teniendose:

VAi = (pi(Ni,Nz)

VA2 = p(VAi, N3)

Fi = (pp3(VAz)

Observese que

Fi = (pa((ppz(VAi,Ns) 1

= (p:~((pz((pi(Ni,Nz),N3))

= fi.(Ni,Nz,N3)

Las variables auxiliares representan etapas intermedias en la

determinación de los flujos a partir de los niveles y, en último

extremo pueden ser eliminadas.

El símil hidrodinámico de la figura se puede completar con la

- 13 -

Page 16: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

inclusión de variables exógenas, éstas suministran infomación

adicional y exterior, que debe considerarse para decidir el valor

que toman las variables de flujo Fi.

Llamando E a una variable exógena.

Fi = fi(Ni,Nz,N3,E)

El interés del simil hidrodinámico reside en mostrar que

constituye una analogía de un sistema de ecuaciones diferenciales

de primer orden y que, alternativamente, todo sistema de

ecuaciones diferenciales de primer orden puede representarse con

ayuda de un símil de ésta naturaleza.

Empleando ésta analogía, en dinámica de sistemas, las

variables que aparecen en un modelo se clasifican en variables de

nivel, variables de flujo y variables auxiliares.

Los NIVELES representan magnitudes que acumulan los

resultados de acciones tomadas en el pasado. Es decir, el estado

de un sistema se representa por medio de las variables de nivel.

En los diagramas de Forrester los niveles se representan por

medio de rectangulos. La variación de un nivel tiene lugar por

medio de variables de flujo.

A cada nivel N se le puede asociar un flujo de entrada FE y

un flujo de salida FS; la ecuación que representa la evolución del

nivel es la siguiente,

N(t) = N(O) + [(FE-FSldt

que es lo mismo

dN/dt = FE - FS

- 14 -

Page 17: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Esta ecuación se puede escribir, de forma aproximada,

empleando el método de EüLER de Integración numérica,

N(t+ht) = N(td) + ht[FE(t)-FS(t)l

Esta última forma de escribir la ecuación de un nivel es la

que se emplea comunmente en dinámica de sistemas.

- 15 -

Page 18: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

sInBoLos QUE APARECEN EN LOS DIAGRAXAS DE FORRESTER

Nube: Representa una fuente; puede interpretarse como

un nivel que no tiene interés y es practicamente

i nag0 t ab 1 e.

Nivel: Representa la acumulación de un flujo; la

variable de estado.

Flujo: Variación de un nivel; representa un cambio en

el estado del sistema.

Canal de material: canal de transmisión de una

magnitud fisica, que se conserva.

Canal de información: Canal de transmisibn de una

cierta información, que no es necesario que se

conserve,

Variable auxiliar: Una cantidad con un cierto

significado físico en el mundo real y con un tiempo de

respuesta instantáneo.

Constante: Un elemento del modelo que no cambia de

valor.

Retraso: Un elemento que simula retrasos en la

transmisión de información o de material.

Variable Exógena: Variable cuya evolución es

independiente de las del resto del sistema. Representa

una acción del medio sobre el sistema.

Las variables de FLUJO determinan las variaciones en los

niveles del sistema. Las variables de flujo caracterizan las

- 16 -

Page 19: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

acciones que se toman en el sistema, las cuales quedan acumuladas

en los correspondientes niveles. Las variables de flujo determinan

como se convierte la información disponible en una acción o

act uac i ón.

A las variables de flujo se asocian ecuaciones que definen el

comportamiento del sistema. El bloque representativo de un flujo

admite, como señal de entrada, la información proveniente de los

niveles, o de variables auxiliares, del sistema y suministra como

salida el flujo que alimenta a un nivel.

Por ejemplo, a un flujo se le puede asociar una ecuación de la forma:

Siendo A(t) y B(t) dos variables de nivel o auxiliares. Las

ecuaciones asociadas a una variable de flujo reciben el nombre de

ecuaciones de flujo.

La ecuación de flujo representa la función desarrollada

por el observador del símil hidrodinámico. Es decir, con ayuda de

la ecuación de flujo el observador calcula en cada instante la

abertura de la válvula, o sea el flujo.

Las variaciones de flujo tienen como entradas exclusivamente

a niveles y a variables auxiliares. Es decir, dos variables de

flujo no pueden conectarse entre s í .

Las variables AUXILIARES representan pasos o etapas en

que se descompone el cálculo de una variable de flujo a partir de

los valores tomados por los niveles.

- 17 -

Page 20: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Normalmente, cuando se va a simular un modelo matemático no

tiene interés la forma analítica., pues lo que entoces interesa es

la escritura del modelo en una forma facilmente programable sobre

un computador. A partir de las ecuaciones que rigen el

comportamiento de las distintas variables que intervienen en un

modelo se obtiene la evolución del sistema.

Las ecuaciones del modelo se escriben de acuerdo con un

método de integración numérica que, normalmente, es el método de

Eul er.

La programación de las ecuaciones de un sistema dinámico

puede hacerse en cualquier lenguaje de alto nivel como FORTRAN,

BASIC, etc. No obstante se ha desarrollado un lenguaje de

programación específico con ayuda del cual se pretende que la

escritura de las ecuaciones asoc:iadas a un diagrama de Forrester

sea lo mas sencilla posible. Este lenguaje es el DYNAMO.

En las ecuaciones escritas en dynamo se hace At = DT. Las

letras J, K y L que siguen a los símbolos de las variables son los

indicadores de tiempo. K indica el instante que se está

considerando, J el precedente y L el siguiente. Para las

ecuaciones de flujo, JK denota el flujo calculado en el intervalo

precedente, y KL el flujo que se calcula para el intervalo

siguiente.

La figura muestra esquemáticamente la secuencia de cálculo

implícita en las ecuaciones. En la secuencia de calculo se

sobreentiende que la evolución del sistema ha alcanzado el

instante K, pero que las ecuaciones aún no se han resuelto para

- 18 -

Page 21: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

"I F LUJ

1 I

A t

Page 22: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

los niveles en el instante K ni para los flujos sobre el intervalo

KL.

El cálculo de los niveles en el instante K, está basado en el

conocimiento de los niveles en el instante anterior, J, y de los

flujos (supuestos constantes) en el intervalo JK. Una vez

calculados los niveles en el instante K, y después de haber

calculado los flujos Correspondientes al intervalo KL, los índices

se adelantan un tiempo dt para iniciar el siguiente ciclo de

cálculo.

Los flujos calculados para el intervalo KL se convertirán en

los flujos correspondientes al intervalo JK después del cambio de

índices; los índices K de los niveles se transforman en J; se

inicia el siguiente ciclo de cálcxlo, y así sucesivamente.

Las no linealidades que se consideran en los modelos de

dinámica de sistemas son no linealidades sin memoria; es decir,

funciones de una variable que solo responden al valor de la señal

de entrada en el instante considerado. Empleando el dynamo, la no

linealidad se introduce por puntos, tal como se indica en la

gráfica; por ello las no linealidades se denominan también

tablas.

El cuadro muestra la forma que toman en dynamo las

sentencias de los tipos de ecuaciones mas usuales en dinámica de

sistemas.

- 19 -

Page 23: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

La no linealidad A=F(B) se escribe por medio de dos

sentencias. En la primera de ellas, en el segundo miembro, aparece

en primer lugar, entre parentesis, el simbolo AT que hace

referencia a la segunda de las sentencias y que se describirá mas

abajo. En segundo lugar aparece B.K, que indica cual es la

variable con la que se alimenta la no linealidad, es decir B.

Aparecen a continuación Bi y Bs, que constituyen los dos valores

que representan el intervalo para el que se define la no

linealidad; es decir, se consideran solo valores de B comprendidos

entre Bi y B5. Por último, el valor de A indica la separación

entre dos valores sucesivos de Bi.

La segunda de las sentencias indica los valores tomados por

A para los valores de B indicados en la primera de las sentencias.

Es decir, los valores Ai=f(Bi), para i=1,2,3,4 y 5.

Con los datos suministrados por éstas dos sentencias se

tienen definidos una serie de puntos de la no linealidad. El

compilador está concebido para realizar una interpolación para

valores de B comprendidos entre los definidos en las sentencias.

- 20 -

Page 24: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

EJEMPLO DE APLICACION DE LA DINMICA DE SISTEMAS.

Problema de las ballenas.

Se trata de estudiar la conservación de una determinada

población, por ejemplo la de ballenas, sometida a una extinción

importante por acción de la pesca o de la caza. La evolución de la

población de ballenas depende de los nacimientos, las muertes

naturales y las muertes por pesca. Con estas relaciones iniciales

se puede construir un diagrama causal como el que se muestra.

Page 25: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

1 2 8 2 7 2

1 I

! I

Page 26: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Las gráficas muestran la relacih no lineal que existe

entre la población y los nacimientos o las muertes naturales. Si

la población se encuentra por debajo de un valor Pi, se tiene una

situación de <csubpoblación>>: las tasas de nacimiento son muy

bajas debido a que por la baja densidad de población, es difícil

que se encuentren parejas, por problemas de "soledad", falta de

producción para las crías, etc. Si la población se encuentra por

encima de P2 se tiene una <<superpoblación>> que determina

problemas de densidad relativamente elevada, por lo que las tasas

de nacimiento tienden a estabilizarse, mientras que las tasas de

mortalidad tienden a aumentar.

Por otra parte y simplificando mucho el modelo, se supone que

la mortalidad debida a la pesca es proporcional a la población

total, es decir.

M p = K * P

en donde Mp representa la mortalidad debida a la pesca, P es la

población de ballenas y K es una constante de proporcionalidad.

Existe un límite superior para ésta mortalidad fijado por la

capacidad de procesamiento y almacenaje de los productos

balleneros por parte de la flota pesquera, por lo tanto se tiene

que :

MP = Min (K * P, BMAX)

que significa que la mortalidad anual de ballenas, por efecto de

la pesca, será el mínimo de los valores tomados por K * P,

fracción de la población que puede ser pescada, y BMAX, número

máximo de cetáceos que pueden ser- procesados por la flota.

- 22 -

Page 27: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Las hipótesis realizadas son efiarmemente simplificadoras.

Por ejemplo, se ha supuesto que todas las ballenas son igualmente

apreciadas. Sin embargo, en un primer ejemplo introductorio se

consideran aceptables.

En la figura siguiente se considera el diagrama de Forrester

correspondiente al diagrama causal del modelo de evolución de la

población de ballenas.

- 23 -

Page 28: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

TOTAL

+- /

/ /'

I

I

Page 29: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Se observa cómo para la caracterización del sistema se

requiere un solo nivel. Escrita en forma de ecuaciones

diferenciales, la ecuación del modelo sería

dP/dt = N - Mn - Mp

En donde P es la población de ballenas, N es el número de

nacimientos, Mn el número de muertes naturales y Mp el número de

muertes por pesca.

Las no linealidades de la figura pueden representarse o

bién analíticamente o bien por puntos. En el primer caso, se tiene

para la relación entre el numero de nacimientos y la población la

siguiente expresión:

N = Ai[exp(-aF')] + Az[exp(-bP)l + C

siendo los valores de las constantes

Ai = -8000 A2 = 4000

a = 0.69 b = 1.38

C = 4000

Por lo que respecta a la relación entre la tasa de mortalidad

y la población se puede ajustar por medio de un polinomio de

segundo orden tal como

M = Ai' x P 4- A2' x PZ

siendo los valores numéricos de las constantes

Ai' = 0.875

A2' = 1.70 IO-'

El modelo así obtenido puede ser simulado sobre un computador

y se requiere el empleo de un lenguaje tal como el dynamo, si es

así, las no linealidades deben tabularse. Teniendo en cuenta ésta

- 24 -

Page 30: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

tabulación, el modelo en dynamo se escribe así:

POB. K=POB. J+(DT) (NAC. JK-MNA. JK-MPES. JK)

NAC . KL=TABLE ( NACT. POB. K, O, 50000,5000 1

NACT =0/340/993/1662/2240/2701/3054/3317/3509/3649/3750

MNA. KL=TABLE(MNAT, POB. K, O, 50000,5000)

MNAT =0/86/257/514/855/1281/1792/2388/3070/3836/4687

MPES. KL=MIN [ (FP) (POB. K), BMAX I

Si se emplea cualquier lenguaje de alto nivel, la

programación de las no linealidades puede conservar su forma

analítica, por lo que aparentemente la programación del modelo es

mas simple que la programación en dynamo. Sin embargo, aunque para

un caso sencillo como el que se está tratando sea así, para

problemas de mayor complejidad es patente la superioridad del

dynamo sobre otros lenguajes en modelos de dinámica de sistemas,

debido a que se trata de un lenguaje especialmente diseñado para

este tipo de modelos.

- 25 -

Page 31: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Se deben tomar las siguientes consideraciones acerca de

dynamo:

Al evaluar, el compilador ordena las ecuaciones de la

siguiente manera: nivel, auxiliar y flujo.

Existen además de las ecuaciones anteriores:

Constantes: Donde únicamente se asigna un valor numérico

al nombre simbólico que representa a dicha constante.

Ecuaciones iniciales: A todas las ecuaciones de nivel

deben ser dados valores iniciales al empezar la simulación, estos

son provistos por éste tipo de ecuaciones.

Para el proceso de inicialización se conservan las mismas

reglas que para el cálculo de ecuaciones. Los niveles, que son

calculados de niveles y auxiliares del intervalo de tiempo

anterior y de flujos, también correspondientes al tiempo anterior.

Las auxiliares son calculadas de niveles y otras auxiliares,

calculadas durante esa misma etapa de tiempo. Los flujos son

calculados de niveles y auxiliares de ésta misma etapa de tiempo.

Por consiguiente la etapa de inicialización consiste en

evaluar primero las ecuaciones iniciales, siguiendo con las

auxiliares y posteriormente las de flujo (ésto es únicamente para

el primer intervalo de tiempo, TIME = O 1, para las siguientes

etapas de tiempo se continúa de manera normal: nivel, auxiliar y

flujo.

Al evaluar las ecuaciones iniciales puede surgir el problema

de que la variable del lado derecho de la asignación corresponda a

una ecuación auxiliar o de flu.jo, entonces dynamo evalúa éstas

- 26 -

Page 32: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

ecuaciones como si fueran también iniciales, a su vez, éstas

pueden tener el mismo problema, dynamo continúa evaluando como si

fueran iniciales hasta inicializar todas las ecuaciones necesarias

para obtener un valor numérico en la primera expresión.

- i!7 -

Page 33: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Convenciones en dynamo.

Forrnatos de declaraciones.

Las declaraciones en dynamo empiezan con un

identificador en la primera columna de la línea.

L

A

R

S

N

c o CP

T o TP

SPEC

NOTE

PLOT

PRINT

SAVE

OPT

NOISE

RUN

QUIT

Ecuación de nivel

Ecuación auxi 1 iar

Ecuación de flujo

Ecuación suplementaria

Ecuación de valor inicial

Constante

Tablas

Especificación de la simulación

Nota o comentario

Declaración plot

Declaración print

Calcular valores de variables de salida sin

graficar.

Declaración opt

Numeros aleatorios

Declaración run

Declaración quit

El identificador es seguido por uno o mas espacios y a

continuación la ecuación o declaración de control.

- 28 -

Page 34: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Operaciones aritméticas en dynamo

Suma +

Resta - Multiplicación * Di vis ión /

La declaración SPEC es usada para especificar el valor del DT

(intervalo de integración), el valor de LENGTH (etapa de tiempo en

que la simulación se detiene) y otros dos parámetros que

especifican la separación entre puntos para la salida.

La declaración NOTE es para indicar que a continuación sigue

un comentario.

La declaración RUN marca el fin del modelo.

La declaración QUIT es usada únicamente al hacer un re-run y

es tratada como RUN al encontrarse en el modelo.

Declaraciones de salida.

Dynamo produce salida tabular y gráfica.

PRINT La salida tabular es especificada por ésta

dec 1 arac i ón.

PLOT La salida gráfica es especificada por ésta

declaración.

La declaración SAVE sirve para indicar que a tiempo de

compilación se almacenan los valores correspondientes a las

variables aquí especificadas aunque no estén como salidas, ya

que serán utilizadas en los posteriores re-run.

La declaración NOISE es una función generadora de números

- 29 -

Page 35: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

aleatorios.

La declaración OPT sirve para especificar nuevas opciones al

hacer un re-run.

- 30 -

Page 36: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Funciones en dynamo

Retrasos y extrapolacionec. 1 2 8 2 7 2 Al construir el diagrama causal de un sistema debe

considerarse que la relación causal que liga a dos variables puede

indicar una transmisión (de material o de información) para la

que se requiera el transcurso de un cierto tiempo. Es entonces

cuando empleamos las funciones de retraso.

Delayl- Es un retraso material de primer orden (contiene un

nivel) y tiene la forma:

Delayl ( IN, DEL)

Donde

IN

DEL Es el promedio de tiempo de retraso

Es un parámetro de entrada

Delayl es equivalente a las ecuaciones:

A Delayl. K = LV. WDEL

L LV.K = LV. J+(BT) (IN. JK-DELAY. J)

N LV = DEL * IN

Delay3- Es un retraso material de tercer orden, con la

forma:

Delay3 (IN, DEL)

donde

IN

DEL Es el promedio de tiempo de retraso

Es un parámetro de entrada

Delay3 es equivalente a las ecuaciones dynamo:

- 31 -

Page 37: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

A

L

N

R

L

N

R

L

N

A

D1 inf3-

forma:

DELAY3. K = LV3. WDL. K

LV3. K

LV3 = DL*IN

RT2.KL = LV2.KlDL.K

LV2. K

LV2 = LV3

RT1. KL = LV1. WDL. K

LV1. K

LV1 = LV3

DL. K = DELI3

= LV3. J+ (DT) (RT2. JK-DELAY3. J

= LV2. J*(DT)(RTl. JK-RT2. JK)

= LV1. J+(DT)(IN. JK-RT1. JK)

Es un retraso de información de tercer orden, con la

D1 inf3( IN, DEL)

donde

IN Es un parámetro de entrada

tiempo de retraso DEL Es el promedio de

equivale a

L DLINF3.K = DLINF3

N DLINF3 = IN

L LV2.K = LV2. J+

N LV2 = IN

J+(DT/DL. J) (LV2. J-DLINF3. J)

DT/DL. J) (LV1. J-LV2. J)

L LV1.K = LV1. J+(DT/DL. J)(IN. J-LV1. J)

N LV1 = IN

A .DL.K = DELI3

Smooth- Es un retraso de información de primer orden con

la forma:

- 3% -

.

Page 38: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Smooth( IN, DEL)

donde

IN Es un parámetro de entrada

DEL Es el promedio de tiempo de retraso

equivale a:

L SMOOTH. K = SMOOTH. J+(DT/DEL) (IN. J-SMOOTH. J)

N SMOOTH = IN

Funciones de especificación.

Las funciones en &Sta clase son generalmente usadas

para especificar relaciones entre dos variables en un modelo.

Exp(A) Calcula el exponencial de A

Logn(A1 Calcula el logaritmo natural de A

Sqrt(A1 Calcula la ra.iz cuadrada de A

Funciones lógicas.

CliP(P1 q> r, 8) la función regresa el valor de p si

r > = s o q s i r c s .

Regresa el valor máximo.

Regresa el valor mínimo.

Regresa el valor de p si r=O o q si

r <:> O.

b ( P , Q )

Miníp, ql

Switch(p,q,r)

Otras funciones.

Cos ( A)

Sin(A) Regresan el valor del coseno y el seno

- 33: -

Page 39: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

respectivamente.

Ramp(slp.strt1

SIP Es la inclinación del ramp.

strt Es el inicio del TIME

La salida es:

Ramp = O si time < strt

Ramp = Sum desde strt a TIME de (slp * DT)

si TIME > strt

STEP Produce un salto de cero a un valor

especificado, la forma de la función es:

Step (hght,sttm)

donde el valor del step es cero si TIME < sttm, o

hght si TIME >= sttm.

NOTA: Se han puesto la mayoría de las funciones en dynamo y no se

ha profundizado al explicar cada una de ellas ya que lo que nos

interesa es tener un conocimiento general del lenguaje para

ampliar nuestro criterio en el tema y poder realizar una mejor

critica del trabajo realizado en éste proyecto de investigación.

- 34 -

Page 40: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

CONPILADOR DE UN LENGUAJE DE SIWLACIdN

Editor

Se utilizó un editor de pantalla para aumentar la

interacción usuario-máquina, teniendose la facilidad de poder

regresar al texto editado sin tener necesidad de abandonar el

mismo, después de haber realizado una compilación y/o ejecución

del programa dynamo.

Una de las caracteristicas importantes es que al momento de

compilar un programa dynamo con errores de sintáxis, se tiene la

posibilidad de desplegar la página donde se encuentra la

información incorrecta, con el cursor indicando la posición del

error. Por tanto tan pronto como el usuario corrija el error podrá

seguir con el proceso de compilación.

El editor de pantalla se elaboró usando una estructura

doblemente ligada. Cada registro contiene un campo para

información (renglón de texto), un apuntador de este mismo tipo al

siguiente nodo y otro más que apuntará a un posible renglón

anterior.

El uso de listas doblemente ligadas permite recorrer el texto

bidireccionalmente sin tener que guardar apuntadores a posiciones

anteriores y siguientes como sucedería por ejemplo con una lista

lineal con ligas simples. El editor dynamo es capaz de realizar

las siguientes funciones:

-Flecha Abajo: Al presionar flecha abajo se recorre el

apuntador al siguiente nodo.

-Flecha Arriba

- 35 -

Page 41: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

-Flecha Derecha

-Página Abajo

-página Arriba

-Borra Caracter

-Inicio Linea: Al presionar HOME el cursor se coloca en

la columna igual al tamaño del renglón mas uno del mismo.

-MarcaInicioBloque: Después de presionar F9 se guarda un

apuntador en el renglón actual donde está el cursor, indicando que

en ésta posición iniciará un bloque a copiar, borrar,

intercambiar . -MarcaFinBloque: Si después de presionar F9 se digita

F10 se determinará el extremo final del bloque pudiendo ser

diferenciado en la pantalla por un cambio de color del texto

marcado o delimitado.

-Primera Página: Esta primera página de texto se

despliega después de presionar C'TRL-PGüP . -Página Abajo: En forma análoga al teclear CTRL-PGDN se

obtendrá en la pantalla la iíltima página del texto.

-Copiar Bloque: Una vez que se marc6 un bloque, la

operación de copiado se puede realizar si se presiona CTRL-C B. El

bloque de texto delimitado será duplicado a partir de la nueva

posición del cursor.

-1ntercambia Bloque: Al igual que en el caso anterior al

presionar CTFL-I B el bloque de texto será removido al lugar

actual del cursor.

-Elimina Bloque: De manera análoga CTRL-E B efectúa un

- 36 -

Page 42: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

borrado del texto delimitado o marcado, quedando éste fuera de

vista en la pantalla y anulado en la lista ligada.

-Borra Linea: Se elimina una línea de texto al presionar

CTRL-B.

-Espacio Atrás: Se retrocedeuna posición al digitar

BACKSPACE, además de borrarse el caracter que se hubiese encontrado

una posición antes del cursor.

-Borra Palabra: Ce elimina una palabra de texto después

de presionar CTRL-P. La palabra a borrar será a partir de la

posición del cursor hasta enconti-ar un carater distinto de letra.

-Avanzar Cadena: Con CTRL-A el cursor se recorre al

inicio de una palabra o cadena que pudiese existir.

-Reduce Pantalla: Si se digita F5 se definirán nuevos

límites de la pantalla de edicihn, es decir, el número de líneas

será uno menos cada vez que se presione F5, ésto hasta llegar a

dos renglones de texto.

-Aumenta Pantalla: De manera contraria a la anterior, F6

incrementa el número de líneas en edición hasta llegar a un límite

de 19 líneas o renglones por página.

-Cargar Archivo: Sin tener que pasar por el menú uno

puede cargar un archivo directamente presionando F3.

-Salvar Archivo: Análogo al punto anterior. Presionar F2.

-Ventana de menú principal: Después de presionar F1 se

desplegará en pantalla una ventana con las posibles opciones de

dynamo.

-Ayuda: Al momento de teclear F4 se desplegará en

- 37 -

Page 43: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

pantalla la ayuda necesaria para manejar el editor de textos.

-Buscar una palabra: Al presionar CTRL-Q E se despliega

en pantalla un mensaje de captura para la cadena a encontrar. Al

presionar RETURN, aparecerá otro mensaje de captura para las

opcioned de búsqueda. Estas pueden ser:

-BE Buscar desde la posición actual del cursor

hacia abajo estrictamente como se captura la cadena a encontrar.

-AE Buscar desde! la posición actual del cursor

hacia arriba la cadena que se capturó.

-TE Buscar en todo el texto a partir del primer

reng 16n.

-BM Se compara la cadena capturada en letras

mi nuscul as.

-AM Hacia arriba comparando la cadena en

mi núsc u 1 as.

TM En todo el texto con letras minúsculas.

Bc Hacia abajo en letras mayúsculas.

AC Hacia arriba y en letras mayúsculas.

TC En todo el texto en letras miniísculas.

-Reemplazar una palabra : Al presionear CTRL-Q R se

despliegan consecutivamente tres mensajes de captura, los cuales

son : Cadena a Reemplazar :, Por :, Opciones : .

En la captura de opciones, además de tener las posibilidades

que existen al buscar una palabra, se agregan dos caracteres mas :

P ( Cambiar las cadenas preguntando una por una 1, N ( Cambiar

- :38 -

Page 44: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

todas las ocurrencias sin preguntar I . Por tanto en opciones se

puede tener :

-BPE -BEP

-AEP -AEN

-TEP -TEN

-BMP -BMN

-AMP -A”

-TMP -TMN

-BCP -BCN

-ACP -ACN

-TCP -TCN

-Seguir Buscando Reemplazando : Después de teclear

CTRL-S, se continuará buscando o reemplazando cadenas dependiendo

si antes ya se buscó o reemplazo alguna.

Una manera eficiente de desplegar una pantalla es utilizando

la memoria de video, la cual comienza en la dirección base $B800

para un monitor a color, y en la dirección $BOO0 para un monitor

monocramático. Por lo tanto an un monitor 80x25 se puede

representar gráficamente de la siguiente manera :

\

- 39 -

Page 45: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

t

2 3

4

-

3

F odl I - 1 I I 1 I I I 1 I I I I I I I I 1

I 7- l- l- 4-

I

)9 80

Page 46: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Del esquema anterior de observa que un caracter representa un

byte para el mismo y otro para su atributo. Los tres primeros bits

representan el color, si se enciende el cuarto bit indicará que el

color elegido será brillante, en otro caso será normal; del cuarto

al sexto bit se utilizan para representar el caracter con un color

de video inverso, el Utimo bit ( 7' 1 indica el parpadeo del

texto desplegado.

Por consiguiente la matriz de video constará de 4000 bytes,

la posición i indicará el caracter y la i + 1 su atributo,

Comenzando desde i = O Hasta i = 3999.

De esta manera no se notará un barrido del cursor a través de

la pantalla por cada linea de información que se despliegue, sino

que esta información parecerá que es "salpicada".

- 40 -

Page 47: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Cornpilador : 1 2 8 2 7 2 Un compilador es un programa que traduce código fuente (

en este caso en Dynamo 1 a código objeto o en su defecto a un

código intermedio el cual pueda ser interpretado.

Las fases de un compilador son las siguientes :

Analizador Lexicográfico : En esta parte se analizan los

símbolos o tokens que conforman ima estructura gramatical.

Analizador Sintáctico : Un analizador sintáctico verifica que

la estructura de una frase corresponda a una gramática definida.

Analizador Semántico : En esta parte el compilador verifica

que la frase u oración analizada tenga sentido.

El compilador diseñado es recursivo descendente, de manera

que al encontrar un error éste detiene su proceso de análisis

dejando paso a una rutina que verifica errores de compilación para

mostrar al usuario programador la página donde se encuentra dicho

error además de mandar un mensaje, indicandole el porqué de éste.

Los posibles mensajes de error son los siguientes:

Esperaba la palabra Programa

Esperaba M identificador

Tipo no declarado

Esperaba punto y coma

Esperaba la palabra 'Fin' de program

Esperaba signo igual

- 41 -

Page 48: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Esperaba número entero

Esperaba parentesis izquierdo

Esperaba parentesis derecho

Espereba punto

Esperaba coma

Esperaba palabra reservada ’SOBRE’

Esperaba una constante entera o real

Esperaba identificador o número

Esperaba signo igual

Esperaba ’:’ dos puntos

Esperaba punto final de programa

Identificador no definido o error sintáctico

Esperaba llave izquierda ’ { ’

Esperaba llave derecha ’ I ’

Identificador doblemente definido <identificador>

Esperaba fin de comentario ’a/ ’

Esperaba palabra reservada ’comienza’

Esperaba palabra reservada ’termina’ o ’;’

Esperaba identificador de nivel

Esperaba tipo de ecuación a analizar

Esperaba identificador de ’nivel’ o ’auxiliar’

Esperaba sufijo de identificador

Esperaba sufijo ’ACT’

Esperaba sufijo ’ANT’

Esperaba operador suma ’+’

Esperaba identificador especial ’DT’

- 42 -

Page 49: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Esperaba operador ’*’ o ’I’ Esperaba sufijo ’IAN’

El identificador no deberá llevar sufijo

Esperaba identificador de flujo

Esperaba sufijo ’IAC’

Error en el número de parentesis

No se permite variable suplementaria en una ecuación de

’nivel’, ’flujo’, ’auxiliar’ o ’inicial’.

Esperaba identificador de variable ’suplementaria’

No se permiten variables en ecuaciones constantes

Rango incorrecto

Esperaba número positivo

Se excede en datos para la tabla

Faltan datos para la tabla

Esperaba identificador tipo ’inicial’

Esperaba identificador tipo ’auxiliar’

Esperaba identificador de la constante

Esperaba corchete izquierdo

Esperaba corchete derecho

Inesperado fin de archivo

Expresión de nivel incorrecta

’DT’ es una variable especial

Incorrecto uso de identificador especial ’DT’

No podrá aparecer una variable de tipo ’tabla’

Esperaba palabra reservada ’LENGTH’

Especificaciones ya definidas

- 43 -

Page 50: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

La representacitb

caracter

ser dada por un solo

Esperaba un dato mayor al anterior

Pila vacía

Pila llena

Esperaba identificador '<identificador>.ant'

Palabra reservada

Esperaba valor n-rico

En el compilador se emplea la siguiente estructura de datos:

- 44 -

Page 51: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos
Page 52: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

En la cuál en cada nodo se almacenan los identificadores. La

posición que le corresponde en el arreglo a cada uno de ellos está

determinado por la función que se localiza en la parte inferior.

Donde Ord(Cad) proporciona el código ascii del caracter de

ésta cadena.

Las palabras reservadas de que consta el programa son :

Auxi 1 iar,

Constante,

Inicial,

Flujo,

Suplementaria,

Tabla,

Sobre,

Comienza,

Termina,

Programa,

Nivel,

Fin,

Spec.

Nota,

Length,

DT,

Time.

Existen dos tipos de comentarios : /* para abrir inicio de

comentario y */ para cerrarlo o Nota que indica que el renglón será empleado como un comentario.

- 45 -

Page 53: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

La gramática que reco:noce el compilador, empleando la

representación conocida como forma de Bacus Naur Form ( BNF 1,

es la siguiente :

. . .= . Significa "Se define como"

I Significa "0"

[ I Encierra un conjunto el cual puede ser repetido cero *

o más veces.

- 46 -

Page 54: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Cabe hacer notar que el compilador diseñado reconoce el mismo

tipo de ecuaciones y funciones empleadas en dynamo (y que hemos

mencionado en el presente reporte) ya que está basado en éste, sin

embargo contamos con un medio ambiente mejorado, además se le

han realizado cambios de tal manera de hacerlo agradable al

usuario.

- .47 -

Page 55: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

Ejecución

Al encontrar una tabla definida en las declaraciones, el

compilador genera una estructura como la mostrada en la siguiente

hoja.

- 48 -

.I..

Page 56: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

1

2

i

Page 57: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

En ésta se guarda la variable de tipo tabla, la variable

independiente sobre la cual actúa, así como su valor mínimo, máximo

e incremento, además un apuntador a una lista ligada donde se

encuentran los valores correspondientes a los puntos de la no

1 ineal idad.

Respecto a las ecuaciones, 1.a misma gramática definida para el

lenguaje va dejando un codigo intermedio en notación polaca

(posfija) generando una lista ligada para éste. El DT y el LENGTH

son depositados al inicio de ésta 1ista.También a tiempo de

compilación se guardan en la tabla de hash los valores

correspondientes a las constantes.

Al llegar a la parte de salidas, por cada PRINT o PLOT

encontrado se genera una estructura, la cual se puede apreciar

también en la siguiente hoja.

Donde, en el arreglo de registros se guardan las variables a

ser graficadas y tabuladas.

Estas son las estructuras de datos que se requieren a tiempo

de ejecución, entonces se recorre la lista ligada de las

expresiones en posfija y para cada una se llama a un procedimiento

que las evalúa con ayuda de un stack, al terminar de evaluar cada

expresión se actualiza la tabla de hash depositando el resultado

obtenido en el lugar correspondiente a la variable que obtuvo

dicho valor, de tal manera que al evaluar en la siguiente etapa de

tiempo se pueda extraer de aquí los valores tomados anteriormente

por las variables.

Si un identificador tiene un tipo tabla, se realiza una

- 49 -

Page 58: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

interpolación con ayuda de la estructura correspondiente a esa

tabla con el valor actual de la variable independiente.

Si por otro lado corresponde a una función (de retraso), se

genera un nodo (la primera vez) donde se guardan los distintos

valores tomados por las variables de esa función, ya que las

funciones contienen ecuaciones de nivel y éstas dependen del

intervalo de tiempo anterior, éstos valores servirán para calcular

la misma función en el intervalo de tiempo siguiente . Si el

identificador corresponde a otro tipo de función se calcula de

manera normal ya que no requieren de valores anteriores para su

cálculo.

La manera de inicializar los niveles es

como sigue:

Si es la primera etapa de tiempo y la expresión

corresponde a una inicial, entonces se evalúa, pero si a su vez

depende para ser calculada de una auxiliar o de flujo, ésta última

se evalúa como si fuera inicial, ésto se repite hasta poder

obtener un valor inicial para la ecuación de nivel. En la primera

etapa de tiempo se evalúan la.s iniciales, posteriormente las

auxiliares y por último las de flujo; en las siguientes etapas de

tiempo, como los niveles ya cuentan con un valor inicial se

evaluan niveles, auxiliares y flujos en este orden.

Al terminar cada ciclo SE! crean nodos correspondientes a

los valores obtenidos en ésta etapa de tiempo para cada variable

de salida y se van adicionando eri la estructura correspondiente.

Al compilar nuevamente un modelo se eliminan las

- 50 -

Page 59: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

estructuras. Por el contrario si se ejecuta otra vez, sin compilar

de nuevo, se eliminan únicamente los valores obtenidos para las

variables de salida (sin eliminar las estructuras generadas a

tiempo de compilación), se elimina también la estructura para

almacenar los valores de las funciones y se inicializa la tabla de

hash dejando los valores de las constantes.

El despliegue de las variables de salida es en forma grafica y

tabular en ventanas individuales, en la forma tabular se tiene la

opción de mover páginas arriba y abajo para poder apreciar todos

los puntos, si éstos sobrepasan una página. Como se grafican cada 4

variables más el TIEMPO, se obtiene una escala adecuada, ésta se

indica en el margen izquierdo de las gráficas y en la parte

superior dentro de la ventana de salida tabular.

- 51 -

Page 60: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

12822% Conclusiones :

Consideramos que este producto puede ser de mucha

utilidad en áreas como las ciencias sociales para la enseñanza de

modelos de simulación que nos representen un determinado

comportamiento, por ejemplo en :la economía podría ser llevado a

cabo un estudio de mercado para determinado producto, o en

psicología estudiando los síntomas de una perturbación.

- 52 -

Page 61: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos
Page 62: 128272 - 148.206.53.84148.206.53.84/tesiuami/uam7353.pdf · clase a sistemas socioeconómicos, ... lo cual se hace por medio de un diagrama en el cual los nombres de los distintos

I

Bibliografía :

- Aracil Santoja Javier.

Introducción a la dinámica de sistemas.

Alianza Editorial.

- Jay W. Forrester. Dinámica Industrial.

- Jay W. Forrester

Principles of systems.

- MiniDynamo User’s Guide.

- Dynamo üser’s Guide.

- 53 -