Libro Juan Martin-dinamica Sistemas 2011

February 9, 2018 | Author: ferg20142 | Category: Infection, Public Health, Microsoft Excel, Immunity (Medical), Simulation
Share Embed Donate


Short Description

Descripción: Libro...

Description

Ejercicios avanzados en Dinámica de Sistemas

Juan Martín García

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

1

2

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas



Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

3

Ejercicios avanzados en Dinámica de Sistemas Autor y editor: Juan Martín García Registro de la Propiedad Intelectual B-1156-08 ISBN 978-84-612-2792-1 © 2008 Juan Martín García mail: [email protected] Primera edición. 2008 Segunda edición. 2011 Impreso en Barcelona (España) No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito del titular del Copyright.

4

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Índice

Introducción 0. Instalación del software 1. Creación de aging chains 1.1. Caso. Estudio de una catástrofe 1.2. Ejercicio práctico 2. Creación de diagramas complejos 2.1. Caso. Desarrollo de una epidemia 2.2. Ejercicio práctico 3. Uso de variables cualitativas 3.1. Caso. El joven ambicioso 3.2. Ejercicio práctico 4. Importación y exportación 4.1. Caso. CFC 11 4.2. Importar datos de una hoja Excel 4.3. Exportar resultados a una hoja Excel 4.4. Ejercicio práctico. CFC 11 4.5. Ejercicio práctico. Kaibab 5. Creación de juegos de simulación 5.1. Caso. Construcción de viviendas 5.2. Creación de modelos de simulación 5.3. Desarrollo del juego 5.4. Ejercicio práctico. Casas 5.5. Ejercicio práctico. Cerdos 6. Simulación interactiva 6.1. Caso. La carrera de armamentos 6.2. Simulaciones interactivas 6.3. Experimentos de simulación 6.4. Construir un panel de control 6.5. Ejercicio práctico. Población 7. Diseño de pantallas de entrada y salida 7.1. Caso. Clientes y publicidad 7.2. Controles de salida 7.3. Controles de entrada 7.4. Enlaces de navegación 7.5. Ejercicio práctico. Depósito 8. Análisis de sensibilidad 8.1. Caso. El equipo de ventas 8.2. Distribuciones estadísticas 8.3. Resultados. Variables de interés 8.4. Análisis de sensibilidad 8.5. Ejercicio práctico. Kaibab

7 9 13

21

31

37

55

69

87

103

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

5

6

9. Comparación modelo y realidad 9.1. Caso. Evolución del SIDA en el País Vasco 9.2. Estructura del modelo 9.3. Ecuaciones del modelo 9.4. Instrucciones para la creación del modelo 10. Validación de un modelo 10.1. Las ecuaciones del Reality Check 10.2. Test imputs 10.3. Constraints 10.4. Funciones del Reality Check 10.5. Reality Check Control 10.6. Caso. Crecimiento de la levadura 10.7. Ejercicios prácticos

118

Anexo. Funciones, tablas y retrasos Agradecimientos

173 183

133

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Introducción Este texto es la continuación natural del libro “Teoría y ejercicios prácticos de Dinámica de Sistemas” y tiene por objetivo abordar aspectos específicos de creación de modelos de simulación aplicando esta metodología, que son necesarios para poder aprovechar al máximo las prestaciones que el software nos ofrece. Un aspecto a destacar es que si bien todos los ejercicios del libro citado pueden hacerse con el Vensim PLE, que es un software gratuito para uso personal y educativo, gran parte de los ejercicios de este libro requieren disponer de una licencia del software Vensim PLE Plus, o sus equivalentes en Stella, ithink o Powersim. En este texto se han omitido los aspectos teóricos o conceptuales con excepción de lo relativo a los análisis de sensibilidad y la validación de modelos. Es pues básicamente un libro con un enfoque muy práctico. La estructura de los capítulos se basa en la exposición de un caso que se pide al lector que realice siguiendo los pasos que se le señalan, para adquirir practica en cada uno de los temas que se exponen, y a continuación se halla uno o varios ejercicios para aplicar lo aprendido. El lector dispone de la solución a estos ejercicios en el CD adjunto. El contenido se ha depurado todo lo posible para lograr un aprendizaje rápido y autónomo, pero es innegable que la ayuda de un profesor será siempre muy positiva.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

7

8

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Instalación del software Para realizar los ejercicios a partir del capítulo 4 es necesario disponer de una licencia del software Vensim PLE Plus o superior. Dicha licencia puede adquirirse desde la web http://www.vensim.com. Un vez que haya realizado el pago recibirá por email el código de la licencia:

To install the software use the registraction code: Your name: Martín Martín Martín Registration Code: 9KK9K-9KKKK-99K99-K9KK9 Company: Specimen Product PLE Plus Academic Serial#: PL10000 If you have any questions please feel free to contact me. Bob Eberlein Ventana Systems, Inc. 60 Jacob Gates Road Harvard MA 01541 508 651 0432 Fax 508 650 5422 mailto: [email protected]

Cuando reciba un email con el código, abra en su PC una carpeta con el nombre Vensim y vaya al apartado Dowload de la web http://www.vensim.com y copie el código de registro, a continuación pulse Choose Product.

Se le abrirá la web para descargar en su PC los ficheros.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

9

Pulse en el botón con la versión más reciente del software y escoja la opción Guardar de las diferentes carpetas o “disk”

Una vez descargadas todos los “disk” vaya a la carpeta Vensim y ejecute el fichero venplp32 Siga las instrucciones e introduzca exactamente los datos que ha recibido en el mail con la licencia. Para evitar errores es preferible usar las opciones Copiar y Pegar desde el mail que teclear los nombres del usuario, la empresa y la licencia.

10

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Escoger la carpeta donde deseamos instalar el programa.

Y seguir las instrucciones hasta que aparezca el botón: Por último es conveniente copiar el icono del programa en el escritorio del PC. Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

11

12

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

1. Creación de aging chains Las aging chains se exponen en el libro “Business Dynamics” de John Sterman como la representación de sistemas en los cuales sus elementos pasan por un conjunto de etapas que están reguladas por diferentes tiempos de retraso. Este tipo de sistemas se hallan tanto en los procesos industriales, donde los materiales son transformados de forma secuencial, como en los análisis de problemas medioambientales y sociales donde por ejemplo los individuos van escalando posiciones en la pirámide de edad. Si bien el texto “Teoría y ejercicios prácticos de Dinámica de Sistemas” comienza con un modelo básico de dinámica poblacional, este texto empieza con un modelo poblacional algo más complejo, que ilustra un aspecto muy frecuente en los temas sociales, medioambientales, y empresariales. Se trata de un sistema en el que los elementos van pasando por sucesivas etapas -o edades -. En resumen en este capítulo se trata de: 1.- construir el modelo en base al texto que nos facilitan. 2.- asignar unidades coherentes a las variables. 3.- añadir una imagen al diagrama de flujos. 4.- introducir una distribución de probabilidad en una de las variables. 5.- simular el impacto en el sistema de un cambio brusco y puntual. 6.- comparar los resultados del modelo con las expectativas previas. 7.- aprender a enviar modelos con imágenes incorporadas.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

13

1.1. Caso. Estudio de una catástrofe La Tierra de los Bosques es una región próspera situada en una región templada con abundante vegetación. Sus habitantes llevan una existencia feliz y placentera. En total son 1.000.000 de personas y esta cifra se ha mantenido estable en los últimos años. Actualmente el 40% son jóvenes de menos de 20 años. Un 50% de la población es adulta, entre 20 y 70 años, y los otros son ancianos. Por otra parte sabemos que sus parámetros poblaciones son los siguientes: su esperanza de vida es de 80 años, que la tasa de natalidad de la población adulta es del 6% anual, y que las tasas de mortalidad son el 2,5% para los jóvenes y del 2% para los adultos. Todos estos parámetros se han mantenido estables y no se espera que tengan modificaciones en el futuro. Para hacer este estudio vamos a hacer un sencillo modelo de simulación, de forma que situaremos su fecha de inicio en el año 2000, y el horizonte temporal a 50 años. - Construir el modelo en un escenario de población estable, del 2000 al 2050 recogiendo los parámetros que nos han facilitado, con ayuda del siguiente esquema:

14

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

- Definir en File New Model o bien en Model – Settings: TIME STEP = 1 INITIAL TIME = 2000 FINAL TIME = 2050 y Units for time = año. - Verificar que la variable Población total se mantiene en equilibrio. El modelo ha de reproducir una situación estable de la población total en 1.000.000 de personas. - Asignar las unidades y comprobar su coherencia con Model –Units Check de forma que la revisión de las unidades de las variables del modelo indique Units are OK. Para verificar el modelo antes de continuar puede consultar la solución en la página siguiente. En algunas versiones del software no es posible usar la ñ o acentos

Añadir una imagen en la pantalla Para añadir una imagen en un diagrama de flujos, vaya a su editor de imágenes, abra una imagen y seleccione un área de ella, luego haga Copy. Vaya a la pantalla del Vensim pulse el icono superior "Com", pulse en la pantalla del modelo, y active la opción Metafile (pulsando sobre el circulo que aparece a la izquierda de la palabra Metafile) y OK. Se importa la parte de la imagen que hemos copiado. Una segunda opción para añadir una imagen es pulsar el botón Import que aparece en la ventana que se abre cuando pulsamos sobre el icono Com y después en la pantalla. En esta opción hemos de seleccionar un fichero con una imagen en formato bmp. Se importa la imagen completa que tengamos en el fichero. - Adjuntar una imagen relacionada con el texto.

Variables aleatorias Añadir una distribución de probabilidad

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

15

Ecuaciones del modelo Niveles adultos = +madurez-vejez-muerte de adultos Initial value: 500000 Units: personas jovenes =+nacimientos-madurez-muerte de jovenes Initial value: 400000 Units: personas ancianos = +vejez-muerte natural Initial value: 100000 Units: personas Flujos madurez= jovenes/Periodo de madurez Units: personas/año muerte de adultos= adultos*Tasa de mortalidad adultos Units: personas/año muerte de jovenes= jovenes*Tasa de mortalidad jovenes Units: personas/año muerte natural=ancianos/Periodo final Units: personas/año nacimientos= adultos*Tasa de natalidad Units: personas/año vejez= adultos/Periodo de vejez Units: personas/año Variables auxiliares Periodo de madurez= 20 Units: año Años que tardan los jóvenes en pasar a adultos Periodo de vejez= 50 Units: año Años que tardan los adultos en pasar a ancianos Periodo final= 10 Units: año Número de años de vida en el grupo de ancianos Tasa de mortalidad adultos= 0.02 Units: 1/año Tasa de mortalidad jovenes= 0.025 Units: 1/año % de jóvenes que mueren sin llegar a adultos Tasa de natalidad=0.06 Units: 1/año poblacion total= adultos+jovenes+ancianos Units: personas 16

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Añadir una distribución de probabilidad En ocasiones queremos introducir en el modelo el hecho real de que una determinada variable tiene un valor medio con una cierta distribución de probabilidad. Sabemos que la tasa de natalidad tiene un valor medio del 6% que oscila entre el 3% y el 9% con una distribución de probabilidad Normal con una desviación típica del 2%. Para introducir este hecho el modelo escribiremos la ecuación que incluye la función RANDOM: Tasa de natalidad = RANDOM NORMAL(min,max, mean, stdev, seed) Tasa de natalidad = RANDOM NORMAL(0.03, 0.09, 0.06 , 0.02, 3) Siendo la cifra “seed” el 3 un valor cualquiera que el software utiliza para empezar a crear valores aleatorios. Los resultados de la simulación han de ser como se observa en la imagen siguiente.

- Añadir la función de distribución de probabilidad a la tasa de natalidad, y observar de forma comparativa los resultados que produce, para ello asignar un nuevo nombre a la simulación.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

17

1.2. Ejercicio práctico Una noche desgraciada del verano del año 2005 se desata un terrible incendio, y durante una larga semana el fuego avanza sin control arrasando todo a su paso. Los servicios de emergencia consiguen poner a salvo a todos los jóvenes y los ancianos, pero cuando cesa el incendio descubren que el total de víctimas es de 100.000 personas siendo todas ellas adultas. Se desea hacer una estimación de cual será la evolución del número de personas totales de la Tierra de los Bosques tras la catástrofe, sabiendo que los parámetros poblacionales (esperanza de vida, tasa de natalidad y tasas de mortalidad) van a permanecer constantes. - Introducir en el modelo la catástrofe que afecta a 100.000 adultos y determinar el número de años que tardará la población en recuperar el valor de 1.000.000 de personas. El modelo actual nos permite reproducir una situación estable. A continuación se modificará para simular la catástrofe que afecta a 100.000 adultos. El primer efecto será sin duda una reducción de la población desde 1.000.000 a 900.000 personas, y queda por determinar la evolución futura. Para simular los efectos de la catástrofe en el 2005 con un coste de 100.000 personas adultas, se crea un nuevo flujo de salida del nivel de adultos, y se utiliza la función PULSE, indicando que será en el periodo 2005 y tendrá una duración de 1 periodo. Es necesario modificar además la ecuación de adultos para incluir el nuevo flujo.

La función PULSE toma el valor 0 hasta el periodo t (2005 en este caso), y durante n periodos (1 en nuestro modelo) toma el valor 1. Queremos simular que salen 100.000 personas adultas y por ese motivo multiplicamos el resultado de la función PULSE (que es 1) por la cifra de 100.000. Para observar con más claridad las dinámicas que se generan es conveniente eliminar el componente aleatorio de la variable tasa de natalidad, de forma que retome el valor de la versión inicial que era 0.06

18

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Expectativas y resultados del modelo Antes de simular podemos preguntarnos por el escenario que intuimos al cabo de 20 años, es decir: a) la población permanecerá estable en 900.000 personas. b) la población será de 1.000.000 de personas al cabo de pocos años. c) la población será de 1.000.000 de personas al cabo de muchos años. d) … e) … Es importante antes de ejecutar un modelo anotar en un papel los resultados que esperamos observar en base a nuestra experiencia o intuición. Así, cuando obtenemos los resultados de la simulación podremos ver si éstos confirman nuestras expectativas. Si confirman nuestras expectativas, podemos tener aún una mayor confianza en ellas y en nuestra capacidad de percibir esa realidad. Ahora bien, si los resultados del modelo no confirman nuestras expectativas, hemos de verificar en primer lugar que no hay ningún error en el modelo, y si no es así, reconsiderar las bases de nuestras expectativas previas – Analizar los resultados y comprobar si los resultados que muestra el modelo coinciden con las expectativas. Imaginemos ahora que la catástrofe hubiese afectado sólo a 100.000 jóvenes o a 100.000 ancianos. - Introducir estas nuevas hipótesis en el modelo y comparar los resultados obtenidos para la Población total con los de la simulación de la catástrofe que afecta a 1000.000 adultos. - Comparar la amplitud de las oscilaciones de Nacimientos, Mudurez y Vejez, ¿se mantienen, reducen o amplifican las oscilaciones? Comentar las razones.

Enviar un modelo con imágenes por email Para enviar por email un modelo que contiene imágenes es necesario enviar el fichero del modelo, que tiene extensión mdl, junto con un fichero que se genera automáticamente con extensión met si se ha seguido la primera de las opciones comentadas, o con el fichero de extensión bmp si se ha seguido la segunda opción. El receptor del email debe de guardar ambos ficheros en una misma carpeta y al abrir el modelo éste incorporará las imágenes originales.

La solución al ejercicio se halla en el CD Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

19

Sinómimos de unidades En el Model – Settings- Units Equiv podemos indicar que unidades son sinómimos, ya que si no lo hacemos el Check Units no identifica la igualdad de palabras en mayúscula o minúscula, ni singular y plural. Por ejemplo podríamos definir las siguientes:

20

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

2. Creación de diagramas complejos

El aspecto gráfico de un modelo de simulación es importante tanto para facilitar el trabajo de la propia persona que lo crea, como para poder compartirlo con claridad con otras personas. Un diagrama con una clara presentación evita errores en su diseño y da confianza a la persona que lo debe de interpretar. Por ello, vamos a hacer a continuación un ejercicio cuyo principal interés es que el alumno conozca la forma de manejar diagramas que adquieren una cierta complejidad gráfica. Los principales puntos de interés de este tema son: 1.- crear canales de flujos con curvas y bifurcaciones. 2.- añadir color a los gráficos para resaltar ciertos aspectos. 3.- uso de las “shadow variables” 4.- creación de avisos para valores máximos y mínimos de una variable. 5.- representaciones con gráficos X-Y

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

21

2.1. Caso. Desarrollo de una epidemia

Supongamos una población inicialmente sana, en la cual aparece un cierto número de infectados por una enfermedad contagiosa. Un individuo podrá transmitir o infectarse de la enfermedad de otros individuos. La transmisión de la enfermedad se produce debido a la proximidad física. Durante el proceso infeccioso, los individuos pueden pasar por todos o algunos de los siguientes estados: o Susceptibles (S), estado en el cual el individuo puede ser contagiado por otra persona que esté infectada; o Infectado (I),estado durante el cual el individuo se halla infectado y puede además infectar a otros; o Recuperado (R), o curado, estado durante el cual el individuo no puede ni ser infectado por haber adquirido inmunidad (temporal o permanente) ni infectar (por haber recuperado o haber pasado la etapa contagiosa de la enfermedad). Entre las enfermedades infectocontagiosas encontramos dos grupos principales: o Las que confieren inmunidad al infectado (temporal o permanente) una vez recuperado, la mayoría de origen viral (sarampión, varicela, poliomielitis); y o Las que, una vez recuperado, el individuo vuelve a ser susceptible inmediatamente, entre las que encontramos las causadas por agentes bacterianos (enfermedades venéreas, peste, algunas meningitis) o protozoos (malaria). Teniendo en cuenta los distintos estadios relacionados con un proceso infeccioso, los modelos epidemiológicos se dividen en tres grandes grupos: SIR: El modelo susceptible-infectado-recuperado, relacionado con las enfermedades que confieren inmunidad permanente y un ciclo típico incluye los tres estados. Esto no quiere decir que todos los individuos de una población deban pasar por estos, algunos no serán infectados y permanecerán sanos, o sea siempre en estado S, otros serán inmunizados artificialmente por vacunación, o algún otro método y pasarán a ser R sin haber estado infectados. SIRS: El modelo susceptible-infectado-recuperado-susceptible, idéntico al anterior, pero aplicable a casos en que la inmunidad no es permanente y el individuo vuelve a ser susceptible después de un cierto periodo, tal como la gripe. SIS: El modelo susceptible-infectado-susceptible; se usan en casos en que la enfermedad no confiere inmunidad y el individuo pasa de estar infectado a susceptible nuevamente, saltando la etapa R. Un modelo puede tener en cuenta la dinámica vital de la población (nacimientos, muertes, movimientos migratorios) dependiendo del horizonte temporal analizado, y de las características de la enfermedad y de la población estudiada.

22

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

El modelo Vamos a utilizar como referencia de nuestro modelo a uno de los modelos epidemiológicos más conocidos de la literatura biológica. Es el modelo SIR de Kermack y Mc Kendrick, http://mathworld.wolfram.com /Kermack-McKendrickModel .html que se expresa como:

siendo S la población susceptible de enfermar, I la población infectada, y R la población que ha pasado la enfermedad y se halla recuperada. Existen dos constantes que son la tasa de infección (beta) y la tasa de curación o recuperación (gamma). Para dibujar el Diagrama de Flujos pulsamos Model – New File, indicamos Initial Time = 0, Final Time = 20, Time Step=1, Units for time=mes y seguimos los siguientes pasos. Creamos los 3 niveles

Añadimos el flujo de vacunados

Desplazamos el flujo hacia abajo

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

23

Pulsamos en el círculo situado sobre el canal del flujo y lo desplazamos abajo a la derecha para dibujar la entrada en recuperados.

Dibujamos el flujo de expuestos y repetimos el proceso. obteniendo un conjunto de flujos que se realimentan.

Completamos el modelo con los flujos de enferman, curan y mueren.

Pulsando con el ratón derecho sobre el símbolo del flujo de muertes podemos modificar la situación del texto, y su color.

24

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Pulsando con el botón derecho del ratón sobre los círculos que hay en las flechas o los flujos es posible modificar los colores de los mismos para resaltar determinadas relaciones en el modelo.

Variable duplicadas Podemos añadir elementos duplicados (o shadow variables). pulsando en y se nos abre un menú donde podemos escoger la variable que deseamos copiar. La utilidad de estas copias es evitar que se produzcan excesivos cruces de flechas en el modelo. En nuestro caso crearemos la variable Total población como suma de los tres posibles estados.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

25

Las ecuaciones son sencillas ya que los Niveles varían en función de las entradas y salidas que les hemos asignado, con su signo correspondiente, y los flujos son en general el producto del valor de un nivel por el de una tasa. Hay algunas formulas más complejas: enferman Aplicamos en la ecuación la fórmula del modelo de Kermack y Mc Kendrick, según la que el número de personas que enferman se puede calcular como el producto del número de personas susceptibles, por el de personas infectadas por la tasa de contagio. tensión La formula básica de las personas vacunadas es igual al número de personas susceptibles multiplicado por la tasa de vacunación (ésta depende del tipo de enfermedad, de factores culturales, etc.), es decir: vacunadas=susceptibles x tasa de vacunación. Deseamos introducir en esta ecuación el hecho de que las personas se vacunan más cuando perciben que existe un riesgo importante de contraer la enfermedad. Calculamos este riesgo como el cociente enferman/susceptibles, que indica cuantas personas enferman en relación a la cantidad de personas que pueden enfermar. Creamos la variable tensión que recoge tanto la tasa de vacunación como el cociente enferman/susceptibles, es decir tensión= (enferman/susceptibles)*tasa de vacunación.

Alertas de valores mínimo y máximo Podemos indicar al software que nos interesa recibir un aviso (Warning) cuando una variable toma una valor menor a cierto límite inferior, o bien un valor mayor que un cierto límite superior. Para ello indicaremos estos valores en la parte inferior de la ventana de la ecuación:

Gráficos X-Y El software nos muestra como resultado de la simulación la evolución temporal de las variables, pero podemos también observar esta evolución en un gráfico XY donde aparece reflejada la evolución de dos variables, una en el eje X y otra en el eje Y. Para ello hemos de definir la gráfica en la opción Control – Panel indicando la variable que deseamos ver en el eje X y cual en el eje Y, por ejemplo podemos desear ver en el eje X a la variable enferman y en el eje Y la variable muertes.

26

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

En este caso el resultado es la siguiente gráfica, que nos permite observar la relación que existe entre ambas variables en diferentes puntos de la simulación. Así tenemos un valor igual a 10 muertos para dos situaciones diferentes del número de personas que enferman, la primera con 90 personas que enferman y la segunda con solo 20.

En cierta forma esto mismo se puede observar con la representación tradicional pero es mucho más complicado hacerlo. Para ver la siguiente gráfica seleccionar las variables muertes y enferman en el menú Windows – Control Panel – Graph - New

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

27

Ecuaciones del modelo Nota 1: En este modelo no entraremos información sobre las unidades de las variables ya que el propósito del mismo es aprender a dibujar un diagrama de flujos complejo. Nota 2: Es normal que el software nos de un mensaje de aviso de que la variable Total población no se utiliza, ya que es un elemento que no influye en ningún otro elemento. Nota 3. La ecuación de enferman reproduce el modelo SIR de Kermack y Mc Kendrick, porque los expertos nos aseguran que funciona bien en la vida real, aunque no es coherente desde el punto de vista de las unidades. Niveles Susceptibles = +expuestos-enferman-vacunados Initial Value = 900 Infectados = +enferman-curan-muertes Initial Value = 100 Recuperados = curan+vacunados-expuestos Initial Value = 0 Flujos curan = Infectados*tasa de curación enferman = Susceptibles*tasa de contagio*Infectados expuestos = Recuperados*tasa de exposición muertes = Infectados*tasa de mortalidad vacunados = Susceptibles*tensión Variables auxiliares tasa de contagio= 0.001 tasa de curación= 0.4 tasa de exposición= 0.05 tasa de mortalidad= 0.1 tasa de vacunacion= 0.5 tensión=(enferman/Susceptibles)*tasa de vacunacion Total poblacion=Infectados+Recuperados+Susceptibles

28

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Comportamiento observado Pulsando en los iconos de la izquierda de la pantalla podemos ver con más detalle el comportamiento de algunas variables especialmente significativas.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

29

2.2. Ejercicio práctico - Definir que deseamos recibir un aviso de información (warning) cuando la variable de Infectados tome un valor mínimo de 50 o bien uno máximo de 150, y comprobar que se reciben estos tres avisos al ejecutar este modelo.

- Representar en un gráfico XY la evolución de las variables que recogen el flujo de personas expuestas y de las que enferman.

- Con ayuda de un grafico XY identificar qué Población total existe en aquellos periodos que se producen 15 muertes. Nota Para visualizar la evolución de las variables en las gráficas con marcas ( 1, 2, 3,..) además de colores, cosa que es útil si vamos a hacer copias en blanco y negro del documento, pulsar en Options – Options – Show Line Markers on Graph Lines

La solución al ejercicio se halla en el CD 30

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

3. Uso de variables cualitativas En los estudios sobre temas económicos, medioambientales o sociales nos encontramos con aspectos importantes del mismo que no podemos cuantificar pero que influyen de forma decisiva en el funcionamiento del sistema y que por lo tanto hemos de incluir en nuestro estudio. El siguiente ejercicio sirve para ver las posibilidades y las limitaciones con las que podemos abordar el estudio de este tipo de problemas. Los principales aspectos de este capítulo se centran en: 1. Crear y utilizar variables cualitativas en base a definir una escala de valores numéricos que reflejan el estado de un elemento del sistema. 2. Documentar el modelo, de forma que sea fácil de comprender el significado de las variables del sistema y de las ecuaciones que recogen las relaciones entre ellos. 3. Proponer acciones concretas en base a las simulaciones realizadas en el modelo.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

31

3.1. Caso. El joven ambicioso Un joven ambicioso de 20 años, al finalizar sus estudios básicos, nos comenta que ha oído a su padre mil veces decir que se ha "matado trabajando desde que era un chaval", y esto, visto las úlceras y problemas de corazón que tiene, debe ser algo más que una frase hecha. Tiene claro que no quiere acabar así. De nuestra conversación con él, sacamos los siguientes apuntes, un poco desordenados: - Sus ingresos deseados son de 5.000 euros al año. - Horas de trabajo: supone puede encontrar trabajo, ya que le sobra salud y ganas de trabajar. - Salario por hora: sólo con estudios básicos calcula unas 5 euros/hora. - Ingresos reales: son función del salario y las horas trabajadas. - Necesita algunas horas de descanso,-cuando se ha fatigado como todos, para él descanso es todo: dormir, comer, leer, etc. - Salud: no tiene ningún problema. - Fatiga: aunque es joven no es una máquina, será función de las horas que trabaje. - Gastos: de momento seguirá viviendo con sus padres ( gastos = 0 ) - Teniendo en cuenta sus ingresos deseados ( 5.000 euros) y el salario por hora (5 euros/hora), calculamos que debería trabajar 1.000 horas al año (4 al día). - Vista la experiencia de su padre, sabe que si llegase a trabajar 12 horas al día como hace él, su salud se resentiría. - Espera casarse y tener hijos a los 35, entonces necesitará mayores ingresos, tal vez unos 20.000 euros al año. Nuestro amigo, antes de tomar la decisión sobre el camino que desea seguir en la vida, y sólo para poner en orden sus ideas, nos pide que le hagamos un sencillo modelo que le ayude a planificar mejor su futuro. Comentarios: o El modelo debe de abarcar toda la vida laboral (de 20 a 65 años). o Hay dos aspectos que le preocupan especialmente al joven: la salud y los ingresos. o Necesita que le planteemos alguna alternativa, no que le adivinemos su futuro. o Se pueden incorporar al modelo los elementos que creamos necesarios para plantear alternativas. 32

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Estructuramos toda la información recibida en el siguiente diagrama causal, que tiene dos zonas: la económica y la relativa a la salud.

La traducción del Diagrama Causal al Diagrama de Flujos es necesaria para poder trabajar en el ordenador y no es un proceso automático, sino que con mucha frecuencia requiere crear nuevos elementos como Flujos. Una posible solución es la que se indica.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

33

Ecuaciones del modelo INITIAL TIME

= 20

FINAL TIME

= 65

TIME STEP=1

diferencia = ingresos deseados-ingresos reales Es la diferencia entre los ingresos deseados en ese momento menos los ingresos reales que obtiene. fatiga = WITH LOOKUP ( Horas de Trabajo ((0,0),(1000,0),(2000,10),(3000,20),(4000,40)) Es función de las horas de trabajo anual, según recogemos en la Tabla. Cuando las horas de trabajo son 1000, la fatiga es de 0, cuando trabaja 2000 horas la fatiga es de 10, y va aumentando. En la ecuación, indicar que esta variable es del tipo Auxiliary with Lookup y entrar los datos pulsado el botón de As Graph

Horas de Trabajo = variación Valor inicial: 0 Son las horas de trabajo anual que realiza. Inicialmente 0. Fuente Wikipedia “Working time” entre Holanda 1300 y Corea: 2300 horas al año. ingresos deseados = 5000+STEP(15000,35) Inicialmente son de 5.000 euros anuales, y a partir de los 35 años recogemos la idea que deseará 20.000 debido a compromisos familiares. ingresos reales = salario*Horas de Trabajo Los ingresos reales son el producto del salario por las horas de trabajo que realiza recuperación de la fatiga = WITH LOOKUP ( fatiga ((0,0),(10,10),(20,15),(30,20),(40,20)) Vamos a considerar que la Recuperación es función de la Fatiga, de forma que si no existe Fatiga (entendida como perdida de salud) a lo largo de la jornada, al final no hay nada que recuperar. Esta función está en la Tabla. El punto (0,0) indica que cuando no hay fatiga no hay recuperación, el punto (10,10) indica que cuando hay

34

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

una fatiga moderada, hay una recuperación igual, y cuando la fatiga es elevada, con valores de 20, 30 o 40 la recuperación no iguala totalmente la fatiga. salario=5 El salario es de 5 euros a la hora. Salud= recuperación de la fatiga-fatiga Valor inicial: 100 Tomamos una escala de +100 a -100, de forma que al principio, un joven de 20 años, su salud es 100, disminuirá en función de la fatiga y en cambio aumentará por la recuperación. tiempo en encontrar empleo = 5 Recogemos la idea que tardará 5 años en encontrar todo el empleo que desee. variación =(diferencia/(tiempo en encontrar empleo *salario)) *(Salud/100) En función de la Diferencia (euros) y del salario (euros/hora) calculamos cuantas horas mas necesita trabajar. Ya que esta variación no será instantánea la dividimos por el tiempo en encontrar empleo. Consideramos que aumentará las horas de trabajo en función que la salud (+100 a -100) de lo permita. Si su salud es 100 podrá aumentar las horas de trabajo todo lo que desee. En este modelo hemos visto como utilizar elementos cualitativos, como la salud y la fatiga, junto con elementos cuantitativos, como las horas de trabajo y los ingresos, y el uso de tablas para representar relaciones entre elementos sin emplear fórmulas matemáticas. La evolución de las variables del modelo inicial nos muestra que a los 65 años será una persona mal de salud y de ingresos, en concreto los resultados gráficos del modelo indican que acaba pobre, los ingresos no llegan a 5.000 euros, y muy enfermo.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

35

3.2. Ejercicio práctico A la vista de lo resultados de la simulación, el joven decide aprovechar hasta los 35 años que trabaja pocas horas (1000 horas al año) para estudiar algo más, de forma que a esa edad pueda obtener un mayor salario. - Simular en el modelo que a partir de los 35 años su salario pasa de 5 a 7 euros/hora, y analizar los resultados en la salud y los ingresos.

La solución al ejercicio se halla en el CD 36

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

4. Importación y exportación Es frecuente disponer de datos externos que deseamos incorporar al modelo de una forma automática. La utilización de datos externos tiene dos propósitos: o bien se usan como una variable del modelo o bien como una referencia para comparar la evolución del modelo con los datos históricos reales. En el capítulo 4.1 de introducción, veremos la problemática de emisión de gases CFC 11 y crearemos un modelo básico. En el capítulo 4.2 veremos la importación de datos desde una hoja de Excel. En el capítulo 4.3. veremos el sencillo mecanismo de exportación de los resultados de una simulación a una hoja de Excel. En el capítulo 4.4. realizaremos una simulación con un escenario diferente del modelo CFC 11 y por último en el capítulo 4.5. haremos una importación de datos en el modelo de Kaibab. Es necesario tener siempre presente que los datos externos, situados en una hoja de cálculo Excel o en un fichero en formato texto, no se recalculan durante la simulación.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

37

4.1. Caso. CFC 11 Los CFC se inventaron hace uno 70 años, mientras se buscaba una nueva sustancia refrigerante que no fuera tóxica. Una de estas nuevas sustancias, conocida por la marca comercial Freón de los laboratorios DuPont, sustituyó al amoníaco como refrigerante en los sistemas de refrigeración domésticos, y después se convirtió en el principal refrigerante de los sistemas de aire acondicionado de los automóviles. Durante los años 50 y 60, los CFC se utilizaron para otras muchas aplicaciones: como propelente en aerosoles, en la fabricación de plásticos y como limpiador para componentes electrónicos. Todas estas aplicaciones hicieron que el uso de los CFC a nivel mundial creciera exponencialmente. En los años 70, la industria utilizaba aproximadamente un millón de toneladas por año. A finales de los 60, los científicos todavía no eran conscientes de que los CFC podían afectar a la atmósfera. Esta ignorancia no se debía a una falta de interés sino a una falta de medios. Para la detección de las pequeñas concentraciones de estos compuestos en la atmósfera era necesaria una nueva generación de detectores más sensibles. El científico James Lovelock desarrolló un detector de estas características en 1970 y fue el primero en detectar la presencia de CFC en el aire. Lovelock informó que uno de estos compuestos, el CFC-11, tenía una concentración atmosférica de 60 partes por billón. Como referencia, la concentración de gas metano (natural) es 25.000 veces mayor.

38

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Lovelock detectó CFC-11 en el aire que pasaba sobre Irlanda proveniente de Londres. Esto no era sorprendente, ya que la mayoría de las grandes ciudades, entre las que se incluía Londres, utilizaban grandes cantidades de CFC. Sin embargo, Lovelock también detectó CFC-11 en las muestras de aire que se habían tomado directamente en zonas próximas al Atlántico Norte, donde no existía la polución típica de las grandes ciudades. Este descubrimiento inesperado impulso a Lovelock a realizar otros estudios. Para ello, solicitó al gobierno británico poder instalar su detector a bordo de un barco que viajaba desde Inglaterra hasta la Antártida. Su solicitud fue denegada argumentando que no se podía imaginar ninguna otra investigación tan poco útil como la de descubrir la concentración de CFC-11 presente en la atmósfera. No obstante, Lovelock insistió e instaló su detector a bordo del buque de investigación Shackleton en 1971. Dos años después, este investigador británico informaba sobre la detección de CFC-11 en todas las muestras tomadas en el Atlántico Sur y Norte. Lovelock dedujo acertadamente que el gas había sido transportado a gran escala por movimientos de vientos. Lovelock también afirmó que los CFC no eran perjudiciales para el medio ambiente, una conclusión que pronto se demostró que no era correcta. CFC en la estratosfera, datos reales.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

39

Un modelo de Clorofluorcarbono CFC 11 Este modelo simula la evolución del CFC 11 desde que es emitido por la actividad humana, su permanencia en la troposfera, su paso posterior a la estratosfera, su permanencia un tiempo ahí, y su final destrucción. Los valores temporales en Model – Settings son: INITIAL TIME = 1930 FINAL TIME = 2130 TIME STEP = 1 Units for Time: año

Tomamos un periodo inicial anterior a las emisiones de CFC y un plazo de análisis de 100 años, que nos puede permitir observar a largo plazo la dinámica del proceso.

40

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Ecuaciones del modelo CFC 11 Destruido=CFC 11 en la Estratosfera/vida media del CFC 11 en la estratosfera Units: Mkg/año CFC 11 en la Estratosfera= +migración a estratosfera-CFC 11 Destruido Initial value: 0 Units: Mkg CFC 11 en la Troposfera = emisiones de CFC 11-migración a estratosfera Initial value: 0 Units: Mkg migración a estratosfera= CFC 11 en la Troposfera/periodo de paso a la estratosfera Units: Mkg/año periodo de paso a la estratosfera= 5 Units: año vida media del CFC 11 en la estratosfera= Units: año

55

El modelo estará así completo excepto por la variable: emisiones de CFC 11

- Guardar el modelo con el nombre cfc_excel.mdl en el mismo directorio o carpeta donde se halla el fichero de Excel del que deseamos importar los datos.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

41

4.2. Importar datos de una hoja de Excel La forma más sencilla de importar los datos a un modelo es hacerlo desde una hoja de cálculo Excel. Si se dispone de los datos en otro formato, como un fichero txt o una base datos, es recomendable pasarlos previamente a una hoja de Excel. Las emisiones de CFC se incluyen como una serie de datos históricos y previsiones en el archivo cfc.xls - Abrir la hoja de Excel que contiene los datos: cfc.xls En la fila 2 tenemos los años y de las filas 4 a 7 tenemos los valores de las emisiones en millones de kg. por año. A partir de la columna BI tenemos un posible escenario o previsión. Utilizaremos el valor total de las emisiones que se halla en la fila 4. - En el modelo de Vensim, con el icono de ecuaciones activo, pulsar en la variable emisiones de CFC 11. - En la opción del menú Type que se halla en el lado izquierdo de la pantalla de edición de la ecuación escoger Data. Pulsar en la casilla inferior (donde dice Normal) y escoger Equation. Pulsar la etiqueta de Functions y escoger GET XLS DATA. Para entrar la función GET XLS DATA es necesario definir cuatro argumentos: ( „filename‟ , „tabname‟ , „time_row_or_col‟ , „first_data_cell‟ ) IMPORTANTE: se deben entrar estos argumentos con las comillas simples en cada caso, separados por comas. - Escribir en filename el nombre de fichero „cfc.xls’ ¡(no olvidar las comillas simples)! en el primer argumento. - Escribir en el segundo argumento tabname el nombre „cfc‟ que es la etiqueta de la hoja con los datos del fichero de Excel. - En el tercer argumento escribir en el nombre de la fila „2‟ (la fila donde están los datos de las fechas) - En el cuarto argumento escribir el texto „C4‟ (la celdilla donde empiezan los datos) - Pulsar Check Syntax, debe indicar Equation OK - Escribir las unidades de Mkg/año y pulsar OK para cerrar el editor de la ecuación. 42

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

On Error Si aparecen problemas en la importación desde Excel ir a Options-options y poner Row=L Col=C Windows Vista. Si utiliza ficheros de extensión .xlsx indíquelo así en la fórmula o bien guárdelos en formato .xls Simular - Escribir el nombre de la simulación (por ejemplo, cfc_base) y pulsar Run a simulation.

Vensim importa automáticamente los datos desde la hoja de cálculo y simula. El modelo comienza la simulación en 1930, ocho años antes de que ocurrieran las primeras emisiones de CFC 11, y Vensim nos informa de este hecho porque nuestros datos comienzan después de los datos que el modelo maneja. Aparecen los avisos:

- Seleccionar la variable emisiones de CFC 11 y ver el gráfico:

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

43

Podríamos haber entrado cero en la serie de datos para los años antes de 1938, pero tomamos los datos directamente de la fuente de datos que tenemos. En el gráfico siguiente podemos observar el retraso considerable que tiene la cantidad de CFC 11 en la estratosfera para los próximos 100 años en relación con las emisiones.

Hay que tener en cuenta que esta simulación se basa en una hipótesis optimista acerca de las emisiones de CFC 11. Exploraremos las implicaciones de esto a continuación. - Guardar el modelo con el nombre cfc_excel.mdl

44

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

4.3. Exportar resultados a una hoja Excel En la parte izquierda de la pantalla disponemos de dos iconos para ver numéricamente los resultados de la simulación a una hoja de Excel. El icono superior nos ofrece las series de valores en filas, y el icono inferior nos ofrece esas series en columnas. - Seleccionar la variable migración a la estratosfera y pulsar el icono superior.

En esta pantalla podemos hallar en la parte superior izquierda el icono Export Window Content si desplazamos el cursor por encima de los iconos. Pulsarlo. Al hacerlo NO se observa ningún cambio porque el software copia los datos al portapapeles de Windows. - Abril un hoja en blanco de Excel y pulsar Pegar. Obtenemos el siguiente resultado:

En la parte superior se hallan los periodos de tiempo y en la parte inferior los valores que ha tomado la variable. Esta prestación es especialmente interesante porque la salida gráfica del Vensim tiene muy pocas prestaciones, ya que el software es de simulación, y de esta forma podemos exportar los datos a un paquete gráfico ya sea directamente o bien a través del Excel.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

45

4.4. Ejercicio práctico. CFC 11 Vamos a simular que la reducción de emisiones de CFC no es tan intensa. - Abrir el modelo cfc_excel.mdl y ejecutarlo dando como nombre a la simulación: cfc_base. - Abrir la hoja de cálculo cfc.xls e introducir los valores siguientes que reproducen una reducción de emisiones de CFC 11 menos intensa: 1938 a 1995 tomar los mismos valores existentes en el modelo. 2000 150 2005 100 2010 0 - Cambiar el nombre de la simulación, por ejemplo cfc_base9 para poder ver el impacto de forma comparativa con la simulación previa. Ha de obtener como resultado la gráfica siguiente, donde se observa un mayor nivel de CFC 11 en la Estratosfera.

- Exportar los resultados a la hoja de cálculo que contiene los datos. La solución al ejercicio se halla en el CD 46

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

4.5. Ejercicio práctico Kaibab En el modelo Kaibab (*) introducir como referencia los datos históricos reales que se facilitan en la hoja de Excel. Para ello, crear una nueva variable con el nombre de datos históricos, definirla del tipo Data – Equation y capturar los datos con la función GET XLS DATA.

Al ejecutar el modelo es normal que aparezca el siguiente mensaje, que indica que los datos históricos no llegan al final de la simulación.

- Comparar las gráficas de datos históricos con el resultado de la simulación.

Para ver una numeración sobre las líneas, lo que permite diferenciarlas en documentos en blanco y negro, pulsar el menú: Options – options y marcar la casilla: Show Line Markers on Graph Lines.

- Exportar los resultados a una hoja de Excel. (*) Libro “Teoría y ejercicios Prácticos de Dinámica de Sistemas” ISBN 84-607-9304-4 Capitulo 5.2 Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

47

ANEXO AL TEMA 4

GET XLS CONSTANTS permite importar un único valor en vez de una serie, tiene el formato: GET XLS CONSTANTS( {'filename'} , {'tabname'} , {'firstcell'} ) Es necesario definir la variable (prueba) como Data – Normal y escribir la expresión:

tomando la función del catálogo de funciones.

GET 123 DATA permite en general trabajar con hojas de cálculo Lotus 123 para aquellos usuarios que tengan instalado este software, tiene el formato GET 123 DATA( {'filename'} , {'tabname'} , {'time_row_or_col'} , {'first_data_cell'} )

GET XLS LOOKUPS Además de importar de una hoja de Excel un valor determinado o una serie de valores, podemos incorporar al modelo valores que se hallan en forma de matriz o vector, como en la imagen siguiente:

48

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Vamos a obtener de esta hoja de Excel el valor de los autos/habitante de algunas regiones. Creamos en el modelo la variable vector de datos y en su ecuación le indicamos el nombre del fichero (vector 1.xls), la hoja del mismo (Hoja1), la columna donde se halla la clave de búsqueda (B) y la columna donde está el dato que deseamos incorporar al modelo (F1). Definimos el tipo de variable de vector de datos como Tabla (Lookup), y añadimos al modelo los elementos que identifiquen las regiones (Región A, B,...) para obtener el valor que deseamos como salida de la tabla.

Las ecuaciones serían: Región Andalucía = 6 Región Aragón = 8 vector Andalucía = vector de datos(Región Andalucía) vector Aragón = vector de datos(Región Aragón) vector de datos=(GET XLS LOOKUPS('vector 1.xls','Hoja1', 'B','F1'))

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

49

Los resultados pueden ser similares a estos:

Observamos los valores (X,Y) de la tabla, según hemos definido en la fórmula, y el valor que toma la variable vector 1 Andalucía que es de 46, y vector 1 Aragón de 48.

50

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Importar datos de un fichero de texto En vez de dirigir Vensim a una hoja de cálculo Excel que contiene los datos, podemos utilizar datos que tengamos en formato txt. Para ello veremos como deberemos de cambiar el formato de ese fichero txt a un fichero con extensión vdf que Vensim puede aceptar. De hecho los ficheros vdf recogen los resultados de las simulaciones de Vensim (datasets). Un dataset se crea al ejecutar un modelo. En primer lugar prepararemos el modelo para la captura de los datos en formato txt.

- Seleccionar el icono Ecuaciones, y pulsar en la variable emisiones de CFC11. En Type cambiar donde dice Equation y escoger Normal. Pulsar OK.

A continuación vamos a cambiar el formato del fichero txt a formato vdf. Cuándo se ejecuta una simulación, Vensim busca un fichero vdf (dataset) que contenga los valores de la variable definida como Data - Normal. Si no encuentra ningún dataset con esa variable la simulación se detiene. Las emisiones de CFC están incluidas en el archivo cfc.dat .A diferencia de los datos de la hoja de cálculo anterior, este archivo no contiene ningún valor proyectado a partir del 2005, es decir no incluye datos para el año 2010. Utilizaremos este archivo de datos cfc.dat para crear un archivo vdf (dataset) en Vensim. - Abrir y examinar el archivo de texto cfc.dat utilizando a un editor de textos como Notepad o Bloc de Notas, (no usar Word porque añade valores de control y formato ocultos). La consulta del archivo es opcional; el único interés que tiene es poder revisar los datos. Verá los datos que se muestran en el formato siguiente, con el nombre variable seguido en la fila siguiente por una columna para el tiempo y una columna para valores: emisiones de CFC 11 1938 0,1 1939 0,1 … … 1990 216,1 1991 188,3 1992 171,2 1995 100,2 2000 50,4 2005 21,0 Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

51

- Cerrar el archivo cfc.dat sin guardarlo para no introducir cambios involuntariamente. Primero necesitamos convertir la serie de datos del archivo de texto cfc11.dat a un archivo de datos binario de Vensim (cfc.vdf). - Escoger del menú el Model> from .dat format. Escoger el archivo cfc.dat y pulsar Abrir. Debe recibir el mensaje „Conversion completed without error‟ y una ventana de salida le mostrará el número de valores tomados para la variable emisiones de CFC 11 y para el Tiempo. Los instrumentos del análisis ahora trabajarán con el dataset cfc.vdf. - Pulsar OK en la caja del mensaje y cerrar la ventana de salida. - Abrir el Panel de Control y pulsar en Datasets, dejando solo activo el dataset cfc.vdf. Para ello si es necesario pulsar dos veces sobre el nombre de la simulación anterior (cfc_base.vdf) para suprimirla. Pulsar Close. - Pulsar el diagrama de flujos en la variable emisiones de CFC 11 seleccionarlo como la variable de trabajo y entonces pulsar en el icono de Gráfico.

para

Se muestra un gráfico de emisiones de CFC 11 en base al dataset cfc.vdf.

- Cerrar el gráfico. Observar que esta gráfica llega sólo hasta 2005 ya que las emisiones proyectadas a partir de esa fecha no están incluidas en el fichero de entrada en formato dat.

52

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Simulación - Pulsar el botón de Set Up a Simulation. - Indicar un nombre para la simulación (por ejemplo, cfc_base) y escribir el nombre del dataset creado anteriormente, cfc.vdf, en una caja en la parte izquierda (la caja de edición justo al lado del texto que indica el método de la integración Euler).

- Pulsar el botón de Simular. Aparecen los avisos:

Resultados - Pulsar en el botón del Panel de Control escoger la etiqueta de Datasets y dejar solo activa la dataset cfc_base , puede hacerlo pulsando dos veces en el dataset cfc. Agregar la definición siguiente en la opción Graph - New:

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

53

Para ver todas las variables con la misma escala señalar las marcas

- Pulsar en la etiqueta de Graph y en el botón Display.

- Guardar el modelo con el nombre cfc_dat.mdl La serie de datos de entrada de emisiones de CFC 11 finaliza en el 2005 y esto significa que el último dato en la serie ( que es 21,0 ) se utiliza en períodos de tiempo posteriores al 2005, lo cual no es muy realista. A causa de esto, el valor de CFC 11 en la Troposfera se estabiliza después del año 2020, mientras que CFC 11 en la Estratosfera mantiene su tendencia paulatinamente decreciente. El consumo y emisión de CFC 11 es probable de continúe disminuyendo en los años siguientes, pero es menos probable que las emisiones de CFC 11 continúen a una tasa fija de 21,0 Mkg/Año. Vamos a dejar abierta la serie de datos que contiene un pronóstico optimista para emisiones de CFC 11. 54

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

5. Creación de juegos de simulación Los juegos son una manera de participar activamente en el desarrollo de una simulación donde el usuario interviene activamente en las decisiones que afectan al resultado de la simulación en cada período de tiempo. Una simulación normal se ejecuta completa a lo largo del plazo de tiempo establecido en las condiciones iniciales del modelo, aunque un modelo de simulación también puede ser ejecutado como un juego por etapas, introduciendo cambios en las variables de juego a lo largo de la ejecución. En la Parte 1 se comenta la problemática de construcción de casas y se plantea un modelo básico. En la Parte 2 se muestra como puede realizarse un juego de simulación. La Parte 3 pide al alumno que haga con total libertad un juego con el modelo de las casas, y en la Parte 4 se pide al alumno que retome el modelo de los cerdos y realice un juego como forma de definir una política que reduzca las oscilaciones.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

55

5.1. Caso. Construcción de viviendas

En el sector de la construcción de viviendas existe una importante demora que aparece entre la demanda de viviendas por los compradores y la oferta de casas ya terminadas.

El modelo Construir el modelo como se muestra a continuación en el diagrama y las ecuaciones. Los parámetros temporales son : INITIAL TIME = 0 FINAL TIME = 100 TIME STEP = 0.5 Units for Time: mes

56

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Estructura del modelo El modelo muestra un ciclo de retroalimentación negativo con varias demoras debidas a los plazos para planificar y construir las casas.

El sistema tiene inicialmente un comportamiento estable, según los valores definidos a continuación para los elementos en las ecuaciones. Podemos anotar (a lápiz) estos valores sobre el diagrama para comprender esta situación inicial.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

57

Ecuaciones del modelo casas en construccion = construccion-terminacion Initial value: construccion * plazo para construir casas Units: casas casas planificadas = +planificacion -construccion Initial value: planificacion*plazo para planificar la construccion Units: casas casas terminadas = +terminacion-demolicion Initial value: 6000 Units: casas construccion = casas planificadas / plazo para planificar la construccion Units: casas/mes demanda de casas = 6000 Units: casas demolicion = casas terminadas / vida media de una casa Units: casas/mes diferencia = demanda de casas - casas terminadas Units: casas planificación = MAX( 0, reemplazo + (diferencia / plazo para anular la diferencia)) Units : casas/mes reemplazo = demolicion Units: casas/mes terminacion = Casas en construccion / plazo para construir casas Units: casas/mes plazo para construir casas = 6 Units: mes plazo para planificar la construccion =3 Units: mes plazo para anular la diferencia = 8 Units: mes vida media de una casa = 1200 Units: mes Guardar el modelo con en nombre casas.mdl. 58

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

5.2. Creación del juego de simulación

Se comenzará el modelo en equilibrio. Se establece la demanda de viviendas en 6000, que es el valor inicial para casas terminadas. Debido a esto, diferencia es 0, así que la planificación es igual al reemplazo, que a su vez es igual a demolición. Debido a los valores iniciales que hemos tomado para los niveles, por ejemplo casas planificadas que se inicia igual a planificación * plazo para planificar la construcción , todos los elementos están en equilibrio. - Ejecutar el modelo y comprobar que el comportamiento es estable. El modelo es importante para validar nuestra percepción previa del sistema real. Por otra parte podemos introducir cambios durante la simulación para conocer más acerca del comportamiento del modelo. Por eso, la demanda de casas se mantiene en 6000 durante 10 meses, y luego la incrementamos a 6050. Para hacerlo, introducir el siguiente cambio en la ecuación: demanda de casas = 6000 + STEP ( 50, 10) Units: casas La función STEP toma dos argumentos: height (altura del escalón) y start time (periodo de inicio). Adopta valor 0 hasta alcanzar el start time y a partir de entonces el valor height. Esta función es útil en un modelo porque es una función que genera una amplia gama de respuestas. Otras funciones usuales para modificar así un modelo son PULSE y RAMP . Para añadir la ecuación anterior, abrir con el Equation Editor la variable de demanda de casas. - Escribir el número 6000, luego el signo más. Pulsar la solapa Functions y luego moverse hacia abajo hasta ver la función STEP en la lista. Pulsar entonces en STEP y luego en el botón Add Sel . - El argumento {height} debe estar resaltado, escribir el valor 50, y pulsar dos veces en {stime} y escribir 10. La ecuación ha de quedar: 6000+STEP(50,10) sin corchetes. Entrar las unidades y pulsar OK.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

59

Gráficos WIP (Work in progress) - Abrir el Control Panel y crear un Graph - New tal y como se muestra a continuación. Poner atención en marcar la opción AS WIP Graph.

Ver nota explicativa en el anexo al final de este capítulo Añadir Variables de Juego El objetivo de este juego es conseguir satisfacer la demanda de casas (diferencia = 0), esto se logra ajustando y cambiando la variable planificación la cual introduce nuevas casas en el proceso de planificación y construcción. En rigor, planificación está determinada por una fórmula. Está fórmula permite simular el modelo pero no proporciona un mecanismo para intervenir y cambiar el valor de planificación durante la simulación. Se necesita definir planificación como una variable Game (variable de juego). Para hacerlo: - Seleccionar el icono Equations y pulsar en la variable planificación. Se obtiene la ecuación: planificacion = MAX( 0, reemplazo + (diferencia/ plazo para anular la diferencia)) Units: casas/mes Esta ecuación se formula de modo que planificación no puede tomar nunca valores negativos; usando la función MAX, de este modo se puede plantear construir algunas casas o bien no construir ninguna. Para hacerla una variable Game, debemos cambiar su tipo como se indica a continuación. 60

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

- Pulsar en la flecha hacia abajo en el recuadro variable Type que dice Normal, y elegir Gaming de la lista. Pulsar OK y guardar el modelo.

Se puede convertir cualquier variable Auxiliar, Flujo o Constante en una variable Game. Durante la simulación, una variable de juego hace lo mismo que si fuera Auxiliar, Flujo o Constante. No obstante, durante un juego, se puede fijar el valor de esta variable en cualquier instante de tiempo mientras el juego avanza. Simular el modelo Antes de iniciar el juego, conviene ver como se comporta el modelo cuando se simula. Pulsar en el nombre de la simulación Runname: , escribir run1. Pulsar en el botón Run a simulation. Se genera un Work-In-Progress (WIP) custom graph con Control Panel- GraphDisplay, que muestra el comportamiento para tres variables del modelo: Casas terminadas, planificación y diferencia . El modelo está tratando de lograr que la diferencia sea cero. El escalón en la planificación proviene de demanda de casas. Se trata de ver ahora si podemos mejorar este comportamiento haciendo nosotros la planificación de las casas para tratar de alcanzar y mantener un 0 en la diferencia.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

61

5.3. Desarrollo del Juego Cerrar la gráfica y pulsar en el nombre de la simulación Runname, escribir game1, pulsar en el botón Game . Se genera un gráfico WIP vacio y la barra de Tareas cambia a la barra de Juegos.

Se muestra a la izquierda el Time = 0 (Periodo de juego actual) que indica que estamos al inicio del juego. El botón Stop detiene el juego. Los botones Move Forward (Mover adelante) y Move Backward (Mover atrás) mueven el juego en la cantidad de tiempo mostrada en el recuadro Amount to move (Cantidad a mover) En nuestro caso indica 0.5 porque es lo que hemos indicado en el Model - Settings.

Avanzar en el Juego - Mover el gráfico WIP, que se muestra pulsando el icono , a la zona inferior izquierda de su pantalla para no ocultar la variable planificación, que está resaltada. - Pulsar en la variable planificación, se verá su valor inicial (5), presionar Intro para salir sin cambiar este valor. Observar que el gráfico WIP desaparece detrás de la ventana del esquema del modelo. - Pulsar en el icono de Output windows para verlo de nuevo. Siempre se puede recuperar la visión de la gráfica pulsando este icono. - Pulsar dos veces en el recuadro Amount to Move (Cantidad a mover) en la barra de herramientas de juegos y escribir 5, en vez de los 0.5 actual, porque deseamos hacer cambios cada 5 meses. - Pulsar el botón Move Forward (Mover hacia adelante). . Entonces comenzará a dibujarse el gráfico WIP. El sistema está en equilibrio; no es necesario cambiar ningún parámetro porque la diferencia es actualmente cero (exactamente en el medio de la parrilla). - Pulsar en Move Forward una vez más, se verá un aumento de la diferencia. Después pulsar en planificación en el esquema, escribir 18, pulsar Intro. Con este hecho incrementamos la planificación de 5 a 18 casas al mes. Recuperar la pantalla de la gráfica. - Pulsar en Move Forward dos veces más. Verá como se reduce la diferencia mientras Casas terminadas muestra un aumento. Tenemos casi reducida la diferencia a cero. Lo mejor es parar de construir tantas casas.

62

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

- Pulsar en planificacion en el esquema, escribir 0, presionar Intro. - Pulsar en Move Forward.

¡Sorpresa! Hay un exceso en el objetivo, la meta (diferencia) es negativa (debajo del centro de la parrilla). Dado que no se puede planificar “casa negativas”, el mejor plan es no construir casas por un tiempo. - Pulsar en Move Forward hasta que la diferencia sea positiva (justo encima de cero a Time = 45). Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

63

Ahora se debería comenzar a construir de nuevo más casas, así no tenemos una brecha positiva en casas (para la cual se requieren más casas). Se puede anticipar esto construyendo algunas casas un poco antes de que la brecha sea positiva.

Retroceder en el Juego - Pulsar dos veces el botón Move Backward negativa)

(hasta que diferencia se haga

Lógicamente, no podemos volver atrás el mundo real. Pero con el objeto de probar diferentes opciones cuando el juego ha progresado hacia delante en alguna dirección podemos volver atrás en el juego. - Pulsar en planificacion en el esquema, escribir un número mayor (10, por ejemplo) y luego pulsar Intro.

64

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

5.4. Ejercicio práctico. Casas - Continuar jugando, tratando de mantener la diferencia en o cerca de 0 hasta que se alcance el periodo de tiempo 100. - Pulsar el botón Stop. El gráfico WIP mostrará algo similar a:

Los resultados del juego no son (probablemente) mucho mejores que en la simulación original (quizás sean peores). En el gráfico anterior diferencia fluctúa ampliamente en respuestas a las decisiones tomadas.

La solución al ejercicio se halla en el CD Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

65

5.5. Ejercicio práctico. Cerdos Tome el ejercicio de los cerdos (*), el cual muestra una importante oscilación en el valor de las existencias de embutidos en tocinerías, y trate de reducir estas oscilaciones realizando un juego de simulación con la variable cobertura deseada. Se propone que en vez de que la cobertura deseada sea un valor constante de medio mes, 0.5 meses, los tocineros deseen una cobertura igual a 0.4 meses cuando las existencias superan los 30 M de kilos, y desean una cobertura de 0.6 meses cuando las existencias disminuyen de esa cifra. En cualquier caso tiene total libertad para decidir la política que desee seguir para reducir las oscilaciones, ya sea utilizando esta variable o cualquier otra, utilizando un juego de simulación para ver y mostrar los resultados que produce. Para realizar este juego primero ha de definir una gráfica WIP del siguiente modo:

Indicar para las Existencias de embutidos en tocinerías valores para las Ys de 20000000 a 40000000, que el software convierte a formato exponencial. - Definir el tipo de variable de cobertura deseada como Auxiliary – Gaming. Ejecutar el juego con una unidad de tiempo = 1, eso permite hacer cambios con agilidad. Es posible que aparezcan en la pantalla warnings de alguna de las tablas, como la situada en efecto de cobertura en el precio, porque funciona fuera del rango que tiene definido. Puede omitir este aspecto ya que en este caso trabajan con el valor más próximo. (*) Libro “Teoría y ejercicios Prácticos de Dinámica de Sistemas” ISBN 84-607-9304-4 Capitulo 5.6 66

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

El resultado obtenido puede ser similar al este:

En este caso los resultados de nuestro juego no reducen las oscilaciones, es decir no mejoran el resultado de la simulación inicial basado en mantener la cobertura deseada constante en 0.5 meses.

La solución al ejercicio se halla en el CD Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

67

Anexo. Gráficos WIP (Work in progress) Type: Norm = muestra la grafica de la evolución temporal normalmente. Cum = muestra una grafica con el valor acumulado de la variable. Stack = muestra la grafica de la primera variable normalmente, la segunda variable se muestra como suma de la primera y la segunda variable seleccionada, la tercera variable se muestra como suma de la primera, la segunda y la tercera, y así todas las variables.

Y-min Y-max Los valores mínimo y máximo se definen en base a nuestras expectativas de los valores que van a tomar las variables, no hay una regla para definirlos previamente. WIP Graph El valor de As WIP Graph (150) indica el número máximo de etapas que va a tener la simulación. En ocasiones queremos limitar al número de etapas de la simulación, pero en general, como en este caso, indicamos cualquier número que sea muy superior al número de periodos de la simulación para que no afecte al juego.

68

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

6. Simulación interactiva Hemos visto en los capítulos anteriores el proceso de crear un modelo, ejecutarlo y ver la evolución de las variables a lo largo del periodo de simulación, ya sea en un formato gráfico o numérico. Una vez que observamos el comportamiento del modelo podemos modificar las ecuaciones o los valores de las Constantes, volver a ejecutar el modelo, y ver el nuevo comportamiento de algunas variables del sistema. Los softwares actuales permiten una mayor flexibilidad en estos procesos, y Vensim en concreto denomina a esta prestación con el nombre de SyntheSim. El nombre de SyntheSim se debe a que permite usar la Simulación para Sintetizar la estructura y la conducta de un modelo. Se presentan a menudo los eventos, las conductas y la estructura como una jerarquía de diferentes maneras de observar el mundo, con eventos que surgen de los patrones de conducta subyacentes y el comportamiento que surge debido a la estructura. Los modelos de simulación representan la estructura que, a través de la simulación, genera el comportamiento.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

69

6.1. Caso. La carrera de armamentos Va a construir un modelo sobre la carrera de armamentos, basada en que “a más armamentos del país A, el país B desea más armamentos” y “a más armamentos del país B, el país A desea más armamentos” relacionándola con el crecimiento económico de ambos. Dibuje el diagrama del modelo.

El diagrama anterior tiene dos características especiales. La primera es que se incluyen unos rectángulos grandes para delimitar cada uno de los lados de la carrera de armamentos. La segunda es la flecha larga, no circular, que conecta los dos lados. A continuación se muestra el proceso de construir una de estas características. - Dibujar el diagrama, excepto los dos rectángulos y la flecha desde Armamento Total 2 a armamento deseado 1, que se explicará a continuación.

Relaciones complejas La flecha desde Armamento Total 2 al armamento deseado 1 no es una curva normal, se crea usando varias flechas menores unidas a través de comentarios, que permiten formar estas flechas. Para esto necesita crear las uniones primero, después añadir las flechas, después suprimir las puntas de flecha extras y poner el tamaño de las uniones en 0. - Seleccionar la herramienta de Comentario. 70

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

- Pulsar en una parte vacía del esquema a la derecha de obsolescencia del armamento 1. - Seleccionar azul como el color de fondo (Background color). - Marcar en la casilla de verificación Use as arrow junction (Usar como unión de flecha). - Pulsar en OK. Se ha formado una caja de unión. - Cambiar el tamaño de la caja de unión para hacerla un poco más pequeña (aproximadamente 10x10). - Repetir las acciones anteriores a la derecha de obsolescencia armamento 2, o copiar y pegar la caja de unión. - Seleccionar la herramienta Flecha. - Dibujar una flecha desde Armamento Total 2 a la caja de unión más baja. - Dibujar una flecha de la caja de unión más baja hasta la superior. - Dibujar una flecha desde la caja de unión superior hasta armamento deseado 1 - Pulsar en las dos flechas inferiores, suprimir la señal de Arrowhead (Punta de flecha), en la parte superior, y poner el grosor de la flecha en el segundo grosor y el color en rojo. - Cambiar el grosor y el color en la flecha superior, para que sea igual que las otras. - Ajustar las posiciones de las cajas de unión y curvar las flechas para que queden bien. - Redimensionar las cajas de unión para tener tamaño 0. Para ello empujar el círculo hacia arriba y a la izquierda hasta que no se vea nada. Sugerencia: Para mover las cajas de unión cuando tienen el tamaño 0 se puede seleccionar la herramienta (Move/Size), seleccionar la línea alrededor de ellas y después mover el rectángulo de la selección.

Cajas de contenido - Seleccionar la herramienta de Comentario y pulsar en el área en blanco en la esquina superior izquierda del esquema. - En el diálogo seleccionar la Box y el Thickness 2 (en la parte inferior del menú), Escoger como Background un color verde claro, luego pulsar en OK. - Redimensionar la caja para que contenga la parte superior del modelo.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

71

NOTA Después de que haya creado la caja, el círculo del tamaño será visible por unos segundos. Si el cuadro de tamaño desaparece, pulse en la herramienta de Move/Size para hacerlo visible de nuevo. - Pulsar en la herramienta de Candado. - Pulsar en el rectángulo creado. Se resaltará. - Pulsar en el icono Llevar las palabras resaltadas a segundo plano en la barra de estado. Desaparecerá el resaltado y el rectángulo se colocará como fondo del modelo. - Repetir el proceso anterior en la mitad inferior del modelo, escogiendo un color azul claro.

Min, Max e Incremento En el editor de Ecuaciones puede entrar un valor mínimo, un valor máximo y un incremento para cada elemento.

Se usan para que se generen mensajes de aviso cuando las variables se hacen demasiado pequeñas o demasiado grandes. Con un rango por ejemplo de [10,500] se recibiría un aviso siempre que la variable fuera menor de 10 o mayor de 500. Para las Constantes, el rango se usa para especificar en los cursores – que veremos más adelante – los valores extremos que pueden tomar. En este caso el incremento indica cuánto cambia una Constante cuando el cursor se mueve. Por ejemplo el rango [10,500,5] permitiría a la Constante ir de 10 a 500 cambiando 5 en cada movimiento. El rango [0,1,1] podría usarse para un interruptor Si/No. Si no especifica ningún rango o incremento para una Constante el software los definirá en base de los valores del modelo. Un atajo Construya primero un país, tanto las variables como las ecuaciones, después pulse Select All – Copy, a continuación haga Paste en la zona inferior, cambie el nombre de las variables y complete las relaciones. Por último añada los cuadros. Ecuaciones del modelo Con la excepción de armamento deseado las ecuaciones para las variables “2” son iguales que aquellas para las variables “1” con un 2 en lugar de un 1 al final. Los rangos se muestran en paréntesis cuadrados a continuación de las unidades. 72

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

- Entrar desde Model – Settings los parámetros temporales: INITIAL TIME = 0 FINAL TIME = 100 TIME STEP = 0.125 Units for time: Año (algunas versiones del software no aceptan la ñ) armamento deseado 1= Armamento Total 2 * tasa de fuerza deseada 1 Units: M$ (M$ = millones de dólares) armamento deseado 2= Armamento Total 1 * tasa de fuerza deseada 2 Units: M$ armamento inicial 1= 50 Units: M$ [0,200,5] Armamento Total 1= gasto en armamento 1-obsolescencia armamento 1 Initial value: armamento inicial 1 Units: M$ capacidad de armamento 1= Capacidad Económica 1 * capacidad máxima de armamento 1 Units: M$/Año Capacidad Económica 1= crecimiento capacidad 1 – degradación capacidad 1 Initial value: capacidad económica inicial 1 Units: M$/Año capacidad económica inicial 1= 100 Units: M$/Año [10,500,5] capacidad máxima de armamento 1= 0.4 Units: Dmnl [0,1,0.05] ( Dmnl=Sin dimensiones ) construcción indicada de armamento 1= MAX(0,obsolescencia armamento 1 + (armamento deseado 1 - Armamento Total 1)/plazo corrección armamento 1) Units: M$/Año crecimiento capacidad 1= inversión 1 * efectividad de la inversión 1 Units: M$/Año/Año Degradación capacidad 1= Capacidad Económica 1/plazo vida capacidad 1 Units: M$/Año/Año Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

73

efectividad de la inversión 1= 0.15 Units: 1/Año [0.01,0.4,0.01]

Pulsar el botón

fracción de gasto en inversión 1= 0.3 Units: Dmnl [0,0.6,0.05] fracción utilización de la capacidad de armamento 1= WITH LOOKUP (ZIDZ (construcción indicada de armamento capacidad de armamento 1) Valores: (0,0),(0.4,0.4),(2,0.8),(3,0.9),(5,1),(10,1) Units: Dmnl

1,

gasto en armamento 1= capacidad de armamento 1 * fracción utilización de la capacidad de armamento 1 Units: M$/Año gasto en no armamento 1= Capacidad Económica 1 - gasto en armamento 1 Units: M$/Año inversión 1= gasto en no armamento 1 * fracción de gasto en inversión 1 Units: M$/Año obsolescencia armamento 1= Armamento Total 1/plazo de vida armamento 1 Units: M$/Año plazo corrección armamento 1= 5 Units: Año [1,20,1] plazo de vida armamento 1= 20 Units: Año [2,60,1] plazo vida capacidad 1= 30 Units: Año [3,80,1] tasa de fuerza deseada 1= 1 Units: Dmnl [0,5,0.1]

Una vez dibujado el modelo puede ajustarlo al tamaño de la pantalla con la opción: View – Zoom – Fit. Verificar que las unidades están correctas con Model – Units Check. 74

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Mostrar el comportamiento En ocasiones puede ser difícil conseguir comprender cómo la estructura del sistema causa el comportamiento. Superponiendo el comportamiento en la estructura y actualizando el comportamiento al instante podemos comprender mejor el modelo. - Pulsar en el icono de Run a Simulation y seleccionar la opción del menú View > Show Behavior (Ver > Mostrar Comportamiento), ahora observará lo siguiente:

La pantalla muestra sobre cada variable el comportamiento a lo largo del tiempo. Puede trabajar con el diagrama, mover palabras y flechas, y cambiar las ecuaciones viendo como se comportan. Si coloca el puntero del ratón encima de una variable y espera, aparecerá una versión más grande del gráfico pequeño.

El gráfico es similar al pequeño gráfico que aparece en el diagrama pero ahora es mayor y tiene una etiqueta con el nombre de la variable. Si hace varias simulaciones cada una se mostrará con un color diferente en todos los pequeños gráficos. Cargando y descargando la simulación en el Panel de Control puede controlar las que desea observar.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

75

6.2. Simulaciones interactivas - Pulsar en el icono de SyntheSim . - Responder Sí (Yes) a la pregunta de si quiere sobrescribir la simulación existente. Además de los gráficos de cada variable, observará que cada Constante tiene un cursor:

Los cursores aparecen debajo del nombre de las Constantes del modelo. En el modo SyntheSim se simulará el modelo y se mostrarán los resultados cada vez que hace un cambio a una Constante en el modelo o a una función gráfica (Lookup). Hay varias maneras de introducir cambios.

Mover los Cursores Puede modificar el valor de las constantes desplazando los cursores. - Colocar el ratón sobre el cursor debajo de la tasa de fuerza deseada 1 y pulsar el botón del ratón. Cuando hace esto el icono del cursor se coloca hacia adentro y el indicador puede moverse un poco para reflejar la posición actual del cursor. - Mover despacio el cursor hacia la derecha hasta que alcance aproximadamente 2. Observar como los armamentos cambian de una evolución constante a un crecimiento en forma de S. Los gráficos se pondrán con el fondo en rojo brevemente para indicar que sus escalas están aumentando y azul para indicar que están disminuyendo. - Liberar el botón del ratón. 76

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

El cursor que ha estado moviendo tendrá barras grises que indican que es el cursor actual. - Pulsar en el icono de Restablecer Cursor Actual . El valor para este cursor volverá al valor del modelo y el modelo se simulará de nuevo con las condiciones originales. Debería de observar los gráficos de las variables Armamento Total de 1 y 2 constantes.

Asignar valores al cursor Los cursores se mueven de un lado a otro dentro del rango impuesto en las ecuaciones para la Constante o, si no se fijó ningún rango, a lo largo de un rango calculado por Vensim teniendo en cuenta el valor de la Constante. También puede definir el valor de la Constante o el rango del cursor pulsando en las barras del cursor . - Pulsar en las barras del cursor (no sobre el cursor) debajo de la tasa de fuerza deseada 1. Se abrirá una caja de diálogo. Si se equivoca y pulsa en el icono, éste se deprimirá – libere el botón del ratón e inténtelo de nuevo.

- Modificar el Valor a usar para la simulación (Value to use for simulation) a 2, el Min a 1, el Max a 2 y el Incremento a 0.01. Después pulsar OK. El modelo simulará con la tasa de fuerza deseada 1 repítalo en 2 y mostrará los resultados. El cursor estará en el extremo derecho de su rango. - Desplazar el cursor de un lado a otro y repasar los resultados. De esta se forma consigue mucho más control sobre el cursor dentro de un rango definido de valores. - Pulsar la Tecla de Inicio (Home) . El valor de tasa de fuerza deseada 1 se restablece a 1, pero el cursor va a permanecer en el valor modificado. El rango no se modificará hasta que cambie la pantalla o detenga el SyntheSim. Si selecciona la casilla de verificación de Hacer los Cambios en el Cursor Permanentes (modelo modificado) (Make Slider Changes Permanent (modify model)) cuando hace los cambios de rango, estos se guardarán de forma permanente en el modelo.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

77

Usar las teclas de flecha Además de usar el ratón para mover el cursor se pueden usar también las teclas de flecha para cambiar los valores de las constantes. Existe un cursor diferente de los otros, de forma que la mayoría de los cursores se observarán así mientras que uno de ellos tendrá las barras oscuras como . El que tiene las barras oscuras es el cursor activo. Siempre que pulse en un cursor se pone activo. - El cursor activo debe ser el que está debajo de tasa de fuerza deseada 1. Si no es ese, pulsarlo. - Pulsar la tecla de la flecha derecha. El valor del cursor debe aumentar de 1 a 1.01 y observará un cambio pequeño en los gráficos. - Pulsar de nuevo y el valor modificará a 1.02 y así sucesivamente. - Pulsar la tecla de la flecha izquierda. El valor del cursor disminuirá en .01. Las teclas de flecha son muy útiles si quiere moverse despacio dentro del rango de una Constante. También pueden ser útiles si está trabajando con modelos más grandes y quiere hacer una simulación cada vez que modifica un valor (desplazando el cursor, hará a menudo dos o tres simulaciones).

Cambiar la función gráfica (Lookup) Los cambios en la función gráfica (Lookup) se hacen abriendo el editor de función gráfica (Lookup Editor) y modificándola. Cuando se hacen las modificaciones, el modelo se ha de simular de nuevo y se mostrarán los resultados. - Mover el cursor debajo de tasa de fuerza deseada 1 hasta que tome el valor 2 aproximadamente. - Pulsar en la fracción utilización de la capacidad armamento 1. Se abrirá el siguiente editor de la función gráfica (Lookup).

78

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

El editor de la función gráfica (Lookup) en el modo SyntheSim tiene un botón de Reset en vez de un botón de Cancel. Cada vez que hace un cambio en el valor en la función gráfica (Lookup) y se simula el modelo, no hay ninguna manera de cancelar el cambio. El icono de Reset (inicialización) vuelve a colocar los valores originales del modelo. - Colocar el ratón encima del tercer punto en el gráfico y luego arrastrar este punto hacia arriba. - Observar el comportamiento de las variables mientras mueve los puntos. - Pulsar en el icono Close para cerrar el Editor de Ecuaciones.

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

79

6.3. Experimentos de simulación Hasta ahora hemos estado observando un solo gráfico para cada variable. Puede guardar las simulaciones interesantes y también los resultados de las simulaciones múltiples de los gráficos en miniatura. - Pulsar en el icono de Restablecer todas las Constantes (Reset all Constants). Esto no sólo restablece los cambios hechos a las constantes sino también cualquier cambio que haya hecho a las funciones gráficas (Lookup). - Pulsar en el icono Guardar esta Simulación a ..

.

- Teclear el nombre baserun. - Pulsar en Guardar. Observará que la pantalla parpadea y no parece cambiar. Esto es así porque la simulación baserun es igual que el Current actual. - Aumentar el valor del cursor en la tasa de fuerza deseada 1 a 2. Deben aparecer dos gráficos (en rojo y azul) sobre cada variable.

- Pulsar en el icono Guardar esta Simulación a.... en Guardar.

Teclee el nombre strong1 y pulse

- Aumentar el valor del cursor de tasa de fuerza deseada 2 a 2. - Pulsar en el icono Guardar esta Simulación a.... pulsar en Guardar.

Teclee el nombre strongboth y

- Pulsar primero en Armamento Total 2 y luego en la herramienta de Gráfico

80

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Observará el gráfico siguiente:

Observar como las simulaciones strong1 y strongboth terminan casi en el mismo lugar. - Pulsar primero en la Capacidad Económica 2 y luego en la herramienta de Gráfico para ver que cuando el país 2 es más agresivo en la fabricación de armas, la consecuencia no es más armas sino menos actividad económica.

Cargar y descargar las Simulaciones Desde el icono del Panel de Control se pueden cargar y descargar simulaciones, es decir dejarlas activas o visibles, y cambiar otras condiciones. - Pulsar en el icono Panel Control y luego en el icono de Datasets (Simulaciones). - Pulsar en strong1 y luego en el icono polución crítica) Aquí se comparan varias situaciones, y esta expresión será cierta si Población > 8E9 y también la disponibilidad de alimentos < .75 o Polución > polución crítica, o ambas. Las expresiones lógicas pueden ser difíciles de comprender y se recomienda no combinar demasiadas en una misma Condición. En el segmento consecuencias, es a menudo usual tener muchos puntos combinados con :AND: pero raramente son útiles ecuaciones más complicadas. La parte correspondiente a la condición de una Constraint está restringida a la comparación de variables con variables y variables con números. La única excepción es que se puede usar variable = expresión, o un Test Input con nombre como componente de una de las condiciones lógicas. Esto es: población y capacidad de carga :THE CONDITION : Población < Capacidad de carga * 1.1 :IMPLIES: muertes por sobrepoblación < 1000 es errónea porque toma la forma de variable < expresión: población y capacidad de carga :THE CONDITION : Población = Capacidad de carga * 1.1 :IMPLIES: muertes por sobrepoblación < 1000 usa variable = expresión y es una expresión correcta. Los Test Inputs se usan en la Condición de una Constraint, como en: nombre de la constraint :THE CONDITION : nombre del test imput :IMPLIES: muertes por sobrepoblación < 1000 donde nombre del test imput es un Test Input. Los Test Inputs son tratados como variables lógicas que toman el valor „cierto‟ si están activos, o „falso‟ si no lo están. En una Constraint sólo podemos a usar funciones simples (MIN, MAX, SUM, etc.).

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

139

10.4. Funciones del Reality Check Las funciones de Reality Check son: 1) para Test Imputs o Condiciones :THE CONDITION: RC DECAY(basis,decaytime[,start[,duration]]) RC GROW(basis,growrate[,start[,duration]]) RC RAMP(basis,mult,ramptime[,start[,duration]]) RC STEP(basis,mult[,start[,duration]])

2) para Consecuencias :IMPLIES:

RC DECAY CHECK(grace,basis,decaytime[,start[,duration]]) RC GROW CHECK(grace,basis,growrate[,start[,duration]]) RC RAMP CHECK(grace,basis,mult,ramptime[,start[,duration]]) RC STEP CHECK(grace,basis,mult[,start[,duration]]) Las funciones RC y RC … CHECK son muy similares. Cada función controla los valores que toma una variable durante un plazo de tiempo, y define para ella unos nuevos valores. Estas funciones permiten indicar el periodo de tiempo en el cual se desea que ocurra el cambio a la nueva trayectoria, o bien cuando se desea que comience el Test con la variable RC START TIME. Normalmente RC START TIME es un valor que se coloca próximo al inicio de la simulación. Si no se ha definido RC START TIME la trayectoria de la variable cambia en el periodo INITIAL TIME + TIME STEP. Las funciones RC emplean los siguientes argumentos. basis es el nombre de la variable indicado en la parte izquierda de la comparación, y es el valor sobre el que se realizará el cambio de la trayectoria, y se multriplicará por el mult cuando empiece el cambio de la trayectoria. grace es el plazo de tiempo de espera hasta que empiece a actuar la función RC...CHECK. Se usa si deseamos empezar la prueba después del INITIAL TIME o del RC START TIME. mult es el valor por el que será multiplicado basis hasta lograr el nuevo valor. En general es número como 0 o 2. 140

Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

Resumen RC DECAY( basis, decaytime [,start[,duration]]) RC DECAY CHECK( grace, basis, decaytime [,start[,duration]]) Fuerza a la variable basis a un descenso exponencial hacia cero en un plazo de tiempo (decaytime). RC GROW(basis, growrate [,start[,duration]]) RC GROW CHECK(grace, basis, growrate [,start[,duration]]) Fuerza a la variable a un crecimiento exponencial a una determinada tasa (growrate). . RC RAMP(basis , mult , ramptime [,start[,duration]]) RC RAMP CHECK(grace, basis, mult, ramptime [,start[,duration]]) Fuerza a una variación de valor (basis*mult) durante un plazo (ramptime). Este cambio es más progresivo que una RC STEP y es útil para verificar los efectos de cambios lentos hacia un nuevo valor en la variable. RC STEP(basis, mult [,start[,duration]]) RC STEP CHECK(grace, basis, mult [,start[,duration]]) Fuerza a un cambio brusco en la trayectoria de la variable en RC START TIME. La estructura de la función es: var = RC STEP(var,0.5,10) Esto provoca un incremento del 50% en el valor de la variable en el periodo 10 y después permanece constante. La estructura de la funcion RC STEP CHECK es: Sin población no hay producción :THE CONDITION: población = RC STEP(población,0,20) :IMPLIES: producción mueve los items resaltados en la lista de Test Inputs a la lista Active Test Inputs . 50 que es la hipótesis que deseamos comprobar, y en :IMPLIES: Juan Martín García – Ejercicios avanzados en Dinámica de Sistemas

149

indicamos divisiones > 0 que es el resultado que debe producirse. Al hacer el Control Check la respuesta es que SI que se cumple esa Constraint. --------------------------Starting testing of Constraint- frio adormece Test inputs : temperatura>50 . . . testing - frio adormece --------------------------***************** 1 successes and 0 failures testing 1 Reality Check equations The Reality Check Index as run is 0.0714286 Closeness score is 100.0% on 1 measurements -------------------------Vamos a modificar la ecuación de forma que valide si la condición temperatura
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF