You are on page 1of 187

n : 2015

Proyecto de Grado

Presentado ante la ilustre Universidad de Los Andes como requisito parcial para
obtener el Ttulo de Ingeniero de Sistemas

n e Implementacio
n del prototipo
Especificacio
o de Experimentos en
de la librera para Disen
Galatea
Por

Br. Miguel Antonio A


nez Nu
nez
Tutor: Mayerlin Y. Uzcategui Sulbaran

Merida, Venezuela, Junio 2015

c
Derechos Reservados 2015
Universidad de Los Andes

Especificaci
on e Implementaci
on del prototipo de la librera
para Dise
no de Experimentos en Galatea
Br. Miguel Antonio A
nez Nu
nez
Proyecto de Grado Sistemas Computacionales, 175 paginas
Resumen: La plataforma Galatea desarrollada para permitir la simulacion y modelado, incorporando agentes que razonan y act
uan sobre su entorno, esta formada por
un conjunto de libreras que pueden trabajar tanto en conjunto como individualmente.
El documento presente propone la especificacion de una nueva librera para Galatea
que permitira incorporar el Dise
no de Experimentos a los modelos de simulacion en
Galatea. Todo esto pensando en la facilidad de manipulacion para usuarios no expertos
en simulacion o en el uso de Galatea.
Palabras clave: Simulacion, Galatea, Dise
no de Experimentos, Interfaz Grafica de
Usuario

Indice
Indice de Tablas

xi

Indice de Figuras

xii

1 Introducci
on

1.1

Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Definicion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3.1

Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3.2

Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . .

1.4

Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5

Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6

Estructura del Documento . . . . . . . . . . . . . . . . . . . . . . . . .

2 Marco te
orico
2.1

2.2

Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1

Definicion del sistema . . . . . . . . . . . . . . . . . . . . . . . .

2.1.2

Formulacion del modelo . . . . . . . . . . . . . . . . . . . . . .

2.1.3

Formalismo DEVS . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.4

Enfoques para simulacion . . . . . . . . . . . . . . . . . . . . .

Dise
no de Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2.1
2.3

Parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

Galatea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3.1

10

Componentes basicos de Galatea . . . . . . . . . . . . . . . . .

iii

2.3.2

Estructura de un programa Galatea . . . . . . . . . . . . . . . .

11

2.3.3

Aspectos Experimentales en un Modelo Galatea . . . . . . . . .

14

3 Modeloteca
3.1

3.2

3.3

3.4

3.5

3.6

3.7

16

Taquilla simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

3.1.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

17

3.1.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

17

3.1.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

18

Sistema Burocratico . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.2.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

20

Graficando los valores de una cola . . . . . . . . . . . . . . . . . . . . .

20

3.3.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.3.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.3.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

21

Taquilla Bancaria con dos procesos . . . . . . . . . . . . . . . . . . . .

22

3.4.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.4.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.4.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

23

Presentacion de valores de una cola . . . . . . . . . . . . . . . . . . . .

23

3.5.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.5.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

24

3.5.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

24

Puerto con cuatro tipos de embarcaciones . . . . . . . . . . . . . . . .

24

3.6.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.6.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.6.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

27

Sistema de tres colas . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.7.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.7.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

29

3.7.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

30

3.8

3.9

Procesamiento de partes con ajuste de

temperatura

. . . . . . . .

30

3.8.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.8.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.8.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

33

Sistema de fundicion para producir lingotes de acero

. . . . . . . . . .

33

3.9.1

Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

35

3.9.2

Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.9.3

Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

37

3.10 Maquina con fallas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.10.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.10.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.10.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

40

3.11 Proceso de ensamblado con sincronizacion . . . . . . . . . . . . . . . .

40

3.11.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

41

3.11.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.11.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

42

3.12 Ruta crtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

3.12.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.12.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.12.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

46

3.13 Lnea de autob


us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

3.13.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

47

3.13.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

49

3.13.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

49

3.14 Sistema presa depredador . . . . . . . . . . . . . . . . . . . . . . . . .

51

3.14.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

51

3.14.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

52

3.14.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

53

3.15 Sistema ecologico perturbado . . . . . . . . . . . . . . . . . . . . . . .

53

3.15.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

54

3.15.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

56

3.15.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

56

3.16 Sistema dinamico (Puerta Oscilante) . . . . . . . . . . . . . . . . . . .

58

3.16.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

59

3.16.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

60

3.16.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

60

3.17 Grafico de la cola normal y antitetica . . . . . . . . . . . . . . . . . . .

60

3.17.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

61

3.17.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

61

3.17.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

62

3.18 Puerto petrolero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

3.18.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

63

3.18.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

66

3.18.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

67

3.19 Eyeccion de piloto de un avion . . . . . . . . . . . . . . . . . . . . . . .

69

3.19.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

71

3.19.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

72

3.19.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

73

3.20 Atractor Lorenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

3.20.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

74

3.20.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

74

3.20.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

75

3.21 Modelo mundial de Forrester . . . . . . . . . . . . . . . . . . . . . . . .

75

3.21.1 Tabla de Analisis . . . . . . . . . . . . . . . . . . . . . . . . . .

75

3.21.2 Variables Definidas . . . . . . . . . . . . . . . . . . . . . . . . .

77

3.21.3 Codigo Propuesto para Dise


no de Experimentos . . . . . . . . .

78

4 Dise
no

81

4.1

Tipos de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

4.1.1

Atomicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

4.1.2

Compuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

Formas de Experimentar . . . . . . . . . . . . . . . . . . . . . . . . . .

85

4.2.1

85

4.2

Valor Simple con entrada desde el teclado . . . . . . . . . . . .

4.3

4.2.2

Indicando valores de un subconjunto de valores . . . . . . . . .

86

4.2.3

Indicando valores en un Rango dado (Intervalos) . . . . . . . . .

86

4.2.4

Indicando valores en un Rango dado (Paso) . . . . . . . . . . .

86

Manejo del Dise


no de Experimentos por Galatea . . . . . . . . . . . . .

87

5 Prototipo
5.1

5.2

5.3

5.4

88

Manejo de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

5.1.1

Entero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

5.1.2

Real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

5.1.3

Cadena de Caracteres

. . . . . . . . . . . . . . . . . . . . . . .

90

5.1.4

Logico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

5.1.5

Arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

5.1.6

Enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

Funcionamiento del Dise


no Experimental . . . . . . . . . . . . . . . . .

93

5.2.1

Lectura Archivo de Entrada . . . . . . . . . . . . . . . . . . . .

93

5.2.2

Recoleccion de los nuevos valores . . . . . . . . . . . . . . . . .

93

5.2.3

Calculo de los valores de Salida . . . . . . . . . . . . . . . . . .

94

Interfaz Grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

5.3.1

Seleccion Idioma . . . . . . . . . . . . . . . . . . . . . . . . . .

94

5.3.2

Inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

5.3.3

Seleccion Variables . . . . . . . . . . . . . . . . . . . . . . . . .

95

5.3.4

Editar Variables . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

5.3.5

Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

Resultados de la Experimentacion . . . . . . . . . . . . . . . . . . . . .

99

Conclusiones

100

Trabajos Futuros

101

A Modeloteca. C
odigos Galatea

102

A.1 Taquilla simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102


A.2 Sistema Burocratico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
A.3 Graficando los valores de una cola . . . . . . . . . . . . . . . . . . . . . 104

A.4 Taquilla Bancaria con dos procesos . . . . . . . . . . . . . . . . . . . . 104


A.5 Presentacion de valores de una cola . . . . . . . . . . . . . . . . . . . . 105
A.6 Puerto con cuatro tipos de embarcaciones . . . . . . . . . . . . . . . . 106
A.7 Sistema de tres colas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
A.8 Procesamiento de partes con ajuste de

temperatura

A.9 Sistema de fundicion para producir lingotes de acero

. . . . . . . . 110

. . . . . . . . . . 111

A.10 Maquina con fallas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114


A.11 Proceso de ensamblado con sincronizacion . . . . . . . . . . . . . . . . 115
A.12 Ruta crtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
A.13 Lnea de autob
us . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
A.14 Sistema presa depredador . . . . . . . . . . . . . . . . . . . . . . . . . 122
A.15 Sistema ecologico perturbado . . . . . . . . . . . . . . . . . . . . . . . 123
A.16 Sistema dinamico (Puerta Oscilante) . . . . . . . . . . . . . . . . . . . 126
A.17 Grafico de la cola normal y antitetica . . . . . . . . . . . . . . . . . . . 126
A.18 Puerto petrolero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
A.19 Eyeccion de piloto de un avion . . . . . . . . . . . . . . . . . . . . . . . 134
A.20 Atractor Lorenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
A.21 Modelo mundial de Forrester . . . . . . . . . . . . . . . . . . . . . . . . 136
B Modeloteca. C
odigos Java

145

B.1 Taquilla simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145


B.1.1 Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 145
B.1.2 Nodo Teller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
B.1.3 Nodo Gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
B.1.4 Nodo Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
B.1.5 Nodo Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
B.2 Sistema Burocratico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
B.2.1 Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 148
B.2.2 Nodo Arrivals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.2.3 Nodo Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
B.2.4 Nodo Bureau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
B.2.5 Nodo Inspec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

B.2.6 Nodo Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153


B.3 Graficando los valores de una cola . . . . . . . . . . . . . . . . . . . . . 153
B.3.1 Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 153
B.3.2 Nodo Teller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
B.3.3 Nodo Arrivals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
B.3.4 Nodo Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
B.3.5 Nodo Gra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
B.4 Puerto con cuatro tipos de embarcaciones . . . . . . . . . . . . . . . . 156
B.4.1 Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 156
B.4.2 Nodo BulkBerth . . . . . . . . . . . . . . . . . . . . . . . . . . 160
B.4.3 Nodo RepairBerth . . . . . . . . . . . . . . . . . . . . . . . . . 161
B.4.4 Nodo FreiBerth . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
B.4.5 Nodo TourBerth . . . . . . . . . . . . . . . . . . . . . . . . . . 162
B.4.6 Nodo Harbor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
B.4.7 Nodo DecExit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
B.4.8 Nodo ExitA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
B.4.9 Nodo ExitB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
B.4.10 Nodo ExitC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
B.4.11 Nodo RESUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
B.5 Sistema de tres colas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
B.5.1 Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 166
B.5.2 Nodo InA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
B.5.3 Nodo InB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
B.5.4 Nodo G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
B.5.5 Nodo WA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
B.5.6 Nodo WB1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
B.5.7 Nodo WB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
B.5.8 Nodo Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
B.6 Sistema presa depredador . . . . . . . . . . . . . . . . . . . . . . . . . 172
B.6.1 Programa Principal . . . . . . . . . . . . . . . . . . . . . . . . . 172
B.6.2 Nodo RF

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Bibliografa

175

Indice de Tablas
3.1

Analisis de Taquilla Simple . . . . . . . . . . . . . . . . . . . . . . . . .

17

3.2

Analisis de Sistema Burocratico . . . . . . . . . . . . . . . . . . . . . .

19

3.3

Analisis de Graficando los valores de una cola . . . . . . . . . . . . . .

21

3.4

Tipos Definidos por el Usuario . . . . . . . . . . . . . . . . . . . . . . .

22

3.5

Analisis de Taquilla Bancaria con dos procesos . . . . . . . . . . . . . .

22

3.6

Analisis de Presentacion de valores de una cola . . . . . . . . . . . . . .

24

3.7

Tipos Definidos por el Usuario . . . . . . . . . . . . . . . . . . . . . . .

26

3.8

Analisis de Puerto con cuatro tipos de Embarcaciones . . . . . . . . . .

26

3.9

Tipos Definidos por el Usuario . . . . . . . . . . . . . . . . . . . . . . .

28

3.10 Analisis de Sistema de Tres Colas . . . . . . . . . . . . . . . . . . . . .

29

3.11 Analisis de Procesamiento de partes con ajuste de temperatura . . . . .

31

3.12 Analisis de Sistema de fundicion para producir lingotes de acero . . . .

36

3.13 Analisis de Maquina con fallas . . . . . . . . . . . . . . . . . . . . . . .

39

3.14 Analisis de Proceso de ensamblado con sincronizacion . . . . . . . . . .

41

3.15 Analisis de Ruta crtica . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

3.16 Analisis de Lnea de autob


us . . . . . . . . . . . . . . . . . . . . . . . .

48

3.17 Analisis de Sistema Presa Depredador . . . . . . . . . . . . . . . . . . .

52

3.18 Analisis de Sistema ecologico perturbado . . . . . . . . . . . . . . . . .

56

3.19 Analisis de Sistema dinamico (Puerta Oscilante) . . . . . . . . . . . . .

59

3.20 Analisis de Grafico de la cola normal y antitetica . . . . . . . . . . . .

61

3.21 Analisis de Puerto petrolero . . . . . . . . . . . . . . . . . . . . . . . .

65

3.22 Analisis de Eyeccion de piloto de un avion . . . . . . . . . . . . . . . .

72

3.23 Analisis de Atractor Lorenz . . . . . . . . . . . . . . . . . . . . . . . .

74

3.24 Analisis de Modelo mundial de Forrester . . . . . . . . . . . . . . . . .

77

xi

Indice de Figuras
2.1

Componentes Basicos de Galatea . . . . . . . . . . . . . . . . . . . . .

11

2.2

Estructura de un programa Galatea . . . . . . . . . . . . . . . . . . . .

12

3.1

Proceso de Ensamblado con Sincronizacion. . . . . . . . . . . . . . . .

41

3.2

Lnea de autob
us. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

3.3

Eyeccion de piloto de un avion. . . . . . . . . . . . . . . . . . . . . . .

70

4.1

Tipos de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

5.1

Cambio de Valor Simple (Enteros). . . . . . . . . . . . . . . . . . . . .

89

5.2

Cambio Rango dado (Enteros). . . . . . . . . . . . . . . . . . . . . . .

89

5.3

Cambio de Valor Simple (Reales). . . . . . . . . . . . . . . . . . . . . .

90

5.4

Cambio Rango dado (Reales). . . . . . . . . . . . . . . . . . . . . . . .

90

5.5

Cambio de Valor Simple (Logicos). . . . . . . . . . . . . . . . . . . . .

91

5.6

Cambio Valor (Arreglos). . . . . . . . . . . . . . . . . . . . . . . . . . .

92

5.7

Cambio Valor Simple (Enumerados). . . . . . . . . . . . . . . . . . . .

92

5.8

Cambio Valor Rango (Enumerados).

. . . . . . . . . . . . . . . . . . .

93

5.9

GUI Idioma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

5.10 GUI Inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96

5.11 GUI Seleccion Variables. . . . . . . . . . . . . . . . . . . . . . . . . . .

96

5.12 GUI Editar Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

5.13 GUI Resultados.

98

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.14 Estructura Nuevos Directorios

. . . . . . . . . . . . . . . . . . . . . .

xii

99

Captulo 1
Introducci
on
En este captulo se definiran los antecedentes que son la base para la realizacion del
problema, as como tambien, el planteamiento del problema, la justificacion y los objetivos que encaminaran el desarrollo del mismo, el alcance del proyecto, la metodologa
para su desarrollo y finalmente se dara una descripcion de la estructura del presente
documento.

1.1

Antecedentes

La Simulacion es el proceso de dise


nar un modelo de un sistema real y llevar a termino
experiencias con el, se usan parametros que permiten describir el comportamiento
del modelo, con la finalidad de comprender el comportamiento del sistema o evaluar
nuevas estrategias (dentro de los lmites impuestos por un cierto criterio o un conjunto
de ellos) para el funcionamiento del sistema, esto es logrado mediante el uso de tecnicas
de estudio como el dise
no de experimentos.
En general, se define dise
no de experimentos como una tecnica estadstica que permite identificar y cuantificar las causas de un efecto dentro de un estudio experimental.
En un dise
no experimental se manipulan deliberadamente uno o mas parametros, vinculados a las causas, para medir el efecto que tienen en otro parametro de interes.
El dise
no experimental describe una serie de pautas relativas; que parametros hay que
manipular, de que manera, cuantas veces hay que repetir el modelo y en que orden para

1.1 Antecedentes

poder establecer con un grado de confianza predefinido la necesidad de una presunta


relacion de causa-efecto.
Galatea es una plataforma para modelar y simular sistemas multi-agentes

de-

sarrollada por los grupos CeSiMo y SUMA de la Universidad de los Andes. Es el


producto de dos lneas de investigacion: lenguajes de simulacion basados en la teora
de simulacion de Zeigler y agentes basados en logica.
Galatea es un descendiente directo de Glider escrito en java, que combina Glider
con una serie de lenguajes de programacion logica designados especficamente para
modelar agentes.
Galatea permite describir sistemas donde es posible incluir agentes, pero no todos
los componentes del sistema son necesariamente agentes. Al hacer uso de Galatea se
pueden aplicar tecnicas tradicionales como eventos continuos o discretos de manera que
sea factible su simulacion.
Galatea cuenta con herramientas que permiten la simulacion de sistemas:
Eventos Discretos
Continuos
Combinados
Distribuidos
Interactivos
Multi-agentes
Galatea proporciona un ambiente de modelado y simulacion de agentes que permita
explorar alternativas para la integracion de los agentes con un formalismo general de
modelado y simulacion de eventos discretos.
En el desarrollo de la Plataforma de simulacion Galatea se han realizado varios
trabajos que deben ser considerados para cumplir el objetivo propuesto, entre ellos
estan:

n del problema
1.2 Definicio

(Uzcategui, 2002) expuso el dise


no propuesto para la plataforma Galatea incluyendo
la familia de lenguajes a utilizar, la arquitectura de la plataforma y la interaccion de
los agentes con el resto del sistema.
(Ramos, 2006) planteo dotar a Galatea con un ambiente grafico de desarrollo con
servicios visuales para apoyar a quienes tengan menos pericia en el desarrollo y codificacion de modelos.

1.2

Definici
on del problema

Galatea no cuenta con una librera para dise


no de experimentos, que permita manipular
los parametros de entrada de una simulacion y explorar los mismos con el fin de observar
los cambios en su comportamiento. La plataforma fue desarrollada pensando en la
combinacion de herramientas de simulacion e incorporando sistemas multi-agentes en
el mismo, dejando de lado como mejora a futuro el desarrollo de interfaces amigables
para usuarios no expertos en simulacion o el uso de Galatea. Con la librera para
dise
no de experimentos se propone mejorar la experiencia al momento de utilizar la
plataforma, as como simplificar la tarea de estudiar los cambios de comportamiento
para un modelo.

1.3
1.3.1

Objetivos
Objetivo General

Especificar la librera para Dise


no de Experimentos e implementar un prototipo funcional de la interfaz grafica de usuario, que permita manipular los parametros de entrada de una simulacion y explorar los mismos con el fin de observar los cambios en su
comportamiento.

1.3.2

Objetivos Especficos

1. Estudiar, comprender y analizar la estructura y el funcionamiento de Galatea.

1.4 Metodologa

2. Especificar la librera para Dise


no de Experimentos y el prototipo de interfaz de
usuario, as como su funcionalidad.
3. Implementar un prototipo de interfaz grafica siguiendo el dise
no propuesto.
4. Realizar una serie de pruebas sobre la funcionalidad de la interfaz.

1.4

Metodologa

El metodo a seguir para el desarrollo del proyecto consiste en tomar un enfoque de


desarrollo incremental, trabajando de forma iterativa semanalmente. Toda iteracion
constara de una reunion con el tutor para reportar avances del trabajo realizado, objetivos alcanzados, realizar correciones, discutir obstaculos encontrados, plantear posibles
mejoras a implementar, as como definir los objetivos de la siguiente etapa.
Inicialmente se planteara un dise
no de interfaz el cual sera expuesto y sometido a
aprobacion en una primera entrega. Una vez terminado el dise
no, se procedera a la
etapa de implementacion siguiendo el modelo de dise
no paso a paso. Finalmente se presentara el prototipo inicial en una segunda entrega y se avanzara a la fase de validacion
y pruebas, mejorandolo con base en las crticas recibidas.

1.5

Alcance

Se propone plantear los aspectos del dise


no completo de la librera para dise
no de
experimentos, y un prototipo funcional para los tipos de datos basicos utilizados en la
simulacion. De manera que permita validar el dise
no propuesto y muestre el camino a
seguir para construir la librera incorporando todos los tipos de datos que puedan ser
utilizados durante una simulacion.

1.6

Estructura del Documento

El Captulo 1 Introduccion, muestra los antecendes, define el problema y los objetivos


a cumplir, y explica la manera en que los objetivos seran alcanzados. Se plantea el

1.6 Estructura del Documento

alcance del proyecto.


El Captulo 2 Marco teorico, presenta y describe los conceptos basicos necesarios para
el entendimiento y desarrollo del proyecto.
El Captulo 3 Modeloteca, revisa y actualiza la modeloteca existente de galatea, para
la extraccion de informacion que sea de utilidad para el desarrollo de la librera de
dise
no de experimentos, as como correccion de la misma para que sea compatible con
la nueva librera propuesta en este proyecto.
El Captulo 4 Dise
no, planifica el contenido de la librera de dise
no de experimentos,
que servira como base y gua al momento de desarrollar el prototipo y posteriormente
la librera completa.
El Captulo 5 Prototipo, describe los detalles de dise
no seguidos en la implementacion
del prototipo de la librera de dise
no de experimentos para la plataforma de simulacion
Galatea presentada en este proyecto.
Las Conclusiones, muestran de manera sintetizada los logros alcanzados y los objetivos
cumplidos con el desarrollo del proyecto.
Como Trabajos Futuros, se se
nala aquellas modificaciones y mejoras que pueden o
deben, realizarse sobre el prototipo en el desarrollo de trabajos en el futuro.

Captulo 2
Marco te
orico
En este captulo, se describen los fundamentos teoricos necesarios para el entendimiento
y comprension del proyecto. Se define que es una simulacion (Zeigler, 2000) as como
algunos de sus componentes, se explica en que consiste el dise
no de experimentos
y se define detalladamente que es Galatea (Uzcategui, 2002) y su funcionamiento,
conocimientos necesarios para el desarrollo del prototipo propuesto en el captulo 1.
Creando una base teorica con la finalidad de tener una introduccion a las herramientas
de dise
no y permitir al lector tener una idea de la naturaleza del contenido del resto
del documento.

2.1

Simulaci
on

Es la imitacion de la manera en que opera un proceso o sistema del mundo real a traves
del tiempo, generalmente enfatizando caractersticas particulares del sistema donde
se centrara la atencion como aspectos importantes de la simulaci
on (Banks, 2001).
Estas caractersticas son representadas a traves de un modelo que no es mas que el
sistema en si a ser estudiado, y la simulacion representa la operacion del sistema
en el tiempo. La simulacion es una herramienta de analisis que nos permite sacar
conclusiones sin necesidad de trabajar directamente con el sistema real que se esta
simulando, es especialmente u
til cuando no disponemos de dicho sistema real o nos
resulta demasiado arriesgado realizar experimentos sobre el. (Zeigler, 2000)

n
2.1 Simulacio

2.1.1

Definici
on del sistema

Consiste en estudiar el contexto del problema, identificar los objetivos del proyecto,
especificar los ndices de medicion de la efectividad del sistema, establecer los objetivos
especficos del modelo y definir el sistema que se va a modelar.

2.1.2

Formulaci
on del modelo

Una vez definidas con exactitud preguntas que esperan responder haciendo uso del
estudio, se define y construye el modelo con el cual se obtendran los resultados deseados.
En la formulacion del modelo es necesario definir todas las variables que forman parte
de el, sus relaciones logicas y los diagramas de flujo que describan en forma completa
el modelo.

2.1.3

Formalismo DEVS

Fue propuesto por el Prof. Bernard P. Zeigler en (Zeigler, 1984), es el acronimo de


Discrete Event System Specification. La idea basica de la simulaci
on, al igual que la
de cualquier paradigma de eventos discretos, es la formulacion de una lista de eventos
y la ejecucion de los mismos de manera secuencial, provocando transiciones de estado.
Naturalmente, cada vez que se ejecute alg
un evento, se agendaran nuevos eventos en
la lista. (Uzcategui, 2002)

2.1.4

Enfoques para simulaci


on

Dependiendo del aspecto a considerar podemos tener simulaciones: eventos discretos,


continuas, combinadas, paralela, distribuida, de cambio estructural, interactiva, orientada a agentes.

n
2.1 Simulacio

Simulacion de eventos discretos


El estado del sistema solo cambia mediante la ejecucion de eventos, que se almacenan en un contenedor, y uno o varios procesos dedicas a su ejecucion avanzan
el tiempo de simulacion a medida que se van ejecutando y eliminando los eventos pendientes para el valor del tiempo actual. La ejecucion de un evento puede
desencadenar la generacion de nuevos eventos futuros. Cada uno esta marcado
por su tiempo, por lo que el orden de generacion puede no coincidir con el orden
de ejecucion. (Banks, 2001)
Simulacion continua
Modelado de un sistema por medio de una representacion en la cual las
variables de estado cambian continuamente en el tiempo.

Tpicamente, los

modelos de simulacion continua involucran ecuaciones diferenciales que determinan las relaciones de las tasas de cambio de las variables de estado en el tiempo.
(Banks, 2001)
Simulacion combinada
Modelado de un sistema por medio de una representacion en la cual unas
variables de estado cambian continuamente con respecto al tiempo y otras cambian instantaneamente en instantes de tiempo separados. Es una simulacion en
la cual interact
uan variables de estados discretas y continuas. (Banks, 2001)
Simulacion paralela
Es el estudio de sistemas que presentan procesos separables que deben ocurrir
simultaneamente. (Uzcategui, 2002)
Simulacion distribuida
Es el estudio de sistemas para llevar a cabo el modelado y la simulacion de estos,
cuidando principalmente la coordinacion y la asignacion de procesos que pueden
ser separados y alojados en procesadores diferentes. (Uzcategui, 2002)

o de Experimentos
2.2 Disen

Simulacion de cambio estructural


En un sistema hay cambio estructural cuando se agregan o eliminan elementos,
hay cambio de las relaciones entre los elementos del sistema, o los parametros
cambian de manera que el comportamiento del sistema se modifica. (Uzcategui,
2002)
Simulacion interactiva
El interes en simulaciones compuestas de diferentes componentes de simulacion
ha llevado al estudio de la simulaci
on interactiva, donde interactiva se refiere a
la habilidad para combinar componentes de simulaci
on sobre una plataforma de
computacion heterogenea distribuida donde frecuentemente se ejecutan operaciones en tiempo real. (Uzcategui, 2002)
Simulacion orientada a agentes
La simulacion consiste en la ejecucion de agentes en un entorno de simulacion
(controlado), los agentes modelan tipos de comportamientos especficos e interact
uan entre s. (Uzcategui, 2002)

2.2

Dise
no de Experimentos

Es una metodologa estadstica destinada a la planificacion y analisis de un experimento. El dise


no de un experimento es la secuencia completa de pasos tomados de
antemano para asegurar que los datos apropiados se obtendran de modo que permitan
un analisis objetivo que conduzca a deducciones validas con respecto al problema establecido. La metodologa del dise
no de experimentos se basa en la experimentacion.
Es conocido que si se repite un experimento, en condiciones indistinguibles, los resultados presentan variabilidad que puede ser grande o peque
na. El objetivo del dise
no de
experimentos es estudiar si utilizar un determinado tratamiento produce una mejora
en el sistema o no.(Fisher, 1935)

2.3 Galatea

2.2.1

10

Par
ametros

Es una variable o factor que debe ser considerado a la hora de analizar, criticar y hacer
juicios de una situacion.

2.3

Galatea

Es una plataforma de simulaci


on que permite incorporar al modelo y simulacion de
sistemas entidades mejor conocidas como agentes. Descendiente directo de GLIDER
y basado en el formalismo DEVS (Zeigler, 2000), combinado con una serie de lenguajes de programacion logica designados especficamente para modelar agentes, lo que
permite obtener una plataforma completa con herramientas concretas para simular sistemas multi-agentes, distribuidos, interactivos, continuos y discretos de forma eficiente
(Uzcategui, 2002).

2.3.1

Componentes b
asicos de Galatea

Siguiendo el formalismo DEVS, la plataforma se rige por una lista de eventos que van
siendo ejecutados en cierto orden, lo que ocasiona activaciones o llegadas de nuevos
eventos en nodos pertenecientes al sistema y la interaccion entre ellos mediante mensajes, como se observa en la Figura 2.1.
Eventos
Los eventos se utilizan para controlar la evolucion del sistema modelado en el tiempo.
Estos eventos son almacenados en una lista de eventos ordenada denominada FEL
(acronimo de Future Event List). Cada evento asocia el nodo a ser activado con el
tiempo en el que debe ocurrir dicha activacion.
Nodos
Representan los subsistemas componentes del sistema a modelar. Cada nodo esta
definido por dos listas que contienen mensajes: la lista externa, EL (acronimo de
External List), donde permanecen los mensajes antes de ser procesados y en el nodo y

2.3 Galatea

11

Figura 2.1: Componentes Basicos de Galatea

la lista interna, IL (acronimo de Internal List), que almacena los mensajes que estan
siendo tratados. Los nodos se almacenan en una lista, LNodos, a la que tendra acceso
el simulador para activar el nodo indicado en el momento preciso.
Mensajes
Representan las entidades que viajan a traves de la red y que almacenan informacion
en su lista LCampos. Estas entidades se almacenan en la lista, LMensajes, y el
recorrido que realizan en la red se representa a traves de un cambio de una lista a otra.

2.3.2

Estructura de un programa Galatea

La estructura de un programa de Galatea, consta de siete secciones basicas, que pueden


ser observadas en la Figura 2.2.
Encabezado
Esta seccion permite incorporar la descripcion del sistema, as como tambien algunos
comentarios.

2.3 Galatea

12

Figura 2.2: Estructura de un programa Galatea

Titulo
Esta seccion inicia con la etiqueta TITLE y permite incorporar un titulo al modelo.
Red
La seccion de Red se inicia con la etiqueta NETWORK. En esta seccion se describen
las relaciones entre los nodos y el codigo que simula su comportamiento.
Agentes
Esta seccion empieza con la etiqueta AGENTS y contiene descripcion de cada tipo
de agente, que incluye la especificacion interna del agente y el estado mental. El
codigo ubicado aqu permite particularizar a cada tipo de agente. Para cada entrada,
hay una subdivision.

GOALS para describir las metas del agente.


BELIEFS para describir las creencias del agente.
PREFERENCES para describir las preferencias del agente.
Cada una de las subdivisiones utiliza su propio lenguaje logico.

2.3 Galatea

13

Interfaz
Esta seccion empieza con la etiqueta INTERFACE. En esta seccion se incluye la
descripcion de las relaciones entre los agentes y el resto del sistema. Esta seccion
contiene el codigo que describe el comportamiento del simulador para permitir a los
agentes percibir y actuar.
Iniciaci
on
La seccion de iniciacion se indica con la etiqueta INIT, aca se realiza la asignacion de
valores que seran usados en tiempo de ejecucion de la simulaci
on.
Declaraci
on
La seccion de declaraciones se inicia con la etiqueta DECL y seg
un el tipo de
declaracion a realizar es necesario utilizar las etiquetas:

TYPE tipo de datos definidos por el usuario


CONST constantes
VAR variables
NODES nodos definidos por el usuario
MESSAGES mensajes
GFUNCTIONS funciones multivaluadas definidas por el usuario
TABLES tablas de frecuencia
DBTABLES tablas provenientes de bases de datos
PROCEDURES procedimientos y funciones definidas por el usuario
STATISTICS solicitud de estadsticas para nodos y variables
Final
El codigo termina con la etiqueta END.

2.3 Galatea

14

Para el desarrollo del dise


no de experimentos, fundamentalmente se utiliza la
informacion proporcionada en las secciones INIT y DECL. Ya que de estas secciones
obtenemos las variables que pueden ser experimentales y sus valores iniciales.

2.3.3

Aspectos Experimentales en un Modelo Galatea

La plataforma de simulacion Galatea cuenta con una series de variables y funciones


basicas del sistema que permiten manejar ciertos parametros basicos para cada uno
de los componentes utilizados en una simulacion.
Existen dos tipos basicos de componentes de la libreria de dise
no de experimentos, los
intrnsecos de la plataforma galatea y los inrrnsecos del modelo (propuestos por el
usuario).
Los parametros intrnsecos de la plataforma son esos componentes que forman
parte de la simulacion que pueden ser iniciados o invocados en cualquier momento, sin
la necesidad de definirlos. A continuacion se muestran dichos componentes.

TSIM Tiempo total de simulaci


on.
TIME Tiempo actual de la simulacion.
TITLE Contiene el titulo del experimento.
IT Tiempo de intervalo, entre activaciones del nodo.
STATE Estado actual del nodo.
STAY Tiempo en que el mensaje es procesado en el nodo.
CAPACITY Capacidad maxima del nodo para atender peticiones.
Estas variables y funciones basicas son altamente sensibles y por lo tanto tienden a
ser estudiadas durante un dise
no de experimentos.
Los parametros intrnsecos del modelo son aquellos componentes definidos por el
usuario al momento de realizar el modelo de simulacion, son componentes que deben
ser previamente definidos antes de poder utilizarlos y son u
nicos y propios de cada

2.3 Galatea

15

simulacion.
Durante una experimentacion el usuario esencialmente se centrara en los posibles
efectos que puedan causar cambios en variables y funciones, ya sean componentes
intrnsecos de la plataforma o intrnsecos previamente definidos.

Captulo 3
Modeloteca
En este captulo, se realiza una revision exhaustiva de la modeloteca actual de
Galatea. Obteniendo informacion pertinente para la definicion de los tipos de datos
mas comunes en la simulacion que seran utilizados por la librera de dise
no de
experimentos.
Durante la revision de la modeloteca se obtuvo la siguiente informacion para cada
ejercicio. Se proporciono la lista de variables experimentales obtenidas del ejercicio,
revisando cada variable se puede dar una descripcion detallada de las variables, tanto
de las pertenecientes al sistema, as como las definidas por el usuario que pueden
llegar a ser consideradas variables experimentales.
En base a este estudio, se propone una version del codigo Galatea necesaria para
incluir en el dise
no de experimentos dichas variables.
Se realiza una correccion de la modeloteca actual de Galatea, actualizando cada uno
de los ejercicios contenidos en la misma.
A continuacion se muestra cada uno de los modelos presentados en la modeloteca que
han sido sometidos a este proceso para su evaluacion y estudio.

3.1 Taquilla simple

3.1

17

Taquilla simple

Las personas llegan a una taquilla bancaria a intervalos tomados aleatoriamente de


una distribucion exponencial con media InArrTime. Son atendidas una a la vez. El
tiempo de servicio es tomado de una distribucion gaussiana con media MeSerTime
y desviacion estandar DeSerTime. Determina cuantas veces en 1000 unidades de
tiempo la cola sera mayor a 20 personas.
El codigo original de este modelo es mostrado en la seccion A.1

3.1.1

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo

Variable
InArrTime

Usuario

Rango

Estado

Dato
IT Gate (I)

Real

Valor
Inicial

[0,TSIM]

Declarada/

Iniciada
MeSerTime

Usuario

Stay

Teller

Real

[0,+]

(R)
DeSerTime

Usuario

Stay

Usuario

3.8

Iniciada
Teller

Real

[0,+]

(R)
NM20

Declarada/

Contador

Declarada/

0.8

Iniciada
Entero

[0,+]

Gate (I)

Declarada/

Iniciada

Tabla 3.1: Analisis de Taquilla Simple

3.1.2

Variables Definidas

En esta seccion incluimos las variables que se han identificado en el ejemplo que
pueden ser experimentables.
InArrTime IR [0,TSIM] es el intervalo de tiempo entre la llegada de personas a la
taquilla, el rango implica que tendremos al menos una llegada durante la simulacion.
MeSerTime, DeSerTime IR [0,+] definen el tiempo de duracion del servicio
en la taquilla.
NM20 Z [0,+] es un contador que llevara registro de la cantidad de veces en
que la cola sera superior a 20 durante la simulacion.

3.1 Taquilla simple

3.1.3

18

C
odigo Propuesto para Dise
no de Experimentos

A continuacion se presenta la porcion de codigo que se propone debe ser cambiada


(especficamente el INIT) para permitir el dise
no de experimentos de manera facil y
sencilla.
Una vez que se ha declarado una variable en DECL, en el INIT vamos a escribir
comenzando por el comando INTI la descripcion de esta variable siguiendo el formato:

INTI(Identificador,

Descripcion,

<Valor

Inicial>,

<Valor

mnimo>, <Valor maximo>);


Todas las variables que sean iniciadas de esta manera seran tomadas en cuenta para
el dise
no de experimentos.
El codigo propuesto para este ejemplo quedara de la siguiente manera:
INIT ACT(RESULT, 1 0 0 0 ) ; ACT( Gate , 0 ) ;
NM20: = 0 ;
MeSerTime : = 3 . 8 0 ;
DeSerTime : = 0 . 8 ;
InArrTime : = 4 ;
( Dise n
o de Experimentos )
INTI ( InArrTime , Tiempo e n t r e L l e g a d a s , 4 , 0 ,TSIM) ;
INTI ( MeSerTime , Tiempo de S e r v i c i o , 3 . 8 , 0 ) ;
INTI ( DeSerTime , D e s v i a c i o n Tiempo de S e r v i c i o , 0 . 8 , 0 ) ;
INTI (NM20, R e g i s t r o Cola S u p e r i o r a 2 0 , 0 , 0 ) ;

Como podemos observar en el codigo propuesto, permitimos que el usuario incorpore


al codigo Galatea las especificaciones necesarias para el dise
no de experimentos.
Particularmente en este ejemplo podemos observar la variable InArrTime de tipo Real
con valor inicial 4 que se encuentra en el rango de accion en el intervalo [0,TSIM],
como se detalla en la seccion 3.1.2 dado que el tiempo entre llegadas debe estar
incluido en el tiempo de simulacion.
Tambien podemos observar la variable NM20 de tipo Entero con valor inicial 0 que se

tico
3.2 Sistema Burocra

19

encuentra en el rango de accion en el intervalo [0,+], como se detalla en la seccion


3.1.2 denotando el n
umero de veces que la cola sera superior a 20.

3.2

Sistema Burocr
atico

Cada 20 segundos llegan personas al sistema, las cuales son atendidas en 4 oficinas
distintas, cada oficina tiene una puerta las cuales abren 310 unidades de tiempo despues
de la primera llegada. Se clasifican a las personas seg
un los 4 tipos de oficina existente,
una inspeccion previa rechaza el 20% de las personas de tipo 4. Las puertas se cierran
y abren cada 100 unidades de tiempo, cuando estan abiertas las personas pasan en
orden desde el tipo 1 hasta el tipo 4.
El codigo original de este modelo es mostrado en la seccion A.2

3.2.1

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo

Variable
MeanWait

Usuario

Rango

Dato
Stay Bureau

Arreglo

Usuario

Stay Bureau

Arreglo

[0,+]
[0,+]

(R)
i

Usuario

Seleccion

Valor
Inicial

(R)
DeviWait

Estado
Declarada/

(40,39,

Iniciada

12,62)

Declarada/

(4,5,3,

Iniciada

12)

Entero

[1,4]

Declarada

Logico

{Verdadero,

Declarada/

Falso}

Iniciada

Compuerta
OPEN

Usuario

State

Gates

(G)
TSIM

Sistema

Entero

(0,+]

Iniciada

PeType

Mensajes/ Arrivals (I)

Entero

[1,4]

Declarada

Logico

{Verdadero,

Declarada

Usuario
Rejected

Mensajes/ Arrivals (I)


Usuario

Falso}
Tabla 3.2: Analisis de Sistema Burocratico

Falso
1000

3.3 Graficando los valores de una cola

3.2.2

20

Variables Definidas

MeanWait, DeviWait IR [0,+] definen el tiempo de estada en la oficina


dependiendo del tipo de cliente.
i Z [1,4] es usada para seleccionar una de las 4 puertas.
OPEN L
ogico es la variable que muestra cuando las puertas estan abiertas.
PeType Z [1,4] utilizada como campo definido en los mensajes del nodo Arrivals
para comunicar el tipo de cliente.
Rejected L
ogico utilizada como campo definido en los mensajes del nodo Arrivals
para comunicar si el cliente fue rechazado.

3.2.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT( A r r i v a l s , 0 ) ;
TSIM: = 1 0 0 0 ;
Bureau :=MAXREAL;
OPEN:=FALSE ;
FOR

i :=1 TO 4 DO ACT( Gates [ i ] , 3 1 0 ) ;

ASSI MeanWait [ 1 . . 4 ] : = ( 4 0 , 3 9 , 1 2 , 6 2 ) ;
ASSI DeviWait [ 1 . . 4 ] : = ( 4 , 5 , 3 , 1 2 ) ;
( Dise n
o de Experimentos )
INTI ( MeanWait [ 1 . . 4 ] , Tiempo E s t a da , ( 4 0 , 3 9 , 1 2 , 6 2 ) , 0 ) ;
INTI ( DeviWait [ 1 . . 4 ] , D e s v i a c i o n Tiempo E s t a da , ( 4 , 5 , 3 , 1 2 ) , 0 ) ;
INTI (OPEN, Estado Puerta , F a l s e ) ;

3.3

Graficando los valores de una cola

Los clientes llegan al cajero en intervalos determinados por una distribucion exponencial con media MarrT. El tiempo de la transaccion tambien esta determinado por una
distribucion exponencial con media MeCashT.
El programa simula el proceso y grafica la longitud de la cola y su valor medio,

3.3 Graficando los valores de una cola

21

mostrando las grandes oscilaciones causadas por la autocorrelacion.


El codigo original de este modelo es mostrado en la seccion A.3

3.3.1

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo

Variable
MarrT

Rango

Dato

Usuario

IT

Arrivals

Real

Usuario

Stay

[0,TSIM]

Declarada/

Iniciada
Teller

Real

[0,+]

(R)
TSIM

Valor
Inicial

(I)
MeCashT

Estado

Sistema

Declarada/

3.8

Iniciada
Entero

(0,+]

Iniciada

5000

Tabla 3.3: Analisis de Graficando los valores de una cola

3.3.2

Variables Definidas

MarrT IR [0,TSIM] es el intervalo de tiempo con el que llegan los clientes al


cajero, el rango implica que tendremos al menos una llegada durante la simulacion.
MeCashT IR [0,+] es la duracion de las transacciones en el cajero por cada
cliente.

3.3.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT( A r r i v a l s , 0 ) ;
TSIM: = 5 0 0 0 ;
MarrT : = 4 ;
MeCashT : = 3 . 8 ;

( Para metros )

( Dise n
o de Experimentos )
INTI ( MarrT , Tiempo e n t r e L l e g a d a s , 4 , 0 ,TSIM) ;
INTI (MeCashT , Tiempo T r a n s a c c i o n , 3 . 8 , 0 ) ;

3.4 Taquilla Bancaria con dos procesos

3.4

22

Taquilla Bancaria con dos procesos

Los clientes que llegan a la taquilla pueden hacer dos procedimientos:


1: Retirar efectivo (procedimiento CASHWITH)
2: Deposito de efectivo y cheques (procedimiento DEPOSIT)
El tiempo de servicio depende de la cantidad de la transaccion y de un componente
aleatorio.
Los clientes estan representados por mensajes que contienen el tipo de procedimiento
en un campo. Este es asignado aleatoriamente con una probabilidad de 50%.
Los tiempos de llegada de los clientes son dados por una exponencial con media 3.97.
El codigo original de este modelo es mostrado en la seccion A.4

3.4.1

Tabla de An
alisis
Nombre

Tipo Dato

Rango

TYPRO

Rango

{CASHWITH,DEPOSIT}

Tabla 3.4: Tipos Definidos por el Usuario

Nombre

Tipo

Uso

Variable
PROCTIME

Usuario

Tipo

Rango

Estado

Dato
Stay TELLER

Valor
Inicial

Real

[0,+]

Declarada

Real

[0,+]

Declarada/

(R)
BALANCE

Usuario

TELLER (R)

Iniciada
WITHD

Usuario

TELLER (R)

Real

[0,BALANCE]

Declarada

DEPO

Usuario

TELLER (R)

Real

[0,+]

Declarada

PROC

Mensajes/ ENTRANCE

TYPRO

TYPRO

Declarada

Usuario

(I)

Tabla 3.5: Analisis de Taquilla Bancaria con dos procesos

n de valores de una cola


3.5 Presentacio

3.4.2

23

Variables Definidas

PROCTIME IR [0,+] tiempo de procesamiento en la taquilla.


BALANCE,DEPO IR [0,+] y WITHD IR [0,BALANCE] definen los
procedimientos que puede realizar la taquilla, mientras esta tenga dinero disponible.
PROC TYPRO campo definido en los mensajes del nodo ENTRANCE con el
tipo de procedimiento a realizar por el cliente.

3.4.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(ENTRANCE, 0 ) ; ACT(RESULT, 2 4 0 ) ;


BALANCE: = 0 ;
( Dise n
o de Experimentos )
INTI (BALANCE, Balance de T a q u i l l a , 0 , 0 ) ;

3.5

Presentaci
on de valores de una cola

Este modelo es similar al ejemplo 3 (Graficando los valores de una cola). En este
caso los valores de la longitud de la cola son almacenados en una variable real RL y
archivados en un archivo ARCOL.
Este archivo puede ser usado para graficar.
El codigo original de este modelo es mostrado en la seccion A.5

3.5.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
MarrT

Usuario

Tipo

Rango

Estado

Dato
IT Arivals (I)

Real

Valor
Inicial

[0,TSIM]

Declarada/
Iniciada

3.6 Puerto con cuatro tipos de embarcaciones

MeserT

Usuario

Stay

Teller

Real

24

[0,+]

(R)
RL

Usuario

TSIM

Sistema

Arrivals (I)

Declarada/

3.8

Iniciada
Real

[0,+]

Declarada

Entero

(0,+]

Iniciada

300

Tabla 3.6: Analisis de Presentacion de valores de una cola

3.5.2

Variables Definidas

MarrT IR [0,TSIM] intervalo de tiempo entre llegadas al sistema, el rango implica


que tendremos al menos una llegada durante la simulacion.
MeserT IR [0,+] tiempo de procesamiento en el sistema.
RL IR [0,+] almacena los valores referentes a la longitud de la cola.

3.5.3
INIT

C
odigo Propuesto para Dise
no de Experimentos
ACT( A r r i v a l s , 0 ) ;

TSIM: = 3 0 0 ;
MarrT : = 4 ;
MserT : = 3 . 8 ;

( Para metros )

( Dise n
o de Experimentos )
INTI ( MarrT , Tiempo e n t r e L l e g a d a s , 4 , 0 ,TSIM) ;
INTI ( MeserT , Tiempo T r a n s a c c i o n , 3 . 8 , 0 ) ;

3.6

Puerto con cuatro tipos de embarcaciones

En un puerto llegan cuatro tipos de embarcaciones, diferenciadas entre s por su


funcion:
Carguero general FREIGHTER
Carguero con carga pesada BULK

3.6 Puerto con cuatro tipos de embarcaciones

25

Barcos tursticos TOURIST


Barcos a ser reparados REPAIR
Los barcos tursticos son clasificados dependiendo de la funcion que realizaran en
el puerto: STOPPING, VISIT, TRANSFER.
Los tiempos de intervalo entre llegadas de estos barcos son determinados mediante
cierta distribucion emprica descrita por una funcion poligonal FTBA (a nivel de
pieza lineal).
Cada embarcacion va a un determinado puerto, denotado como P (port) seguido del
tipo de embarcacion:
PFREIGHTER, PBULK, PTOURIST, PREPAIR
Cada puerto tiene varios puestos y pueden acomodar cierto n
umero maximo de embarcaciones.
El tiempo de carga y descarga en un puerto es dado por una funcion de distribucion
diferente para cada tipo de embarcacion:
Para los barcos tursticos es dado por una distribucion triangular cuyos parametros son
diferentes por cada subtipo. Cada subtipo tiene una probabilidad diferente dada por
una funcion de frecuencia FRShipTypeTU.
Para el tipo carguero con carga pesada, hay una funcion de distribucion emprica para
la cual la inversa TRepair viene dada por una funcion spline.
Para los barcos a ser reparados la inversa de la distribucion viene dada por una funcion
poligonal.
Cuando se cierra el puerto, las embarcaciones son asignadas a una salida dependiendo
de su tipo A, B o C.
El objetivo del modelo es experimentar con diferentes cantidades de puestos para cada
puerto.
La simulacion esta planteada para 365 das y la unidad de tiempo es una hora.
El codigo original de este modelo es mostrado en la seccion A.6

3.6 Puerto con cuatro tipos de embarcaciones

3.6.1

26

Tabla de An
alisis
Nombre

Tipo Dato

Rango

TTypShip

Rango

{Freighter, Bulk, Tourist, Repair}

TExit

Rango

{A, B, C}

TTypTur

Rango

{Stopping, Visit, Transfer}

Tabla 3.7: Tipos Definidos por el Usuario

Nombre

Tipo

Uso

Tipo Dato

Rango

Estado

Variable
MI

Usuario

Valor
Inicial

Stay

Arreglo

[0,MO]

TourPier

Declarada/

(5,27,72)

Iniciada

(R)
MO

Usuario

Stay

Arreglo

[MI,MA]

TourPier

Declarada/

(6,40,93)

Iniciada

(R)
MA

Usuario

Stay

Arreglo

[MO,+]

TourPier

Declarada/

(8,47,

Iniciada

130)

(R)
TypTur

Usuario

TourPier (R)

TTypTur

TTypTur

Declarada

ExitClass

Usuario

DecExit (G)

TExit

TExit

Declarada

Usuario

Aleatorio

Real

[1,+]

Declarada

Harbor (I)
P

Usuario

RESUL (A)

Real

[0,+]

Declarada

ShipType

Usuario

Harbor (I)

TTypShip

TTypShip

Declarada

Tabla 3.8: Analisis de Puerto con cuatro tipos de Embarcaciones

3.6.2

Variables Definidas

MI,MO, MA IR [0,+] son utilizadas para seleccionar el tiempo de duracion en


el puerto para embarcaciones tursticas dependiendo de su funcion a realizar.
TypTur TTypTur define el tipo de funcion a realizar por una embarcacion turstica.
ExitClass TExit define las posibles salidas de las embarcaciones dependiendo de
su tipo.

3.6 Puerto con cuatro tipos de embarcaciones

27

R IR [1,+] variable utilizada en el nodo I para almacenar un n


umero aleatorio,
creado mediante una funcion del sistema.
P IR [0,+] variable utilizada en el funcionamiento del nodo A.
ShipType TTypShip es un campo de mensaje que define el tipo de embarcacion
que llega al sistema.

3.6.3
INIT

C
odigo Propuesto para Dise
no de Experimentos
ACT( Harbor , 0 ) ; ACT(RESUL, 3 6 5 2 4 ) ;

FTBArr : = 0 . 0 , 0 . 5 / 0 . 2 , 1 / 0 . 3 , 2 / 0 . 3 5 , 2 . 5 / 0 . 4 0 , 3 . 5 / 0 . 4 5 , 3 . 9 /
0.50 ,4.1/0.55 ,4.8/0.60 ,5/0.70 ,5.5/0.80 ,6/0.90 ,6.25/1.0 ,6.5;
FType:= F r e i g h t e r , 6 1 1 / Bulk , 4 2 3 / T o u r i s t , 2 1 2 / Repair , 1 5 ;
TFreig : = 0 . 0 , 7 / 0 . 2 , 1 3 / 0 . 4 , 1 5 / 0 . 6 , 1 9 / 0 . 8 , 2 1 / 1 . 0 , 2 2 ;
TBulk : = 0 . 0 , 9 / 0 . 2 , 1 2 / 0 . 4 , 1 6 / 0 . 6 , 1 9 . 5 / 0 . 8 , 2 2 / 1 . 0 , 2 2 . 5 ;
TRepair : = 0 . 0 , 5 5 / 0 . 3 , 7 2 / 0 . 7 , 8 1 / 0 . 9 , 8 8 / 1 . 0 , 9 0 ;
FTypTur:= Stopping , 7 5 / V i s i t , 1 2 2 / T r a n s f e r , 1 5 ;
FClaExit := F r e i g h t e r ,A/ Bulk ,A/ T o u r i s t , B/ Repair , C ;
MI [ S t o p p i n g ] : = 5 ; MO[ S t o p p i n g ] : = 6 ; MA[ S t o p p i n g ] : = 8 ;
MI [ V i s i t ] : = 2 7 ; MO[ V i s i t ] : = 4 0 ; MA[ V i s i t ] : = 4 7 ;
MI [ T r a n s f e r ] : = 7 2 ; MO[ T r a n s f e r ] : = 9 3 ; MA[ T r a n s f e r ] : = 1 3 0 ;
F r e i P i e r : = 5 ; TourPier : = 3 ; B u l k P i e r : = 2 ; RepPier : = 1 ;
( A c t u a l i z a Capacidad L i b r e )
F F r e i P i e r := M F r e i P i e r ;
F TourPier := M TourPier ;
F B u l k P i e r := M BulkPier ;
F RepPier := M RepPier ;
( Dise n
o de Experimentos )
INTI (MI [ S t o p p i n g . . T r a n s f e r ] , Tiempo Mnimo Barco T u r s t i c o
, ( 5 , 2 7 , 7 2 ) , 0 ,MO) ;
INTI (MO[ S t o p p i n g . . T r a n s f e r ] , Tiempo Pr oba bl e Barco T u r s t i c o
, ( 6 , 4 0 , 9 3 ) ,MI ,MA) ;
INTI (MA[ S t o p p i n g . . T r a n s f e r ] , Tiempo Maximo Barco T u r s t i c o
, ( 8 , 4 7 , 1 3 0 ) ,MO) ;

3.7 Sistema de tres colas

3.7

28

Sistema de tres colas

Las personas ingresan a hacer 3 tipos de procesos: proceso A, proceso B, o ambos


iniciando por el proceso A. Son atendidos en la ventanas WA, WB1 y WB2 respectivamente para procesos A y B. Se tiene una entrada INA para el proceso A y otra INB
para el proceso B as como un camino interno que permite a las personas ir de WA
a WB1 o WB2. El 80% de las personas que ingresan a traves de INA tomaran el
camino interno para realizar el proceso B luego de finalizar el proceso A. Las personas
que ingresan a traves de INB se mezclan con las personas que vienen del camino interno para tener una sola cola del proceso B, antes de separarse en las colas respectivas
para WB1 y WB2.
Las colas son simuladas con nodos tipo L, aunque esto no es necesario en este caso
porque las colas son de tipo FIFO y no hay rechazo de personas.
El codigo original de este modelo es mostrado en la seccion A.7

3.7.1

Tabla de An
alisis
Nombre

Tipo Dato

Rango

TT

Rango

{TYPA,TYPB}

Tabla 3.9: Tipos Definidos por el Usuario

Nombre

Tipo

Uso

Variable
TBA

Usuario

Tipo

Rango

Estado

Dato
IT INA (I)

Real

Valor
Inicial

[0,TSIM]

Declarada/

Iniciada
TBB

Usuario

IT INB (I)

Real

[0,TSIM]

Declarada/
Iniciada

TS

Usuario

EXIT (E)

PRIOR

Mensajes/ INA (I)

Real

[0,+]

Declarada

Entero

[0,+]

Declarada

Entero

[0,+]

Declarada

Usuario
PRIOR

Mensajes/ INB (I)


Usuario

3.5

3.7 Sistema de tres colas

TYP

Mensajes/ INA (I)

29

TT

TT

Declarada

TT

TT

Declarada

Real

[0,+]

Declarada

Real

[0,+]

Declarada

Real

[0,+]

Declarada

Entero

(0,+]

Iniciada

Usuario
TYP

Mensajes/ INB (I)


Usuario

TA

Mensajes/ INA (I)


Usuario

TB

Mensajes/ INA (I)


Usuario

TB

Mensajes/ INB (I)


Usuario

TSIM

Sistema

400

Tabla 3.10: Analisis de Sistema de Tres Colas

3.7.2

Variables Definidas

TBA IR [0,TSIM] define el intervalo de llegada para los procesos A, el rango


implica que tendremos al menos una llegada durante la simulacion.
TBB IR [0,TSIM] define el intervalo de llegada para los procesos B, el rango
implica que tendremos al menos una llegada durante la simulacion.
TS IR [0,+] variable utilizada para almacenar la duracion en el sistema para
un cliente.
PRIOR Z [0,+] campo establecido en los mensajes de los nodos de llegada A
y B, para definir la prioridad.
TYP TT campo establecido en los mensajes de los nodos de llegada A y B, para
definir el tipo de proceso a realizar.
TA IR [0,+] campo establecido en los mensajes de los nodos de llegada A y B,
para definir la duracion del proceso A.
TB IR [0,+] campo establecido en los mensajes de los nodos de llegada A y B,
para definir la duracion del proceso B.

3.8 Procesamiento de partes con ajuste de

3.7.3

temperatura

30

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(INA , 0 ) ; ACT( INB , 0 . 2 ) ;


( Dise n
o de Experimentos )
INTI (TBA, Tiempo Llega da P r o c e s o A , 3 , 0 ,TSIM) ;
INTI (TBB, Tiempo Lleg ada P r o c e s o B , 3 . 5 , 0 , TSIM) ;

3.8

Procesamiento

de

partes

con

ajuste

de

temperatura
Las partes a ser procesadas llegan a una maquina. Estas llegan en intervalos determinados por una distribucion triangular. Sus temperaturas TEMP tienen una distribucion
uniforme entre TL1 y TL2. En la cola para ser procesadas por la maquina son ordenadas por su temperatura de forma ascendente. En la cola pierden temperatura a un
ritmo proporcional a TEMP-TE, donde TE es la temperatura ambiente.
Para ser procesadas la temperatura debe estar entre TP1 y TP2. Si la temperatura
de una parte esta por debajo de TP1, debe ser removida y recalentada en un horno
hasta alcanzar una temperatura TR, lo que toma un tiempo REHEAT y luego debe
ser procesada instantaneamente ya que no puede ser recalentada nuevamente. Debe
reemplazar la parte que esta siendo procesada a menos que esta vaya a terminar de ser
procesada en un tiempo menor a TSIM. Cuando regresan al proceso deben ser procesadas desde el inicio.
El enfriamiento en la cola es simulado en el nodo COOLING. La simulacion esta
hecha para observar como el n
umero de partes procesadas y recalentadas cambian con
el tiempo de procesamiento, la temperatura mnima y la constante de enfriamiento. El
n
umero y el patron de las llegadas debe ser el mismo para detectar solo el efecto de los
cambios en los parametros.
Esto se logra usando una corrida independiente para los 3 n
umeros aleatorios.
El codigo original de este modelo es mostrado en la seccion A.8

3.8 Procesamiento de partes con ajuste de

3.8.1

temperatura

31

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo

Variable
TL1

Usuario

Rango

Estado

Dato
ARRIVAL (I)

Real

Valor
Inicial

[-,TL2]

Declarada/

720

Iniciada
TL2

Usuario

ARRIVAL (I)

Real

[TL1,+]

Declarada/

770

Iniciada
TP1

Usuario

CONTROL

Real

[-,TP2]

(G)
TP2

Usuario
Usuario

CONTROL
Stay

Real

[TP1,+]

Usuario

Declarada/

870

Iniciada
PRO-

Real

[0,+]

CESS (R)
K

690

Iniciada

(G)
PROCTIME

Declarada/

Declarada/

15.8

Iniciada

COOLING (A)

Real

[-,+]

Declarada/

2.52e12

Iniciada
TR

Usuario

REHEATING

Real

[0,+]

(R)
REHEAT

Usuario

Stay

Declarada/

735

Iniciada
RE-

Real

[0,+]

HEATING

Declarada/

2.5

Iniciada

(R)
TE

Usuario

COOLING (A)

Real

[-,+]

Declarada/

28

Iniciada
TIM

Usuario

PROCESS (R)

Real

[0,+]

Declarada/

2.5

Iniciada
D

Usuario

COOLING (A)

Real

[-,+]

Declarada

DT

Usuario

IT COOLING

Real

[0,+]

Declarada/

(A)

Iniciada

Usuario

RESULT (A)

Entero

[0,+]

Declarada

PRI

Mensajes/ ARRIVAL (I)

Logico

{Verdadero,

Declarada

Usuario
TEMP

Mensajes/ ARRIVAL (I)

Falso}
Real

[0,+]

Declarada

Real

[0,+]

Declarada

Usuario
REMA

Mensajes/ ARRIVAL (I)


Usuario

Tabla 3.11: Analisis de Procesamiento de partes con ajuste de


temperatura

3.8 Procesamiento de partes con ajuste de

3.8.2

temperatura

32

Variables Definidas

TL1 IR [-,TL2] y TL2 IR [TL1,+] representan las temperaturas mnimas


y maximas con las que llegan las partes al sistema.
TP1 IR [-,TP2] y TP2 IR [TP1,+] representan las temperaturas mnimas
y maximas que deben tener las partes al momento de ser procesadas.
PROCTIME IR [0,+] tiempo de procesamiento de las partes.
K IR [-,+] variable que representa la constante de enfriamiento en el sistema.
TR IR [0,+] es la temperatura requerida para ser procesada una vez que se ha
pasado por el horno de recalentamiento.
REHEAT IR [0,+] es la duracion en el horno de recalentamiento.
TE IR [-,+] simula la temperatura ambiente en el sistema.
TIM IR [0,+] es el tiempo maximo permitido restante de una parte que esta
siendo procesada, para evitar que esta sea reemplazada por una parte recalentada.
D IR [-,+] variable auxiliar en COOLING.
N IR [0,+] variables auxiliar en RESULT.
DT IR [0,+] intervalo de tiempo de enfriado.
PRI L
ogico campo en los mensajes de Arrivals que determina la prioridad de las
partes.
TEMP, REMA IR [0,+] son campos en los mensajes de Arrivals que
determinan la temperatura de las partes que entran al sistema.

n para producir lingotes de acero


3.9 Sistema de fundicio

3.8.3

33

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(ARRIVAL, 0 ) ; ACT(COOLING, 0 ) ; ACT(RESULT, 1 4 4 0 ) ;


DT: = 2 ;
TL1: = 7 2 0 ;
TL2: = 7 7 0 ;
TP1: = 6 9 0 ;
TP2: = 8 7 0 ;
PROCTIME: = 1 5 . 8 ; K: = 2 . 5 2E12; TIM: = 2 . 5 ;
TR: = 7 3 5 ; TE: = 2 8 ; REHEAT: = 2 . 5 ;
REHEATING: = 1 0 ;
INTI PROCTIME : 7 : 2 : Tiempo Medio de Procesado
INTI TP1 :
INTI K

7:2

: Temperatura Minma de Procesado ;


: Constante de E n f r i a m i e n t o

( Dise n
o de Experimentos )
INTI (TL1 , Temperatura Mnima P a r t e s E n t r a n t e s , 7 2 0 , , TL2) ;
INTI (TL2 , Temperatura Maxima P a r t e s E n t r a n t e s , 7 7 0 , TL1) ;
INTI (TP1 , Temperatura Mnima P r o c e s a r , 6 9 0 , 0 ,TP2) ;
INTI (TP2 , Temperatura Maxima P r o c e s a r , 8 7 0 ,TP1) ;
INTI (PROCTIME, Tiempo P r o c e s a m i e n t o , 1 5 . 8 , 0 ) ;
INTI (K, Constante E n f r i a m i e n t o , 2 . 5 2 E12) ;
INTI (TR, Temperatura Requerida R e c a l e n t a m i e n t o , 7 3 5 , 0 ) ;
INTI (REHEAT, Tiempo R e c a l e n t a m i e n t o , 2 . 5 , 0 ) ;
INTI (TE, Temperatura Ambiente , 2 8 ) ;
INTI (TIM, Tiempo Maximo E v i t a r Reemplazo , 2 . 5 , 0 ) ;
INTI (DT, I n t e r v a l o Tiempo E n f r i a d o , 2 , 0 ) ;

3.9

Sistema de fundici
on para producir lingotes de
acero

Se tienen preparadas las placas. Dependiendo del tipo de fundicion hay un n


umero de
moldes de un acero especial en cada plato. Los moldes son cilndricos y abiertos en la
parte inferior. Estos de tipo 1 (seccion 415) tienen en la parte superior una tapa de

n para producir lingotes de acero


3.9 Sistema de fundicio

34

material desechable (mazarota) para retrasar el enfriamiento del acero que sube en el
molde. Un tren esta formado por una sucesion de placas.
Su n
umero depende de el tipo de fundicion.
En el proceso de fundicion que sigue el armado del tren se carga un envase con el acero
lquido. Este es vertido en cada una de las placas mediante un embudo en el centro
de las mismas. En adelante el acero es distribuido a traves de canales de material
refractario que lleva el acero al final de los moldes y llena los moldes. Cuando la
fundicion termina luego de un tiempo de enfriamiento, una gr
ua extrae los moldes y
los pone en un espacio abierto. Los lingotes permanecen en las placas mientras se
siguen enfriando.
Si la fundicion es de tipo 1, los moldes requieren mayor tiempo de enfriamiento para
permitir que la mazarota colocada este lista para la fundicion. Esto se hace en lotes
de 50 moldes cada uno.
Por otra parte, los lingotes deben ser recortados. Esto consiste en retirar las barras
de acero formadas por los canales que son cortados por sopletes. Para que esten listos
para ser transportados.
Las placas son transportadas al area de refabricacion por una gr
ua. Ahi los canales
y embudos son preparados. As estan listos para preparar el tren nuevamente. Para
lograr esto los moldes deben estar disponibles. Toda la operacion es realizada de manera
sucesiva cada serie de fundiciones del mismo tipo.
Estos procesos estan descritos en el modelo por una matriz OpMat. Para cada proceso
se tiene el tipo de fundicion, seccion, altura, n
umero de lingotes, n
umero de placas y
n
umero de fundiciones por proceso. No toda esta informacion es usada en este modelo
simple. Las fallas y el mantenimiento de las gr
uas no esta incluido. El objetivo de esta
version es experimentar con el tiempo de los diferentes procesos.
El codigo original de este modelo es mostrado en la seccion A.9

n para producir lingotes de acero


3.9 Sistema de fundicio

3.9.1

35

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo

Variable
OpMat

Usuario

Rango

Estado

Valor Inicial

[0,+]

Declarada/

((1,2,1,3,2),

Iniciada

(415,480,415,

Dato
StartCamp (I)

Arreglo

515,480),
(1500,1600,
1500,1800,
1600),
(144,96,144,
96,96),
(6,8,6,8,8),
(24,12,24,
12,12),
(5,6,7,5,6))
TTraintSet

Usuario

Stay

TrainSet

Arreglo

[0,+]

(R)
TCasting

Usuario

Stay

Usuario

(6,5,5)

Iniciada
Casting

Arreglo

[0,+]

(R)
TCool

Declarada/

Stay Cool (R)

Arreglo

[0,+]

Declarada/

(1.32,1.32,

Iniciada

1.32)

Declarada/

(12,12, 12)

Iniciada
TTransMold

Usuario

Stay TransMold

Arreglo

[0,+]

(R)
TCoolIngot

Usuario

Stay CoolIngot

Arreglo

[0,+]

(R)
TTrimIngot

Usuario

Stay TrimIngot

Arreglo

[0,+]

(R)
TTraPlate

Usuario

Stay

Usuario

Stay

TraPlate

Arreglo

[0,+]

Usuario

SetPlate

Arreglo

[0,+]

Usuario

Stay TraIngots
Stay
(R)

4.92)

Declarada/

(4.67,4.67,

Iniciada

4.67)

Declarada/

(12,4,4)

Declarada/

(2,2,2)

Declarada/

(5,5,5)

Iniciada
Arreglo

[0,+]

(R)
TTraIngot

Iniciada

Iniciada

(R)
TTraIngots

(5.32,4.92,

Iniciada

(R)
TSetPlate

Declarada/

TraIngot

Arreglo

[0,+]

Declarada/

(4.43,3.52,

Iniciada

3.52)

Declarada/

(2,2,2)

Iniciada

n para producir lingotes de acero


3.9 Sistema de fundicio

TTraMoPlate

Usuario

Stay

TraMo-

Arreglo

[0,+]

Plate (R)

36

Declarada/

(1,1,1)

Iniciada

NL

Usuario

Decision (D)

Arreglo

[0,+]

Declarada

CAMP

Usuario

StartCamp (I)

Entero

[0,Camp Declarada
Num]

NC

Usuario

StartCamp (I)

Entero

[0,Camp Declarada
Num]

CastType

Usuario

StartCamp (I)

Entero

[0,+]

Declarada

NLM

Usuario

Stay TransSet-

Entero

[0,+]

Declarada

Entero

[0,+]

Declarada

Entero

[0,+]

Declarada/

Maz (R)
CDM

Usuario

Stay TransSetMaz (R)

CampNum

Usuario

Continue (G)

Iniciada
TCoolType1

Usuario

Stay CoolType1

Real

[0,+]

(R)
TsetMaz

Usuario

TransSetMaz

Declarada/

Iniciada
Real

[0,+]

(R)

Declarada/

0.066667

Iniciada

Tabla 3.12: Analisis de Sistema de fundicion para producir lingotes


de acero

3.9.2

Variables Definidas

OpMat IR [0,+] descripcion de los procesos involucrados en la simulacion.


CastType Z [0,+] define el tipo de fundido a utilizar en la jornada.
CAMP, NC Z [0,CampNum] representan la jornada de trabajo actual y las ya
realizadas.
NLM, CDM Z [0,+] definen la mazarota actual y la que se va a retirar.
TsetMaz IR [0,+] define la duracion en el proceso de colocar la Mazarota.
TCoolType1 IR [0,+] el tiempo de enfriado de la Mazarota.
CampNum Z [0,+] es el n
umero maximo de jornadas de trabajo a realizar.
NL IR [0,+] es el n
umero de lingotes.
TTraintSet IR [0,+] Tiempo de formacion general.
TCasting IR [0,+] Tiempo de fundicion.

n para producir lingotes de acero


3.9 Sistema de fundicio

37

TCool IR [0,+] Tiempo de enfriado.


TTransMold IR [0,+] es el tiempo de transporte de los moldes.
TTraMoPlate, TSetPlate , TTraPlate IR [0,+] representan los tiempos de
formacion, procesado y transporte de la placa.
TTraIngot, TCoolIngot, TTrimIngot, TTraIngots IR [0,+] representan
los tiempos de formacion, enfriado, recorte y transporte de los lingotes.

3.9.3
INIT

C
odigo Propuesto para Dise
no de Experimentos
ACT( StartCamp , 0 ) ;

CampNum: = 5 ;
ASSI OpMat [ 1 . . 7 , 1 . . 5 ] : = ( (

1,

2,

1,

3,

2) ,

( 415 , 480 , 415 , 515 , 480) ,


(1500 ,1600 ,1500 ,1800 ,1600) ,
( 144 ,

96 , 144 ,

ASSI TCool

6,

8,

6,

8,

8) ,

24 ,

12 ,

24 ,

12 ,

12) ,

5,

6,

7,

5,

[1..3]:=(1.32 ,1.32 ,1.32) ;


[1..3]:=(12 ,12 ,12) ;

ASSI TTransMold [ 1 . . 3 ] : = ( 5 . 3 2 , 4 . 9 2 , 4 . 9 2 ) ;
TsetMaz
TCoolType1

:=0.066667;
:=6;

ASSI TCoolIngot

[1..3]:=(4.67 ,4.67 ,4.67) ;

ASSI TTrimIngot

[1..3]:=(12 ,4 ,4) ;

ASSI TTraPlate

[1..3]:=(2 ,2 ,2) ;

ASSI T Set Plat e

[1..3]:=(5 ,5 ,5) ;

ASSI TTraIngot

[1..3]:=(2 ,2 ,2) ;

ASSI TTraMoPlate [ 1 . . 3 ] : = ( 1 , 1 , 1 ) ;
ASSI TTraIngots

96) ,

ASSI TTrainSet [ 1 . . 3 ] : = ( 6 , 5 , 5 ) ;
ASSI TCasting

96 ,

[1..3]:=(4.43 ,3.52 ,3.52) ;

6) ) ;

quina con fallas


3.10 Ma

38

( Dise n
o de Experimentos )
INTI (OpMat [ 1 . . 7 , 1 . . 5 ] , P r o c e s o s I n v o l u c r a d o s , ( ( 1 , 2 , 1 , 3 , 2 ) ,
(415 ,480 ,415 ,515 ,480) ,
(1500 ,1600 ,1500 ,1800 ,1600) ,
(144 ,96 ,144 ,96 ,96) ,
(6 ,8 ,6 ,8 ,8) ,
(24 ,12 ,24 ,12 ,12) ,
(5 ,6 ,7 ,5 ,6) ) ,0) ;
INTI ( TTraintSet [ 1 . . 3 ] , Tiempo Formacio n G e n e r a l , ( 6 , 5 , 5 ) , 0 ) ;
INTI ( TCasting [ 1 . . 3 ] , Tiempo F u n d i c i o n , ( 1 . 3 2 , 1 . 3 2 , 1 . 3 2 ) , 0 ) ;
INTI ( TCool [ 1 . . 3 ] , Tiempo E n f r i a d o , ( 1 2 , 1 2 , 1 2 ) , 0 ) ;
INTI ( TTransMold [ 1 . . 3 ] , Tiempo T r a n s p o r t e Moldes
,(5.32 ,4.92 ,4.92) ,0) ;
INTI ( TCoolIngot [ 1 . . 3 ] , Tiempo E n f r i a d o L i n g o t e s
,(4.67 ,4.67 ,4.67) ,0) ;
INTI ( TTrimIngot [ 1 . . 3 ] , Tiempo R e c o r t e L i n g o t e s , ( 1 2 , 4 , 4 ) , 0 ) ;
INTI ( TTraPlate [ 1 . . 3 ] , Tiempo T r a n s p o r t e Pl ac a , ( 2 , 2 , 2 ) , 0 ) ;
INTI ( T S etPlate [ 1 . . 3 ] , Tiempo Procesado P la ca , ( 5 , 5 , 5 ) , 0 ) ;
INTI ( TTraIngot [ 1 . . 3 ] , Tiempo Formacio n L i n g o t e s , ( 2 , 2 , 2 ) , 0 ) ;
INTI ( TTraIngots [ 1 . . 3 ] , Tiempo T r a n s p o r t e L i n g o t e s
,(4.43 ,3.52 ,3.52) ,0) ;
INTI ( TTraMoPlate [ 1 . . 3 ] , Tiempo Formacio n Pl a ca , ( 1 , 1 , 1 ) , 0 ) ;
INTI ( TsetMaz , Duracio n C o l o c a r Mazarota , 0 . 0 6 6 6 6 7 , 0 ) ;
INTI ( TCoolType1 , Tiempo E n f r i a d o Mazarota , 6 , 0 ) ;
INTI (CampNum, N
umero Maximo Jornadas Trabajo , 5 , 0 ) ;

3.10

M
aquina con fallas

Partes a ser procesadas llegan en intervalos de tiempo tomados de forma aleatoria de


una distribucion triangular. Son procesadas una por una si la maquina no esta fuera
de servicio. El tiempo de procesamiento es tomado de una distribucion gamma.
Cuando cierto tiempo de trabajo pasa ocurre una falla. Este tiempo es tomado de
una distribucion gaussiana. Cuando la falla ocurre la parte es removida y el tiempo es
usado para arreglar la maquina. La parte removida entra de nuevo a la maquina por

quina con fallas


3.10 Ma

39

el tiempo restante para completar su procesamiento.


El codigo original de este modelo es mostrado en la seccion A.10

3.10.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
Fault

Usuario

SimTim

Tipo

Rango

Estado

Dato
Control (G)

Usuario

Logico
Real

Valor
Inicial

{Verdadero,

Declarada/

Falso}

Iniciada

[0,+]

Declarada/

Falso
2000

Iniciada
TBetweenFaults

Usuario

FaultEnd (A)

Real

[0,+]

Declarada/

15

Iniciada
TtonextFault

Usuario

Machine (R)

Real

[0,TBetween

Declarada

Faults]
FixingTime

Usuario

Faults (A)

Real

[0,+]

Declarada/

Iniciada
NumFaults

Usuario

FaultEnd (A)

Entero

[0,+]

Declarada/

Iniciada
FinishedParts

Usuario

ProcTime

Mensajes/ Stay Machine


Usuario

Result (A)

Entero

[0,+]

Declarada

Real

[0,+]

Declarada

(R)
Tabla 3.13: Analisis de Maquina con fallas

3.10.2

Variables Definidas

Fault L
ogico estado de falla en el sistema.
FixingTime IR [0,+] tiempo de reparacion del sistema.
FinishedParts Z [0,+] es el n
umero de partes terminadas.
ProcTime IR [0,+] representa el tiempo de estada en la maquina.
TtonetxFaults IR [0,TBetweenFaults] representa el tiempo hasta la proxima
falla.
TBetweenFaults IR [0,+] representa l tiempo entre fallas.
NumFaults Z [0,+] representa el n
umero de fallas que han ocurrido.

n
3.11 Proceso de ensamblado con sincronizacio

40

SimTim IR [0,+] Variable definida para suplantar el tiempo de simulacion.

3.10.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT( Arriv , 0 ) ; ACT( Res u l t , SimTime ) ;


SimTime : = 2 0 0 0 ;
F a u l t :=FALSE ;
FixingTime : = 4 . 0 ;
NumFaults : = 0 ;
TBetweenFaults : = 1 5 ;
INTI TBetweenFaults : 7 : 1 : Tiempo e n t r e F a l l a s ;
INTI SimTime : 7 : 1

: Tiempo S i m u l a c i o n ;

( Tiempo h a s t a l a p r im e r a f a l l a )
TtoNextFault :=GAUSS( TBetweenFaults , 0 . 1 TBetweenFaults ) ;

( Dise n
o de Experimentos )
INTI ( Fault , Estado F a l l a , F a l s e ) ;
INTI ( SimTim , Tiempo S i m u l a c i o n , 2 0 0 0 , 0 ) ;
INTI ( TBetweenFault , Tiempo e n t r e f a l l a s , 1 5 , 0 ) ;
INTI ( FixingTime , Tiempo Repa ra cio n , 4 , 0 ) ;
INTI ( NumFaults , N
umero F a l l a s O c u r r i d a s , 0 , 0 ) ;

3.11

Proceso de ensamblado con sincronizaci


on

Aparatos semiterminados llegan a un proceso de ensamblado en intervalos de tiempo


tomados de una distribucion gaussiana. Cada aparato es divido en dos partes que
deben ser procesadas en dos lineas de procesos diferentes en equipos separados. Luego
cada parte debe esperar la otra para los tiempos de chequeo que toman un tiempo
despreciable. Mientras una parte esta en espera de la otra, el equipo desocupado
puede recibir y procesar una nueva parte. Luego de la prueba de chequeo, cada parte
pasa a un proceso diferente.

n
3.11 Proceso de ensamblado con sincronizacio

41

Cuando estan terminadas las dos partes estas son ensambladas de nuevo y un nuevo
proceso es ejecutado en todo el aparato.
El codigo original de este modelo es mostrado en la seccion A.11

Figura 3.1: Proceso de Ensamblado con Sincronizacion.

3.11.1

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo

Variable
TiMinA

Usuario

Rango

Dato
Stay

EquiA

Arreglo

Usuario

Stay

[0,TiMaxA]

Usuario

Stay

EquiA

Arreglo

EquiB

Arreglo

[TiMinA,

Declarada/

+]

Iniciada

[0,+]

Declarada/

(R)
DTiB

Usuario

Stay

Usuario

Stay

EquiB

Arreglo

[0,+]

Usuario

Stay

EquiC

Real

[0,+]

Usuario

(12,14)

Declarada/

(3,4)

Declarada/

Iniciada
EquiC

Real

[0,+]

(R)
MeTiBeArr

(18,20)

Iniciada

(R)
DtC

(14,15)

Iniciada

(R)
TmC

Declarada/
Iniciada

(R)
MeTiB

Valor
Inicial

(R)
TiMaxA

Estado

IT

Declarada/

Iniciada
Real

[0,+]

Ent Appar

Declarada/

25

Iniciada

(I)
DMeTi

Usuario

IT

Real

[0,+]

Ent Appar

Declarada/

Iniciada

(I)
lin

Usuario

TSIM

Sistema

EquiA (R)

Entero

[1,2]

Declarada

Entero

(0,+]

Iniciada

Tabla 3.14: Analisis de Proceso de ensamblado con sincronizacion

500

n
3.11 Proceso de ensamblado con sincronizacio

3.11.2

42

Variables Definidas

MeTiBeArr, DMeTi IR [0,+] indican el tiempo entre llegadas de aparatos al


proceso de ensamblado.
lin Z [1,2] define la lnea de proceso seleccionada.
TiMinA IR [0,TiMaxA] y TiMaxA IR [TiMinA,+] definen el tiempo de
estada mnimo y maximo en el equipo A.
MeTiB, DTiB IR [0,+] definen el tiempo de estada en el equipo B.
TmC, DtC IR [0,+] definen el tiempo de estada en el equipo C para el aparato
completamente ensamblado.

3.11.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT( Ent Appar , 0 ) ;


TSIM: = 5 0 0 ;
ASSI TiMinA [ 1 . . 2 ] : = ( 1 4 , 1 5 ) ;
ASSI TiMaxA [ 1 . . 2 ] : = ( 1 8 , 2 0 ) ;
ASSI MeTiB [ 1 . . 2 ] : = ( 1 2 , 1 4 ) ;
ASSI DTiB [ 1 . . 2 ] : = ( 3 , 4 ) ;
TmC: = 7 ;
DtC: = 1 ;
MeTiBeArr : = 2 5 ;
DMeTi: = 4 ;
( Dise n
o de Experimentos )
INTI ( TiMinA [ 1 . . 2 ] , Tiempo Mnimo E s t a da A , ( 1 4 , 1 5 ) , 0 , TiMaxA) ;
INTI (TiMaxA [ 1 . . 2 ] , Tiempo Maximo E s t a da A , ( 1 8 , 2 0 ) , TiMinA ) ;
INTI (MeTiB [ 1 . . 2 ] , Tiempo E s t a da B , ( 1 2 , 1 4 ) , 0 ) ;
INTI (DTiB [ 1 . . 2 ] , D e s v i a c i o n Tiempo E s t a da B , ( 3 , 4 ) , 0 ) ;
INTI (TmC, Tiempo E s t a da C , 7 , 0 ) ;
INTI (DtC , D e s v i a c i o n Tiempo E s t a da C , 1 , 0 ) ;
INTI ( MeTiBeArr , Tiempo Lle g ad a Aparatos , 2 5 , 0 ) ;
INTI ( DMeti , D e s v i a c i o n Tiempo L leg a da , 4 , 0 ) ;

3.12 Ruta crtica

3.12

43

Ruta crtica

En este ejemplo se da una red de actividades relacionadas para cumplir con una tarea.
Cada actividad es representada por un arco de un grafo dirigido. Una actividad puede
empezar cuando todas las actividades que terminan en su nodo origen han finalizado.
Para cada actividad se dan 3 tiempos de cumplimiento: el probable (normal), el maximo
(pesimista) y el mnimo (optimista).
El programa debe encontrar:
1) El camino crtico, este es la sucesion de actividades cuyo retraso afecta la duracion
de toda la tarea.
2) el tiempo mnimo, dado por la suma de los tempos de las actividades en el camino
crtico.
3) el tiempo de holgura de cada actividad, este es el tiempo que la actividad puede ser
retrasada sin afectar la duracion de la tarea.
El tiempo de cada actividad es asignado aleatoriamente tomado de una distribucion
triangular con mnimo, modo y maximo respectivamente equivalentes a los tiempos
optimista, normal y pesimista.
Por esta razon si repetimos un calculo obtendremos diferentes tiempos crticos y por
lo tanto un camino crtico diferente. As, el resultado final debe ser estimado tomando
valores medios de los resultados de muchos experimentos. En este ejemplo la computacion estatica no esta hecha.
La simulacion esta hecha representando las actividades por nodos tipo R que contienen
un mensaje (que representa la ejecucion de la actividad) por un tiempo equivalente
a la duracion asignada. Los nodos son representados por nodos tipo G que arman
los mensajes entrantes, y cuando todo ha llegado, envia copias de los mensajes a las
actividades que salen del nodo.
Para cada actividad un registro es mantenido de el tiempo en que la actividad inicio
(arreglo MINST) y el tiempo que la actividad tomo.
El tiempo del mensaje cuando llega al nodo final es el tiempo crtico.
Con la informacion almacenada el u
ltimo tiempo de cada actividad es computarizado.
Este es el u
ltimo tiempo en que puede terminar sin retrasar la tarea completa. Esto
es hecho empezando con la u
ltima actividad (la cual su u
ltimo tiempo es el tiempo

3.12 Ruta crtica

44

crtico) y luego ir en retroceso hasta el nodo inicial. En cada una el tiempo inicial es
computarizado restando del tiempo final la duracion de la actividad. Las actividades
que terminan en el origen de la actividad considerada tienen el tiempo inicial como su
u
ltimo tiempo. Si en un nodo muchas actividades son originadas, para cada actividad
que termine en el puede haber diferentes valores de el u
ltimo tiempo. La menor cantidad sera considerada el verdadero u
ltimo tiempo porque un mayor tiempo retrasara
la tarea.
Con el u
ltimo tiempo y el tiempo mnimo de la iniciacion de cada actividad podemos
obtener el tiempo maximo permitido para cada actividad. Si restamos la duracion de
la actividad obtenemos el tiempo de holgura por actividad, es decir, cuanto tiempo
despues de el tiempo asignado puede ser retrasado sin retrasar toda la tarea. Las actividades que tienen el tiempo de holgura igual a cero son las actividades crticas y
forman el camino crtico. Debido a errores de redondeo pueden diferir de cero en el
orden de la precision de los calculos. Ellas son consideradas cero si tienen un valor
absoluto menor que 0.0000001.
Aunque el ejemplo es equivalente a un programa convencional de CPM, la flexibilidad
de el lenguaje permite una simulacion mas realista. La duracion de una actividad
puede depender de los recursos usados o compartidos con otras actividades. Los mensajes pueden contener informacion que permita la liberacion de recursos o cambiar la
duracion de otras actividades.
Otras estadsticas interesantes pueden ser agregadas: la distribucion de la duracion de
una tarea, la probabilidad de que una actividad resulte crtica, etc.
Los datos del ejemplo son: En unidades de tiempo
Actividad

Nodo Origen

Nodo Final

Mnimo

Normal

Maximo

3.12 Ruta crtica

45

14

16

20

11

10

El codigo original de este modelo es mostrado en la seccion A.12

3.12.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable

Tipo

Rango

Estado

Dato

Valor
Inicial

Usuario

E (E)

Entero

[0,10]

Declarada

NC

Usuario

E (E)

Entero

[0,+]

Declarada/

Iniciada
AC

Usuario

E (E)

Entero

[0,10]

Declarada

ACLL

Usuario

E (E)

Entero

[0,10]

Declarada

ORAC

Usuario

E (E)

Entero

[0,10]

Declarada

TM

Usuario

E (E)

Real

[0,+]

Declarada

MINST

Usuario

R (R)

Arreglo

[0,+]

Declarada

MAXFT

Usuario

E (E)

Arreglo

[0,+]

Declarada

T ACT

Usuario

R (R)

Arreglo

[0,+]

Declarada

SLACK

Usuario

E (E)

Arreglo

[0,+]

Declarada

NODFA

Usuario

E (E)

Arreglo

[0,+]

Declarada/

(2,3,4,2,4,

Iniciada

5,6,7,7,8)

Declarada/

(1,1,1,3,3,

Iniciada

2,4,6,5,7)

NODOA

Usuario

E (E)

Arreglo

[0,+]

Tabla 3.15: Analisis de Ruta crtica

3.12.2

Variables Definidas

T ACT IR [0,+] representa la duracion de una actividad.


MINST, MAXFT IR [0,+] representan el tiempo mnimo y el maximo para
iniciar una actividad.
AC, ACLL, ORAC Z [1,10] representan el nodo actual, el siguiente, y el nodo
origen para un recorrido.
J Z [1,10] define un recorrido.

s
3.13 Lnea de autobu

46

TM, SLACK IR [0,+] definen el tiempo para finalizar y el tiempo de holgura.


NC IR [0,+] representa el n
umero de corridas.
NODOA, NODFA IR [0,+] representan los nodos origen y final de una
actividad.

3.12.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT( IA , 0 ) ;
ASSI NODOA[ 1 . . 1 0 ] : = ( 1 , 1 , 1 , 3 , 3 , 2 , 4 , 6 , 5 , 7 ) ; {Nodo o r i g e n de l a
actividad I}
ASSI NODFA[ 1 . . 1 0 ] : = ( 2 , 3 , 4 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ) ; {Nodo f i n a l de l a
actividad

I}

NC: = 0 ;
( Dise n
o de Experimentos )
INTI (NODOA[ 1 . . 1 0 ] , Nodo Origen A c t i v i d a d , ( 1 , 1 , 1 , 3 , 3 , 2 , 4 , 6 , 5 , 7 )
,0) ;
INTI (NODFA[ 1 . . 1 0 ] , Nodo F i n a l A c t i v i d a d , ( 2 , 3 , 4 , 2 , 4 , 5 , 6 , 7 , 7 , 8 )
,0) ;
INTI (NC, N
umero C o r r i d a s , 0 , 0 ) ;

3.13

Lnea de autob
us

4 autobuses sirven una ruta cerrada con 6 paradas. La parada n


umero 1 es el origen y
el terminal:

Figura 3.2: Lnea de autob


us.

s
3.13 Lnea de autobu

47

Pasajeros llegan a cada parada en intervalos dados por una distribucion exponencial.
La media es diferente para cada parada. El destino es asignado a cada pasajero de forma
aleatoria por una distribucion frecuencial dada por la matriz de frecuencia origendestino. Filas I Columnas J es proporcional con la probabilidad de que un pasajero
tome el autob
us en la parada I y se baje en la parada J.
Cuando un autob
us alcanza una parada los pasajeros con ese destino se bajan del
autob
us. El n
umero de pasajeros que toman el autob
us es el mnimo entre la longitud
de la cola y la capacidad disponible en el autob
us. El autob
us viaja a la siguiente
parada. En la simulacion los autobuses son representados por mensajes que tienen
un campo ESBUS=TRUE que indica que el mensaje es un autob
us y un campo que
indica el n
umero actual de pasajeros.
Las paradas son simuladas como nodos R m
ultiplos del nodo STOP de dimension 6.
La carretera entre paradas es simulada como un nodo R TRAVEL de dimension 6.
Cuando un autob
us sale de la carretera representado por TRAVEL[J] va a la parada
STOP[J+1]. Si J es 6 va a STOP[1].
La funcion FORDEST computa de manera aleatoria el destino cuando el origen es
dado. El tiempo esta en minutos. Se desea una opcion para monitorear el movimiento
de los pasajeros en detalle.
El codigo original de este modelo es mostrado en la seccion A.13

3.13.1
Nombre

Tabla de An
alisis
Tipo

Uso

Variable

Tipo

Rango

Estado

Dato

Valor
Inicial

GETIN

Usuario

STOP (G)

Entero

[0,+]

Declarada

Usuario

TRAVEL (R)

Entero

[0,6]

Declarada

BUSCAP

Usuario

STOP (G)

Entero

[0,+]

Declarada/

50

Iniciada
OFF

Usuario

BUSGEN (I)

Entero

[0,+]

Declarada

NB

Usuario

BUSGEN (I)

Entero

[1,4]

Declarada/

Iniciada
P

Usuario

STOP (G)

Entero

[0,+]

Declarada/
Iniciada

s
3.13 Lnea de autobu

MOR

Usuario

48

Function

Arreglo

[0,+]

FORDEST

Declarada/

((0,12,17,

Iniciada

15,0,0),
(0,0,11,
15,0,0),
(0,0,0,
15,0,0),
(14,0,0,
0,9,17),
(15,0,0,
0,0,12),
(16,0,0,
0,0,0))

TBARR

Usuario

IT

ARRIV-

Arreglo

[0,+]

PASS (I)
TTRAVEL
TTTRAVEL

Usuario
Usuario

TRAVEL (R)
TRAVEL (R)

Arreglo
Arreglo

[0,+]
[0,+]

Declarada/

(2.8,3.2,3,

Iniciada

2.5,3.1,2.2)

Declarada/

(15,24,17,

Iniciada

17,24,15)

Declarada/

(0,0,0,0)

Iniciada
NTOTPAS

Usuario

RESULT (A)

Arreglo

[0,BUSCAP] Declarada/
Iniciada

ENTER

Usuario

STOP (G)

Logico

{Verdadero,

Declarada

Falso}
ESBUS

Mensajes/ ARRIVPASS
Usuario

DEST
ESBUS

(I)

Mensajes/ ARRIVPASS
Usuario

Logico

Declarada

Falso}
Entero

[0,+]

Declarada

Logico

{Verdadero,

Declarada

(I)

Mensajes/ BUSGEN (I)


Usuario

NPAS

{Verdadero,

Falso}

Mensajes/ BUSGEN (I)

Entero

[0,+]

Declarada

Entero

[0,+]

Declarada

Usuario
NBUS

Mensajes/ BUSGEN (I)


Usuario

Tabla 3.16: Analisis de Lnea de autob


us

(0,0,0,0)

s
3.13 Lnea de autobu

3.13.2

49

Variables Definidas

TBARR IR [0,+] define el tiempo de llegada de pasajeros a las diferentes


paradas.
ESBUS L
ogico campo de mensajes en ARRIVPASS que define la llegada de un
pasajero.
DEST Z [0,+] campo de mensajes en ARRIVPASS que define su destino.
NB Z [1,4] define el numero del autob
us que llega a la parada.
OFF Z [0,+] define si bajaran pasajeros del autob
us.
ESBUS L
ogico campo de mensajes en BUSGEN que representa la llegada de un
autob
us.
NPAS Z [0,+] campo de mensajes en BUSGEN que representa el n
umero de
pasajeros.
NBUS Z [0,+] campo de mensajes en BUSGEN que representa el n
umero del
autob
us.
ENTER L
ogico define si hay pasajeros para ingresar al autob
us.
P Z [0,+] define a los pasajeros.
GETIN Z [0,+] define el n
umero de pasajeros que suben al autob
us.
BUSCAP Z [0,+] define la capacidad del autob
us.
J Z [1,6] define el n
umero de parada.
TTRAVEL, TTTRAVEL IR [0,+] definen el tiempo de viaje entre paradas
y el tiempo de viaje total.
NTOTPAS IR [0,BUSCAP] representa el n
umero de pasajeros en el autob
us.
MOR IR [0,+] define la frecuencia en que son asignados los destinos de los
pasajeros.

3.13.3

C
odigo Propuesto para Dise
no de Experimentos

s
3.13 Lnea de autobu

50

INIT ACT(RESULT, 6 0 0 ) ; ACT(BUSGEN, 1 2 ) ; ACT(BUSGEN, 4 4 ) ;


ACT(BUSGEN, 7 0 ) ; ACT(BUSGEN, 1 0 0 ) ; ACT(ARRIVPASS [ 1 ] , 0 ) ;
ACT(ARRIVPASS [ 2 ] , 1 0 ) ; ACT(ARRIVPASS [ 3 ] , 4 5 ) ; ACT(ARRIVPASS [ 4 ] , 6 0 ) ;
ACT(ARRIVPASS [ 5 ] , 6 7 ) ; ACT(ARRIVPASS [ 6 ] , 8 0 ) ;
FOR J :=1 TO 6 DO TRAVEL[ J ] : =MAXREAL;
BUSCAP: = 5 0 ;
NB: = 0 ;
P: = 0 ;
ASSI NTOTPAS[ 1 . . 4 ] : = ( 0 , 0 , 0 , 0 ) ;
ASSI TTTRAVEL[ 1 . . 4 ] : = ( 0 , 0 , 0 , 0 ) ;
ASSI TBARR[ 1 . . 6 ] : = ( 2 . 8 , 3 . 2 , 3 . 0 , 2 . 5 , 3 . 1 , 2 . 2 ) ;
ASSI TTRAVEL [ 1 . . 6 ] : = ( 1 5 , 2 4 , 1 7 , 1 7 , 2 4 , 1 5 ) ;
ASSI MOR [ 1 . . 6 , 1 . . 6 ] : = ( ( 0 , 1 2 , 1 7 , 1 5 , 0 , 0 ) , ( Origen D e s t i n o )
( 0 , 0 ,11 ,15 , 0 , 0) ,

( Frecuencias )

( 0 , 0 , 0 ,15 , 0 , 0) ,
(14 , 0 , 0 , 0 , 9 ,17) ,
(15 , 0 , 0 , 0 , 0 ,12) ,
(16 , 0 , 0 , 0 , 0 , 0) ) ;
( Dise n
o de Experimentos )
INTI (BUSCAP, Capacidad Autob
us , 5 0 , 0 ) ;
INTI (MOR[ 1 . . 6 , 1 . . 6 ] , F r e c u e n c i a D e s t i n o s , ( ( 0 , 1 2 , 1 7 , 1 5 , 0 , 0 ,
(0 ,0 ,11 ,15 ,0 ,0) ,
(0 ,0 ,0 ,15 ,0 ,0) ,
(14 ,0 ,0 ,0 ,9 ,17) ,
(15 ,0 ,0 ,0 ,0 ,12) ,
(16 ,0 ,0 ,0 ,0 ,0) ) ,0) ;
INTI (P , P a s a j e r o , 0 , 0 ) ;
INTI (NB, N
umero Autob
us , 0 , 0 ) ;
INTI (TBARR[ 1 . . 6 ] , Tiempo L l eg ad a P a s a j e r o s Paradas
,(2.8 ,3.2 ,3 ,2.5 ,3.1 ,2.2) ,0) ;
INTI (TTRAVEL [ 1 . . 6 ] , Tiempo V i a j e Parada
,(15 ,24 ,17 ,17 ,24 ,15) ,0) ;
INTI (TTTRAVEL[ 1 . . 4 ] , Tiempo V i a j e T o t a l , ( 0 , 0 , 0 , 0 ) , 0 ) ;
INTI (NTOTPAS [ 1 . . 4 ] , N
umero P a s a j e r o s Autob
us , ( 0 , 0 , 0 , 0 ) , 0 ,
BUSCAP) ;

3.14 Sistema presa depredador

3.14

51

Sistema presa depredador

En un sistema ecologico simplificado, depredadores (zorros) se alimentan de presas


(conejos) que son vegetarianos.
Este modelo describe la interaccion propuesta por Lotka y Volterra en 1930.
Digamos que R es la cantidad de conejos y F la cantidad de zorros.
La ley de crecimiento para las presa, sin depredadores es una exponencial (velocidad de
crecimiento proporcional a R) o una logstica (velocidad de crecimiento proporcional
a (1-R/RM)*R).
Debido a la accion de los depredadores esta velocidad es reducida a tal punto que es
proporcional al producto F*R.
Los depredadores sin presas disminuiran exponencialmente (disminucion proporcional
a F). Esto es compensado a tal punto que es proporcional a su taza de alimentacion
F*R.
El sistema oscila en el caso exponencial y tiende a un estado de equilibrio en el caso
logstico.
El programa puede mostrar una grafica en la etapa de espacio (F,R) o la grafica de F
y R en funcion del tiempo.
El codigo original de este modelo es mostrado en la seccion A.14

3.14.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
C1

Usuario

Tipo

Rango

Estado

Dato
RF (C)

Real

Valor
Inicial

[0,+]

Declarada/

0.18

Iniciada
C2

Usuario

RF (C)

Real

[0,+]

Declarada/

0.00015

Iniciada
C3

Usuario

RF (C)

Real

[0,+]

Declarada/

0.2

Iniciada
C4

Usuario

RF (C)

Real

[0,+]

Declarada/

0.0001

Iniciada
RM

Usuario

RF (C)

Real

[0,+]

Declarada/
Iniciada

20000

3.14 Sistema presa depredador

Usuario

RF (C)

52

Continuo

[0,RM]

Declarada/

1000

Iniciada
F

Usuario

RF (C)

Continuo

[0,+]

Declarada/

750

Iniciada
Tabla 3.17: Analisis de Sistema Presa Depredador

3.14.2

Variables Definidas

C1, C2, C3 ,C4 IR [0,+] son variables utilizadas en los calculos de RF.
R Continuo [0,RM] y RM IR [0,+] definen la poblacion de conejos y la
cantidad maxima de conejos posible.
F Continuo [0,+] define la poblacion de zorros.

gico perturbado
3.15 Sistema ecolo

3.14.3

53

C
odigo Propuesto para Dise
no de Experimentos

INIT TSIM: = 2 5 0 ; ACT(RF, 0 ) ;


R: = 1 0 0 0 ;
F:=750.0;

( Valor I n i c i a l )

RM: = 2 0 0 0 0 ;

( Para metros )

C1 : = 0 . 1 8 ;
C2 : = 0 . 0 0 0 1 5 ;
C3 : = 0 . 2 ;
C4 : = 0 . 0 0 0 1 ;
DT RF: = 0 . 1 2 5 ;
( Dise n
o de Experimentos )
INTI (R, P o b l a c i o n Conejos , 1 0 0 0 , 0 ,RM) ;
INTI (F , P o b l a c i o n Z o r r o s , 7 5 0 , 0 ) ;
INTI (RM, P o b l a c i o n Maxima Conejos , 2 0 0 0 0 , 0 ) ;
INTI (C1 , V a r i a b l e Ecuacio n LotkaV o l t e r r a , 0 . 1 8 , 0 ) ;
INTI (C2 , V a r i a b l e Ecuacio n LotkaV o l t e r r a , 0 . 0 0 0 1 5 , 0 ) ;
INTI (C3 , V a r i a b l e Ecuacio n LotkaV o l t e r r a , 0 . 2 , 0 ) ;
INTI (C4 , V a r i a b l e Ecuacio n LotkaV o l t e r r a , 0 . 0 0 0 1 , 0 ) ;

3.15

Sistema ecol
ogico perturbado

Modelo ecologico de transferencia de energa basado en el modelo de Odum de Silver


Springs.
Comentarios del modelo (niveles troficos):
P productores primarios (algas, hierbas, arboles, etc.)
H herbvoros (pescados, tortugas, invertebrados)
C carnvoros primarios (pescados e invertebrados carnvoros)
S carnvoros secundarios (pescados carnvoros: robalo rayado, luce, etc.)
D descomponedores (insectos, bacterias)
El radio de cambio de cada nivel trofico depende de la produccion (reproduccion y
crecimiento) que es proporcional a la biomasa del nivel y la biomasa de el nivel de cual

gico perturbado
3.15 Sistema ecolo

54

se nutre. Por otra parte el radio de disminucion con:


1. El radio de consumo de el nivel que se nutre.
2. Perdida de biomasa por respiracion.
3. Perdida de biomasa por migracion.
4. Mortalidad.
Los valores de la biomasa son dados en Kcal/m2 /a
no. El tiempo esta dado en a
nos.
Perturbaciones:
1) Luego de 2.1 a
nos comienza una extraccion anual de plantas de 400 a 1000 (moda
800 distribucion triangular).
2) Luego de 8 a
nos una destruccion de 7 en la biomasa de los descomponedores tiene
lugar cada a
no por 2 a
nos por contaminacion del suelo.
Experimentos pueden ser hechos con estas perturbaciones para ver la recuperacion del
sistema.
El codigo original de este modelo es mostrado en la seccion A.15

3.15.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
RespP

Usuario

Tipo

Rango

Dato
CHANGES

Real

Usuario

CHANGES

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES
(C)

Declarada/

0.976823

Declarada/

0.71199

Declarada/

11.3855

Iniciada
Real

[0,+]

(C)
MortH

0.00627

Iniciada

(C)
ConsHC

Declarada/

Iniciada

(C)
RespH

3.70117

Iniciada

(C)
MigrP

Declarada/
Iniciada

(C)
MortP

Valor
Inicial

(C)
ConsPH

Estado

Declarada/

0.04614

Iniciada
Real

[0,+]

Declarada/
Iniciada

8.63253

gico perturbado
3.15 Sistema ecolo

MigrH

Usuario

CHANGES

55

Real

[0,+]

(C)
RespC

Usuario

CHANGES

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Real

[0,+]

Usuario

CHANGES

Declarada/

1.85714

Declarada/

Declarada/

0.14286

Declarada/

0.99000

Declarada/

0.29090

Iniciada
Real

[0,+]

(C)
SUN

0.00280

Iniciada

(C)
MigrD

Declarada/

Iniciada

(C)
MortD

0.7800

Iniciada

(C)
RespD

Declarada/

Iniciada

(C)
MigrS

0.0600

Iniciada

(C)
MortS

Declarada/

Iniciada

(C)
RespS

6.32

Iniciada

(C)
MigrC

Declarada/
Iniciada

(C)
MortC

0.00537

Iniciada

(C)
ConsCS

Declarada/

Declarada/

1.81820

Iniciada
Real

[0,+]

Declarada

Real

[0,+]

Declarada/

(C)
MSUN

Usuario

CHANGES
(C)

EntrH

Usuario

CHANGES

Iniciada
Real

[0,+]

(C)
D

Usuario

CONTAM (A)

1700000

Declarada/

486

Iniciada
Continuo

[0,+]

Declarada/

22

Iniciada
S

Usuario

CHANGES

Continuo

[0,+]

(C)
C

Usuario

CHANGES

Usuario

CHANGES
(C)

Iniciada
Continuo

[0,+]

(C)
H

Declarada/
Declarada/

50

Iniciada
Continuo

[0,+]

Declarada/
Iniciada

166

gico perturbado
3.15 Sistema ecolo

Usuario

EXTRAC (A)

56

Continuo

[0,+]

Declarada/

3236

Iniciada
PhotE

Usuario

CHANGES

RET:3?

[0,+]

(C)
TSIM

Sistema

Declarada/

0.01282

Iniciada
Entero

(0,+]

Iniciada

300

Tabla 3.18: Analisis de Sistema ecologico perturbado

3.15.2

Variables Definidas

RespP, MortP, MigrP, ConsPH IR [0,+] definen la respiracion, mortalidad,


migracion y consumo de los productores.
RespH, MortH, MigrH, ConsHC IR [0,+] definen la respiracion, mortalidad,
migracion y consumo de los herbvoros.
RespC, MortC, MigrC, ConsCS IR [0,+] definen la respiracion, mortalidad,
migracion y consumo de los carnvoros.
RespS, MortS, MigrS IR [0,+] definen la respiracion, mortalidad y migracion
de los secundarios.
RespD, MortD, MigrD IR [0,+] definen la respiracion, mortalidad y migracion
de los descomponedores.
SUN IR [0,+] define el cambio anual de radiacion.
MSUN IR [0,+] define la media de la energa solar.
P, H, C, S, D Continuo [0,+] representan las biomasas de los productores,
herbvoros, carnvoros, secundarios y descomponedores.
EntrH IR [0,+] es la entrada de energa por parte de los herbvoros.
PhotE IR [0,+] es la absorcion de energa vegetal.

3.15.3

C
odigo Propuesto para Dise
no de Experimentos

gico perturbado
3.15 Sistema ecolo

57

INIT ACT(CHANGES, 0 ) ; ACT(GRAPHIC, 0 ) ; ACT(EXTRAC, 2 . 1 ) ; ACT(CONTAM, 8 ) ;


TSIM: = 3 0 0 ;
( Para metros )
PhotEff : = 0 . 0 1 2 8 2 ; ( a b s o r c i o n de e n e r ga s o l a r por l o s
v e g e t a l e s )
RespP : = 3 . 7 0 1 1 7 ;

( r e s p i r a c i o n de l o s p r o d u c t o r e s )

ConsPH : = 0 . 0 0 6 2 7 ;

( p r o d u c t o r e s consumidos por h e r bv o r o s )

MortP : = 0 . 9 7 6 8 2 3 ;

( m o r t a l i d a d de l o s p r o d u c t o r e s )

MigrP : = 0 . 7 1 1 9 9 ;

( m i g r a c i o n de l o s p r o d u c t o r e s )

RespH : = 1 1 . 3 8 5 5 ;

( r e s p i r a c i o n de l o s h e r bv o r o s )

ConsHC: = 0 . 0 4 6 1 4 ;

( h e r bv o r o s consumidos por c a r nv o r o s )

MortH : = 8 . 6 3 2 5 3 ;

( m o r t a l i d a d de l o s h e r bv o r o s )

MigrH : = 0 . 0 0 5 3 7 ;

( m i g r a c i o n de l o s h e r bv o r o s )

RespC : = 6 . 3 2 0 0 ;

( r e s p i r a c i o n de l o s c a r nv o r o s p r i m a r i o s )

ConsCS : = 0 . 0 6 0 0 ;

( consumo de l o s c a r nv o r o s p r i m a r i o s por

secundarios )
MortC : = 0 . 7 8 0 0 ;

( m o r t a l i d a d de c a r nv o r o s p r i m a r i o s )

MigrC : = 0 . 0 0 2 8 0 ;

( m i g r a c i o n de c a r nv o r o s p r i m a r i o s )

RespS : = 1 . 8 5 7 1 4 ;

( r e s p i r a c i o n de c a r nv o r o s s e c u n d a r i o s )

MortS : = 1 . 0 0 0 0 0 ;

( m o r t a l i d a d de c a r nv o r o s s e c u n d a r i o s )

MigrS : = 0 . 1 4 2 8 6 ;

( m i g r a c i o n de c a r nv o r o s s e c u n d a r i o s )

RespD : = 0 . 9 9 0 0 0 ;

( r e s p i r a c i o n de l o s descomponedores )

MortD : = 0 . 2 9 0 9 0 ;

( m o r t a l i d a d de l o s descomponedores )

MigrD : = 1 . 8 1 8 2 0 ;

( m i g r a c i o n de l o s descomponedores )

MSUN:=1700000 ;

( media e n e r ga s o l a r Kcal /m2/ a


no

EntrH :=486

( Entrada de e n e r ga exo gena a l o s h e r bv o r o s

)
( V a l o r e s i n i c i a l e s de l a s v a r i a b l e s )
P:=3236

( Biomasa ( e n e r ga ) de l o s p r o d u c t o r e s

primarios )
H:=166

( Biomasa ( e n e r ga ) de l o s h e r bv o r o s )

C:=50

( Biomasa ( e n e r ga ) de l o s c a r nv o r o s )

S:=7

( Biomasa ( e n e r ga ) de l o s s e c u n d a r i o s )

D:=22

( Biomasa ( e n e r ga ) de l o s descomponedores )

DT CHANGES: = 0 . 0 0 7 8 1 2 5 ;

mico (Puerta Oscilante)


3.16 Sistema dina

58

( Dise n
o de Experimentos )
INTI ( RespP , R e s p i r a c i o n P r o d u c t o r e s , 3 . 7 0 1 1 7 , 0 ) ;
INTI ( MortP , M o r t a l i d a d P r o d u c t o r e s , 0 . 9 7 6 8 2 3 , 0 ) ;
INTI ( MigrP , M i g r a c i o n P r o d u c t o r e s , 0 . 7 1 1 9 9 , 0 ) ;
INTI ( ConsPH , Consumo P r o d u c t o r e s , 0 . 0 0 6 2 7 , 0 ) ;
INTI ( RespH , R e s p i r a c i o n H e r vb o r o s , 1 1 . 3 8 5 5 , 0 ) ;
INTI ( MortH , M o r t a l i d a d H e r vb o r o s , 8 . 6 3 2 5 3 , 0 ) ;
INTI ( MigrH , M i g r a c i o n H e r vb o r o s , 0 . 0 0 5 3 7 , 0 ) ;
INTI ( ConsHC , Consumo H e r vb o r o s , 0 . 0 4 6 1 4 , 0 ) ;
INTI ( RespC , R e s p i r a c i o n C a r nv o r o s , 6 . 3 2 , 0 ) ;
INTI ( MortC , M o r t a l i d a d C a r nv o r o s , 0 . 7 8 0 0 , 0 ) ;
INTI ( MigrC , M i g r a c i o n C a r nv o r o s , 0 . 0 0 2 8 0 , 0 ) ;
INTI ( ConsCS , Consumo C a r nv o r o s , 0 . 0 6 0 0 , 0 ) ;
INTI ( RespS , R e s p i r a c i o n S e c u n d a r i o s , 1 . 8 5 7 1 4 , 0 ) ;
INTI ( MortS , M o r t a l i d a d S e c u n d a r i o s , 1 , 0 ) ;
INTI ( MigrS , M i g r a c i o n S e c u n d a r i o s , 0 . 1 4 2 8 6 , 0 ) ;
INTI ( RespD , R e s p i r a c i o n DescomponedoreS , 0 . 9 9 0 0 0 , 0 ) ;
INTI ( MortD , M o r t a l i d a d Descomponedores , 0 . 2 9 0 9 0 , 0 ) ;
INTI ( MigrD , M i g r a c i o n Descomponedores , 1 . 8 1 8 2 0 , 0 ) ;
INTI (MSUN, Media E n e r ga S o l a r , 1 7 0 0 0 0 0 , 0 ) ;
INTI (P , Biomasa P r o d u c t o r e s , 3 2 3 6 , 0 ) ;
INTI (H, Biomasa H e r vb o r o s , 1 6 6 , 0 ) ;
INTI (C, Biomasa C a r nv o r o s , 5 0 , 0 ) ;
INTI ( S , Biomasa S e c u n d a r i o s , 7 , 0 ) ;
INTI (D, Biomasa Descomponedores , 2 2 , 0 ) ;
INTI ( PhotEff , A b s o r c i o n E n e r ga V e g e t a l , 0 . 0 1 2 8 2 , 0 ) ;
INTI ( EntrH , Entrada E n e r ga H e r vb o r o s , 4 8 6 , 0 ) ;

3.16

Sistema din
amico (Puerta Oscilante)

Una puerta tiene un momento de inercia I respecto al eje de las abscisas de rotacion.
Se cierra automaticamente, luego de abrir, por medio de una elastica de constante K
Kg.m2 /s2 . Tambien tiene un interruptor para las oscilaciones con una constante R
Kg.m/s.

mico (Puerta Oscilante)


3.16 Sistema dina

59

La ecuacion diferencial de el movimiento en el angulo Z medida por su posicion de


equilibrio es:

I*Z + R*Z + K*Z = 0


Si W es la velocidad angular W=Z la ecuacion anterior es equivalente al sistema de
ecuaciones diferenciales de primer orden:
Z=W
W=-R/I*W-K*Z/I
La simulacion puede encontrar los valores de Z(T) y W(T) y representarlos en funcion
de el tiempo T y en el espacio ZW.
El codigo original de este modelo es mostrado en la seccion A.16

3.16.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
W

Usuario

Tipo

Rango

Estado

Dato
C (C)

Continuo

Valor
Inicial

[0,+]

Declarada/

0.0

Iniciada
Z

Usuario

C (C)

Continuo

[0,+]

Declarada/

1.4

Iniciada
R

Usuario

C (C)

Real

[0,+]

Declarada/

0.1

Iniciada
K

Usuario

C (C)

Real

[0,+]

Declarada/

0.9

Iniciada
I

Usuario

C (C)

Real

[0,+]

Declarada/

1.2

Iniciada
TSIM

Sistema

Entero

(0,+]

Iniciada

Tabla 3.19: Analisis de Sistema dinamico (Puerta Oscilante)

80

fico de la cola normal y antite


tica
3.17 Gra

3.16.2

60

Variables Definidas

W, Z Continuo [0,+] representan la velocidad angular W en el angulo Z.


R IR [0,+] define la constante de amortiguacion.
K IR [0,+] define la constante de elasticidad.
I IR [0,+] momento de inercia.

3.16.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(C, 0 ) ;
Z:=1.4;
W: = 0 . 0 ;
R: = 0 . 1 ;
K: = 0 . 9 ;
I :=1.2;
TSIM: = 8 0 ;
DT C: = 0 . 0 6 2 5 ;
( Dise n
o de Experimentos )
INTI ( I , Momeno I n e r c i a , 1 . 2 , 0 ) ;
INTI (R, Constante Amortiguacio n , 1 . 4 , 0 ) ;
INTI (K, Constante E l a s t i c i d a d , 0 . 9 , 0 ) ;
INTI (W, V e l o c i d a d Angular , 0 . 0 , 0 ) ;

INTI ( Z , Angulo
,1.4 ,0) ;

3.17

Gr
afico de la cola normal y antit
etica

Dos sistemas de servicio simple, cada uno similar al ejemplo 3 son simulados en el
mismo programa. El primero es tomado como el experimento normal. El segundo es
el experimento antitetico. En el antitetico los valores aleatorios generados son anticorrelacionados con los valores correspondientes del experimento normal. Como en el
caso simple los efectos o las variables aleatorias tienen efectos de la misma forma en

fico de la cola normal y antite


tica
3.17 Gra

61

ambos experimentos como es esperado, cuando los valores de las variables del sistema
en el experimento normal se desvian del valor medio en una direccion en el antitetico se
desvian en la direccion opuesta. El valor promedio se supone que tendra menor diferencia que el normal y el antitetico. En el sistema GLIDER el antitetico es obtenido
tomando la semilla de un n
umero aleatorio igual a la semilla del normal con signo
negativo. En este experimento basado en variantes aleatorias en tecnicas de rechazo
deben ser evitadas por la desincronizacion de las series de n
umeros aleatorios.
En TIME=600 las estadsticas son inicializadas para evitar efectos transitorios iniciales. Una grafica de salida muestra la longitud de la cola en los experimentos normal,
antitetico y el promedio.
El codigo original de este modelo es mostrado en la seccion A.17

3.17.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
TAT

Usuario

Tipo

Rango

Estado

Dato
Stay TIC (R)

Real

Valor
Inicial

[0,+]

Declarada/

3.99

Iniciada
RLT

Usuario

GRA (A)

Real

[0,+]

Declarada/

Iniciada
RLA

Usuario

GRA (A)

Real

[0,+]

Declarada/

Iniciada
RLM

Usuario

TSIM

Sistema

GRA (A)

Real

[0,+]

Declarada

Entero

(0,+]

Iniciada

12000

Tabla 3.20: Analisis de Grafico de la cola normal y antitetica

3.17.2

Variables Definidas

TAT IR [0,+] es el tiempo de estada en el servicio.


RLT IR [0,+] define el tama
no de la cola en el sistema normal.
RLA IR [0,+] define el tama
no de la cola en el sistema antitetico.
RLM IR [0,+] define el tama
no promedio de las colas de ambos sistemas.

3.18 Puerto petrolero

3.17.3

62

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(ENT, 0 ) ; ACT(ENTA, 0 ) ; ACT(ELIMTRA, 6 0 0 0 ) ;


TSIM: = 1 2 0 0 0 . 0 ;
RN[ 1 ] : = 1 1 1 1 1 1 ;
RN[ 2 ] : = 1 1 1 1 1 1 ; ( S e m i l l a normal y a n t i t e t i c a )
RLT: = 0 . 0 ;
RLA: = 0 . 0

TAT: = 3 . 9 9 ;

( Para metros )

( Dise n
o de Experimentos )
INTI (TAT, Tiempo E s t a da , 3 . 9 9 , 0 ) ;
INTI (RLT, Tama
no Cola Normal , 0 , 0 ) ;
INTI (RLA, Tama
no Cola A n t i t e t i c a , 0 , 0 ) ;

3.18

Puerto petrolero

En un puerto petrolero, 5 clases de petroleo son enviadas: 1,2,3,4,5 que va a traves de


tubos a 5 tanques diferentes en el puerto.
Hay un flujo constante de petroleo de las reservas cercanas de pozos de petroleo a los
tanques. El flujo hacia los tanques solo se detiene cuando el petroleo en el tanque
alcanza su vol
umen maximo. Se reinicia cuando debido a la extraccion para llenar los
barcos, el vol
umen es reducido a cierta cantidad por debajo del maximo. Cada tanque
esta asociado a un embarcadero en el puerto al que entra un barco para ser atendido.
De cada tanque, petroleo es bombeado al barco a una velocidad constante. Este flujo
solo se detiene cuando el barco esta lleno con la cantidad requerida y puede irse del
puerto o cuando el tanque esta exhausto (vol
umen mnimo) y es necesario esperar
hasta que el tanque alcance un vol
umen (mayor al mnimo) que permita continuar con
el llenado del barco.
Hay barcos con 5 capacidades: 200, 300, 500, 700 y 900 miles de barriles. Un barco
puede tener petroleo de un solo tipo. Entonces tenemos 25 tipos diferentes de barcos
dependiendo de su capacidad y tipo de petroleo. Algunos de estos tipos pueden estar

3.18 Puerto petrolero

63

vacos. El tiempo entre llegadas efectivas es diferente por cada tipo, y puede ser
aproximado por una distribucion triangular con parametros (mnimo, moda y maximo)
dependiendo del tipo de barco.
Si el barco tiene que esperar mas de 42 horas desde su llegada al puerto hasta su
salida, una multa debe ser pagada al due
no del barco de acuerdo con el tiempo en
exceso. Vol
umenes estan en mb millones de barriles, tiempo esta en das.
En el modelo, experimentos pueden ser hechos cambiando la capacidad de los tanques y
la velocidad de bombeo (ambos costosos), intentando evitar largos tiempos de detencion
en los flujos de petroleo (que pueden resultar en cierres costosos de los pozos) y largos
tiempos de espera de los barcos (que puede resultar en multas).
El programa tiene un monitoreo grafico del contenido de los tanques y produce un
reporte final con el petroleo bombeado y las multas.
El codigo original de este modelo es mostrado en la seccion A.18

3.18.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
FILLRATE

Usuario

Tipo

Rango

Estado

[0,+]

Declarada/ (32,56.5,145,

Dato
TANK (C)

Arreglo

Iniciada
PUMPRATE

Usuario

Valor Inicial

TANK (C)

Arreglo

[0,+]

80,150)

Declarada/ (1200, 1000,


Iniciada

1000,

1200,

1000)
VMAX

Usuario

TANK (C)

Arreglo

[VMIN,

Declarada/ (1690, 1600,

+]

Iniciada

1780,

1700,

1510)
VMIN

Usuario

TANK (C)

Arreglo

[0,VMAX]

Declarada/ (90,60,60,
Iniciada

VFTANK

Usuario

TANK (C)

Arreglo

80,60)

[VMIN,

Declarada/ (1630, 1580,

VMAX]

Iniciada

1760,

1630,

1490)
VFTANKER

Usuario

TANK (C)

Arreglo

[0,+]

Declarada/ (140,100,
Iniciada

100,140,
100)

3.18 Puerto petrolero

FILL

Usuario

64

TANK (C)

Arreglo

[0,+]

Declarada/ (1,1,1,1,1)
Iniciada

PUMP

Usuario

TANK (C)

Arreglo

[0,+]

Declarada/ (0,0,0,0,0)
Iniciada

SIZETANKER

Usuario

PUMPING

Arreglo

[0,+]

(C)

Declarada/ (1000, 1000,


Iniciada

1000,

1000,

1000)
SIZET

Usuario

ENTRANCE

Arreglo

[0,+]

(G)

Declarada/ (200,300,
Iniciada

500,700,
900)

FINE

Usuario

EXIT (E)

Arreglo

[0,+]

Declarada/ (0,0,0,0,0)
Iniciada

TSHUT

Usuario

TANK (C)

Arreglo

[0,+]

Declarada/ (0,0,0,0,0)
Iniciada

TTSHUT

Usuario

TANK (C)

Arreglo

[0,+]

Declarada/ (0,0,0,0,0)
Iniciada

VTANK

Usuario

TANK (C)

Arreglo

[0,+]

Declarada/ (250,300,
Iniciada

350,300,
466)

VTT

Usuario

Volumen

Arreglo

[0,+]

PUMPING

Declarada/ (0,0,0,0,0)
Iniciada

(C)
VTANKER

Usuario

PUMPING

Arreglo

[0,+]

(C)
TBAMIN

Usuario

IT ARRIVAL
(I)

Declarada/ (0,0,0,0,0)
Iniciada

Arreglo

[0,

Declarada/ (12.6,10.17,7.1

TBAMO]

Iniciada

3,16.25,10.17,
22.3,16.25,
5.3,34.5,12.6,
0,34.5,16.25,
43.63,34.5,0,
0,28.42,180.5,
43.63,0,0,43.5,
119.67,71)

3.18 Puerto petrolero

TBAMO

Usuario

65

IT ARRIVAL

Arreglo

(I)

[TBAMIN, Declarada/ (14.6,12.17,9.1


TBA-

Iniciada

MAX]

3,18.25,12.17,
24.33,18.25,
7.3,36.5,14.6,
0,36.5,16.25,
43.63,34.5,0,0,
28.42,180.5,
43.63,0,0,43.5,
119.67,71)

TBAMAX

Usuario

IT ARRIVAL

Arreglo

(I)

[TBAMO,

Declarada/ (16.6,14.17,1

+]

Iniciada

1.13,20.25,14.1
7,26.33,20.25,
9.3,38.5,16.6,
0,38.5,20.25,
47.63,38.5,0,
0,32.42,184.5,
47.63,0,0,47.5,
123.67,75)

Usuario

TANK (C)

Entero

[0,+]

Declarada

Usuario

ARRIVAL (I)

Entero

[0,+]

Declarada/ 0
Iniciada

CH

Usuario

ARRIVAL (I)

Caracter

Alfanum

Declarada

FINETAX

Usuario

EXIT (E)

Real

[0,+]

Declarada/ 300
Iniciada

TPLL

Usuario

PRIMA-

Real

[0,+]

Declarada

Real

[0,+]

Declarada

Entero

[0,+]

Declarada

Entero

[0,+]

Declarada

Entero

[0,+]

Declarada

RRIVAL (A)
TE

Usuario

EXIT (E)

TYP

Mensajes/ ARRIVAL (I)


Usuario

BERT

Mensajes/ ARRIVAL (I)


Usuario

SIZE

Mensajes/ ARRIVAL (I)


Usuario

Tabla 3.21: Analisis de Puerto petrolero

3.18 Puerto petrolero

3.18.2

66

Variables Definidas

TBAMIN IR [0,TBAMO], TBAMO IR [TBAMIN,TBAMAX], TBAMAX


IR [TBAMO,+] definen los tiempos de llegada mnimo, mas probable y maximo.
CH C
aracter es una variable auxiliar para almacenar un caracter en Arrival.
TYP, SIZE Z [0,+] definen el tipo y tama
no del barco.
BERT Z [0,+] definen atracadero donde desembarcara el barco.
SIZET IR [0,+] es la capacidad para llenar el tanque.
TE IR [0,+] define el tiempo de estada en el puerto.
FINE, FINETAX IR [0,+] definen la multa y el impuesto de la multa.
FILL, FILLRATE IR [0,+] definen el llenado y la velocidad de llenado.
PUMP, PUMPRATE IR [0,+] definen el bombeo y la velocidad de bombeo.
VMIN IR [0,VMAX], VMAX IR [VMIN,+] representan el volumen
mnimo y maximo del tanque.
VFTANK IR [VMIN,VMAX] representa el vol
umen para reiniciar el llenado del
tanque.
VFTANKER IR [0,+] representan el vol
umen para reiniciar el llenado del
barco.
VTANK IR [0,+] define el vol
umen actual del tanque.
TSHUT, TTSHUT IR [0,+] definen el tiempo para cerrar el tanque y el
tiempo de cerrado total del tanque.
VTANKER IR [0,+] define el vol
umen actual del barco.
SIZETANKER IR [0,+] define la capacidad para llenar el barco.
VTT IR [0,+] define el vol
umen total transportado.
TPLL IR [0,+] es una variable auxiliar en PRIMARRIVAL.
I Z [0,+] es una variable auxiliar en TANK.
R IR [0,+] es una variable auxiliar en ARRIVAL.

3.18 Puerto petrolero

3.18.3

67

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(TANK, 0 ) ; ACT (GRA, 0 ) ;


ACT(PRIMARRIVAL, 0 ) ; ACT(PUMPING, 0 ) ; ACT(RESUL, 3 6 5 . 5 ) ;
ASSI FILLRATE [ 1 . . 5 ] : = ( 3 2 , 5 6 . 5 , 1 4 5 , 8 0 , 1 5 0 ) ;
ASSI PUMPRATE[ 1 . . 5 ] : = ( 1 2 0 0 , 1 0 0 0 , 1 0 0 0 , 1 2 0 0 , 1 0 0 0 ) ;
ASSI VMAX[ 1 . . 5 ] : = ( 1 6 9 0 , 1 6 0 0 , 1 7 8 0 , 1 7 0 0 , 1 5 1 0 ) ;
ASSI VFTANK[ 1 . . 5 ] : = ( 1 6 3 0 , 1 5 8 0 , 1 7 6 0 , 1 6 3 0 , 1 4 9 0 ) ;
ASSI VMIN[ 1 . . 5 ] : = ( 9 0 , 6 0 , 6 0 , 8 0 , 6 0 ) ;
ASSI VFTANKER[ 1 . . 5 ] : = ( 1 4 0 , 1 0 0 , 1 0 0 , 1 4 0 , 1 0 0 ) ;
ASSI FILL [ 1 . . 5 ] : = ( 1 . 0 , 1 . 0 , 1 . 0 , 1 . 0 , 1 . 0 ) ;
ASSI PUMP[ 1 . . 5 ] : = ( 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 ) ;
ASSI TSHUT[ 1 . . 5 ] : = ( 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 ) ;
ASSI TTSHUT[ 1 . . 5 ] : = ( 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 ) ;
ASSI TBAMIN[ 1 . . 2 5 ] : = ( 1 2 . 6 ,

10.17 ,

7.13 , 16.25 , 10.17 ,

22.33 , 16.25 ,

5.3 ,

34.5 ,

0.0 ,

34.5 ,

16.25 , 43.63 , 34.5 ,

0.0 ,

0.0 ,

28.42 ,180.5 , 43.63 ,

0.0 ,

0.0 ,

43.5 , 119.67 ,71.0) ;

ASSI TBAMO[ 1 . . 2 5 ] : = ( 1 4 . 6 ,

12.17 ,

9.13 , 18.25 , 12.17 ,

24.33 , 18.25 ,

ASSI TBAMAX[ 1 . . 2 5 ] : = ( 1 6 . 6 ,

0.0 ,

36.5 ,

0.0 ,

0.0

0.0 ,

0.0 ,

7.3 ,

36.5 ,

18.25 , 45.63 , 36.5 ,


,30.42 ,182.5

,45.63 ,

45.5 , 121.67 , 73.0) ;


9.3 ,

38.5 ,

16.6 ,

0.0 ,

38.5 ,

20.25 , 47.63 , 38.5 ,

0.0 ,

0.0 ,

32.42 , 184.5 , 47.63 ,

0.0 ,

0.0 ,

47.5 , 123.67 , 75.0) ;

ASSI SIZET [ 1 . . 5 ] : = ( 2 0 0 , 3 0 0 , 5 0 0 , 7 0 0 , 9 0 0 ) ;
ASSI SIZETANKER[ 1 . . 5 ] : = ( 1 0 0 0 , 1 0 0 0 , 1 0 0 0 , 1 0 0 0 , 1 0 0 0 ) ;
EREL: = 1 0 0 0 0 ;

14.6 ,

14.17 , 11.13 , 20.25 , 14.17 ,


26.33 , 20.25 ,

EABS: = 1 0 0 0 0 ;

12.6 ,

3.18 Puerto petrolero

68

DT TANK: = 0 . 0 3 1 2 5 ;
DT PUMPING: = 0 . 0 3 1 2 5 ;
FINETAX: = 3 0 0 ;
ASSI FINE [ 1 . . 5 ] : = ( 0 , 0 , 0 , 0 , 0 ) ;
VTANK[ 1 ] : = 2 5 0 ;
VTANK[ 2 ] : = 3 0 0 ;
VTANK[ 3 ] : = 3 5 0 ;
VTANK[ 4 ] : = 3 0 0 ;
VTANK[ 5 ] : = 4 6 6 ;
ASSI VTT[ 1 . . 5 ] : = ( 0 , 0 , 0 , 0 , 0 ) ;
ASSI VTANKER[ 1 . . 5 ] : = ( 0 , 0 , 0 , 0 , 0 ) ;
R: = 0 ;
( Dise n
o de Experimentos )
INTI (TBAMIN [ 1 . . 2 5 ] , I n t e r v a l o Ll eg ad a Mnimo
,(12.6 ,10.17 ,7.13 ,16.25 ,10.17 ,22.3 ,
16.25 ,5.3 ,34.5 ,12.6 ,0 ,34.5 ,16.25 ,
4 3 . 6 3 , 3 4 . 5 , 0 , 0 , 2 8 . 4 2 , 1 8 0 . 5 , 4 3 . 6 3 , 0 , 0 , 4 3 . 5 , 1 1 9 . 6 7 , 7 1 ) , 0 ,TBAMO) ;
INTI (TBAMO[ 1 . . 2 5 ] , I n t e r v a l o Lleg a da Promedio
,(14.6 ,12.17 ,9.13 ,18.25 ,12.17 ,24.33 ,
18.25 ,7.3 ,36.5 ,14.6 ,0 ,36.5 ,16.25 ,
4 3 . 6 3 , 3 4 . 5 , 0 , 0 , 2 8 . 4 2 , 1 8 0 . 5 , 4 3 . 6 3 , 0 , 0 , 4 3 . 5 , 1 1 9 . 6 7 , 7 1 ) ,TBAMIN,TBAMAX
);
INTI (TBAMAX[ 1 . . 2 5 ] , I n t e r v a l o L leg a da Maximo
,(16.6 ,14.17 ,11.13 ,20.25 ,14.17 ,26.33 ,
20.25 ,9.3 ,38.5 ,16.6 ,0 ,38.5 ,20.25 ,
4 7 . 6 3 , 3 8 . 5 , 0 , 0 , 3 2 . 4 2 , 1 8 4 . 5 , 4 7 . 6 3 , 0 , 0 , 4 7 . 5 , 1 2 3 . 6 7 , 7 5 ) ,TBAMO) ;

n de piloto de un avio
n
3.19 Eyeccio

69

INTI (SIZETANKER [ 1 . . 5 ] , Capacidad Llenado Barco


,(1000 ,1000 ,1000 ,1000 ,1000) ,0) ;
INTI (TSHUT [ 1 . . 5 ] , Tiempo C e r r a r Tanque , ( 0 , 0 , 0 , 0 , 0 ) , 0 ) ;
INTI (TTSHUT [ 1 . . 5 ] , Tiempo Cerrado T o t a l , ( 0 , 0 , 0 , 0 , 0 ) , 0 ) ;
INTI ( SIZET [ 1 . . 5 ] , Capacidad Llenado Tanque , ( 2 0 0 , 3 0 0 , 5 0 0 , 7 0 0 , 9 0 0 )
,0) ;
INTI (VTANKER[ 1 . . 5 ] , Volumen Barco , ( 0 , 0 , 0 , 0 , 0 ) , 0 ) ;
INTI (FINE [ 1 . . 5 ] , Multa , ( 0 , 0 , 0 , 0 , 0 ) , 0 ) ;
INTI (FINETAX, Impuesto Multa , 3 0 0 , 0 ) ;
INTI ( FILL [ 1 . . 5 ] , Llenado , ( 1 , 1 , 1 , 1 , 1 ) , 0 ) ;
INTI (FILLRATE [ 1 . . 5 ] , V e l o c i d a d Llenado , ( 3 2 , 5 6 . 5 , 1 4 5 , 8 0 , 1 5 0 ) , 0 ) ;
INTI (PUMP[ 1 . . 5 ] , Bombeo , ( 0 , 0 , 0 , 0 , 0 ) , 0 ) ;
INTI (PUMRATE[ 1 . . 5 ] , V e l o c i d a d Bombeo , ( 1 2 0 0 , 1 0 0 0 , 1 0 0 0 , 1 2 0 0 , 1 0 0 0 )
,0) ;
INTI (VMIN [ 1 . . 5 ] , Volumen Mnimo Tanque , ( 9 0 , 6 0 , 6 0 , 8 0 , 6 0 ) , 0 ,VMAX) ;
INTI (VMAX[ 1 . . 5 ] , Volumen Maximo Tanque
, ( 1 6 9 0 , 1 6 0 0 , 1 7 8 0 , 1 7 0 0 , 1 5 1 0 ) ,VMIN) ;
INTI (VFTANKER[ 1 . . 5 ] , Volumen R e i n i c i a r Llenado Barco
,(140 ,100 ,100 ,140 ,100) ,0) ;
INTI (VFTANK[ 1 . . 5 ] , Volumen R e i n i c i a r Llenado Tanque
, ( 1 6 3 0 , 1 5 8 0 , 1 7 6 0 , 1 6 3 0 , 1 4 9 0 ) ,VMIN,VMAX) ;
INTI (VTANK[ 1 . . 5 ] , Volumen Tanque , ( 2 5 0 , 3 0 0 , 3 5 0 , 3 0 0 , 4 6 6 ) , 0 ) ;
INTI (VTT [ 1 . . 5 ] , Volumen T o t a l Transportado , ( 0 , 0 , 0 , 0 , 0 ) , 0 ) ;
INTI (R, V a r i a b l e A u x i l i a r , 0 , 0 ) ;

3.19

Eyecci
on de piloto de un avi
on

En un sistema de eyeccion de un piloto de avion, el piloto es impulsado formando un


angulo THV con la vertical. Este movimiento es hecho a lo largo de una escalera en la
que el piloto y el asiento se mueven a una velocidad VE respecto al avion, que continua
su movimiento horizontal. Es asumido que el viento se mueve en la misma direccion
que el avion (es el peor caso) y que VP es la velocidad de el avion respecto al aire.
Cuando el asiento y el piloto alcanzan una altura Y1 sobre el punto de eyeccion
la escalera termina y ocurre la separacion. Dos fuerzas act
uan en el cuerpo: gravedad
(vertical) y el arrastre del aire (opuesto a la velocidad).

n de piloto de un avio
n
3.19 Eyeccio

70

Figura 3.3: Eyeccion de piloto de un avion.

Ambos producen aceleracion que cambia el valor y direccion de la velocidad.


El componente de la gravedad en la direccion de V es -G*sen(TH)
El componente del arrastre es siempre contrario a V y es expresado como -D/M donde
D es la fuerza en el cuerpo expulsado y M es la masa.
D de acuerdo a la dinamica de fluidos es el producto del coeficiente de arrastre C, la
densidad del aire P, el area efectiva del cuerpo y la velocidad al cuadrado.
Entonces el cambio de V (aceleracion) en la direccion de V (Tangencial) es V=-D/MG*sin(TH)
La aceleracion en la direccion normal de V (centrpeta) es -G*cos(TH)
Entonces en la direccion el cambio en el vector V en dt es dV-G*cos(TH)*dt=V*dTH
lo que es TH=dTH/dt=-G*cos(TH)/V
Los componentes de la velocidad X Y respecto al avion son la proyeccion de V en
los ejes. Como V es la velocidad respecto al aire, el componente X es la proyeccion
menos la velocidad del avion. Entonces:
X=V*cos(TH)-VP Y=V*sin(TH)
Con estas ecuaciones diferenciales y la condicion inicial:
X=0; Y=0;
V=SQRT(VX*VX+VY*VY); TH=ARCTN(VY/VX)

n de piloto de un avio
n
3.19 Eyeccio

71

(VX VY son los componentes de la velocidad en el punto de separacion:


VX:=VP-VE*sen(TE); VY:=VE*cos(TE) )
Es posible calcular X y Y lo que dara la posicion del cuerpo expulsado respecto al
avion, ese es el punto donde la eyeccion inicia.
Lo mas importante es ver si el cuerpo pasa sobre la cola del avion que esta en la posicion
X=-20 Y=3.5 respecto al punto donde inicia la eyeccion.
Experimentar con VP=275 m/s y VP=40m/s VE puede ser cambiada.
El codigo original de este modelo es mostrado en la seccion A.19

3.19.1

Tabla de An
alisis

Nombre

Tipo

Uso

Tipo Dato

Rango

Estado

Variable
X

Usuario

Valor
Inicial

CA (C)

Continuo

[0,+]

Declarada/

Iniciada
Y

Usuario

CA (C)

Continuo

[0,+]

Declarada/

Iniciada
V

Usuario

CA (C)

Continuo

[0,+]

Declarada

TH

Usuario

CA (C)

Continuo

[0,+]

Declarada/

0.2618

Iniciada
PAS

Usuario

CA (C)

Logico

{Verdadero,

Declarada/

Falso}

Iniciada

Usuario

CA (C)

Real

[0,+]

Declarada

CD

Usuario

CA (C)

Real

[0,+]

Declarada/

Verdadero

Iniciada
VP

Usuario

CA (C)

Real

[0,+]

Declarada/

275

Iniciada
G

Usuario

CA (C)

Real

[0,+]

Declarada/

9.80

Iniciada
P

Usuario

CA (C)

Real

[0,+]

Declarada/

1.22

Iniciada
VE

Usuario

CA (C)

Real

[0,+]

Declarada/

12.2

Iniciada
M

Usuario

CA (C)

Real

[0,+]

Declarada/
Iniciada

102

n de piloto de un avio
n
3.19 Eyeccio

Usuario

CA (C)

Real

72

[0,+]

Declarada/

0.93

Iniciada
Y1

Usuario

CA (C)

Real

[0,+]

Declarada/

1.22

Iniciada
VX

Usuario

CA (C)

Real

[0,+]

Declarada

VY

Usuario

CA (C)

Real

[0,+]

Declarada

HCRIT

Usuario

FIN (A)

Real

[0,+]

Declarada

Usuario

CA (C)

Entero

[0,+]

Declarada/

Iniciada
Tabla 3.22: Analisis de Eyeccion de piloto de un avion

3.19.2

Variables Definidas

X, Y Continuo [0,+] definen la posicion inicial del cuerpo.


V Continuo [0,+] define la velocidad del cuerpo.
M, S IR [0,+] definen la masa expulsada y el area efectiva del cuerpo.
TH Continuo [0,+] define el angulo de eyeccion.
VX, VY IR [0,+] definen el angulo de separacion.
VE IR [0,+] define la velocidad de eyecccion.
Y1 IR [0,+] define la longitud de la escalera de eyeccion.
VP IR [0,+] representa la velocidad del avion.
P IR [0,+] representa la densidad del aire.
G IR [0,+] representa la gravedad.
CD IR [0,+] representa el coeficiente de arrastre.
HCRIT IR [0,+] altura crtica registrada.
PAS L
ogico altura crtica no registrada.
D, K IR [0,+] son variables auxiliares en CA.

n de piloto de un avio
n
3.19 Eyeccio

3.19.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT( FIN , 2 . 5 ) ; ACT(CA, 0 ) ;


X: = 0 . 0 ; Y: = 0 . 0 ;

( P o s i c i o n i n i c i a l d e l punto de e y e c c i o n )

CD: = 1 . 0 ;

( c o e f i c i e n t e de a r r a s t r e )

VP: = 2 7 5 . 0 ;

( V e l o c i d a d d e l a v i o n M/S )

G: = 9 . 8 0 ;

( a c e l e r a c i o n de l a gravedad M/S2 )

P: = 1 . 2 2 ;
TH: = 0 . 2 6 1 8 ;

( Densidad d e l a i r e K/M3 )

( Angulo
de e y e c c i o n ( 1 5 Gr ) )

VE: = 1 2 . 2 ;

( V e l o c i d a d de e y e c c i o n M/S )

M: = 1 0 2 . 0 ;

( Masa e x p u l s a d a Kg )

S:=0.93;

( Area e f e c t i v a d e l c u e r p o e x p u l s a d o M2 )

Y1 : = 1 . 2 2 ;

( l o n g i t u d de l a e s c a l e r a de e y e c c i o n m )

PAS:=TRUE;

( A l t u r a c r t i c a no r e g i s t r a d a a
un )

( V e l o c i d a d y a n g u l o de s e p a r a c i o n )
VX:=VPVESIN (TH) ;

VY:=VECOS(TH) ;

V:=SQRT(VXVX+VYVY ) ;
TH:=ARCTAN(VY/VX) ;
K: = 0 ;
DT CA: = 0 . 0 0 8 ;
( Dise n
o de Experimentos )
INTI (X, P o s i c i o n I n i c i a l X , 0 , 0 ) ;
INTI (Y, P o s i c i o n I n i c i a l Y , 0 , 0 ) ;
INTI (M, Masa EXpulsada , 1 0 2 , 0 ) ;

INTI ( S , Area
E f e c t i v a Cuerpo , 0 . 9 3 , 0 ) ;

INTI (TH, Angulo


E y e c c i o n , 0 . 2 6 1 8 , 0 ) ;
INTI (VE, V e l o c i d a d E y e c c i o n , 1 2 . 2 , 0 ) ;
INTI (Y1 , Longitud E s c a l e r a E y e c c i o n , 1 . 2 2 , 0 ) ;
INTI (VP, V e l o c i d a d Avio n , 2 7 5 , 0 ) ;
INTI (P , Densidad A i r e , 1 . 2 2 , 0 ) ;
INTI (G, Gravedad , 9 . 8 0 , 0 ) ;
INTI (CD, C o e f i c i e n t e A r r a s t r e , 1 , 0 ) ;
INTI (PAS, A l t u r a C r t i c a No R e g i s t r a d a , True ) ;
INTI (K, A u x i l i a r CA , 0 , 0 ) ;

73

3.20 Atractor Lorenz

3.20

74

Atractor Lorenz

Las ecuaciones representan un sistema caotico.


La proyeccion de la trayectoria en el plano XZ es graficada.
El codigo original de este modelo es mostrado en la seccion A.20

3.20.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable
X

Usuario

Tipo

Rango

Estado

Dato
CON (C)

Continuo

Valor
Inicial

[0,+]

Declarada/

Iniciada
Y

Usuario

CON (C)

Continuo

[0,+]

Declarada/

Iniciada
Z

Usuario

CON (C)

Continuo

[0,+]

Declarada/

Iniciada
TSIM

Sistema

Entero

[0,+]

Iniciada

300

Tabla 3.23: Analisis de Atractor Lorenz

3.20.2

Variables Definidas

X, Y, Z Continuo [0,+] son variables que forman las ecuaciones del sistema.

3.21 Modelo mundial de Forrester

3.20.3

75

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(CON, 0 ) ;
TSIM: = 3 0 0 ;
X: = 1 ;
Y: = 1 ;
Z:=1;
DT CON: = 0 . 0 6 2 5 ;
( Dise n
o de Experimentos )
INTI (X, V a r i a b l e Ecuacio n , 1 , 0 ) ;
INTI (Y, V a r i a b l e Ecuacio n , 1 , 0 ) ;
INTI ( Z , V a r i a b l e Ecuacio n , 1 , 0 ) ;

3.21

Modelo mundial de Forrester

Este modelo del sistema mundial toma en cuenta la poblacion, recursos naturales,
produccion de bienes y servicios, producion de comida y polucion.
El n
umero de ecuaciones corresponden a parrafos en el captulo 3 del libro de Forrester.
El codigo original de este modelo es mostrado en la seccion A.21

3.21.1

Tabla de An
alisis

Nombre

Tipo

Uso

Variable

Tipo

Rango

Estado

Dato

Valor
Inicial

POP

Usuario

MODEL (C)

Continuo

[0,+]

Declarada

CAP

Usuario

MODEL (C)

Continuo

[0,+]

Declarada

NR

Usuario

MODEL (C)

Continuo

[0,+]

Declarada

POLN

Usuario

MODEL (C)

Continuo

[0,+]

Declarada/

Iniciada
BRN

Usuario

MODEL (C)

Real

[0,+]

Declarada/

0.04

Iniciada
DRN

Usuario

MODEL (C)

Real

[0,+]

Declarada/
Iniciada

0.028

3.21 Modelo mundial de Forrester

CGN

Usuario

MODEL (C)

76

Real

[0,+]

Declarada/

0.05

Iniciada
CDN

Usuario

MODEL (C)

Real

[0,+]

Declarada/

0.025

Iniciada
CAR

Usuario

MODEL (C)

Real

[0,+]

Declarada

NRFR

Usuario

MODEL (C)

Real

[0,+]

Declarada/

Iniciada
NRUN

Usuario

MODEL (C)

Real

[0,+]

Declarada/

Iniciada
NRI

Usuario

MODEL (C)

Real

[0,+]

Declarada

MSL

Usuario

MODEL (C)

Real

[0,+]

Declarada/

0.25

Iniciada
FR

Usuario

MODEL (C)

Real

[0,+]

Declarada/

0.3

Iniciada
CRA

Usuario

MODEL (C)

Real

[0,+]

Declarada

CR

Usuario

MODEL (C)

Real

[0,+]

Declarada

ECR

Usuario

MODEL (C)

Real

[0,+]

Declarada/

0.25

Iniciada
PG

Usuario

MODEL (C)

Real

[0,+]

Declarada

PA

Usuario

MODEL (C)

Real

[0,+]

Declarada

QLS

Usuario

MODEL (C)

Real

[0,+]

Declarada/

Iniciada
CAQR

Usuario

MODEL (C)

Real

[0,+]

Declarada/

Iniciada
LAND

Usuario

MODEL (C)

Real

[0,+]

Declarada/

135e6

Iniciada
PDN

Usuario

MODEL (C)

Real

[0,+]

Declarada/

26.5

Iniciada
CAFT

Usuario

MODEL (C)

Real

[0,+]

Declarada/

15

Iniciada
FN

Usuario

MODEL (C)

Real

[0,+]

Declarada/

Iniciada
ECRN

Usuario

MODEL (C)

Real

[0,+]

Declarada/

Iniciada
POLS

Usuario

MODEL (C)

Real

[0,+]

Declarada/
Iniciada

3.6e9

3.21 Modelo mundial de Forrester

TSIM

Sistema

77

Entero

[0,+]

Iniciada

230

Tabla 3.24: Analisis de Modelo mundial de Forrester

3.21.2

Variables Definidas

LAND Continuo [0,+] define el terreno.


POP Continuo [0,+] define la poblacion.
PDN IR [0,+] define la densidad de poblacion.
CAP Continuo [0,+] define el capital.
CGN, CDN IR [0,+] define la velocidad de crecimiento y disminucion de
capital.
CAR IR [0,+] define la taza capital.
POLS, POLN Continuo [0,+] definen la polucion y la taza de polucion.
PG, PA IR [0,+] definen la generacion y absorcion de polucion.
NR Continuo [0,+] define los recursos naturales.
NRUN, NRFR IR [0,+] define los recursos consumidos y su fraccion restante.
NRI IR [0,+] define los recursos iniciales.
BRN, DRN IR [0,+] definen el coeficiente de las tazas de natalidad y
mortalidad.
QLS, CAQR IR [0,+] representan la calidad de vida y la taza de calidad de
vida.
MSL IR [0,+] representa el material estandar para la calidad de vida.
CRA, FR definen el capital de agricultura y la fraccion de capital en agricultura.
CAFT IR [0,+] define el ajuste de la fraccion de capital en agricultura.
CR IR [0,+] es la taza de amontonamiento.
ECR, ECRN IR [0,+] es la taza de capital efectivo y su normal.
FN IR [0,+] es la normal de la comida.

3.21 Modelo mundial de Forrester

3.21.3

C
odigo Propuesto para Dise
no de Experimentos

INIT ACT(MODEL, 0 ) ;
TSIM: = 2 3 0 ;

( Primera a c t i v a c i o n d e l modelo )
( Tiempo S i m u l a c i o n )

( Para metros y v a l o r e s e s t a n d a r s ( n o r m a l e s ) )
BRN: = 0 . 0 4 ;

( C o e f i c i e n t e t a z a n a t a l i d a d , normal )

DRN: = 0 . 0 2 8 ;

( C o e f i c i e n t e t a z a m o r t a l i d a d , normal )

NRUN: = 1 ;

( r e c u r s o s consumidos por p e r s o n a normal ( 1 9 7 0 ) )

FC: = 1 ;

( Taza a l i m e n t o s , normal en 1 9 7 0 )

CGN: = 0 . 0 5 ;

( C o e f i c i e n t e de t a z a de c r e c i m i e n t o de c a p i t a l ,

normal )
CDN: = 0 . 0 2 5 ;

( C o e f i c i e n t e de t a z a de d e s t r u c c i o n de c a p i t a l )

POLN: = 1 ;

( Taza p o l u c i o n , normal 1 en 1 9 7 0 )

ECRN: = 1 ;

( Taza normal de c a p i t a l e f e c t i v o )

LAND:=135E+6;

( Terreno t o t a l Km2 )

PDN: = 2 6 . 5 ;

( Normal d e n s i d a d de p o b l a c i o n ( 1 9 7 0 ) )

CAFT: = 1 5 . 0 ;

( A j u s t e de r e t r a s o de f r a c c i o n de c a p i t a l de

agricultura
FN: = 1 ;
FR: = 0 . 3 ;

( F r a c c i o n de c a p i t a l en a g r i c u l t u r a , i n i c i a l )

POLS: = 3 . 6E+9;

( P o l u c i o n en 1 9 7 0 )

( Variables in te rm edi ar ia s , v a l o r e s i n i c i a l e s )
QLS : = 1 . 0 ;

( Estandar de l a c a l i d a d de v i d a ( 1 9 7 0 ) )

MSL: = 0 . 2 5 ;

( M a t e r i a l e s t a n d a r de v i d a i n i c i a l ( 1 9 0 0 ) )

CAQR: = 2 ;

( Taza i n i c i a l de c a l i d a d de v i d a )

ECR: = 0 . 2 5 ;

( Taza i n i c i a l de c a p i t a l e f e c t i v o )

NRFR: = 1 ;

( F r a c c i o n de r e c u r s o s n a t u r a l e s n a c i o n a l e s

r e s t a n t e s ; 1 en 1 9 0 0 )
DT MODEL: = 0 . 5 ;

( I n t e r v a l o de i n t e g r a c i o n )

( Funciones ( M u l t i p l i c a d o r e s ) )
BRMM: = 0 . 0 1 , 0 / 0 , 1 . 2 / 1 , 1 . 0 / 2 , 0 . 8 5 / 3 , 0 . 7 5 / 4 , 0 . 7 / 5 , 0 . 7 ; { 3 }
BRFM: = 0 , 0 / 1 , 1 / 2 , 1 . 6 / 3 , 1 . 9 / 4 , 2 . 0 ; { 1 7 }

78

3.21 Modelo mundial de Forrester

BRCM: = 0 . 0 1 , 0 / 0 , 1 . 0 5 / 1 , 1 . 0 / 2 , 0 . 9 / 3 , 0 . 7 / 4 , 0 . 6 / 5 , 0 . 5 5 / 7 , 0 . 5 5 ; { 1 6 }
BRPM: = 0 . 0 1 , 0 / 0 , 1 . 0 2 / 1 0 , 0 . 9 / 2 0 , 0 . 7 / 3 0 , 0 . 4 /
40 ,0.25/50 ,0.15/60 ,0.1;{18}
DRMM: = 0 . 0 1 , 0 / 0 , 3 . 0 / 0 . 5 , 1 . 8 / 1 . 0 , 1 . 0 / 1 . 5 , 0 . 8 / 2 . 0 , 0 . 7 / 2 . 5 , 0 . 6 /
3.0 ,0.53/3.5 ,0.5/4.0 ,0.5/4.5 ,0.5/5.0 ,0.5;{11}
DRFM: = 0 . 0 1 , 0 / 0 . 0 , 3 0 / 0 . 2 5 , 3 / 0 . 5 0 , 2 / 0 . 7 5 , 1 . 4 / 1 . 0 , 1 . 0 / 1 . 2 5 , 0 . 7 /
1.50 ,0.6/1.75 ,0.50/2.0 ,0.50/3.0 ,0.50;{13}
DRCM: = 0 . 0 1 , 0 / 0 , 0 . 9 / 1 , 1 / 2 , 1 . 2 / 3 , 1 . 5 / 4 , 1 . 9 / 5 , 3 ;
DRPM: = 0 . 0 1 , 0 / 0 , 0 . 9 2 / 1 0 , 1 . 3 / 2 0 , 2 . 0 / 3 0 , 3 . 2 /
40 ,4.8/50 ,6.8/60 ,9.2;{12}
CFFR: = 0 . 0 1 , 0 / 0 . 0 , 1 . 0 / 0 . 5 , 0 . 6 / 1 . 0 , 0 . 3 /
1.5 ,0.15/2.0 ,0.1/3.0 ,0.1;{36}
NREM: = 0 . 0 , 0 . 0 / 0 . 2 5 , 0 . 1 5 / 0 . 5 0 , 0 . 5 0 / 0 . 7 5 , 0 . 8 5 / 1 . 0 , 1 . 0 ; { 6 }
CMM: = 0 . 0 1 , 0 / 0 . 0 , 0 . 1 / 1 . 0 , 1 . 0 / 2 . 0 , 1 . 8 / 3 . 0 , 2 . 4 /
4.0 ,2.8/5.0 ,3.0;{26}
FCM: = 0 . 0 1 , 0 / 0 , 2 . 4 / 1 , 1 / 2 , 0 . 6 / 3 , 0 . 4 / 4 , 0 . 3 / 5 , 0 . 2 ; { 2 0 }
FPM: = 0 . 0 1 , 0 / 0 , 1 . 0 2 / 1 0 , 0 . 9 / 2 0 , 0 . 6 5 / 3 0 , 0 . 3 5 / 4 0 , 0 . 2 /
50 ,0.1/60 ,0.05;{28}
FPC: = 0 . 0 1 , 0 / 0 , 0 . 5 / 1 , 1 / 2 , 1 . 4 / 3 , 1 . 7 / 4 , 1 . 9 / 5 , 2 . 0 5 / 6 , 2 . 2 ; { 2 1 }
NRMM: = 0 , 0 . 0 / 1 , 1 . 0 / 2 , 1 . 8 / 3 , 2 . 4 / 4 , 2 . 9 / 5 , 3 . 3 / 6 , 3 . 6 / 7 , 3 . 8 /
8 ,3.9/9 ,3.95/10 ,4.0;{42}
POLCM: = 0 , 0 . 0 5 / 1 , 1 / 2 , 3 / 3 , 5 . 4 / 4 , 7 . 4 / 5 , 8 . 0 ; { 3 2 }
POLAT: = 0 . 0 1 , 0 / 0 , 0 . 6 / 1 0 , 2 . 5 / 2 0 , 5 . 0 / 3 0 , 8 . 0 / 4 0 , 1 1 . 5 /
50 ,15.5/60 ,20.0;{34}
QLM: = 0 . 0 1 , 0 / 0 , 0 . 2 / 1 , 1 . 0 / 2 , 1 . 7 / 3 , 2 . 3 / 4 , 2 . 7 / 5 , 2 . 9 ; { 3 8 }
QLC: = 0 . 0 1 , 0 / 0 , 2 / 0 . 5 , 1 . 3 / 1 , 1 . 0 / 1 . 5 , 0 . 7 5 / 2 , 0 . 5 5 / 2 . 5 , 0 . 4 5 /
3 ,0.38/3.5 ,0.3/4 ,0.25/4.5 ,0.22/5 ,0.20;{39}
QLF: = 0 , 0 / 1 , 1 / 2 , 1 . 8 / 3 , 2 . 4 / 4 , 2 . 7 ; { 4 0 }
QLP: = 0 . 0 1 , 0 / 0 , 1 . 0 4 / 1 0 , 0 . 8 5 / 2 0 , 0 . 6 0 / 3 0 , 0 . 3 0 /
40 ,0.15/50 ,0.05/60 ,0.02;{42}
CQR: = 0 . 0 1 , 0 / 0 . 0 , 0 . 7 / 0 . 5 , 0 . 8 / 1 . 0 , 1 . 0 / 1 . 5 , 1 . 5 / 2 , 2 ; { 4 3 }

79

3.21 Modelo mundial de Forrester

( Dise n
o de Experimentos )
INTI (POLN, Taza P o l u c i o n , 1 , 0 ) ;
INTI (BRN, C o e f i c i e n t e Taza N a t a l i d a d , 0 . 0 4 , 0 ) ;
INTI (DRN, C o e f i c i e n t e Taza M o r t a l i d a d , 0 . 0 2 8 , 0 ) ;
INTI (CGN, Taza C r e c i m i e n t o C a p i t a l , 0 . 0 5 , 0 ) ;
INTI (CDN, Taza Disminucio n C a p i t a l , 0 . 0 2 5 , 0 ) ;
INTI (NRFR, F r a c c i o n R e c u r s o s R e s t a n t e s , 1 , 0 ) ;
INTI (NRUN, R e c u r s o s Consumidos , 1 , 0 ) ;
INTI (MSL, M a t e r i a l Esta ndar Vida , 0 . 2 5 , 0 ) ;
INTI (FR, F r a c c i o n C a p i t a l A g r i c u l t u r a , 0 . 3 , 0 ) ;
INTI (ECR, Taza C a p i t a l E f e c t i v o , 0 . 2 5 , 0 ) ;
INTI (QLS, C a l i d a d Vida , 1 , 0 ) ;
INTI (CAQR, Taza C a l i d a d Vida , 2 , 0 ) ;
INTI (LAND, Terreno T o t a l , 1 3 5E+6 ,0) ;
INTI (PDN, Densidad P o b l a c i o n , 2 6 . 5 , 0 ) ;
INTI (CAFT, A j u s t e F r a c c i o n C a p i t a l A g r i c u l t u r a , 1 5 , 0 ) ;
INTI (FN, Normal Comida , 1 , 0 ) ;
INTI (ECRN, Normal Taza C a p i t a l E f e c t i v o , 1 , 0 ) ;
INTI (POLS, P o l u c i o n , 3 . 6E+9 ,0) ;

80

Captulo 4
Dise
no
En este captulo, se muestra la planificacion del contenido de la librera de dise
no
de experimentos, basado en la informacion obtenida en la revision de la modeloteca
explicada en el captulo 3, y con la nueva seccion de codigo que agregada para que
todos los ejercicios de la modeloteca sean compatibles con la librera propuesta.
La planificacion contemplara el dise
no completo de la librera que servira como base y
gua al momento de desarrollar el prototipo, as como para completar la construccion
de la librera.

4.1

Tipos de Datos

Se describiran los datos usados comunmente en el modelado con Galatea, que tienden
a ser suceptibles a ser utilizados al momento de realizar una experimentacion, razon
principal por la cual los mismos deben ser incluidos en la librera.
Dichos datos seran definidos como los tipos de datos primitivos utilizados por la librera de Dise
no de Experimentos. Dividiremos los tipos en dos grupos para un mayor
entendimiento, los datos atomicos y los compuestos.

4.1 Tipos de Datos

82

Figura 4.1: Tipos de Datos.

4.1.1

At
omicos

Entero
Tipo de dato que puede representar un subconjunto finito de los n
umeros enteros.
La librera de Dise
no de Experimentos permite el manejo de n
umeros enteros dentro
de los parametros de entrada y la manipulacion de los mismos para obtener nuevos
valores que cumplan con las condiciones impuestas por el usuario para la realizacion

4.1 Tipos de Datos

83

de experimentos.
Para la representacion de n
umeros enteros en java podemos utilizar cualquiera de los
tipos primitivos que representan un n
umero entero, mediante su tipo objeto o wrapper.

byte enteros de 8 bits con signo, con complemento a dos. Tipo objeto en
java Byte.
short enteros de 16 bits con signo, con complemento a dos. Tipo objeto
en java Short.
int enteros de 32 bits con signo, con complemento a dos. Tipo objeto en
java Integer.
long enteros de 64 bits con signo, con complemento a dos. Tipo objeto en
java Long.
Real
Tipo de dato que representa los n
umeros reales. Este tipo de dato sera tan preciso
como el n
umero de decimales que posea.
La librera de Dise
no de Experimentos permite el manejo de los n
umeros reales
definidos previamente como objetos del tipo primitivo que representa n
umeros reales,
mediante el uso de su tipo objeto o wrapper.

float reales de 32 bit con coma flotante, se utiliza cuando se prioriza el


ahorro de memoria. Tipo objeto en java Float.
double reales de 64 bit con coma flotante, eleccion predererminada para
valores reales. Tipo objeto en java Double.
C
aracter
El tipo de dato char es un solo caracter Unicode de 16 bits. y es el tipo de dato
primitivo utilizado para la representacion de un caracter, manejado mediante el tipo
objeto de java Character.

4.1 Tipos de Datos

84

Cadena de caracteres
Tipo de dato que representa una cadena de caracteres.
La librera de Dise
no de Experimentos permite el manejo de entrada de cadena de
caracteres, mediante el procesamiento de las mismas y obteniendo su respectivo valor
para el experimento. Esta variable sera un objeto del tipo String de Java y por lo tanto
contara con todos los metodos disponibles para dicho objeto.
L
ogico
Tipo de dato que representa valores de logica binaria. Este dato puede tomar dos
valores u
nicamente, Verdadero o Falso, por omision inicialmente el valor sera Falso.
La librera de Dise
no de Experimentos permite el manejo de los datos Logicos mediante
un objeto que hace referencia a un tipo primitivo boolean de Java que representa el
valor true o false con un tama
no de 1 byte y a su vez este tipo primitivo estara envuelto
por su equivalente como representacion en forma de objeto para Java Boolean y contara
con todos los metodos disponibles para dicho objeto, las variables de este tipo siempre
tendran un u
nico valor.

4.1.2

Compuestos

Arreglos
Tipo estructurado de dato, capaz de almacenar una coleccion de datos del mismo
tipo. Este dato puede agrupar de forma simple componentes de un mismo tipo en un
determinado orden y de un cierto tama
no.
En general un arreglo puede ser n-dimensional y requerira de n ndices para recorrer o
acceder a sus elementos.
La librera de Dise
no de Experimentos permite el manejo de Arreglos de n-dimensiones,
de tama
no predefinido, de cualquiera de los tipos de datos disponibles para la librera
tanto atomicos como compuestos.

4.2 Formas de Experimentar

85

Enumerados
Tipo de dato usado en Galatea para describir variables que denotan un conjunto de
valores no necesariamente n
umericos, en forma de un arreglo de una dimension definido
por el usuario. Dichos datos seran identificados generalmente haciendo uso de cadenas
de caracteres que representan los distintos estados de la variable a estudiar y por tanto
tendran significado para el usuario que realice la simulacion.
Funciones
Tipo de dato compuesto definido por el usuario que permite la inclusion de funciones
que determinan un rango de accion para datos de entrada permitidos. Estos datos
dependeran de funciones de un determinado tipo como por ejemplo funciones de frecuencia, funciones de distribucion, funciones polinomicas, etc.

4.2

Formas de Experimentar

La librera de Dise
no de Experimentos cuenta con cuatro maneras de realizar la experimentacion, se podra seleccionar un parametro o un conjunto de parametros dentro
de las variables detectadas, el valor para cada variable podra cambiarse para valores
dentro de un subconjunto de valores permitidos para dicha variable y en el caso que
sea una variable numerica esta podra tomar valores dentro de un rango seleccionado.

4.2.1

Valor Simple con entrada desde el teclado

La primera forma de experimentar consiste en el intercambio directo de un valor por


otro, o de una cadena de caracteres por otra.
Para valores numericos el valor inicial de una variable es mostrado al Usuario y este a
su vez puede ingresar un nuevo valor que suplantara al valor inicial dado.
En el caso de las variables que pueden tomar valores en un subconjunto predeterminado finito numerable de datos se le permitira al usuario cambiar el valor actual por
uno disponible de todos los posibles valores que podra tomar dicha variable para que
seleccione uno de ellos. Este modo seria una categora dentro de Valor Simple llamada

4.2 Formas de Experimentar

86

Valor Simple Seleccionado.

4.2.2

Indicando valores de un subconjunto de valores

La segunda forma de experimentar contempla que para valores en un subconjunto


predeterminado finito numerable de datos solo se permitira seleccionar de una lista de
valores disponibles para dicha variable, todos aquellos valores que se desean incluir en
la experimentacion, es decir, para una variable de tipo Enumerado que pueda tomar
tres valores distintos por ejemplo, se podrian seleccionar para la experimentacion uno,
dos o tres de los valores. Esta opcion es aplicable para el tipo de dato Enumerados,
pero no para datos de tipo Logico.

4.2.3

Indicando valores en un Rango dado (Intervalos)

La tercera forma de experimentar consiste en la seleccion de un conjunto de valores


para una variable y el n
umero de intervalos que se desea obtener para dicho rango
(solo aplica para variables numericas).
Para valores n
umericos se selecciona un valor mnimo y un valor maximo se calcula la
diferencia entre ambos y se divide entre el n
umero de intervalos deseados, los valores
de los intervalos corresponderan con el tipo de dato de los valores iniciales, es decir,
se tendran enteros y reales respectivamente dependiendo de los valores de entrada.

4.2.4

Indicando valores en un Rango dado (Paso)

La u
ltima forma de experimentar consiste de nuevo en la seleccion de un subrango de
valores para una variable y el valor del paso al cual este n
umero se ira incrementando
hasta alcanzar o sobrepasar el valor maximo.
Para valores n
umericos se selecciona un valor mnimo y un valor maximo, y este rango
es recorrido de principio a fin en base a un valor de paso brindado por parte del usuario.

o de Experimentos por Galatea


4.3 Manejo del Disen

4.3

87

Manejo del Dise


no de Experimentos por
Galatea

Una vez obtenido los valores experimentales, se realizan los calculos del dise
no de
experimentos y obtenemos los valores de salida. Estos valores saldran bajo el formato
aceptado por la consola de comandos para Galatea, es decir, cambiaremos del formato
inicial explicado en la seccion 3.1.3 a un formato de salida que tendra la siguiente
sintaxis, requerida para que pueda ser reconocida por la consola de comandos de
Galatea.
Iniciando por la etiqueta java seguido de el nombre de una variable y su nuevo valor,
se definiran en la misma linea bajo una sola etiqueta java tantas variables con su valor
inicial como se desee.

java ID=VALUE
Se realizaran tantas simulaciones como experimentos sean configurados.
Los resultados saldran bajo una estructura de archivos que se propone durante el
uso de la librera. Todas las lneas de comandos de cada experimento realizado, seran
almacenadas en un archivo (.log) ubicado en el mismo directorio del archivo de entrada
y bajo el mismo nombre.
Para cada experimento configurado se generara una carpeta para cada simulacion bajo
el directorio de trabajo seleccionado inicialmente, donde el nombre estara formado por
el nombre del archivo de entrada, la fecha y la hora actual.

Captulo 5
Prototipo
En este captulo, se describe el prototipo desarrollado para la librera de Dise
no de
Experimentos de Galatea, as como su funcionamiento y el uso paso a paso de la
interfaz grafica para realizar un Dise
no de experimento. Adicionalmente, planteamos
posibles mejoras y cambios a futuro.

5.1

Manejo de Datos

En el prototipo actual no hemos incluido todos los tipos de datos soportados por
Galatea. Para asegurar que el prototipo sea funcional seleccionamos un grupo de datos
mostrados a continuacion.

5.1.1

Entero

Las variables de tipo entero que son detectadas en la lectura del archivo de entrada,
son iniciadas como tipo primitivo int de java para su manejo dentro del prototipo.
Al ser un tipo atomico con valor numerico la variable es elegible para tres de los cuatro
tipos de experimentacion, respetando las condiciones de mantener el mismo tipo de
dato.

Valor Simple primeramente podemos cambiar su valor por otro valor.

5.1 Manejo de Datos

89

Figura 5.1: Cambio de Valor Simple (Enteros).

Tambien podemos seleccionar cualquiera de las dos modalidades para un rango


de valores (intervalos o paso).
Intervalos Para la modalidad del n
umero de intervalos, el n
umero de intervalos debe
ser un int y se tiene una restriccion que los valores obtenidos solo seran int, por
lo que en el caso de obtener un valor real como resultado del calculo matematico
de los intervalos, solo se tomara en cuenta la parte entera del resultado.
Paso Para la modalidad de el valor del Paso solo se recibe un valor int que denota la
cantidad en que aumentara la variable a lo largo del rango.

Figura 5.2: Cambio Rango dado (Enteros).

5.1.2

Real

Las variables de tipo real que son detectadas en la lectura del archivo de entrada, son
iniciadas de tipo primitivo double de java para su manejo dentro del prototipo.
Al ser un tipo atomico con valor numerico la variable es elegible para tres de los cuatro
tipos de experimentacion, respetando las condiciones de mantener el mismo tipo de
dato, los valores que se obtengan como resultado tendran tantos decimales como los
indique el usuario.

Valor simple primeramente podemos cambiar su valor por otro valor.

5.1 Manejo de Datos

90

Figura 5.3: Cambio de Valor Simple (Reales).

Tambien podemos seleccionar cualquiera de las dos modalidades para un rango


de valores (intervalo o paso).
Intervalos para la modalidad del n
umero de intervalos, el n
umero de intervalos debe
ser un int.
Paso y para ambas modalidades se admite cualquier valor n
umerico dentro del rango
de los reales.

Figura 5.4: Cambio Rango dado (Reales).

5.1.3

Cadena de Caracteres

Las variables que son detectadas como cadenas de caracteres, son procesadas y almacenadas como tipo String de java para su manejo dentro del prototipo.
Basicamente todas las Strings que son detectadas en la lectura inicial posteriormente
caen en una de dos categorias, Logicos o Personalizables dependiendo de su valor.
El intercambio de valor simple de una cadena por otra esta permitido. Para este tipo
de dato esta deshabilitada la opcion de experimentacion por Rangos y en su lugar
se permite la seleccion de n valores de el conjunto de valores disponibles para dicha
variable.

5.1 Manejo de Datos

5.1.4

91

L
ogico

Las variables que son detectadas como datos de tipo Logico, son almacenadas en un
String de java con valor Boolean dependiendo de si es TRUE o FALSE. Este tipo de
variables experimentables solo admiten una modalidad que es el cambio de valor simple
seleccionado, pero solo se puede cambiar su valor por otro de sus valores permitidos.

Figura 5.5: Cambio de Valor Simple (Logicos).

5.1.5

Arreglos

Las variables que son detectadas como arreglos, son procesadas y almacenadas dentro
de un tipo ArrayList de java para su manejo dentro del prototipo.
Actualmente el prototipo maneja arreglos de una y dos dimensiones de tama
no n, y
solo para datos de valor numerico de tipo entero o real.
Las tres modalidades de experimentacion estan disponibles para los arreglos, ya que
al momento de seleccionar los nuevos valores para el arreglo, cada posicion es tomada
como un valor individual y por lo tanto se aplican las mismas condiciones mencionadas
anteriormente para enteros y reales. Una vez que los calculos se han realizado

indi-

vidualmente para todos los valores, se construiran tantos arreglos como sean necesarios
para obtener todas las combinaciones de los posibles valores de todas las posiciones del
arreglo.

5.1 Manejo de Datos

92

Figura 5.6: Cambio Valor (Arreglos).

5.1.6

Enumerados

Las variables que son detectadas como datos de tipo Enumerados, son almacenadas
en un ArrayList de java para su manejo dentro del prototipo.
Una vez que se detecta una variable Enumerado, tambien se almacena en un arreglo
de una dimension todos los posibles valores que esta variable puede tomar ( definidos
en el archivo de entrada ) para un manejo mas facil al momento de manipular la misma.

Valor Simple Seleccionado al igual que para los datos de tipo logico se admite el
cambio de valor simple por otro de sus valores permitidos dentro del conjunto
previamente definido.

Figura 5.7: Cambio Valor Simple (Enumerados).

Rango y aunque no se permite la experimentacion por Rangos, si se habilita la


seleccion de n valores del conjunto de valores disponibles para dicha variable.

o Experimental
5.2 Funcionamiento del Disen

93

Figura 5.8: Cambio Valor Rango (Enumerados).

5.2

Funcionamiento del Dise


no Experimental

El funcionamiento de la librera de Dise


no de Experimentos se divide basicamente en
tres etapas:
Lectura del archivo de entrada, Recoleccion de los nuevos valores, y Calculo de los
valores de salida.

5.2.1

Lectura Archivo de Entrada

Se recibe un archivo bajo el formato permitido (.g) y se comienza a leer lnea por lnea
hasta encontrar la seccion de inicializacion, especficamente bajo la etiqueta INTI y
se procesan todas y cada una de las variables definidas seg
un el formato mencionado
en 3.1.3.
Las variables que son detectadas como Arreglos reciben una identificacion como tal,
para continuar un procesamiento mas exhaustivo que permita convertirlas en un
ArrayList de java para un manejo mas facil dentro del prototipo.
Si se detecta alguna variable de tipo Personalizable se activa un segundo proceso de
busqueda para el archivo de entrada, en el cual se lee lnea por lnea hasta encontrar
la etiqueta TYPE y se almacenan en arreglos de una dimension todos aquellos tipos
de datos especficados por el usuario ( Personalizables ).

5.2.2

Recolecci
on de los nuevos valores

En esta etapa se recolecta todos los datos obtenidos de la interaccion con el usuario,
basicamente se hace una barrida de todos los campos de las variables experimentables
seleccionadas y se almacenan los valores indicados. Los cuales son formateados seg
un

fica
5.3 Interfaz Gra

94

las restricciones establecidas y una vez que no se tienen errores ni campos en blanco
estos son enviados a la siguiente etapa para su procesamiento.

5.2.3

C
alculo de los valores de Salida

Una vez obtenidos los datos y las preferencias para los calculos de los valores de las
diferentes variables, se realizan dos procesos.
Inicialmente se calcula para cada una de las variables seleccionadas todos sus posibles
valores dependiendo de las preferencias obtenidas, solo ocurre con las rango, las simples
tienen un u
nico valor, es decir, aquellas variables cuyo valor cambiara bajo la modalidad
de Valor simple, solamente se les asignara ese nuevo valor y estaran listas para la
siguiente fase. Pero aquellas variables que han sido seleccionadas para la modalidad
de rango ya sean variables con valores numericos (N
umero de intervalos o Seleccion
de Paso 4.2.3) o variables no numericas ( Logicas/Personalizables), tendran mas de un
posible valor de salida que deben ser calculados antes de pasar a la siguiente fase.
En la etapa final una vez que se tienen todos los posibles valores para cada variable,
estos datos son enviados a una funcion recursiva que se encarga de generar todas las
posibles combinaciones entre los diferentes datos de las variables que seran nuestros
valores de salida.

5.3

Interfaz Gr
afica

En esta seccion mostraremos y explicaremos las diferentes ventanas que son mostradas
a lo largo de una experimentacion utilizando la librera.

5.3.1

Selecci
on Idioma

Pantalla de configuracion, que es mostrada cada vez que el programa es iniciado y


simplemente nos permite escoger el idioma de preferencia para la interfaz de la lista de
idiomas disponibles (inicialmente Ingles y Espa
nol).

fica
5.3 Interfaz Gra

95

Figura 5.9: GUI Idioma.

5.3.2

Inicio

Pantalla inicial a partir de la cual se seleccionan el directorio de trabajo para los


archivos de salida, y el archivo de entrada sobre el cual se realizara la experimentacion.
Ambos elementos deben haber sido seleccionados antes de poder continuar.

5.3.3

Selecci
on Variables

En esta pantalla podemos observar y seleccionar todas las variables del usuario que
han sido detectadas en el archivo de entrada. Por defecto siempre se mostraran las
variables del Sistema correspondientes a TSIM y TIME, la diferencia radicara en
que si una de estas ha sido definida en el archivo de entrada, su valor inicial se vera
reflejado de lo contrario el valor inicial estara vacio. Al menos una variable debe ser
seleccionada antes de poder continuar.

fica
5.3 Interfaz Gra

96

Figura 5.10: GUI Inicio.

Figura 5.11: GUI Seleccion Variables.

fica
5.3 Interfaz Gra

5.3.4

97

Editar Variables

En esta pantalla se produce la recoleccion de los nuevos valores para las variables
seleccionadas, as como se definen las preferencias para el calculo de cada una de ellas
y se indica el numero de decimales que se desea para los valores de salida. No debe
haber campos en blanco ni con se
nalizaciones (Min, Max, Paso, Intervalo, etc) antes
de poder continuar.

Figura 5.12: GUI Editar Variables.

fica
5.3 Interfaz Gra

5.3.5

98

Resultados

Pantalla final de informacion donde se muestra, el n


umero de archivos de salida generados, y el directorio donde fueron almacenados. Para realizar un nuevo experimento
utilizamos el boton de Inicio para volver a la pantalla inicial.

Figura 5.13: GUI Resultados.

n
5.4 Resultados de la Experimentacio

5.4

99

Resultados de la Experimentaci
on

Una vez que se ha realizado una experimentacion de manera exitosa obtenemos dos
tipos de resultado de salida.
Primero, en el directorio de trabajo seleccionado se generara un directorio con el nombre
del archivo de entrada, la fecha y la hora en que se realizo la experimentacion sobre
el cual se almacenaran tantos directorios como sean necesarios para cubrir todos los
valores obtenidos en la salida del experimento.
Segundo, en el directorio del archivo de entrada se generara un archivo (.log) con el
mismo nombre, donde se almacenaran en formato de linea de comando para Galatea,
todos los experimentos que han sido realizados sobre dicho archivo.
Se realizaran tantas simulaciones como experimentos sean configurados.

Figura 5.14: Estructura Nuevos Directorios

Conclusiones
En base a los objetivos planteados inicialmente, se logro de manera exitosa el dise
no y
el desarrollo del prototipo para la librera de Dise
no de Experimentos.
Se plantean los diferentes tipos de datos con los que la librera debe poder trabajar, y
se implementaron los datos basicos con los que puede realizarse una experimentacion.
Se desarrollo una interfaz grafica de usuario amigable e intuitiva, que permite el procesamiento y la manipulacion y preparacion de los datos de un modelo para realizar
experimentos. La interfaz cuenta con la caracterstica de internacionalidad que permitira a los usuarios seleccionar un idioma de su agrado, dentro de la lista de idiomas de
preferencia.
La planificacion y el dise
no desarrollado durante el proyecto, permitira de manera
sencilla retomar el proyecto en un futuro para continuar con su desarrollo.

Trabajos Futuros
En vista de los objetivos alcanzados durante la realizacion de este proyecto, quedan
fundamentadas las bases para la continuacion y la terminacion de la librera para Dise
no
de Experimentos. Se logro desarrollar un prototipo funcional para los tipos basicos
principales usados en el modelado con el uso de Galatea, por lo que queda a disposicion
de trabajos futuros la continuidad de dicho proyecto para que puedan ser agregados
aquellos tipos de datos que fueron planteados y definidos pero que actualmente no
forman parte del prototipo.
Tambien seria posible la integracion de nuevas formas de realizar experimentaciones con
la librera, ya sean de manera complementaria con las actuales o agregando contenido
completamente nuevo.
Y finalmente, aunque quizas lo mas importante sea lograr la integracion de la interfaz
grafica de la librera de Dise
no de Experimentos con la interfaz grafica de Galatea.

Ap
endice A
Modeloteca. C
odigos Galatea
A.1

Taquilla simple

TITLE T a q u i l l a s i m p l e
NETWORK
Gate ( I )

::

IT:=EXPO( InArrTime ) ;
IF LL( E L T e l l e r ) >20 THEN NM20:=NM20+1;

T e l l e r (R) : :
Exit

STAY:=GAUSS( MeSerTime , DeSerTime ) ;

::

RESULT (A) : : ( Nodo que e s c r i b e e l r e s u l t a d o y t e r m i n a l a s i m u l a c i o n )


OUTG NM20 : 5 : A r r i v a l s with queue >20 ; PAUSE; ENDSIMUL;
INIT ACT(RESULT, 1 0 0 0 ) ; ACT( Gate , 0 ) ;
NM20: = 0 ;
MeSerTime : = 3 . 8 0 ; DeSerTime : = 0 . 8 ; InArrTime : = 4 ;
( Para m o d i f i c a r para metro s d u r a n t e l a e j e c u c i o n d e l INIT )
INTI InArrTime : 8 : 2 : Mean I n t e r a r r i v a l Time

INTI MeSerTime : 8 : 2 : Mean s e r v i c e time

INTI DeSerTime : 8 : 2 : D e v i a t i o n o f Mean S e r v i c e Time ;

tico
A.2 Sistema Burocra

DECL

103

VAR InArrTime , MeSerTime , DeSerTime :REAL; NM20 :INTEGER;

STATISTICS ALLNODES;
END.

A.2

Sistema Burocr
atico

TITLE S i s t em a B u r o c r a t i c o
NETWORK
Arrivals ( I ) : :

IT : = 2 0 ; PeType:=UNIFI ( 1 , 4 ) ; R e j e c t e d :=FALSE ;
SENDTO( I n s p e c [ PeType ] ) ;
WRITELN( Enter Someone o f Type , PeType ) ;

I n s p e c (L) [ 1 . . 4 ] Gates , E x i t : :
IF ( PeType=4) AND BER( 0 . 2 )
THEN BEGIN R e j e c t e d :=TRUE; SENDTO( E x i t ) END
ELSE FIFO ;
Gates (G) [ 1 . . 4 ]

: : STATE

BEGIN IT : = 1 0 0 ; OPEN:=NOT OPEN END;

IF OPEN THEN SENDTO( Bureau )


ELSE STOPSCAN;
Bureau (R)

: : STAY:=GAUSS( MeanWait [ PeType ] , DeviWait [ PeType ] ) ;

Exit : :

WRITE( Someone o f Type , Petype ,


g o e s out

after

,TIMEGT: 8 : 2 , s e c . i n t h e system ) ;

IF R e j e c t e d THEN WRITE( ( was r e j e c t e d ) ) ;


WRITELN; PAUSE;
INIT ACT( A r r i v a l s , 0 ) ; TSIM: = 1 0 0 0 ; Bureau :=MAXREAL; OPEN:=FALSE ;
FOR

i :=1 TO 4 DO ACT( Gates [ i ] , 3 1 0 ) ;

ASSI MeanWait [ 1 . . 4 ] : = ( 4 0 , 3 9 , 1 2 , 6 2 ) ;
ASSI DeviWait [ 1 . . 4 ] : = ( 4 , 5 , 3 , 1 2 ) ;
DECL
VAR CH:CHAR; MeanWait , DeviWait :ARRAY[ 1 . . 4 ] OF REAL; OPEN:BOOLEAN;

A.3 Graficando los valores de una cola

104

i : integer ;
MESSAGES A r r i v a l s ( PeType :INTEGER; R e j e c t e d :BOOLEAN) ;
STATISTICS A r r i v a l s , I n s p e c , Gates , Bureau , E x i t ;
END.

A.3

Graficando los valores de una cola

TITLE G r a f i c a n d o l o s v a l o r e s de una c o l a
NETWORK
Arrivals ( I )

::

IT:=EXPO( MarrT ) ; ACT( Gra , 0 ) ;

Teller

(R)

::

STAY:=EXPO( MeCashT , 2 ) ;

Exit

(E)

::

ACT( Gra , 0 ) ;

Gra (A)

::

GRAPH( 0 , 5 0 0 0 ,BLACK; TIME : 6 : 0 ,WHITE;


LL( E L T e l l e r ) : 6 : 0 , Queue , 0 , 1 0 0 ,GREEN;
2 0 : 6 : 0 , Mean , 0 , 1 0 0 ,RED) ;

INIT TSIM: = 5 0 0 0 ; ACT( A r r i v a l s , 0 ) ;


MarrT : = 4 ; MeCashT : = 3 . 8 ;
DECL

( Para metros )

VAR MarrT , MeCashT :REAL;

STATISTICS ALLNODES;
END.

A.4

Taquilla Bancaria con dos procesos

TITLE T a q u i l l a B a n c a r i a con dos p r o c e s o s


NETWORK
ENTRANCE( I ) : : IT:=EXPO( 3 . 9 7 ) ;
IF BER( 0 . 5 ) THEN PROC:=CASHWITH ELSE PROC:=DEPOSIT ;
TELLER (R)

: : IF F TELLER>0 THEN PROC;

STAY:=PROCTIME;

EXIT (E)

::

RESULT (A)

: : OUTG BALANCE: 9 : 0 :DAYLY BALANCE ;PAUSE; ENDSIMUL;

INIT ACT(ENTRANCE, 0 ) ; ACT(RESULT, 2 4 0 ) ; BALANCE: = 0 ;

n de valores de una cola


A.5 Presentacio

105

DECL
TYPE TYPRO=PROCEDURE;
VAR

PROCTIME,BALANCE,WITHD,DEPO:REAL;

MESSAGES ENTRANCE(PROC:TYPRO) ;
STATISTICS ALLNODES;
PROCEDURES
PROCEDURE CASHWITH;
BEGIN
( Cantidad R e t i r a d a )

WITHD:=ERLG( 7 5 0 , 4 ) ;
BALANCE:=BALANCEWITHD;

( Balance de l a T a q u i l l a )

PROCTIME: = 0 . 0 0 0 6 4 WITHD+2+UNIF ( 0 , 0 . 8 ) ;

( Tiempo de P r o c e s a m i e n t o )

END;
PROCEDURE DEPOSIT ;
BEGIN
DEPO:=GAUSS( 3 2 0 0 , 2 5 0 ) ;

( Cantidad D e p o s i t a d a )

BALANCE:=BALANCE+DEPO;

( Balance de l a T a q u i l l a )

PROCTIME: = 0 . 0 0 0 6 1 DEPO+1+NORM( 0 , 1 . 0 ) ;

( Tiempo de P r o c e s a m i e n t o )

IF PROCTIME<0 THEN PROCTIME: = 0 ;


END;
END.

A.5

Presentaci
on de valores de una cola

TITLE P r e s e n t a c i o n de v a l o r e s de una c o l a
NETWORK
Arrivals ( I )

::

IT:=EXPO( MarrT ) ;
RL:=LL( E L T e l l e r ) ; FILE ( ARCOL , TIME, RL) ;

Teller

(R)

::

STAY:=EXPO( MserT , 2 ) ;

Exit

(E)

::

RL:=LL( E L T e l l e r ) ; FILE ( ARCOL , TIME, RL) ;

INIT TSIM: = 3 0 0 ; ACT( A r r i v a l s , 0 ) ;


MarrT : = 4 ; MserT : = 3 . 8 ;

( Para metros )

A.6 Puerto con cuatro tipos de embarcaciones

DECL

VAR MarrT , MserT , RL :REAL;

STATISTICS ALLNODES, RL ;
END.

A.6

Puerto con cuatro tipos de embarcaciones

TITLE Puerto con c u a t r o t i p o s de e m b a r c a c i o n e s


NETWORK
Harbor ( I ) F r e i P i e r , TourPier , BulkPier , RepPier : :
R:=RANDOM; IT:=FTBArr (R) ; ShipType :=FType ;
CASE ShipType OF
F r e i g h t e r :SENDTO( F r e i P i e r ) ;
Bulk :SENDTO( B u l k P i e r ) ;
T o u r i s t :SENDTO( TourPier ) ;
Rep air :SENDTO( RepPier ) ;
END;
FreiPier

(R) DecExit : : STAY:= TFreig (RANDOM) ;

TourPier

(R) DecExit : :
TypTur:=FTypTur ; ( Asigna s u b t i p o a t u r i s t a )
STAY:=TRIA(MI [ TypTur ] ,MO[ TypTur ] ,MA[ TypTur ] ) ;

BulkPier

(R) DecExit : : STAY:=TBulk (RANDOM) ;

RepPier (R) DecExit : : STAY:= TRepair (RANDOM) ;


DecExit (G) ExitA , ExitB , ExitC : :
E x i t C l a s s := FClaExit ( ShipType ) ; ( Asigna c l a s e de s a l i d a )
CASE E x i t C l a s s OF
A:SENDTO( ExitA ) ;
B :SENDTO( ExitB ) ;
C:SENDTO( ExitC ) ;
END;
ExitA (E) : :
ExitB (E) : :
ExitC (E) : :
RESUL (A) : :

106

A.6 Puerto con cuatro tipos de embarcaciones

107

P:=MSTL ( E L F r e i P i e r ) ;

OUTG P : 7 : 2 : Mean Wait F r e i g h t e r

P:=DMSTL( E L F r e i P i e r ) ;

OUTG P : 7 : 2 : D e v i a t i o n

P:=MSTL ( EL TourPier ) ;

OUTG P : 7 : 2 : Mean Wait T o u r i s t

P:=DMSTL( EL TourPier ) ;

OUTG P : 7 : 2 : D e v i a t i o n

P:=MSTL ( EL BulkPier ) ;

OUTG P : 7 : 2 : Mean Wait

P:=DMSTL( EL BulkPier ) ;

OUTG P : 7 : 2 : D e v i a t i o n

P:=MSTL ( EL RepPier ) ;

OUTG P : 7 : 2 : Mean Wait

P:=DMSTL( EL RepPier ) ;

OUTG P : 7 : 2 : D e v i a t i o n

Bulk

;
;

Repa ir

;
;

PAUSE; ENDSIMUL;
INIT

ACT( Harbor , 0 ) ; ACT(RESUL, 3 6 5 2 4 ) ;

FTBArr : = 0 . 0 , 0 . 5 / 0 . 2 , 1 / 0 . 3 , 2 / 0 . 3 5 , 2 . 5 / 0 . 4 0 , 3 . 5 / 0 . 4 5 , 3 . 9 /
0.50 ,4.1/0.55 ,4.8/0.60 ,5/0.70 ,5.5/0.80 ,6/0.90 ,6.25/1.0 ,6.5;
FType:= F r e i g h t e r , 6 1 1 / Bulk , 4 2 3 / T o u r i s t , 2 1 2 / Repair , 1 5 ;
TFreig : = 0 . 0 , 7 / 0 . 2 , 1 3 / 0 . 4 , 1 5 / 0 . 6 , 1 9 / 0 . 8 , 2 1 / 1 . 0 , 2 2 ;
TBulk : = 0 . 0 , 9 / 0 . 2 , 1 2 / 0 . 4 , 1 6 / 0 . 6 , 1 9 . 5 / 0 . 8 , 2 2 / 1 . 0 , 2 2 . 5 ;
TRepair : = 0 . 0 , 5 5 / 0 . 3 , 7 2 / 0 . 7 , 8 1 / 0 . 9 , 8 8 / 1 . 0 , 9 0 ;
FTypTur:= Stopping , 7 5 / V i s i t , 1 2 2 / T r a n s f e r , 1 5 ;
FClaExit := F r e i g h t e r ,A/ Bulk ,A/ T o u r i s t , B/ Repair , C ;
MI [ S t o p p i n g ] : = 5 ; MO[ S t o p p i n g ] : = 6 ; MA[ S t o p p i n g ] : = 8 ;
MI [ V i s i t ] : = 2 7 ; MO[ V i s i t ] : = 4 0 ; MA[ V i s i t ] : = 4 7 ;
MI [ T r a n s f e r ] : = 7 2 ; MO[ T r a n s f e r ] : = 9 3 ; MA[ T r a n s f e r ] : = 1 3 0 ;
F r e i P i e r : = 5 ; TourPier : = 3 ; B u l k P i e r : = 2 ; RepPier : = 1 ;
INTI M F r e i P i e r :

4 : 0 : Capacity o f F r e i g h t e r P i e r

INTI M TourPier :

4 : 0 : Capacity o f T o u r i s t P i e r

INTI M BulkPier :

4 : 0 : Capacity o f Bulk P i e r

INTI M RepPier :

4 : 0 : Capacity o f Repa ir P i e r

( A c t u a l i z a Capacidad L i b r e )
F F r e i P i e r := M F r e i P i e r ;
F TourPier := M TourPier ;
F B u l k P i e r := M BulkPier ;
F RepPier := M RepPier ;
DECL TYPE TTypShip=( F r e i g h t e r , Bulk , T o u r i s t , R epair ) ;

A.7 Sistema de tres colas

108

TExit=(A, B,C) ;
TTypTur=( Stopping , V i s i t , T r a n s f e r ) ;
VAR MI ,MO,MA:ARRAY[ S t o p p i n g . . T r a n s f e r ] OF REAL;
TypTur : TTypTur ; E x i t C l a s s : TExit ;
R, P :REAL;
MESSAGES Harbor ( ShipType : TTypShip ) ;
GFUNCTIONS
FTBArr POLYG (REAL) :REAL: 1 3 ;
FType FREQ ( TTypShip ) :REAL : 4 ;
TFreig SPLINE (REAL) :REAL : 6 ;
TBulk SPLINE (REAL) :REAL : 6 ;
TRepair

POLYG (REAL) :REAL : 5 ;

FTypTur FREQ ( TTypTur ) :REAL : 4 ;


FClaExit DISC ( TTypShip ) : TExit : 4 ;
STATISTICS Harbor , F r e i P i e r , BulkPier , TourPier , RepPier , DecExit ,
ExitA , ExitB , ExitC ;
END.

A.7

Sistema de tres colas

TITLE S i s t em a de t r e s c o l a s
NETWORK
( Lle gada y a s i g n a c i o n de v a l o r e s )
INA ( I ) QA : :

IT:=EXPO(TBA) ; TA: = 4 ; TB: = 5 ; TYP:=TYPA;


TBA:=3+0.02TIME ; { TBA INCREASES }
PRIOR: = 4 ; FILE ( ARTBA , TIME, IT ) ;

INB ( I ) QG: :

IT:=EXPO(TBB) ; TB: = 8 ; TYP:= TYPB; TBB: = 3 . 5 + 0 . 0 1TIME ;


PRIOR: = 3 ;

( Cola y ventana d e l p r o c e s o A )
QA (L) : :
WA (R)DAB

::

RELEASE SENDTO(DAB) ;

STAY:=TA+UNIF( 0 . 1 , 0 . 1 ) TA;
( D e c i d i r s i s a l i r o c o n t i n u a r a l p r o c e s o B )
DAB (D) EXIT ,QG : : IF BER( 0 . 2 ) THEN SENDTO(EXIT) ELSE SENDTO(QG) ;
( Gate b e f o r e queues and windows f o r p r o c e d u r e B )
QG (L) : : {ORDER(PRIOR,A) ; ( Ordenados por p r i o r i d a d ) } ( P r i o r i d a d e s a
usar )

A.7 Sistema de tres colas

109

(G) : : IF LL( IL QB1 )+LL( IL QB2 ) <10


THEN SENDTO( D12 ) ELSE STOPSCAN;
( D e c i d i r i r a l a c o l a mas c o r t a )

D12 (D) QB1, QB2 : : IF LL( IL QB1 )<LL( IL QB2 )


THEN SENDTO(QB1) ELSE SENDTO(QB2) ;
( Ventanas WB1 y WB2 )
QB1 (L) WB1 : :
QB2 (L) WB2 : :
WB1 (R) EXIT : :
WB2 (R)

::

STAY:=TB+UNIF( 0 . 1 , 0 . 1 ) TB;
STAY:=TB+FTB(RANDOM) TB;

( S a l i r y t a b u l a r tiempo de s d e l l e g a d a a l s i s t e m a )
EXIT (E) : :

TS:=TIMEGT; TAB(TS , TTS) ;

INIT
ACT(INA , 0 ) ;ACT( INB , 0 . 2 ) ;
EXPER

( Para metros e x p e r i m e n t a l e s , para e x p e r i m e n t o s i n t e r a c t i v o s )

TSIM: = 4 0 0 ;
TBA: = 3 ; TBB: = 3 . 5 ;
FTB: = 0 . 0 , 0 . 2 / 0 . 3 , 0 . 1 / 0 . 5 , 0 . 0 / 0 . 8 , 0 . 2 / 1 . 0 , 0 . 2 ;
RN[ 1 ] : = 2 9 8 7 1 ;
TTS: = 0 . 0 , 1 5 , 1 0 ;
ENDEXP;
DECL
TYPE

TT=(TYPA,TYPB) ;

VAR

TBA,TBB, TS :REAL;

GFUNCTIONS

FTB POLYG (REAL) :REAL : 5 ;

MESSAGES

INA(PRIOR :INTEGER; TYP:TT;TA,TB:REAL) ;


INB(TYP:TT;TB:REAL; PRIOR :INTEGER) ;

TABLES TS : TTS ;
STATISTICS TBA,TBB,ALLNODES;
END.

A.8 Procesamiento de partes con ajuste de

A.8

Procesamiento

de

temperatura

partes

con

110

ajuste

temperatura
TITLE P r o c e s a m i e n t o de p a r t e s con a j u s t e de t e m p e r a t u r a
NETWORK
ARRIVAL ( I ) : : IT:=TRIA( 1 4 , 1 5 , 1 6 , 3 ) ; {Usa una c o r r i d a de 3 n
u meros
aleatorios }
TEMP:=UNIF(TL1 , TL2 , 3 ) ;
REMA: = 0 ;
PRI:=FALSE ;
QUEUE (L)

{ Sin p r i o r i d a d }

::

CONTROL (G) : : IF (F PROCESS>0) AND (TEMP>TP1) AND (TEMP<TP2)


THEN BEGIN SENDTO(PROCESS) ; STOPSCAN END;
PROCESS

(R) QUEUE, FINISH : :


RELEASE SENDTO( FINISH ) ;
PREEMPTION( PRI AND (O XTTIME<TIM) )
SENDTO( FIRST ,QUEUE) ;
{OR SENDTO( FIRST ,QUEUE}
STAY:=PROCTIME(1+UNIF( 0 . 0 5 , 0 . 0 5 ) ) ;

FINISH (E) : :
COOLING (A) REHEATING : :
IT:=DT; ( E n f ra y remueve l o s que e s t a n demasiado f r o s )
SCAN(IL QUEUE) BEGIN D:=O TEMPTE; O TEMP:=O TEMPKDDDDDT END;
SCAN(IL QUEUE) IF (O TEMP<TP1) THEN SENDTO(REHEATING) ;
REHEATING (R) PROCESS : : ( Reheat , a g r e g a l a p r i o r i d a d y l o s e n v i a a
PROCESS )
TEMP:=TR; PRI:=TRUE; STAY:=REHEAT;
RESULT (A) : :
REPORT

de

n para producir lingotes de acero


A.9 Sistema de fundicio

111

OUTG PROCTIME : 7 : 2 : Tiempo Medio de Procesado

OUTG TP1 : 7 : 2

: Temperatura Minma de Procesado

OUTG K

: Constante de E n f r i a m i e n t o

N:=ENTR( EL FINISH ) ;
OUTG N: 7

: Partes Procesadas

N:=ENTR(EL REHEATING) ;
OUTG N: 7

: Partes Recalentadas

ENDREPORT;
ENDSIMUL;
INIT ACT(ARRIVAL, 0 ) ; ACT(COOLING, 0 ) ; ACT(RESULT, 1 4 4 0 ) ; DT: = 2 ;
TL1: = 7 2 0 ; TL2: = 7 7 0 ; TP1: = 6 9 0 ; TP2: = 8 7 0 ;
PROCTIME: = 1 5 . 8 ; K: = 2 . 5 2E12; TIM: = 2 . 5 ;
TR: = 7 3 5 ; TE: = 2 8 ; REHEAT: = 2 . 5 ;
REHEATING: = 1 0 ;
INTI PROCTIME : 7 : 2 : Tiempo Medio de Procesado

INTI TP1 :

: Temperatura Minma de Procesado

: Constante de E n f r i a m i e n t o

INTI K
DECL

7:2

VAR TL1 , TL2 , TP1 , TP2 ,PROCTIME, K,TR,REHEAT, TE, TIM, D,DT:REAL;
N:INTEGER;
MESSAGES ARRIVAL( PRI :BOOLEAN; TEMP,REMA:REAL) ;
STATISTICS ALLNODES;

END.

A.9

Sistema de fundici
on para producir lingotes de
acero

TITLE S i s t em a de f u n d i c i o n para p r o d u c i r l i n g o t e s de a c e r o
NETWORK
StartCamp ( I )

: : CAMP: = 1 ; NC: = 1 ; CastType :=OpMat [ 1 ,CAMP] ;

( Preparando l a f u n d i c i o n y e n f r i a m i e n t o )
T r a i n S e t (R) : :
WRITELN( S e t t h e Train

Campaing . ,CAMP, C a s t i n g ,NC,

CastType , OpMat [ 2 ,CAMP] ,

Time ,TIME : 7 : 2 ) ;

n para producir lingotes de acero


A.9 Sistema de fundicio

112

STAY:= TTrainSet [ CastType ] ;


C a s t i n g (R) : : STAY:= TCasting [ CastType ] ;
( Luego de e n f r i a r s e l o s moldes son tomados y e n v i a d o s a TransMold )
Cool

(R) TransMold , C o o l I n g o t : : STAY:=TCool [ CastType ] ;

( Tr an sp ort and s t o r a g e o f molds )


TransMold (R) : : STAY:=TTransMold [ CastType ] ;
D e c i s i o n CoolType1 , E1 : :
IF CastType=1 THEN SENDTO( CoolType1 ) ( D e c i d i r s i s e r a Mazarota )
ELSE BEGIN NL [ CastType ] : =OpMat [ 4 ,CAMP] ; SENDTO( E1 ) END;
CoolType1 (R) : : STAY:=TCoolType1 ; NL [ 1 ] : = 0 ; ( E n f r i a r p r i m e r o )
( poner Mazarota

NLM: = 1 4 4 ; CDM: = 5 0 ;

TransSetMaz (R) TransSetMaz , E1 : : ( t r a n s p o r t a r y poner mazarota )


RELEASE IF NLM<0 THEN SENDTO( E1 ) ELSE SENDTO( TransSetMaz ) ;
NLM:=NLMCDM;

( R e t i r a r l o que s e ha p u e s t o )

IF NLM<0 THEN CDM:=NLM+50;


STAY:=CDMTsetMaz ; NL[ 1 ] : =NL[ 1 ] +CDM;
( E n f r i a d o y t r a n s p o r t e de l i n g o t e s )
C o o l I n g o t (R) : : STAY:= TCoolIngot [ CastType ] ;
T r a I n g o t s (R) TraPlate , TrimIngot : : STAY:= TTraIngots [ CastType ] ;
TrimIngot (R) : : STAY:= TTrimIngot [ CastType ] ;
ExitIngot

(E) : :

( T r a n s p o r t e y p r e p a r a c i o n de l a s p l a c a s )
TraP lat e

(R) : : STAY:= TTraPlate [ CastType ] ;

SetPlate

(R) : : STAY:= TS etP late [ CastType ] ;

( S i n c r o n i z a p l a c a s y moldes )
E1
Continue

(G) : : ASSEMBLE(ELIM, 2 ,TRUE) SENDTO( Continue ) ;


(G) : :

NC:=NC+1; IF NC>OpMat [ 7 ,CAMP] THEN

( Empezar una nueva campa


na )

BEGIN CAMP:=CAMP+1; NC:=1 END;


IF CAMP>CampNum THEN ENDSIMUL;

n para producir lingotes de acero


A.9 Sistema de fundicio

113

IF NL [ CastType ]>0 THEN SENDTO( TraMoPlate ) ; ( E s p e r a r por


moldes )
( T r a n s p o r t e de p l a c a s y moldes a l campo de p r e p a r a c i o n )
TraMoPlate

(R) : : STAY:=TTraMoPlate [ CastType ] ;

TraIngot
INIT

(R) T r a i n S e t : : STAY:= TTraIngot [ CastType ] ;

ACT( StartCamp , 0 ) ;

CampNum: = 5 ;
ASSI OpMat [ 1 . . 7 , 1 . . 5 ] : = ( (

1,

2,

1,

3,

2 ) , ( Tipo de f u n d i d o s

)
( 4 1 5 , 4 8 0 , 4 1 5 , 5 1 5 , 4 8 0 ) , ( S e c c i o n )
(1500 ,1600 ,1500 ,1800 ,1600) , ( Altura )
( 144 ,

96 , 144 ,

96 ,

9 6 ) , ( N
umero de moldes
8 ) , ( N
umero de p l a c a s

)
(

6,

8,

6,

8,

12 ,

24 ,

12 ,

7,

5,

)
(

24 ,

1 2 ) , ( L i n g o t e s por

placa )
(

5,

6,

6 ) ) ; ( N
umero de

fundidos )
( Tiempo de f o r m a c i o n )

ASSI TTrainSet [ 1 . . 3 ] : = ( 6 , 5 , 5 ) ;
ASSI TCasting
ASSI TCool

[1..3]:=(1.32 ,1.32 ,1.32) ;

( Tiempo f u n d i c i o n )
( Tiempo e n f r i a m i e n t o )

[1..3]:=(12 ,12 ,12) ;

ASSI TTransMold [ 1 . . 3 ] : = ( 5 . 3 2 , 4 . 9 2 , 4 . 9 2 ) ;

( Moldes tiempo en t r a n s p

. alm )
TsetMaz
TCoolType1

:=0.066667;
:=6;

( Tiempo para poner Mazarota )


( Tiempo de e n f r i a m i e n t o para

poner Mazarota )
ASSI TCoolIngot

[ 1 . . 3 ] : = ( 4 . 6 7 , 4 . 6 7 , 4 . 6 7 ) ; ( Tiempo e n f r i a m i e n t o

Lingote )
ASSI TTrimIngot

[1..3]:=(12 ,4 ,4) ;

( Tiempo de r e c o r t e L i n g o t e )

ASSI TTraPlate

[1..3]:=(2 ,2 ,2) ;

( P l a c a s tiempo en t r a n s . alm )

ASSI T Se tPl ate

[1..3]:=(5 ,5 ,5) ;

( Tiempo p r o c e s a m i e n t o p l a c a )

ASSI TTraIngot

[1..3]:=(2 ,2 ,2) ;

( L i n g o t e s para formar a tiempo

ASSI TTraMoPlate [ 1 . . 3 ] : = ( 1 , 1 , 1 ) ;

( P l a c a s para formar a tiempo )

quina con fallas


A.10 Ma

ASSI TTraIngots

114

[ 1 . . 3 ] : = ( 4 . 4 3 , 3 . 5 2 , 3 . 5 2 ) ; ( L i n g o t e s tiempo en

t r a n s . alm )
DECL
VAR OpMat :ARRAY[ 1 . . 7 , 1 . . 5 ] OF INTEGER;
TTrainSet , TCasting , TCool , TTransMold , TCoolIngot , TTrimIngot ,
TTraPlate , TSetPlate , TTraIngots , TTraIngot , TTraMoPlate
:ARRAY[ 1 . . 3 ] OF REAL;
NL :ARRAY[ 1 . . 3 ] OF INTEGER;
CAMP,NC, CastType ,NLM,CDM,CampNum:INTEGER;
TCoolType1 , TsetMaz :REAL;
END.

A.10

M
aquina con fallas

TITLE Ma quina con f a l l a s


NETWORK
Arriv ( I )

: : IT:=TRIA ( 2 , 4 , 6 ) ; ProcTime :=GAMMA( 3 , 0 . 2 ) ;

C o n t r o l (G) : : IF ( F Machine >0) AND NOT F a u l t THEN


BEGIN SENDTO( Machine ) ;STOPSCAN END;
( I f d u r i n g a c t u a l p r o c e s s f a u l t w i l l occur , agendar e v e n t o de f a l l a )
Machine

(R) E x i t : :
IF ProcTime<TtoNextFault
THEN TtoNextFault := TtoNextFaultProcTime
ELSE ACT( F a u l t s , TtoNextFault ) ;
STAY:= ProcTime ;

Exit

(E) : :

F a u l t s (A) C o n t r o l : :
F a u l t :=TRUE;

( I n i c i o d e l e s t a d o de f a l l a )

REL( IL Machine , F a u l t ) ( Extrae i t e m s de l a IL y e v e n t o s de l a FEL )


BEGIN O ProcTime:=O XTTIME ; SENDTO( FIRST , C o n t r o l ) END;
ACT( FaultEnd , FixingTime ) ; ( Agenda r e a s u m i r tiempo de p r o c e s a m i e n t o )

n
A.11 Proceso de ensamblado con sincronizacio

115

FaultEnd (A) : : ( F i n a l d e l e s t a d o de f a l l a , d e t e r m i n a r tiempo para


s i g u i e n t e f a l l a )
TtoNextFault :=GAUSS( TBetweenFaults , 0 . 1 TBetweenFaults ) ;

F a u l t :=FALSE ;

NumFaults:=NumFaults +1;
R e s u l t (A) : :

F i n i s h e d P a r t s :=ENTR( EL Exit ) ;
OUTG F i n i s h e d P a r t s : 5 : F i n i s h e d P a r t s

OUTG NumFaults : 5

: Number o f F a u l t s

PAUSE; ENDSIMUL;
INIT SimTime : = 2 0 0 0 ;
ACT( Arriv , 0 ) ; F a u l t :=FALSE ; FixingTime : = 4 . 0 ; NumFaults : = 0 ;
TBetweenFaults : = 1 5 ;
INTI TBetweenFaults : 7 : 1 : Mean Time Between F a u l t s ;
INTI SimTime : 7 : 1

: S i m u l a t i o n Time

( Tiempo h a s t a l a p ri m er a f a l l a )
TtoNextFault :=GAUSS( TBetweenFaults , 0 . 1 TBetweenFaults ) ;
ACT( Re su l t , SimTime ) ;
DECL VAR F a u l t :BOOLEAN; SimTime , TBetweenFaults ,
TtoNextFault , FixingTime :REAL;
NumFaults , F i n i s h e d P a r t s :INTEGER;
MESSAGES A r r i v ( ProcTime :REAL) ;
STATISTICS Arriv , Control , Machine , Exit , F a u l t s , FaultEnd ;
END.

A.11

Proceso de ensamblado con sincronizaci


on

TITLE P r o c e s o de ensamblado con s i n c r o n i z a c i o n


NETWORK
Ent Appar

(I) ::

IT:= Gauss ( MeTiBeArr , DMeTi) ;


COPYMESS( 1 ) SENDTO( EquiA [ 1 ] ) ; SENDTO( EquiA [ 2 ] ) ;

EquiA

(R) [ 1 . . 2 ]

::

STAY:=UNIF( TiMinA [ INO ] , TiMaxA [ INO ] ) ; l i n :=INO ;

Sincr

(G) EquiB [ INO ] : : SYNCHRONIZE( 2 ,EQUFIELD(NUMBER) ) SENDTO( EquiB [ l i n

]) ;
EquiB

(R) [ 1 . . 2 ] : :

Ensamb (G) EquiC : :

STAY:= Gauss (MeTiB [ INO ] , DTiB [ INO ] ) ;


ASSEMBLE(ELIM, 2 ,EQUFIELD(NUMBER) ) SENDTO( EquiC ) ;

A.12 Ruta crtica

EquiC

(R) : :

116

STAY:= Gauss (TmC, DtC) ;

Ex Appar (E) : :
INIT ACT( Ent Appar , 0 ) ; TSIM: = 5 0 0 ;
ASSI TiMinA [ 1 . . 2 ] : = ( 1 4 , 1 5 ) ; ASSI TiMaxA [ 1 . . 2 ] : = ( 1 8 , 2 0 ) ;
ASSI MeTiB [ 1 . . 2 ] : = ( 1 2 , 1 4 ) ; ASSI DTiB [ 1 . . 2 ] : = ( 3 , 4 ) ;
TmC: = 7 ; DtC: = 1 ; MeTiBeArr : = 2 5 ; DMeTi: = 4 ;
DECL VAR TiMinA ,

( Tiempo mnimo para e l p r o c e s o A )

TiMaxA ,

( Tiempo maximo para e l p r o c e s o A )

MeTiB ,

( Tiempo medio para e l p r o c e s o B

DTiB

( D e s v i a c i o n

:ARRAY[ 1 . . 2 ] o f REAL;
TmC,

( Tiempo medio para e l p r o c e s o C

DtC ,

( D e s v i a c i o n

MeTiBeArr ,

( Tiempo medio e n t r e l l e g a d a s )

DMeTi

( D e s v i a c i o n

)
)

:REAL;
MESSAGES Ent Appar ( l i n :INTEGER) ;
STATISTICS ALLNODES;
END.

A.12

Ruta crtica

TITLE Ruta c r t i c a
NETWORK
( Actividades )
R12 G2 : :

STAY:=TRIA ( 1 , 3 , 4 ) ;

T ACT [ 1 ] : = STAY;

MINST[ 1 ] : = TIME ;

R13 G3 : :

STAY:=TRIA ( 4 , 5 , 6 ) ;

T ACT [ 2 ] : = STAY;

MINST[ 2 ] : = TIME ;

R14 G4 : :

STAY:=TRIA ( 6 , 7 , 9 ) ;

T ACT [ 3 ] : = STAY;

MINST[ 3 ] : = TIME ;

R32 G2 : :

STAY:=TRIA ( 4 , 6 , 8 ) ;

T ACT [ 4 ] : = STAY;

MINST[ 4 ] : = TIME ;

R34 G4 : :

STAY:=TRIA ( 3 , 4 , 5 ) ;

T ACT [ 5 ] : = STAY;

MINST[ 5 ] : = TIME ;

R25 G5 : :

STAY:=TRIA ( 5 , 7 , 9 ) ;

T ACT [ 6 ] : = STAY;

MINST[ 6 ] : = TIME ;

R46 G6 : :

STAY:=TRIA ( 1 , 2 , 4 ) ;

T ACT [ 7 ] : = STAY;

MINST[ 7 ] : = TIME ;

R67 G7 : :

STAY:=TRIA( 1 4 , 1 6 , 2 0 ) ; T ACT [ 8 ] : = STAY;

MINST[ 8 ] : = TIME ;

R57 G7 : :

STAY:=TRIA( 7 , 8 , 1 1 ) ;

T ACT [ 9 ] : = STAY;

MINST[ 9 ] : = TIME ;

R78 E : :

STAY:=TRIA ( 2 , 3 , 5 ) ;

T ACT[ 1 0 ] : =STAY;

MINST[ 1 0 ] : =TIME ;

A.12 Ruta crtica

117

( Nodos )
IA R12 , R13 , R14 : :
G2 R25 : :

ASSEMBLE(ELIM, 2 ,TRUE) SENDTO( R25 ) ;

G3 R32 , R34 : :

SENDTO( R32 , R34 ) ;

G4 R46 : :

ASSEMBLE(ELIM, 2 ,TRUE) SENDTO( R46 ) ;

G5 R57 : :

SENDTO( R57 ) ;

G6 R67 : :

SENDTO( R67 ) ;

G7 R78 : :

ASSEMBLE(ELIM, 2 ,TRUE) SENDTO( R78 ) ;

E var j , ac , a c l l : i n t e g e r ; : :
NC:=NC+1; {N
umero de c o r r i d a s }
WRITELN( C r i t i c a l Time , TIME : 7 : 2 ) ;
( Enc ontrar u
l t i m o tiempo de f i n a l i z a c i o n )
FOR

J :=1 TO 10 DO MAXFT[ J ] : =TIME ;

FOR AC:=10 DOWNTO 1 DO

( <= Que e l c r i t i c o )

( Para cada a c t i v i d a d m i r a r l a s a n t e r i o r e s

)
BEGIN
ORAC:=NODOA[AC ] ;

( Ver e l nodo de o r i g e n )

FOR ACLL:=1 TO AC1 DO ( Ver l a a c t i v i d a d e n t r a n t e )


( Si entrante )

IF NODFA[ACLL]=ORAC THEN
BEGIN TM:=MAXFT[AC]T ACT [AC ] ;

( Ver tiempo para f i n a l i z a r )

IF TM<MAXFT[ACLL] THEN MAXFT[ACLL] : =TM; ( Poner e l mnimo )


END;
END;
( Computo de l o s t i em p o s e s t a t i c o s )
FOR J :=1 TO 10 DO
SLACK[ J ] : =MAXFT[ J]MINST [ J]T ACT [ J ] ;
FOR J :=1 TO 10 DO
BEGIN
WRITE( J : 3 , MINST ,MINST [ J ] : 8 : 3 ,

T ACT ,T ACT [ J ] : 8 : 3 ,

MAXFT

,MAXFT[ J ] : 8 : 3 ,

SLACK ,SLACK[ J ] : 1 0 : 5 ) ;

IF SLACK[ J ] <0.0000001 THEN WRITE( ) ; WRITELN;


END;

s
A.13 Lnea de autobu

118

WRITELN; WRITELN; WRITELN( C r i t i c a l a c t i v i t i e s ) ;


FOR J :=1 TO 10 DO
IF SLACK[ J ] <0.0000001 THEN WRITELN( A c t i v i t y , J : 4 ) ; WRITELN;
WRITELN; WRITELN;
IF NC=15 THEN
BEGIN WRITELN( P r e s s any key t o f i n i s h ) ;
PAUSE;ENDSIMUL
END
ELSE
BEGIN WRITELN( P r e s s any key f o r next run ) ;
PAUSE; TIME: = 0 ; ACT( IA , 0 )
END;
INIT
ASSI NODOA[ 1 . . 1 0 ] : = ( 1 , 1 , 1 , 3 , 3 , 2 , 4 , 6 , 5 , 7 ) ; {Nodo o r i g e n de l a a c t i v i d a d
I}
ASSI NODFA[ 1 . . 1 0 ] : = ( 2 , 3 , 4 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ) ; {Nodo f i n a l de l a a c t i v i d a d
I}
ACT( IA , 0 ) ; NC: = 0 ;
DECL VAR J ,NC,AC, ACLL,ORAC:INTEGER; TM:REAL;
MINST, ( Tiempo mnimo de i n i c i a c i o n de l a a c t i v i d a d )
MAXFT, ( Tiempo maximo de f i n a l i z a c i o n de l a a c t i v i d a d )
T ACT, ( Tiempo d u r a c i o n de l a a c t i v i d a d )
SLACK

( Tiempo de h o l g u r a de l a a c t i v i d a d )

:ARRAY[ 1 . . 1 0 ] OF REAL;
NODFA,NODOA:ARRAY[ 1 . . 1 0 ] OF INTEGER;
END.

A.13

Lnea de autob
us

Ln ea de autob u
s
NETWORK
BUSGEN ( I ) STOP[ INO ] : :
NPAS: = 0 ;

( G ene r a cio n de autob u


s )
( Autob
us i n i c i a v a c i o )

s
A.13 Lnea de autobu

119

( Es un autob u
s )

ESBUS:=TRUE;
NB:=NB+1;

( N
umero de Autob
us )

NBUS:=NB;

SENDTO( FIRST ,STOP [ 1 ] ) ;


ARRIVPASS ( I ) [ 1 . . 6 ] : :
IT:=EXPO(TBARR[ INO ] ) ;

( Lleg ada de p a s a j e r o s )

DEST:=FORDEST(INO) ;

( Asignar d e s t i n o )

ESBUS:=FALSE ;

( P a s a j e r o no e s un autob u
s )

SENDTO(STOP[ INO ] ) ;
STOP

(G) [ 1 . . 6 ] TRAVEL[ INO ] , SAL [ INO ] : :


IF ESBUS THEN
BEGIN ( P r o c e s a r un autob u
s )

IF P=1 THEN
WRITELN( BUS N ,NBUS, AT STOP , INO , CARRYING ,NPAS) ;
OFF: = 0 ;
DISASSEMBLE

( S a l i r a l d e s t i n o )

IF O DEST=INO THEN
BEGIN
( Contar c u a n t o s s e b a j a r o n )

OFF:=OFF+1;
NPAS:=NPAS1;
SENDTO(SAL [ INO ] )

( Fuera d e l s i s t e m a )

END;
UPDATE(MESS) ;

( Pasar

NPAS a

IF P=1 THEN
WRITELN(OFF, PASSENGERS OFF ) ;
( N
umero a tomar e l autob u
s )
( Nota : En GETIN a g r e g a r 1 para t e n e r en c u e n t a e l autob u
s )
GETIN:=MINI (BUSCAPNPAS+1,LL(EL STOP [ INO ] ) ) ;
IF GETIN>1
THEN

( Montar p a s a j e r o s en e l autob u
s )

s
A.13 Lnea de autobu

120

BEGIN
IF P=1 THEN BEGIN
WRITELN(GETIN1 , PASSENGERS ENTER THE BUS ) ; WRITELN; PAUSE END;
ENTER:=TRUE;
ASSEMBLE( FIRST , GETIN,ENTER)
BEGIN NPAS:=NPAS+GETIN1; SENDTO(TRAVEL[ INO ] ) ;
ENTER:=FALSE ;
NTOTPAS[NBUS] : =NTOTPAS[NBUS]+GETIN1
END
END
ELSE
BEGIN

( No hay p a s a j e r o s )

SENDTO(TRAVEL[ INO ] ) ;
IF P=1 THEN BEGIN
WRITELN( No p a s s e n g e r s loaded ) ; PAUSE END;
END
END
ELSE STOPSCAN; ( S i e l mensaje e n t r a n t e no e s un autob u
s
( e s un p a s a j e r o ) permanecer en l a c o l a )
TRAVEL (R) [ 1 . . 6 ] STOP[ INO ] : :
RELEASE
BEGIN

( a c c o u n t t r a v e l time )

TTTRAVEL[NBUS] : =TTTRAVEL[NBUS]+TTRAVEL[ INO ] ;


J :=(INO MOD 6 ) +1;

( c a l c u l a r n
u mero proxima parda )

SENDTO( FIRST ,STOP[ J ] ) ;


END;
STAY:=TTRAVEL[ INO ] ;

( Tiempo de v i a j e )

IF P=1 THEN
BEGIN WRITELN( BUS N ,NBUS, s t a r t s t r a v e l
WRITELN; PAUSE

, INO) ;

s
A.13 Lnea de autobu

121

END;
SAL (E) [ 1 . . 6 ]

::

RESULT (A) : :
OUTG TTTRAVEL [ 1 . . 4 ] : 8 : 2 : T o t a l time t r a v e l by bus
OUTG NTOTPAS [ 1 . . 4 ] : 8

: T o t a l number o f p a s s e n g e r s i n bus ;

PAUSE;
ENDSIMUL;
INIT ACT(RESULT, 6 0 0 ) ;
ACT(BUSGEN, 1 2 ) ; ACT(BUSGEN, 4 4 ) ; ACT(BUSGEN, 7 0 ) ; ACT(BUSGEN, 1 0 0 ) ;
ACT(ARRIVPASS [ 1 ] , 0 ) ;

ACT(ARRIVPASS [ 2 ] , 1 0 ) ;

ACT(ARRIVPASS [ 3 ] , 4 5 ) ;

ACT(ARRIVPASS [ 4 ] , 6 0 ) ; ACT(ARRIVPASS [ 5 ] , 6 7 ) ;

ACT(ARRIVPASS [ 6 ] , 8 0 ) ;

FOR J :=1 TO 6 DO TRAVEL[ J ] : =MAXREAL;


BUSCAP: = 5 0 ;
NB: = 0 ;
P: = 0 ;
ASSI NTOTPAS[ 1 . . 4 ] : = ( 0 , 0 , 0 , 0 ) ;
ASSI TTTRAVEL[ 1 . . 4 ] : = ( 0 , 0 , 0 , 0 ) ;
ASSI TBARR[ 1 . . 6 ] : = ( 2 . 8 , 3 . 2 , 3 . 0 , 2 . 5 , 3 . 1 , 2 . 2 ) ;
ASSI TTRAVEL [ 1 . . 6 ] : = ( 1 5 , 2 4 , 1 7 , 1 7 , 2 4 , 1 5 ) ;
ASSI MOR [ 1 . . 6 , 1 . . 6 ] : = ( ( 0 , 1 2 , 1 7 , 1 5 , 0 , 0 ) , ( Origen D e s t i n o )
( 0 , 0 ,11 ,15 , 0 , 0) ,

( Frecuencias )

( 0 , 0 , 0 ,15 , 0 , 0) ,
(14 , 0 , 0 , 0 , 9 ,17) ,
(15 , 0 , 0 , 0 , 0 ,12) ,
(16 , 0 , 0 , 0 , 0 , 0) ) ;
( EXPERIMENTAL PARAMETERS )
INTI BUSCAP : 5 : Maximum c a p a c i t y o f b u s e s ;
INTI TTRAVEL [ 1 . . 6 ] : 7 : 2 : Time t r a v e l s i n c e s t o p number ;
INTI P : P a s s e n g e r s d e t a i l e d number ( 1 ) ;
DECL
VAR GETIN, J ,BUSCAP, OFF,NB, P :INTEGER; MOR:ARRAY[ 1 . . 6 , 1 . . 6 ] OF REAL;
TBARR,TTRAVEL:ARRAY[ 1 . . 6 ] OF REAL;

A.14 Sistema presa depredador

122

TTTRAVEL:ARRAY[ 1 . . 4 ] OF REAL;
NTOTPAS:ARRAY[ 1 . . 4 ] OF INTEGER;
ENTER:BOOLEAN;
MESSAGES ARRIVPASS(ESBUS :BOOLEAN;DEST:INTEGER) ;
BUSGEN(ESBUS :BOOLEAN; NPAS,NBUS:INTEGER) ;
STATISTICS BUSGEN, ARRIVPASS, STOP,TRAVEL, SAL ;
PROCEDURES
FUNCTION FORDEST( I :INTEGER) :INTEGER;
( DA DESTINO PROBABLE, SEGUN FRECUENCIAS EN MOR, DEL SALIDO DE I )
VAR K:INTEGER; R, P ,FTOT:REAL;
BEGIN FTOT: = 0 ;
FOR K:=1 TO 6 DO FTOT:=FTOT+MOR[ I ,K ] ;
R:=RANDOM; K: = 1 ; P:=MOR[ I ,K] /FTOT;
WHILE P<R DO BEGIN K:=K+1; P:=P+MOR[ I ,K] /FTOT END;
FORDEST:=K;
END;
END.

A.14

Sistema presa depredador

TITLE S i s t em a p r e s a d ep re da do r
NETWORK
RF (C) : :

R : = C1(1R/RM) RC2RF ; ( E c u a c i o n e s LotkaV o l t e r r a )


F:=C3F+C4RF ;

( GRAPHIC R=f (F) o r R=f (T) , F=f (T) )


GRAPH( 0 , 3 0 0 ,BLACK;
R: 6 : 1 , Rabbits , 0 , 4 0 0 0 ,GREEN;
F : 7 : 1 , Foxes , 0 , 4 0 0 0 ,RED) ;
GRAPH( 0 , 3 0 0 ,BLACK; TIME : 6 : 1 ,WHITE;
R: 7 : 1 , Rabbits , 0 , 5 0 0 0 ,GREEN;
F : 7 : 1 , Foxes , 0 , 5 0 0 0 ,RED) ;
INIT TSIM: = 2 5 0 ; ACT(RF, 0 ) ;
R: = 1 0 0 0 ; F : = 7 5 0 . 0 ;

( Valor I n i c i a l )

gico perturbado
A.15 Sistema ecolo

123

( Para metros )

RM: = 2 0 0 0 0 ;
C1 : = 0 . 1 8 ; C2 : = 0 . 0 0 0 1 5 ;

C3 : = 0 . 2 ; C4 : = 0 . 0 0 0 1 ;

DT RF: = 0 . 1 2 5 ;
( Para m o d i f i c a r c o n d i c i o n e s i n i c i a l e s y t i p o de g r a f i c a )
INTI R : 9 : 0 : RABBITS INITIAL ;
INTI F : 9 : 0 : FOXES

INITIAL ;

INTI RM: 9 : 0 : RABBITS MAXIMUM;


DECL VAR

C1 , C2 , C3 , C4 ,RM:REAL; R, F :CONT;

END.

A.15

Sistema ecol
ogico perturbado

TITLE S i s t em a e c o l o g i c o p e r t u r b a d o
NETWORK
CHANGES (C) : :

( E c u a c i o n e s d i f e r e n c i a l e s para l a biomasa )

SUN:=MSUN(1+0.1 SIN ( 6 . 2 8 3 2 TIME) ) ; ( Cambio a n u a l en l a r a d i a c i o n


)
( La e f i c i e n c i a de l a f o t o s n t e s i s depende de l a biomasa de l o s
descomponedores con un r e t r a s o )
RETARD( 3 , PhotEff , 0 . 5 ,D 0 . 0 0 0 5 8 2 8 5 7 ) ;

(220.000582857=0.01282)

P : = PhotEff SUNRespPPConsPHPHMortPPMigrPP ;
IF P<0 THEN P: = 0 ;
H : = ConsPHPH+EntrHRespHHConsHCHCMortHHMigrHHH;
C : = ConsHCHCRespCCConsCSCSMortCC+MigrCCC;
S : = ConsCSCSRespS SMortSSMigrS SS ;
D : = MortPP+MortHH+MortCC+MortSS
RespD ( MortPP+MortHH+MortCC+MortSS )MortDDMigrDD;
EXTRAC

(A) : : IT:=1+TRIA ( 0 . 1 , 0 . 0 , 0 . 1 ) ;

( E x t r a c c i o n

de biomasa a n u a l aproximadamente 10=%=)


P:=PTRIA( 4 0 0 , 8 0 0 , 1 0 0 0 ) ;

gico perturbado
A.15 Sistema ecolo

CONTAM (A) : :

D:=D 7 . 0 ;

124

( D e s t r u c c i o n de l o s descomponedores )

IF TIME <9 THEN IT : = 1 ; {ELSE DEACT(CONTAM) ; }


GRAPHIC (A) : : IT : = 0 . 0 4 6 8 7 5 ;

( p e r i o d o de g r a f i c a c i o n )

GRAPH( 0 , 3 0 0 ,BLACK; TIME : 6 : 1 ,WHITE;


P : 6 : 0 ,PROD, 0 , 4 0 0 0 ,GREEN;
H: 6 : 0 ,HERV, 0 , 4 0 0 ,BLUE;
C : 6 : 0 , CAR1, 0 , 4 0 0 ,MAGENTA;
S : 6 : 0 , CAR2, 0 , 2 0 0 ,RED;
D: 6 : 0 , DESC, 0 , 1 0 0 ,BROWN) ;
INIT TSIM: = 3 0 0 ;
ACT(CHANGES, 0 ) ; ACT(GRAPHIC, 0 ) ; ACT(EXTRAC, 2 . 1 ) ; ACT(CONTAM, 8 ) ;
( Parameters )
PhotEff : = 0 . 0 1 2 8 2 ; ( a b s o r c i o n de e n e r ga s o l a r por l o s v e g e t a l e s )
RespP : = 3 . 7 0 1 1 7 ;

( r e s p i r a c i o n de l o s p r o d u c t o r e s )

ConsPH : = 0 . 0 0 6 2 7 ;

( p r o d u c t o r e s consumidos por h e r bv o r o s )

MortP : = 0 . 9 7 6 8 2 3 ;

( m o r t a l i d a d de l o s p r o d u c t o r e s )

MigrP : = 0 . 7 1 1 9 9 ;

( m i g r a c i o n de l o s p r o d u c t o r e s )

RespH : = 1 1 . 3 8 5 5 ;

( r e s p i r a c i o n de l o s h e r bv o r o s )

ConsHC: = 0 . 0 4 6 1 4 ;

( h e r bv o r o s consumidos por c a r nv o r o s )

MortH : = 8 . 6 3 2 5 3 ;

( m o r t a l i d a d de l o s h e r bv o r o s )

MigrH : = 0 . 0 0 5 3 7 ;

( m i g r a c i o n de l o s h e r bv o r o s )

RespC : = 6 . 3 2 0 0 ;

( r e s p i r a c i o n de l o s c a r nv o r o s p r i m a r i o s )

ConsCS : = 0 . 0 6 0 0 ;

( consumo de l o s c a r nv o r o s p r i m a r i o s por

secundarios )
MortC : = 0 . 7 8 0 0 ;

( m o r t a l i d a d de c a r nv o r o s p r i m a r i o s )

MigrC : = 0 . 0 0 2 8 0 ;

( m i g r a c i o n de c a r nv o r o s p r i m a r i o s )

RespS : = 1 . 8 5 7 1 4 ;

( r e s p i r a c i o n de c a r nv o r o s s e c u n d a r i o s )

MortS : = 1 . 0 0 0 0 0 ;

( m o r t a l i d a d de c a r nv o r o s s e c u n d a r i o s )

MigrS : = 0 . 1 4 2 8 6 ;

( m i g r a c i o n de c a r nv o r o s s e c u n d a r i o s )

RespD : = 0 . 9 9 0 0 0 ;

( r e s p i r a c i o n de l o s descomponedores )

MortD : = 0 . 2 9 0 9 0 ;

( m o r t a l i d a d de l o s descomponedores )

MigrD : = 1 . 8 1 8 2 0 ;

( m i g r a c i o n de l o s descomponedores )

MSUN:=1700000 ;

( media e n e r ga s o l a r Kcal /m2/ a


no

EntrH :=486

( Entrada de e n e r ga exo gena a l o s h e r bv o r o s )

( V a l o r e s i n i c i a l e s de l a s v a r i a b l e s )
P:=3236
)

( Biomasa ( e n e r ga ) de l o s p r o d u c t o r e s p r i m a r i o s

gico perturbado
A.15 Sistema ecolo

H:=166

( Biomasa ( e n e r ga ) de l o s h e r bv o r o s )

C:=50

( Biomasa ( e n e r ga ) de l o s c a r nv o r o s )

S:=7

( Biomasa ( e n e r ga ) de l o s s e c u n d a r i o s )

D:=22

( Biomasa ( e n e r ga ) de l o s descomponedores )

DT CHANGES: = 0 . 0 0 7 8 1 2 5 ;
DECL VAR

RespP , ConsPH , MortP , MigrP ,


RespH , ConsHC , MortH , MigrH ,
RespC , ConsCS , MortC , MigrC ,
RespS ,

MortS , MigrS ,

RespD ,

MortD , MigrD ,

SUN,MSUN, EntrH :REAL;


P , H, C, S ,D: CONT; PhotEff : RET : 3 ;
END.

125

mico (Puerta Oscilante)


A.16 Sistema dina

A.16

126

Sistema din
amico (Puerta Oscilante)

TITLE S i s t em a dina mico ( Puerta O s c i l a n t e )


NETWORK
C : : Z : =W; W:=RW/ IKZ/ I ;

( Ecuaciones del sistema )

GRAPH( 0 , 8 0 ,BLACK, O s c i l a n t Gate W Z T ;


TIME : 6 : 2 ,WHITE;
W: 6 : 1 , Ang Vel , 2 ,3 ,LIGHTBLUE;
Z : 6 : 1 , Angle , 2 ,3 ,GREEN) ;
GRAPH( 0 , 8 0 ,BLACK, O s c i l a n t Gate W Z ;
W: 6 : 1 , ANG VEL, 2 ,2 ,LIGHTBLUE;
Z : 6 : 1 ,ANGLE, 2 ,3 ,GREEN) ;

INIT ACT(C, 0 ) ; Z : = 1 . 4 ; W: = 0 . 0 ;
R: = 0 . 1 ; K: = 0 . 9 ; I : = 1 . 2 ;
TSIM: = 8 0 ; DT C: = 0 . 0 6 2 5 ;
INTI I : 6 : 2 : Moment o f i n e r t i a ;
INTI R : 6 : 2 : Damping c o n s t a n t ;
INTI K : 6 : 2 : E l a s t i c c o n s t a n t ;
DECL VAR W, Z :CONT; R, K, I :REAL;
END.

A.17

Gr
afico de la cola normal y antit
etica

TITLE G r a f i c o de l a c o l a normal y a n t i t e t i c a
NETWORK
( Experimento normal

RN[ 1 ] : = 1 1 1 1 1 1

ENT ( I )

::

IT:=TRIA ( 2 , 4 , 6 , 1 ) ;

TIC (R)

::

STAY:=TAT;

EXIT (E)

::

ACT(GRA, 0 ) ;

ACT(GRA, 0 ) ;

( Experimento a n t i t e t i c o
ENTA ( I )

RN[2]:= 111111

: : IT:=TRIA ( 2 , 4 , 6 , 2 ) ;
ACT(GRA, 0 ) ;

A.18 Puerto petrolero

TICA (R)

::

EXITA(E)
GRA (A)

STAY:=TAT;

::
::

127

ACT(GRA, 0 ) ;
RLT:=LL( EL TIC ) ; RLA:=LL( EL TICA ) ;
RLM: = 0 . 5 (RLT+RLA) ;
GRAPH( 0 , 1 2 0 0 0 ,BLACK; TIME : 6 : 0 ,WHITE;
RLT: 6 : 0 ,COLAT, 0 , 2 0 ,GREEN;
RLA: 6 : 0 ,COLAA, 0 , 2 0 ,RED;
RLM: 6 : 0 ,COLAM, 0 , 2 0 ,YELLOW) ;

ELIMTRA (A) : : CLRSTAT;


INIT TSIM: = 1 2 0 0 0 . 0 ; ACT(ENT, 0 ) ;ACT(ENTA, 0 ) ; ACT(ELIMTRA, 6 0 0 0 ) ;
RN[ 1 ] : = 1 1 1 1 1 1 ; RN[ 2 ] : = 1 1 1 1 1 1 ; ( S e m i l l a normal y a n t i t e t i c a )
RLT: = 0 . 0 ; RLA: = 0 . 0
TAT: = 3 . 9 9 ;
DECL

( Para metros )

VAR TAT, RLT,RLA,RLM:REAL;

STATISTICS ENT,ENTA, TIC , TICA , EXIT , EXITA, RLT,RLA,RLM;


END.

A.18

Puerto petrolero

TITLE Puerto p e t r o l e r o
NETWORK
( Los b a r c o s que l l e g a n pueden s e r de 25 t i p o s d i f e r e n t e s , ( 5
capacidades
y 5 t i p o s de p e t r o l e o . Dependiendo d e l t i p o de p e t r o l e o e s e n v i a d o
a su
entrada c or r e sp o n di e nt e a l puerto )
ARRIVAL ( I ) [ 1 . . 2 5 ] ENTRANCE[ INO ] : :
TYP:=INO ;
IT:= TRIA(TBAMIN[ INO ] ,TBAMO[ INO ] ,
TBAMAX[ INO ] ) ;
BERT: = ( (TYP1) MOD 5 ) +1;

A.18 Puerto petrolero

128

SIZE :=(TYP DIV

5) + 1 ;

SENDTO(ENTRANCE[BERT] ) ;
IF R=1 THEN
BEGIN

WRITELN( T= ,TIME : 8 : 2 , A r r i v a l o f t a n k e r o f type ,TYP: 3 ,

S i z e , SIZET [ SIZE ] : 7 : 1 ,

i t g o e s t o b e r t h ,BERT) ;

{CH:=READKEY; }

END;
( S i e l a t r a c a d e r o e s t a l i b r e y hay s u f i c i e n t e p e t r o l e o en su
tanque , e l
barco es enviado a ese atracadero )
ENTRANCE (G) [ 1 . . 5 ]

BERTH[ INO ] : :
IF (F BERTH [ INO] >0) AND (VTANK[ INO]>VFTANKER[ INO
])
THEN
BEGIN
DOEVENT
BEGIN
( s i z e i s s t o r e d i n SIZETANKER )
SIZETANKER [ INO] : = SIZET [ SIZE ] ;
IF R=1 THEN
WRITELN( T= ,TIME : 8 : 2 ,
Ship a s s i g n e d t o b e r t h ,BERT) ;
SENDTO(BERTH[ INO ] ) ;
END;
END;

( El b a r c o e s t a a l b e r g a d a en e l p u e r t o )
BERTH(R) [ 1 . . 5 ] EXIT : :
( S a l i d a d y multa acumulada d e l p u e r t o )
EXIT(E) : : TE:=TIMEGT;
IF TE>1.75 THEN
FINE [BERT] : = FINE [BERT]+(TE1.75) FINETAX ;
TANK (C) var i : i n t e g e r ; : : ( Llenado de t a n q u e s )
( Dos c o n d i c i o n e s de d e t e n c i o n :

A.18 Puerto petrolero

129

FILL [ I ]=1 S i e l tanque I e s t a s i e n d o l l e n a d o


PUMP[ I ]=1 s i hay bombeo a l b a r c o en e l a t r a c a d e r o I

FOR I :=1 TO 5 DO
BEGIN
IF VTANK[ I ]>VMAX[ I ] THEN
BEGIN IF FILL [ I ]=1 THEN TSHUT[ I ] : =TIME ; FILL [ I ] : = 0 END;
IF (VTANK[ I ]<VFTANK[ I ] ) AND ( FILL [ I ] = 0 . 0 )
THEN BEGIN FILL [ I ] : = 1 ;
TTSHUT[ I ] : =TTSHUT[ I ]+TIMETSHUT[ I ]
END;
IF (VTANK[ I ]<=VMIN[ I ] ) THEN PUMP[ I ] : = 0 ;
IF (VTANK[ I ]>VFTANKER[ I ] ) AND (F BERTH [ I ]=0)
THEN PUMP[ I ] : = 1 ;
END;
( r i t m o de l l e n a d o de l o s t a n q u e s
FILL [ ] o PUMP[ ] pueden s e r c e r o en t i e m p o s d i f e r e n t e s )
VTANK [ 1 ] : = FILL [ 1 ] FILLRATE[1] PUMP[ 1 ] PUMPRATE[ 1 ] ;
VTANK [ 2 ] : = FILL [ 2 ] FILLRATE[2] PUMP[ 2 ] PUMPRATE[ 2 ] ;
VTANK [ 3 ] : = FILL [ 3 ] FILLRATE[3] PUMP[ 3 ] PUMPRATE[ 3 ] ;
VTANK [ 4 ] : = FILL [ 4 ] FILLRATE[4] PUMP[ 4 ] PUMPRATE[ 4 ] ;
VTANK [ 5 ] : = FILL [ 5 ] FILLRATE[5] PUMP[ 5 ] PUMPRATE[ 5 ] ;
MODULE

( D i v i s i o n de l a s e c c i o n de l a r e d )

PUMPING (C) EXIT , var i : i n t e g e r ;

::

( Rate o f f i l l i n g o f t h e t a n k e r s )
VTANKER [ 1 ] : =PUMPRATE[ 1 ] PUMP[ 1 ] ;
VTANKER [ 2 ] : =PUMPRATE[ 2 ] PUMP[ 2 ] ;
VTANKER [ 3 ] : =PUMPRATE[ 3 ] PUMP[ 3 ] ;
VTANKER [ 4 ] : =PUMPRATE[ 4 ] PUMP[ 4 ] ;
VTANKER [ 5 ] : =PUMPRATE[ 5 ] PUMP[ 5 ] ;
( C o n d i c i o n e s de l l e n a d o en cada a t r a c a d e r o )
FOR I :=1 TO 5 DO

A.18 Puerto petrolero

130

IF (VTANKER[ I ] >= SIZETANKER [ I ] ) AND (F BERTH [ I ]=0)


THEN
BEGIN
REL (IL BERTH [ I ] ,TRUE) SENDTO (EXIT) ;
VTT[ I ] : =VTT[ I ]+VTANKER[ I ] ; ( Envios t o t a l e s )
IF R=1 THEN
BEGIN
WRITELN( T= ,TIME : 8 : 2 ,
Tanker a t b e r t h , I , f i l l e d ) ;
PAUSE
END;
PUMP[ I ] : = 0 ; VTANKER[ I ] : = 0 ;
END;
( L l e g a d a s i n i c i a l e s y a s i g n a c i o n de t i p o s )
PRIMARRIVAL(A) var i s i z e , i b e r t : i n t e g e r ; : :
i s i z e := s i z e ;
FOR iSIZE :=1 TO 5 DO
BEGIN

i b e r t := b e r t ;

FOR iBERT:=1 TO 5 DO
BEGIN
TYP:=( iSIZE 1) 5 + iBERT ;
IF TBAMO[TYP]<>0 THEN
BEGIN
TPLL:=TRIA(TBAMIN[TYP] ,TBAMO[TYP] ,
TBAMAX[TYP] ) ;
ACT(ARRIVAL[TYP] , TPLL) ;
IF R=1 THEN BEGIN WRITELN( T= ,TIME : 8 : 2 ,
A c t i v a t e d a r r i v a l S i z e , SIZET [ iSIZE ] : 7 : 1 ,
Berth , iBERT : 3 ,

Type ,TYP: 3 ,
{PAUSE; } END;
END;

END;
END;
( G r a f i c a d e l volumen de cada tanque )
GRA(A) : : IT : = 0 . 0 6 2 5 ;
IF R=2 THEN

Time ,TPLL : 8 : 1 ) ;

A.18 Puerto petrolero

131

BEGIN
GRAPH ( 0 , 3 6 5 ,BLACK; TIME : 6 : 1 ,WHITE;
VTANK[ 1 ] : 7 : 1 , TANK1, 0 , 2 0 0 0 , MAGENTA;
VTANK[ 2 ] : 7 : 1 , TANK2, 0 , 2 0 0 0 , RED;
VTANK[ 3 ] : 7 : 1 , TANK3, 0 , 2 0 0 0 , GREEN;
VTANK[ 4 ] : 7 : 1 , TANK4, 0 , 2 0 0 0 , BLUE;
VTANK[ 5 ] : 7 : 1 , TANK5, 0 , 2 0 0 0 , YELLOW) ;
END;
( Reporte de multas y e n v i o s en l o s p u e r t o s )
RESUL (A) : : {CLRSCR; }
REPORT
OUTG VMAX

[ 1 . . 5 ] : 1 0 : 1 : Tank c a p a c i t y

OUTG PUMPRATE

[ 1 . . 5 ] : 1 0 : 1 : Pumping r a t e

OUTG FINE

[ 1 . . 5 ] : 1 0 : 1 : Fine i n each b e r t h

OUTG VTT

[ 1 . . 5 ] : 1 0 : 1 : Shipped o f each kind ;

OUTG TTSHUT

[ 1 . . 5 ] : 1 0 : 1 : F i l l i n g tank shutdown ;

ENDREPORT;
{PAUSE; } ENDSIMUL;

INIT

ACT(TANK, 0 ) ; ACT (GRA, 0 ) ;


ACT(PRIMARRIVAL, 0 ) ; ACT(PUMPING, 0 ) ; ACT(RESUL, 3 6 5 . 5 ) ;
ASSI FILLRATE [ 1 . . 5 ] : = ( 3 2 , 5 6 . 5 , 1 4 5 , 8 0 , 1 5 0 ) ;
ASSI PUMPRATE[ 1 . . 5 ] : = ( 1 2 0 0 , 1 0 0 0 , 1 0 0 0 , 1 2 0 0 , 1 0 0 0 ) ;
ASSI VMAX[ 1 . . 5 ] : = ( 1 6 9 0 , 1 6 0 0 , 1 7 8 0 , 1 7 0 0 , 1 5 1 0 ) ;
ASSI VFTANK[ 1 . . 5 ] : = ( 1 6 3 0 , 1 5 8 0 , 1 7 6 0 , 1 6 3 0 , 1 4 9 0 ) ;
ASSI VMIN[ 1 . . 5 ] : = ( 9 0 , 6 0 , 6 0 , 8 0 , 6 0 ) ;
ASSI VFTANKER[ 1 . . 5 ] : = ( 1 4 0 , 1 0 0 , 1 0 0 , 1 4 0 , 1 0 0 ) ;
ASSI FILL [ 1 . . 5 ] : = ( 1 . 0 , 1 . 0 , 1 . 0 , 1 . 0 , 1 . 0 ) ;
ASSI PUMP[ 1 . . 5 ] : = ( 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 ) ;
ASSI TSHUT[ 1 . . 5 ] : = ( 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 ) ;
ASSI TTSHUT[ 1 . . 5 ] : = ( 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 , 0 . 0 ) ;
ASSI TBAMIN[ 1 . . 2 5 ] : = ( 1 2 . 6 ,

10.17 ,

22.33 , 16.25 ,

7.13 , 16.25 , 10.17 ,

5.3 ,

34.5 ,

12.6 ,

A.18 Puerto petrolero

132

0.0 ,

34.5 ,

16.25 , 43.63 , 34.5 ,

0.0 ,

0.0 ,

28.42 ,180.5 , 43.63 ,

0.0 ,

0.0 ,

43.5 , 119.67 ,71.0) ;

ASSI TBAMO[ 1 . . 2 5 ] : = ( 1 4 . 6 ,

12.17 ,

24.33 , 18.25 ,
0.0 ,

36.5 ,

0.0 ,

0.0

0.0 ,

0.0 ,

ASSI TBAMAX[ 1 . . 2 5 ] : = ( 1 6 . 6 ,

9.13 , 18.25 , 12.17 ,


7.3 ,

36.5 ,

14.6 ,

18.25 , 45.63 , 36.5 ,


,30.42 ,182.5

,45.63 ,

45.5 , 121.67 , 73.0) ;

14.17 , 11.13 , 20.25 , 14.17 ,

26.33 , 20.25 ,

9.3 ,

38.5 ,

16.6 ,

0.0 ,

38.5 ,

20.25 , 47.63 , 38.5 ,

0.0 ,

0.0 ,

32.42 , 184.5 , 47.63 ,

0.0 ,

0.0 ,

47.5 , 123.67 , 75.0) ;

ASSI SIZET [ 1 . . 5 ] : = ( 2 0 0 , 3 0 0 , 5 0 0 , 7 0 0 , 9 0 0 ) ;
ASSI SIZETANKER[ 1 . . 5 ] : = ( 1 0 0 0 , 1 0 0 0 , 1 0 0 0 , 1 0 0 0 , 1 0 0 0 ) ;
EABS: = 1 0 0 0 0 ; EREL: = 1 0 0 0 0 ;
DT TANK: = 0 . 0 3 1 2 5 ;

DT PUMPING: = 0 . 0 3 1 2 5 ;

FINETAX: = 3 0 0 ;
ASSI FINE [ 1 . . 5 ] : = ( 0 , 0 , 0 , 0 , 0 ) ;
VTANK[ 1 ] : = 2 5 0 ; VTANK[ 2 ] : = 3 0 0 ; VTANK[ 3 ] : = 3 5 0 ; VTANK[ 4 ] : = 3 0 0 ;
VTANK[ 5 ] : = 4 6 6 ;
ASSI VTT[ 1 . . 5 ] : = ( 0 , 0 , 0 , 0 , 0 ) ;
ASSI VTANKER[ 1 . . 5 ] : = ( 0 , 0 , 0 , 0 , 0 ) ;
R: = 0 ;
INTI R : 2 :WRITE 1

GRAF 2

NONE 0 ;

DECL
VAR
( para cada p u e r t o o t i p o de p e t r o l e o : )
FILLRATE,

( t a z a de l l e n a d o d e l tanque mb/d )

PUMPRATE,

( v e l o c i d a d de bombeo mb/d )

VMAX,

( volumen maximo en e l tanque mb )

VMIN,

( volumen mnimo en e l tanque mb )

A.18 Puerto petrolero

VFTANK,

133

( volumen para r e i n i c i a r e l l l e n a d o d e l tanque mb

)
VFTANKER,

( volumen para r e i n i c i a r e l l l e n a d o d e l tanque mb

)
FILL ,

( FILL=1 i f e l tanque e s t a l l e n a n d o s e e l s e FILL=0

)
PUMP,

( PUMP=1 i f hay bombeo h a c i a e l tanque e l s e PUMP=0

)
SIZETANKER, ( c a p a c i d a d l l e n a n d o s e d e l tanque )
SIZET ,

( c a p a c i d a d a l l e n a r en e l tanque mb

FINE ,

( multa acumulada )

TSHUT,

( tiempo de c i e r r e de un tanque l l e n o )

TTSHUT

( tiempo t o t a l de c i e r r e de un tanque l l e n o )

:ARRAY[ 1 . . 5 ] OF REAL;
VTANK,

( volumen a c t u a l en e l tanque mb )

VTT,

( volumen t o t a l t r a n s p o r t a d o mb )

VTANKER

( volumen a c t u a l en e l tanque mb )

:ARRAY[ 1 . . 5 ] OF CONT;
( Para cada t i p o de buque : )
TBAMIN,

( Mnimo tiempo e n t r e l l e g a d a s d )

TBAMO,

( Tiempo mas p r o b a b l e e n t r e l l e g a d a s d )

TBAMAX

( Maximo tiempo e n t r e l l e g a d a s d )

:ARRAY[ 1 . . 2 5 ] OF REAL;
I ,R:INTEGER; CH:CHAR;
FINETAX,

( Impuesto de multa por d i a $ /d )

TPLL,

( Variables a u x i l i a r e s )

TE:
REAL;
MESSAGES ARRIVAL(TYP,BERT, SIZE :INTEGER) ;
STATISTICS ARRIVAL,ENTRANCE,BERTH, EXIT ;
END.

n de piloto de un avio
n
A.19 Eyeccio

A.19

134

Eyecci
on de piloto de un avi
on

TITLE E y e c c i o n de p i l o t o de un a v i o n
NETWORK
CA : :

METHOD(RK4) ;
X : = VCOS(TH)VP;

( V e l o c i d a d s o b r e X r e s p e c t o a l a v i o n )

Y : = VSIN (TH) ;

( V e l o c i d a d s o b r e Y r e s p e c t o a l a v i o n )

IF Y>Y1 THEN

( Si separados )

BEGIN
D:= 0 . 5 (PCDSVV) ;

( a r r a s t r e )

V : = (D/M+GSIN (TH) ) ; ( a c e l e r a c i o n a l o l a r g o de V )
TH : = (GCOS(TH) /V) ;

( V a r i a c i o n d e l a n g u l o )

END;
IF K=0
THEN
GRAPH( 0 , 2 . 4 ,BLACK;
X: 4 : 1 , X,0 , 10 0 ,GREEN; Y: 4 : 1 , Y, 0 , 1 0 ,RED)
ELSE
BEGIN
WRITELN( TI ,TIME : 1 2 : 4 ,

X ,X: 8 : 3 ,

V ,V: 8 : 3 ,

Y ,Y: 8 : 4 ,

TH ,TH: 8 : 5 ) ; PAUSE;

END;
IF (X<=20) AND PAS THEN

( almacena a l t u r a c r t i c a )

BEGIN HCRIT:=Y; PAS:=FALSE END;


FIN (A) : : { CLRSCR; }
WRITELN( Height o v e r t h e t a i l

,HCRIT 3 . 5 : 7 : 2 ) ;

IF HCRIT<=3.5 THEN WRITELN( Crash with t h e t a i l )


ELSE WRITELN( Pass o v e r t h e t a i l
ENDSIMUL;
INIT
ACT( FIN , 2 . 5 ) ;
ACT(CA, 0 ) ;

) ; PAUSE;

A.20 Atractor Lorenz

135

X: = 0 . 0 ; Y: = 0 . 0 ;

( P o s i c i o n i n i c i a l d e l punto de e y e c c i o n )

CD: = 1 . 0 ;

( c o e f i c i e n t e de a r r a s t r e )

VP: = 2 7 5 . 0 ;

( V e l o c i d a d d e l a v i o n M/S )

G: = 9 . 8 0 ;

( a c e l e r a c i o n de l a gravedad M/S2 )

P: = 1 . 2 2 ;
TH: = 0 . 2 6 1 8 ;

( Densidad d e l a i r e K/M3 )

( Angulo
de e y e c c i o n ( 1 5 Gr ) )

VE: = 1 2 . 2 ;

( V e l o c i d a d de e y e c c i o n M/S )

M: = 1 0 2 . 0 ;

( Masa e x p u l s a d a Kg )

S:=0.93;

( Area e f e c t i v a d e l c u e r p o e x p u l s a d o M2 )

Y1 : = 1 . 2 2 ;

( l o n g i t u d de l a e s c a l e r a de e y e c c i o n m )

PAS:=TRUE;

( A l t u r a c r t i c a no r e g i s t r a d a a
un )

INTI VP : 9 : 2 : Speed o f t h e p l a n e

INTI VE : 9 : 2 : E j e c t i o n s p e e d

( V e l o c i d a d y a n g u l o de s e p a r a c i o n )
VX:=VPVESIN (TH) ;

VY:=VECOS(TH) ;

V:=SQRT(VXVX+VYVY ) ;
TH:=ARCTAN(VY/VX) ;
K: = 0 ;
INTI K: 3 : Graphic output 0

Numerical 1 .

DT CA: = 0 . 0 0 8 ;
DECL
VAR X, Y, V,TH:CONT;

PAS :BOOLEAN;

D,CD, VP, G, P , VE,M, S , Y1 ,VX,VY, HCRIT :REAL; K:INTEGER;


END.

A.20

Atractor Lorenz

TITLE A t r a c t o r Lorenz
NETWORK
CON : : X : = 1 0 (YX) ;
Y : = 1 7 XYXZ ;
Z : =XY1Z ;

A.21 Modelo mundial de Forrester

136

GRAPH ( 0 , 3 0 0 ,BLACK;
X: 6 : 1 , X, 20 ,20 ,RED;
Z : 6 : 1 , Z , 0 , 3 0 ,GREEN) ;
INIT
ACT(CON, 0 ) ; TSIM: = 3 0 0 ; X: = 1 ; Y: = 1 ; Z : = 1 ;
DT CON: = 0 . 0 6 2 5 ;
DECL VAR X, Y, Z :CONT;
END.

A.21

Modelo mundial de Forrester

TITLE Modelo mundial de F o r r e s t e r


NETWORK
MODEL (C) : : ( P o b l a c i o n . Taza de n a c i m i e n t o y de m o r t a l i d a d )
BR:=POPBRNBRMM(MSL) BRFM(FR) BRCM(CR) BRPM(POLR) ;

{2}

DR:=POPDRNDRMM(MSL) DRFM(FR) DRCM(CR) DRPM(POLR) ;

{10}

POP : =BRDR;

{1}
{Taza Amontonamiento }

CR:=POP/ (LANDPDN) ;

{15}

( CAPITAL )
CG:=POPCGNCMM(MSL) ;

{CAP. G e n e r a c i o n }

{25}

CD:=CAPCDN;

{CAP. D e s c a r t e }

{27}

CAP : =CGCD;
CAR:=CAP/POP;

{24}
{CAP. Taza : CAP por p e r s o n a }

{23}

ECR:=CAR(1CAF) NREM(NRFR) /(1CAFN) ; { E f e c t i v o }

{5}

MSL:=ECR/ECRN; { E f e c t i v o r e l a t i v o a 1970}

{4}

{Es un n d i c e de m a t e r i a l b a s i c o para v i v i r }
( Comida . F r a c c i o n c a p i t a l en l a a g r i c u l t u r a )
RETARD( 1 ,CAF,CAFT,CFFR(FR) CQR(CAQR) ) ;
CRA:=CARCAF/CAFN;

{RAT. ADJ. }

{CAP. IN AGR. RELATIVE TO 1970}

{35}
{22}

FR:=FCFPC(CRA) /FNFPM(POLR) FCM(CR) ; {Comida PROD. REL. } { 1 9 }


( R e c u r s o s N a t u r a l e s ( no r e n o v a b l e s ) )
NRUR:=POPNRUNNRMM(MSL) ; {NAT.REC. Usados por p e r s o n a }

{9}

NR:=NRUR; {NAT. R e c u r s o s R e s t a n t e s }

{8}

A.21 Modelo mundial de Forrester

NRFR:=NR/NRI ;

137

{ F r a c c i o n de NAT. r e c u r s o s r e s t a n t e s }

{7}

{Taza de P o l u c i o n . R e l a t i v o a 1970}

{29}

( P o l u c i o n )
POLR:=POL/POLS ;

PG:=POPPOLNPOLCM(CAR) ; { G e n e r a c i o n P o l u c i o n }
PA:=POL/POLAT(POLR) ;

{ A b s o r c i o n P o l u c i o n }

POL : =PGPA;

{31}
{33}
{30}

( I n d i c e de c a l i d a d de v i d a )
QOL:=QLSQLM(MSL) QLC(CR) QLF(FR) QLP(POLR) ;

{37}

CAQR:=QLM(MSL) /QLF(FR) ; {Taza de CAL. m a t e r i a l / comida }


( E s c a l a de g r a f i c a )
POPG:=POP/ 1 . 0E+9;
CAPG:=CAP/ 1 . 0E+9;
NRG:=NR/ 1 . 0E+12;
( G r a f i c a )
GRAPH( 0 , 2 3 0 ,BLACK; TIME : 6 : 1 ,WHITE;
POPG: 6 : 3 ,POP, 0 , 1 0 ,BROWN;
CAPG: 6 : 3 ,CAP, 0 , 1 0 ,LIGHTBLUE;
NRG : 6 : 3 ,NRE, 0 , 1 ,YELLOW;
POLR: 5 : 1 ,POLR, 0 , 1 0 0 ,RED;
QOL: 4 : 2 , QL, 0 , 2 ,GREEN) ;
IF TIME=70 THEN

( Para cambiar pa r a m e t r o s d e s d e 1 9 7 0 )

BEGIN
BRN:=BRN1 ;

( Taza n a c i m i e n t o normal )

DRN:=DRN1;

( Taza de m o r t a l i d a d normal )

NRUN:=NRUN1;

( R e c u r s o s n a t u r a l e s u s a d o s por persona , normal )

FC:=FC1 ;

( C o e f i c i e n t e de comida para e x p e r i m e n t a r con FR )

CGN:=CGN1;

( Taza c r e c i m i e n t o c a p i t a l normal )

CDN:=CDN1;

( Taza r e d u c c i o n c a p i t a l normal )

POLN:=POLN1 ;

( Valor normal P o l u c i o n )

END;
INIT

A.21 Modelo mundial de Forrester

138

TSIM: = 2 3 0 ;

( Tiempo S i m u l a c i o n )

ACT(MODEL, 0 ) ;

( Primera a c t i v a c i o n d e l modelo )

( Para metros y v a l o r e s e s t a n d a r s ( n o r m a l e s ) )
BRN: = 0 . 0 4 ;

( C o e f i c i e n t e t a z a n a t a l i d a d , normal
)

DRN: = 0 . 0 2 8 ;

( C o e f i c i e n t e t a z a m o r t a l i d a d , normal
)

NRUN: = 1 ;

( r e c u r s o s consumidos por p e r s o n a normal ( 1 9 7 0 )


)

FC: = 1 ;

( Taza a l i m e n t o s , normal en 1970


)

CGN: = 0 . 0 5 ;
normal
CDN: = 0 . 0 2 5 ;

( C o e f i c i e n t e de t a z a de c r e c i m i e n t o de c a p i t a l ,
)
( C o e f i c i e n t e de t a z a de d e s t r u c c i o n de c a p i t a l
)

POLN: = 1 ;

( Taza p o l u c i o n , normal 1 en 1970


)

( Valores desde 1970)


BRN1: = 0 . 0 4 ;

( C o e f i c i e n t e t a z a n a t a l i d a d , normal
)

DRN1: = 0 . 0 2 8 ;

( C o e f i c i e n t e t a z a m o r t a l i d a d , normal
)

NRUN1: = 1 ;

( r e c u r s o s consumidos por p e r s o n a normal ( 1 9 7 0 )


)

FC1: = 1 ;

( Taza a l i m e n t o s , normal en 1970


)

CGN1: = 0 . 0 5 ;
normal
CDN1: = 0 . 0 2 5 ;

( C o e f i c i e n t e de t a z a de c r e c i m i e n t o de c a p i t a l ,
)
( C o e f i c i e n t e de t a z a de d e s t r u c c i o n de c a p i t a l
)

POLN1: = 1 ;

( Taza p o l u c i o n , normal 1 en 1970


)

ECRN: = 1 ;

( Taza normal de c a p i t a l e f e c t i v o
)

A.21 Modelo mundial de Forrester

LAND:=135E+6;

139

( Terreno t o t a l Km2
)
( Normal d e n s i d a d de p o b l a c i o n ( 1 9 7 0 )

PDN: = 2 6 . 5 ;

)
CAFT: = 1 5 . 0 ;

( A j u s t e de r e t r a s o de f r a c c i o n de c a p i t a l de

agricultura

CAFN: = 0 . 3 ;
FC: = 1 ;
FN: = 1 ;
( F r a c c i o n de c a p i t a l en a g r i c u l t u r a , i n i c i a l

FR: = 0 . 3 ;

)
POLS: = 3 . 6E+9;

( P o l u c i o n en 1970
)

( Variables i nt erm ed ia ria s , v a l o r e s i n i c i a l e s


)
POLR: = 0 . 2E+9/POLS ; ( Taza i n i c i a l de p o l u c i o n
)
( Estandar de l a c a l i d a d de v i d a ( 1 9 7 0 )

QLS : = 1 . 0 ;

)
( M a t e r i a l e s t a n d a r de v i d a i n i c i a l ( 1 9 0 0 )

MSL: = 0 . 2 5 ;

)
( Taza i n i c i a l de c a l i d a d de v i d a

CAQR: = 2 ;

)
( Taza i n i c i a l de c a p i t a l e f e c t i v o

ECR: = 0 . 2 5 ;

)
( F r a c c i o n de r e c u r s o s n a t u r a l e s n a c i o n a l e s r e s t a n t e s ;

NRFR: = 1 ;
1 en 1900
DT MODEL: = 0 . 5 ;

)
( I n t e r v a l o de i n t e g r a c i o n )

( Cambios i n t e r a c t i v o s de l o s pa r a m e t r o s )
INTI BRN1 : 1 0 : 3 : BIRTH RATE COEFFICIENT

NORMAL SINCE 1970 ;

INTI DRN1 : 1 0 : 3 :DEATH RATE COEFFICIENT

NORMAL SINCE 1970 ;

INTI NRUN1: 1 0 : 3 :CONSUMPTION OF NAT.RESOURCES NORMAL SINCE 1970 ;


INTI FC1

: 1 0 : 3 :FOOD COEFFICIENT

NORMAL SINCE 1970 ;

A.21 Modelo mundial de Forrester

140

INTI CGN1 : 1 0 : 3 : CAPITAL GENERATION

/PERSON NORMAL SINCE 1970 ;

INTI CDN1 : 1 0 : 3 : CAPITAL DESTRUCTION /PERSON NORMAL SINCE 1970 ;


INTI POLN1 : 1 0 : 3 : POLLUTION PRODUCTION/PERSON NORMAL SINCE 1970 ;
( V a l o r e s i n i c i a l e s TIME=0

T. I n i c i a l 1900

POP: = 1 . 6 5E+9;

( P o b l a c i o n i n i c i a l ( 1 9 0 0 ) )

CAP: = 0 . 4E+9;

( Capital i n c i a l (1900) )

CAF: = 0 . 2 ;

( C a p i t a l FRACT. En a g r i c u l t u r a i n i c l a ( 1 9 0 0 ) )

CAR:=CAP/POP;

( C a p i t a l por p e r s o n a )

CRA: = 1 ;

( C a p i t a l i n v e r t i d o en a g r i c u l t u r a por p e r s o n a )

POL: = 0 . 2E+9;

( P o l u c i o n i n i c i a l ( 1 9 0 0 )

CR:=POP/ (LANDPDN) ;

( n d i c e de amontonamiento v a l o r =1 en 1970

NRI:=900E+9;

( R e c u r s o s n a t u r a l e s i n i c i a l : 250 a n
os en
t a z a de consumo de 1970 ( 1 unidad por p e r s o n a ) )
( r e c u r s o s n a t u r a l e s , como su v a l o r i n i c i a l )

NR:=NRI ;

( Funciones ( M u l t i p l i c a d o r e s )

BRMM: = 0 . 0 1 , 0 / 0 , 1 . 2 / 1 , 1 . 0 / 2 , 0 . 8 5 / 3 , 0 . 7 5 / 4 , 0 . 7 / 5 , 0 . 7 ;
{3}
BRFM: = 0 , 0 / 1 , 1 / 2 , 1 . 6 / 3 , 1 . 9 / 4 , 2 . 0 ;
{17}
BRCM: = 0 . 0 1 , 0 / 0 , 1 . 0 5 / 1 , 1 . 0 / 2 , 0 . 9 / 3 , 0 . 7 / 4 , 0 . 6 / 5 , 0 . 5 5 / 7 , 0 . 5 5 ;
{16}
BRPM: = 0 . 0 1 , 0 / 0 , 1 . 0 2 / 1 0 , 0 . 9 / 2 0 , 0 . 7 / 3 0 , 0 . 4 / 4 0 , 0 . 2 5 / 5 0 , 0 . 1 5 /
60 ,0.1;
{18}
DRMM: = 0 . 0 1 , 0 / 0 , 3 . 0 / 0 . 5 , 1 . 8 / 1 . 0 , 1 . 0 / 1 . 5 , 0 . 8 / 2 . 0 , 0 . 7 / 2 . 5 , 0 . 6 /
{11}
3.0 ,0.53/3.5 ,0.5/4.0 ,0.5/4.5 ,0.5/5.0 ,0.5;
DRFM: = 0 . 0 1 , 0 / 0 . 0 , 3 0 / 0 . 2 5 , 3 / 0 . 5 0 , 2 / 0 . 7 5 , 1 . 4 / 1 . 0 , 1 . 0 / 1 . 2 5 , 0 . 7 /
1.50 ,0.6/1.75 ,0.50/2.0 ,0.50/3.0 ,0.50;
{13}
DRCM: = 0 . 0 1 , 0 / 0 , 0 . 9 / 1 , 1 / 2 , 1 . 2 / 3 , 1 . 5 / 4 , 1 . 9 / 5 , 3 ;
DRPM: = 0 . 0 1 , 0 / 0 , 0 . 9 2 / 1 0 , 1 . 3 / 2 0 , 2 . 0 / 3 0 , 3 . 2 / 4 0 , 4 . 8 / 5 0 , 6 . 8 /

A.21 Modelo mundial de Forrester

60 ,9.2;
{12}
CFFR: = 0 . 0 1 , 0 / 0 . 0 , 1 . 0 / 0 . 5 , 0 . 6 / 1 . 0 , 0 . 3 / 1 . 5 , 0 . 1 5 / 2 . 0 , 0 . 1 / 3 . 0 , 0 . 1 ;
{36}
NREM: = 0 . 0 , 0 . 0 / 0 . 2 5 , 0 . 1 5 / 0 . 5 0 , 0 . 5 0 / 0 . 7 5 , 0 . 8 5 / 1 . 0 , 1 . 0 ;
{6}
CMM: = 0 . 0 1 , 0 / 0 . 0 , 0 . 1 / 1 . 0 , 1 . 0 / 2 . 0 , 1 . 8 / 3 . 0 , 2 . 4 / 4 . 0 , 2 . 8 / 5 . 0 , 3 . 0 ;
{26}
FCM: = 0 . 0 1 , 0 / 0 , 2 . 4 / 1 , 1 / 2 , 0 . 6 / 3 , 0 . 4 / 4 , 0 . 3 / 5 , 0 . 2 ;
{20}
FPM: = 0 . 0 1 , 0 / 0 , 1 . 0 2 / 1 0 , 0 . 9 / 2 0 , 0 . 6 5 / 3 0 , 0 . 3 5 / 4 0 , 0 . 2 / 5 0 , 0 . 1 /
{28}
60 ,0.05;
FPC: = 0 . 0 1 , 0 / 0 , 0 . 5 / 1 , 1 / 2 , 1 . 4 / 3 , 1 . 7 / 4 , 1 . 9 / 5 , 2 . 0 5 / 6 , 2 . 2 ;
{21}
NRMM: = 0 , 0 . 0 / 1 , 1 . 0 / 2 , 1 . 8 / 3 , 2 . 4 / 4 , 2 . 9 / 5 , 3 . 3 /
{42}
6 ,3.6/7 ,3.8/8 ,3.9/9 ,3.95/10 ,4.0;
POLCM: = 0 , 0 . 0 5 / 1 , 1 / 2 , 3 / 3 , 5 . 4 / 4 , 7 . 4 / 5 , 8 . 0 ;
{32}
POLAT: = 0 . 0 1 , 0 / 0 , 0 . 6 / 1 0 , 2 . 5 / 2 0 , 5 . 0 / 3 0 , 8 . 0 / 4 0 , 1 1 . 5 / 5 0 , 1 5 . 5 /
{34}
60 ,20.0;
QLM: = 0 . 0 1 , 0 / 0 , 0 . 2 / 1 , 1 . 0 / 2 , 1 . 7 / 3 , 2 . 3 / 4 , 2 . 7 / 5 , 2 . 9 ;
{38}
QLC: = 0 . 0 1 , 0 / 0 , 2 / 0 . 5 , 1 . 3 / 1 , 1 . 0 / 1 . 5 , 0 . 7 5 / 2 , 0 . 5 5 / 2 . 5 , 0 . 4 5 /
3 ,0.38/3.5 ,0.3/4 ,0.25/4.5 ,0.22/5 ,0.20;
{39}
QLF: = 0 , 0 / 1 , 1 / 2 , 1 . 8 / 3 , 2 . 4 / 4 , 2 . 7 ;
{40}
QLP: = 0 . 0 1 , 0 / 0 , 1 . 0 4 / 1 0 , 0 . 8 5 / 2 0 , 0 . 6 0 / 3 0 , 0 . 3 0 / 4 0 , 0 . 1 5 / 5 0 , 0 . 0 5 /
{42}
60 ,0.02;
CQR: = 0 . 0 1 , 0 / 0 . 0 , 0 . 7 / 0 . 5 , 0 . 8 / 1 . 0 , 1 . 0 / 1 . 5 , 1 . 5 / 2 , 2 ;
{43}

141

A.21 Modelo mundial de Forrester

142

( para m os t rar y m o d i f i c a c i o n e s i n t e r a c t i v a s de l a s f u n c i o n e s )
{INTI BRMM,BRFM,BRCM,BRPM, DRMM,DRFM,DRCM,DRPM,CFFR,NREM,CMM,FCM,
FPM, FPC,NRMM,POLCM,POLAT,QLM,QLC, QLF, QLP,CQR;
}

( D e c l a r a c i o n de v a r i a b l e s , p a r a m e t r o s y f u n c i o n e s )

DECL
VAR

( V a r i a b l e s e s t a d o v a l o r a c t u a l , nuevo v a l o r : 1 . e s c a l a para g r a f i c a :
G

POP,

( p o b l a c i o n

CAP,

( C a p i t a l . UNIT : CAP. / p e r s o n a en 1970

NR,

( R e c u r s o s n a t u r a l e s . unidad : consumo por p e r s o n a en 1970

( unidad p o l u c i o n : POL. Producida por una p e r s o n a en 1970

POL

:CONT;
CAF:RET : 3 ;

( F r a c c i o n c a p i t a l en a g r i c u l t u r a

( Variables intermedias )
POPG,

( POP para G r a f i c a )

CAPG,

( CAP para G r a f i c a )

NRG,

( NR

BR,

( Taza n a t a l i d a d . N
umero de p e r s o n a s n a c i d a s en una unidad de

para G r a f i c a )

tiempo ( a
no )

( Taza m o r t a l i d a d . N
umero de p e r s o n a s muertas en una unidad

DR,

de tiempo ( a
no )

CG,

( G e nerac io n de c a p i t a l por unidad de tiempo )

CD,

( Disminucio n de c a p i t a l por unidad de tiempo )

CAR,

( Taza c a p i t a l )

NRFR,

( F r a c c i o n r e s t a n t e de r e c u r s o s n a t u r a l e s )

NRUR,

( Taza de uso de r e c u r s o s n a t u r a l e s )

NRI ,

( Recursos n a t u r a l e s i n i c i a l )

A.21 Modelo mundial de Forrester

143

( M a t e r i a l e s t a n d a r de v i d a . I n d i c e de c a p a c i d a d c o r r e g i d o

MSL,

por NR. )
( C o e f i c i e n t e de a l i m e n t a c i o n . I n d i c e de p r o d u c c i o n de comida

FR,

por p e r s o n a )
( C a p i t a l . en unidad de a g r i c u l t u r a : CAP. en AGR. / p e r s o n a en

CRA,

1970 )
( Taza amontonamiento .

CR,

n d i c e de d e n s i d a d de p o b l a c i o n . 1 en

1970

( C a p i t a l e f e c t i v o . c o r r e g i d o por NR d i s m i n u c i o n (=MSL v a l o r )

ECR,
)

( Taza de g e n e r a c i o n de p o l u c i o n en una unidad de tiempo

PG,

a
no ) )
( Taza de a b s o r c i o n de p o l u c i o n en una unidad de tiempo ( a
no )

PA,
)
QOL,

( Radio p o l u c i o n . n d i c e de p o l u c i o n 1 en 1970 )
( I n d i c e de c a l i d a d de v i d a )

CAQR,

( Taza de comida para m e j o r a r l a c a l i d a d de v i d a )

POLR,

( p aram et ros )
BRN,

( Normal t a z a de n a t a l i d a d )

DRN,

( Normal t a z a de m o r t a l i d a d )

NRUN,

( R e c u r s o s n a t u r a l e s us a do s por persona , normal )

FC,

( C o e f i c i e n t e de comida para e x p e r i m e n t a r con FR )

CGN,

( Taza normal de c r e c i m i e n t o de c a p i t a l )

CDN,

( Taza normal de r e d u c c i o n de c a p i t a l )

POLN,

( Valor normal p o l u c i o n )

( v a l o r e s experimentales )
BRN1,

( Normal t a z a de n a t a l i d a d )

DRN1,

( Normal t a z a de m o r t a l i d a d )

NRUN1,

( R e c u r s o s n a t u r a l e s us a do s por persona , normal )

FC1 ,

( C o e f i c i e n t e de comida para e x p e r i m e n t a r con FR )

CGN1,

( Taza normal de c r e c i m i e n t o de c a p i t a l )

CDN1,

( Taza normal de r e d u c c i o n de c a p i t a l )

POLN1,

( Valor normal p o l u c i o n )

LAND,

( Tierra t o t a l d i s p o n i b l e )

PDN,

( Densidad de p o b l a c i o n i n i c i a l )

A.21 Modelo mundial de Forrester

144

CAFN,

( F r a c c i o n de c a p i t a l en a g r i c u l t u r a , normal )

CAFT,

( A j u s t e de r e t r a s o de f r a c c i o n de c a p i t a l de a g r i c u l t u r a )

FN,

( Comida Normal )

ECRN,

( C a p i t a l e f e c t i v o , normal )

POLS,

( P o l u ci o n , i n i c i a l )

QLS

( C a l i d a d de vida , e s t a n d a r )

:REAL;
( m u l t i p l i c a d o r e s )
GFUNCTIONS
BRMM POLYG (REAL) :REAL : 8 ;

( Taza n a c i m i e n t o ( m a t e r i a l de v i d a )

BRFM POLYG (REAL) :REAL : 7 ;

( Taza n a c i m i e n t o ( t a z a comida )

BRCM POLYG (REAL) :REAL : 8 ;

( Taza n a c i m i e n t o ( t a z a amontonamiento )

BRPM POLYG (REAL) :REAL : 9 ;

( Taza n a c i m i e n t o ( t a z a p o l u c i o n )

DRMM POLYG (REAL) :REAL: 1 3 ; ( Taza m o r t a l i d a d ( m a t e r i a l de v i d a )

DRFM POLYG (REAL) :REAL: 1 1 ; ( Taza m o r t a l i d a d ( t a z a comida )

DRCM POLYG (REAL) :REAL : 8 ;

( Taza m o r t a l i d a d ( t a z a amontonamiento )

DRPM POLYG (REAL) :REAL : 9 ;

( Taza m o r t a l i d a d ( t a z a p o l u c i o n )

CFFR POLYG (REAL) :REAL : 7 ;

( CAP.FRAC.ADEQ( t a z a comida )

NREM POLYG (REAL) :REAL : 7 ;

( Nat . r e c u r s o s ( Frac . Nat . Rec . R e s t a n e s ) )

CMM POLYG (REAL) :REAL : 8 ;

( CAP( m a t e r i a l de v i d a )

FCM POLYG (REAL) :REAL : 8 ;

( F r a c c i o n comida ( amontonamiento ) t a z a

FPM POLYG (REAL) :REAL : 9 ;

( F r a c c i o n comida ( p o l u c i o n ) t a z a

FPC POLYG (REAL) :REAL : 9 ;


NRMM POLYG (REAL) :REAL: 1 3 ; ( CONSU. de RESO . ( m a t e r i a l de v i d a )

POLCM POLYG (REAL) :REAL : 8 ; ( p o l u c i o n ( m a t e r i a l de v i d a )

POLAT POLYG (REAL) :REAL : 9 ; ( a b s o r c i o n p o l u c i o n ( t a z a p o l u c i o n )

QLM POLYG (REAL) :REAL : 8 ;

( C a l i d a d de v i d a ( m a t e r i a l de v i d a )

QLC POLYG (REAL) :REAL: 1 3 ;

( C a l i d a d de v i d a ( amontonamiento )

QLF POLYG (REAL) :REAL : 7 ;

( C a l i d a d de v i d a ( t a z a comida )

QLP POLYG (REAL) :REAL : 9 ;

( C a l i d a d de v i d a ( t a z a p o l u c i o n )

CQR POLYG (REAL) :REAL : 7 ;

( a j u s t e de cap . a g r ( t a z a de C a l i d a d de v i d a

) )
END.

Ap
endice B
Modeloteca. C
odigos Java
B.1
B.1.1

Taquilla simple
Programa Principal

import g a l a t e a . g l i d e r . ;
p u b l i c c l a s s Example {
// A t r i b u t o s
p u b l i c s t a t i c d o u b l e InArrTime ;
p u b l i c s t a t i c i n t NM20 ;
p u b l i c s t a t i c d o u b l e MeSerTime ;
p u b l i c s t a t i c d o u b l e DeSerTime ;
// Nodos
s t a t i c Gate g a t e = new Gate ( ) ;
s t a t i c T e l l e r t e l l e r = new T e l l e r ( ) ;
s t a t i c E x i t e x i t = new E x i t ( ) ;
s t a t i c R e s u l t r e s u l t = new R e s u l t ( ) ;
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
Glider . act (1000 , r e s u l t ) ;
Glider . act (0 , gate ) ;
NM20 = 0 ;
setExperiment ( args ) ;
// Rastro
G l i d e r . t r a c e ( Example . t r c ) ;
// E s t a d s t i c a s

B.1 Taquilla simple

G l i d e r . s t a t ( Example . s t a ) ;
G l i d e r . addStat ( g a t e ) ;
G l i d e r . addStat ( t e l l e r ) ;
G l i d e r . addStat ( e x i t ) ;
G l i d e r . addStat ( r e s u l t ) ;
// S a l i d a
G l i d e r . setOutg ( NM20 , A r r i v a l s with queue >20) ;
Glider . process () ;
}
public s t a t i c void setExperiment ( String [ ] args ) {
InArrTime = G al at ea . doubleArg ( a r g s , InArrTime , 4 . 0 , Mean
I n t e r a r r i v a l Time ) ;
MeSerTime = G al at e a . doubleArg ( a r g s , MeSerTime , 3 . 8 0 , Mean
s e r v i c e time ) ;
DeSerTime = G al at ea . doubleArg ( a r g s , DeSerTime , 0 . 8 0 ,
D e v i a t i o n o f Mean S e r v i c e Time ) ;
G al a t e a . checkArgs ( a r g s ) ;
G l i d e r . addPath ( Ga la t e a . g e t E x p e r D i r ( ) ) ;
}
}

B.1.2

Nodo Teller

import g a l a t e a . g l i d e r . ;
c l a s s T e l l e r e x t e n d s Node {
Teller () {
s u p e r ( t e l l e r , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
}
@Override
public void fscan ( ) {
s t a y (GRnd . g a u s s ( Example . MeSerTime , Example . DeSerTime ) ) ;
}
}

146

B.1 Taquilla simple

B.1.3

Nodo Gate

import g a l a t e a . g l i d e r . ;
c l a s s Gate e x t e n d s Node {
Gate ( ) {
super ( gate , I ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
i t (GRnd . expo ( Example . InArrTime ) ) ;
i f ( ( Example . t e l l e r . g e t E l ( ) . l l ( ) > 2 0 ) ) {
Example . NM20 = Example . NM20 + 1 ;
}
s e n d t o ( G l i d e r . mess , Example . t e l l e r ) ;
}
}

B.1.4

Nodo Exit

import g a l a t e a . g l i d e r . ;
c l a s s E x i t e x t e n d s Node {
Exit ( ) {
s u p e r ( e x i t , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
p u b l i c v o i d f s c a n ( ) {}
}

B.1.5

Nodo Result

import g a l a t e a . g l i d e r . ;
c l a s s R e s u l t e x t e n d s Node {
Result () {
s u p e r ( r e s u l t , A ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override

147

tico
B.2 Sistema Burocra

public void f a c t ( ) {
G l i d e r . outg ( NM20 , Example . NM20) ;
G l i d e r . en d si mu l ( ) ;
}
}

B.2
B.2.1

Sistema Burocr
atico
Programa Principal

import g a l a t e a . g l i d e r . ;
p u b l i c c l a s s Example {
// A t r i b u t o s
p u b l i c s t a t i c b o o l e a n OPEN;
p u b l i c s t a t i c d o u b l e [ ] MeanWait = new d o u b l e [ 4 ] ;
p u b l i c s t a t i c d o u b l e [ ] DeviWait = new d o u b l e [ 4 ] ;
p u b l i c s t a t i c d o u b l e R;
p u b l i c s t a t i c i n t INO ;
p u b l i c s t a t i c c h a r CH;
// Nodos
s t a t i c A r r i v a l s a r r i v a l s = new A r r i v a l s ( ) ;
s t a t i c Inspec inspec [ ] = {
new I n s p e c ( ) ,
new I n s p e c ( ) ,
new I n s p e c ( ) ,
new I n s p e c ( )
};
s t a t i c Gates g a t e s [ ] = {
new Gates ( ) ,
new Gates ( ) ,
new Gates ( ) ,
new Gates ( )
};
s t a t i c Bureau bureau = new Bureau ( ) ;
s t a t i c E x i t e x i t = new E x i t ( ) ;
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
Glider . act (0 , a r r i v a l s ) ;

148

tico
B.2 Sistema Burocra

149

R = F l o a t .MAX VALUE;
OPEN = f a l s e ;
f o r (INO = 0 ; INO < 4 ; INO++){
G l i d e r . a c t ( 3 1 0 , g a t e s [ INO ] ) ;
}
MeanWait [ 0 ] = 4 0 ;
MeanWait [ 1 ] = 3 9 ;
MeanWait [ 2 ] = 1 2 ;
MeanWait [ 3 ] = 6 2 ;
DeviWait [ 0 ] = 4 ;
DeviWait [ 1 ] = 5 ;
DeviWait [ 2 ] = 3 ;
DeviWait [ 3 ] = 1 2 ;
setExperiment ( args ) ;
// Rastro
G l i d e r . t r a c e ( Example . t r c ) ;
// E s t a d s t i c a s
G l i d e r . s t a t ( Example . s t a ) ;
G l i d e r . addStat ( a r r i v a l s ) ;
G l i d e r . addStat ( i n s p e c ) ;
G l i d e r . addStat ( g a t e s ) ;
G l i d e r . addStat ( bureau ) ;
G l i d e r . addStat ( e x i t ) ;
Glider . process () ;
}
public s t a t i c void setExperiment ( String [ ] args ) {
G l i d e r . setTsim ( G al a t ea . doubleArg ( a r g s , tSim , 1 0 0 0 , Tiempo de
Simulacion ) ) ;
G al a t e a . checkArgs ( a r g s ) ;
G l i d e r . addPath ( Ga la t e a . g e t E x p e r D i r ( ) ) ;
}
}

B.2.2

Nodo Arrivals

import j a v a . i o . ;
import g a l a t e a . g l i d e r . ;
c l a s s A r r i v a l s e x t e n d s Node {

tico
B.2 Sistema Burocra

p u b l i c s t a t i c S t r i n g PeType = PeType ;
public s t a t i c String Rejected = Rejected ;
Arrivals () {
super ( a r r i v a l s , I ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
G l i d e r . mess . s e t F i e l d ( PeType , GRnd . u n i f ( 0 , 3 ) ) ;
i t (20) ;
G l i d e r . mess . s e t F i e l d ( R e j e c t e d , f a l s e ) ;
System . out . p r i n t l n ( Enter Someone o f Type + ( G l i d e r . mess .
g e t i n t V a l u e ( PeType ) ) ) ;
s e n d t o ( G l i d e r . mess , Example . i n s p e c [ G l i d e r . mess . g e t i n t V a l u e (
PeType ) ] ) ;
}
}

B.2.3

Nodo Gates

import g a l a t e a . g l i d e r . ;
c l a s s Gates e x t e n d s Node {
p r i v a t e s t a t i c i n t mult = 0 ;
Gates ( ) {
s u p e r ( g a t e s , mult , G ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
mult++;
}
@Override
public void f a c t ( ) {
i t (100) ;
Example .OPEN = ! Example .OPEN;
}
@Override
public void fscan ( ) {
i f ( Example .OPEN) {
s e n d t o ( G l i d e r . mess , Example . bureau ) ;
} else {

150

tico
B.2 Sistema Burocra

setScanFlag ( f a l s e ) ;
return ;
}
}
}

151

tico
B.2 Sistema Burocra

B.2.4

152

Nodo Bureau

import g a l a t e a . g l i d e r . ;
c l a s s Bureau e x t e n d s Node {
Bureau ( ) {
s u p e r ( bureau , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
}
@Override
public void fscan ( ) {
s t a y (GRnd . g a u s s ( Example . MeanWait [ G l i d e r . mess . g e t i n t V a l u e ( PeType
) ] , Example . DeviWait [ G l i d e r . mess . g e t i n t V a l u e ( PeType ) ] ) ) ;
}
}

B.2.5

Nodo Inspec

import g a l a t e a . g l i d e r . ;
c l a s s I n s p e c e x t e n d s Node {
p r i v a t e s t a t i c i n t mult = 0 ;
Inspec () {
s u p e r ( i n s p e c , mult , L ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
mult++;
}
@Override
public void fscan ( ) {
i f ( ( ( G l i d e r . mess . g e t i n t V a l u e ( PeType ) == 3 ) && GRnd . b e r ( 0 . 2 ) ) )
{
G l i d e r . mess . s e t F i e l d ( R e j e c t e d , t r u e ) ;
s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
} else {
s e n d t o ( G l i d e r . mess , Example . g a t e s [ g e t I n o ( ) ] ) ;
}

B.3 Graficando los valores de una cola

153

}
}

B.2.6

Nodo Exit

import j a v a . i o . ;
import g a l a t e a . g l i d e r . ;
c l a s s E x i t e x t e n d s Node {
Exit ( ) {
s u p e r ( e x i t , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
System . out . p r i n t ( Someone o f Type + ( G l i d e r . mess . g e t i n t V a l u e (
PeType ) ) + ( g o t out

a f t e r ) + ( G l i d e r . getTime ( ) G l i d e r .

mess . getGt ( ) ) + ( s e c . i n t h e system ) ) ;


i f ( G l i d e r . mess . g e t b o o l e a n V a l u e ( R e j e c t e d ) ) {
System . out . p r i n t ( ( was r e j e c t e d ) ) ;
}
System . out . p r i n t l n ( ) ;
}
}

B.3
B.3.1

Graficando los valores de una cola


Programa Principal

import g a l a t e a . g l i d e r . ;
import j a v a . i o . ;
p u b l i c c l a s s Example {
// A t r i b u t o s
p u b l i c s t a t i c d o u b l e mArT ;
p u b l i c s t a t i c d o u b l e mCashT ;
// A r c h i v o s
p u b l i c s t a t i c PrintStream g r a p h 0 0 0 1 d a t ;
// Nodos
s t a t i c A r r i v a l s a r r i v a l s = new A r r i v a l s ( ) ;

B.3 Graficando los valores de una cola

154

s t a t i c T e l l e r t e l l e r = new T e l l e r ( ) ;
s t a t i c E x i t e x i t = new E x i t ( ) ;
s t a t i c Gra g r a = new Gra ( ) ;
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
Glider . act (0 , a r r i v a l s ) ;
mArT = 4 ;
mCashT = 3 . 8 ;
setExperiment ( args ) ;
// Rastro
G l i d e r . t r a c e ( Example . t r c ) ;
// E s t a d s t i c a s
G l i d e r . s t a t ( Example . s t a ) ;
G l i d e r . addStat ( a r r i v a l s ) ;
G l i d e r . addStat ( t e l l e r ) ;
G l i d e r . addStat ( e x i t ) ;
G l i d e r . addStat ( g r a ) ;
g r a p h 0 0 0 1 d a t = G l i d e r . s e t F i l e ( G l i d e r . getPath ( ) , graph0001 . dat ,
# G l i d e r . getTime ( ) \n# Example . t e l l e r . g e t E l ( ) . l l ( ) \n# 20\n
##) ;
Glider . process () ;
}
public s t a t i c void setExperiment ( String [ ] args ) {
G l i d e r . setTsim ( G al a t ea . doubleArg ( a r g s , tSim , 5 0 0 0 0 , Tiempo
de S i m u l a c i o n ) ) ;
G al a t e a . checkArgs ( a r g s ) ;
G l i d e r . addPath ( Ga la t e a . g e t E x p e r D i r ( ) ) ;
}
}

B.3.2

Nodo Teller

import g a l a t e a . g l i d e r . ;
c l a s s T e l l e r e x t e n d s Node {
Teller () {
s u p e r ( t e l l e r , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override

B.3 Graficando los valores de una cola

public void f a c t ( ) {
s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
}
@Override
public void fscan ( ) {
s t a y (GRnd . expo ( Example . mCashT , 2 ) ) ;
}
}

B.3.3

Nodo Arrivals

import g a l a t e a . g l i d e r . ;
c l a s s A r r i v a l s e x t e n d s Node {
Arrivals () {
super ( a r r i v a l s , I ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
i t (GRnd . expo ( Example . mArT) ) ;
G l i d e r . a c t ( 0 , Example . g r a ) ;
s e n d t o ( G l i d e r . mess , Example . t e l l e r ) ;
}
}

B.3.4

Nodo Exit

import g a l a t e a . g l i d e r . ;
c l a s s E x i t e x t e n d s Node {
Exit ( ) {
s u p e r ( e x i t , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
G l i d e r . a c t ( 0 , Example . g r a ) ;
}
}

155

B.4 Puerto con cuatro tipos de embarcaciones

B.3.5

Nodo Gra

import g a l a t e a . g l i d e r . ;
c l a s s Gra e x t e n d s Node {
Gra ( ) {
s u p e r ( g r a , A ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
G l i d e r . f i l e ( Example . g ra ph00 01 da t , G l i d e r . getTime ( ) + +
Example . t e l l e r . g e t E l ( ) . l l ( ) + + 2 0 ) ;
}
}

B.4
B.4.1

Puerto con cuatro tipos de embarcaciones


Programa Principal

import g a l a t e a . g l i d e r . ;
import j a v a . i o . ;
p u b l i c c l a s s Example {
// A t r i b u t o s
p u b l i c s t a t i c d o u b l e R;
p u b l i c s t a t i c d o u b l e FTBArr ;
p u b l i c s t a t i c i n t FType ;
public s t a t i c f i n a l int Freighter = 0;
p u b l i c s t a t i c f i n a l i n t Bulk = 1 ;
public s t a t i c f i n a l int Tourist = 2;
p u b l i c s t a t i c f i n a l i n t Repair = 3 ;
p u b l i c s t a t i c d o u b l e TFreig ;
p u b l i c s t a t i c i n t TypTur ;
p u b l i c s t a t i c i n t FTypTur ;
p u b l i c s t a t i c d o u b l e [ ] MI = new d o u b l e [ 3 ] ;
p u b l i c s t a t i c d o u b l e [ ] MO = new d o u b l e [ 3 ] ;
p u b l i c s t a t i c d o u b l e [ ] MA = new d o u b l e [ 3 ] ;
p u b l i c s t a t i c d o u b l e TBulk ;
p u b l i c s t a t i c d o u b l e TRepair ;

156

B.4 Puerto con cuatro tipos de embarcaciones

157

public s t a t i c int ExitClass ;


p u b l i c s t a t i c i n t FClaExit ;
public s t a t i c f i n a l int A = 0;
public s t a t i c f i n a l int B = 1;
public s t a t i c f i n a l int C = 2;
p u b l i c s t a t i c double P;
p u b l i c s t a t i c f i n a l i n t Stopping = 0 ;
public s t a t i c f i n a l int Visit = 1;
public s t a t i c f i n a l int Transfer = 2;
// Nodos
s t a t i c Harbor h a rb o r = new Harbor ( ) ;
s t a t i c F r e i B e r t h f r e i B e r t h = new F r e i B e r t h ( ) ;
s t a t i c TourBerth t o u r B e r t h = new TourBerth ( ) ;
s t a t i c BulkBerth bulkBert h = new BulkBerth ( ) ;
s t a t i c Re pai rB er th r e p a i r B e r t h = new R e p a i r B e r t h ( ) ;
s t a t i c DecExit d e c E x i t = new DecExit ( ) ;
s t a t i c ExitA e x i t A = new ExitA ( ) ;
s t a t i c ExitB e x i t B = new ExitB ( ) ;
s t a t i c ExitC e x i t C = new ExitC ( ) ;
s t a t i c RESUL rESUL = new RESUL( ) ;
p u b l i c s t a t i c d o u b l e FTBArr ( d o u b l e x ) {
i f ( x <0.0)
System . out . p r i n t l n ( E r r o r : method FTBArr can not be e v a l u a t e d
) ;
i f ( x <=0.2) r e t u r n 2 . 5 x + 0 . 5 ;
i f ( x <=0.3) r e t u r n 1 0 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 x + 1.0000000000000004;
i f ( x <=0.35) r e t u r n 1 0 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 x + 1.0000000000000004;
i f ( x <=0.4) r e t u r n 1 9 . 9 9 9 9 9 9 9 9 9 9 9 9 9 8 2 x + 4.499999999999994;
i f ( x <=0.45) r e t u r n 8 . 0 x + 0 . 2 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 ;
i f ( x <=0.5) r e t u r n 3 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 5 6 x + 2 . 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 ;
i f ( x <=0.55) r e t u r n 1 3 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 1 x + 2.899999999999996;
i f ( x <=0.6) r e t u r n 4 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 x + 2 . 5 9 9 9 9 9 9 9 9 9 9 9 9 9 4 8 ;
i f ( x <=0.7) r e t u r n 5 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 x + 1 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 ;
i f ( x <=0.8) r e t u r n 4 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 x + 2 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 ;
i f ( x <=0.9) r e t u r n 2 . 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 x + 3 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 ;
i f ( x <=1.0) r e t u r n 2 . 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 x + 3 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 6 ;
System . out . p r i n t l n ( E r r o r : method FTBArr can not be e v a l u a t e d ) ;

B.4 Puerto con cuatro tipos de embarcaciones

158

r e t u r n 1;
}
p u b l i c s t a t i c i n t FType ( i n t x ) {
d o u b l e p = GRnd . u n i f ( 0 , 1 2 6 1 . 0 , x ) ;
i f ( p<=611.0) r e t u r n Example . F r e i g h t e r ;
i f ( p<=1034.0) r e t u r n Example . Bulk ;
i f ( p<=1246.0) r e t u r n Example . T o u r i s t ;
i f ( p<=1261.0) r e t u r n Example . Repa ir ;
System . out . p r i n t l n ( E r r o r : No s e pudo e v a l u a r e l metodo FType ) ;
r e t u r n 1;
}
p u b l i c s t a t i c d o u b l e TFreig ( d o u b l e x ) {
i f ( x <0.0)
System . out . p r i n t l n ( E r r o r : method TFreig can not be e v a l u a t e d
) ;
i f ( x <=0.2) r e t u r n 7 . 0 + ( x 0 . 0 ) ( 3 6 . 2 4 4 0 1 9 1 3 8 7 5 5 9 8 + ( x 0 . 0 )
( 0 . 0 + ( x 0 . 0 ) 156.1004784688995) ) ;
i f ( x <=0.4) r e t u r n 1 3 . 0 + ( x 0 . 2 ) ( 1 7 . 5 1 1 9 6 1 7 2 2 4 8 8 0 4 + ( x 0 . 2 )
( 93.66028708133972 + ( x 0 . 2 ) 2 8 0 . 5 0 2 3 9 2 3 4 4 4 9 7 6 5 ) ) ;
i f ( x <=0.6) r e t u r n 1 5 . 0 + ( x 0 . 4 ) ( 1 3 . 7 0 8 1 3 3 9 7 1 2 9 1 8 7 + ( x 0 . 4 )
( 7 4 . 6 4 1 1 4 8 3 2 5 3 5 8 8 8 + ( x 0 . 4 ) 215.90909090909108) ) ;
i f ( x <=0.8) r e t u r n 1 9 . 0 + ( x 0 . 6 ) ( 1 7 . 6 5 5 5 0 2 3 9 2 3 4 4 5 0 2 + ( x
0 . 6 ) ( 54.90430622009574 + ( x 0 . 6 ) 8 3 . 1 3 3 9 7 1 2 9 1 8 6 6 1 3 ) ) ;
i f ( x <=1.0) r e t u r n 2 1 . 0 + ( x 0 . 8 ) ( 5 . 6 6 9 8 5 6 4 5 9 3 3 0 1 3 9 5 + ( x
0 . 8 ) ( 5.023923444976041 + ( x 0 . 8 ) 8 . 3 7 3 2 0 5 7 4 1 6 2 6 7 3 7 ) ) ;
System . out . p r i n t l n ( E r r o r : method TFreig can not be e v a l u a t e d ) ;
r e t u r n 1;
}
p u b l i c s t a t i c d o u b l e TBulk ( d o u b l e x ) {
i f ( x <0.0)
System . out . p r i n t l n ( E r r o r : method TBulk can not be e v a l u a t e d
) ;
i f ( x <=0.2) r e t u r n 9 . 0 + ( x 0 . 0 ) ( 1 3 . 5 2 8 7 0 8 1 3 3 9 7 1 2 9 3 + ( x 0 . 0 )
(0.0 + (x 0 . 0 ) 36.78229665071768) ) ;
i f ( x <=0.4) r e t u r n 1 2 . 0 + ( x 0 . 2 ) ( 1 7 . 9 4 2 5 8 3 7 3 2 0 5 7 4 1 5 + ( x
0 . 2 ) ( 2 2 . 0 6 9 3 7 7 9 9 0 4 3 0 6 1 3 + ( x 0 . 2 ) 58.91148325358845) ) ;

B.4 Puerto con cuatro tipos de embarcaciones

159

i f ( x <=0.6) r e t u r n 1 6 . 0 + ( x 0 . 4 ) ( 1 9 . 7 0 0 9 5 6 9 3 7 7 9 9 0 4 5 + ( x
0 . 4 ) ( 13.27751196172246 + ( x 0 . 4 ) 1 1 . 3 6 3 6 3 6 3 6 3 6 3 6 2 4 ) ) ;
i f ( x <=0.8) r e t u r n 1 9 . 5 + ( x 0 . 6 ) ( 1 5 . 7 5 3 5 8 8 5 1 6 7 4 6 4 1 3 + ( x
0 . 6 ) ( 6.4593301435407176 + ( x 0 . 6 ) 49.04306220095679) ) ;
i f ( x <=1.0) r e t u r n 2 2 . 0 + ( x 0 . 8 ) ( 7 . 2 8 4 6 8 8 9 9 5 2 1 5 3 0 7 + ( x 0 . 8 )
( 35.8851674641148 + ( x 0 . 8 ) 5 9 . 8 0 8 6 1 2 4 4 0 1 9 1 3 5 ) ) ;
System . out . p r i n t l n ( E r r o r : method TBulk can not be e v a l u a t e d ) ;
r e t u r n 1;
}
p u b l i c s t a t i c d o u b l e TRepair ( d o u b l e x ) {
i f ( x <0.0)
System . out . p r i n t l n ( E r r o r : method TRepair can not be
evaluated ) ;
i f ( x <=0.3) r e t u r n 5 6 . 6 6 6 6 6 6 6 6 6 6 6 6 6 7 x + 5 5 . 0 ;
i f ( x <=0.7) r e t u r n 2 2 . 5 0 0 0 0 0 0 0 0 0 0 0 0 0 4 x + 6 5 . 2 5 ;
i f ( x <=0.9) r e t u r n 3 4 . 9 9 9 9 9 9 9 9 9 9 9 9 9 8 6 x + 5 6 . 5 0 0 0 0 0 0 0 0 0 0 0 0 1 4 ;
i f ( x <=1.0) r e t u r n 2 0 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 x + 7 0 . 0 ;
System . out . p r i n t l n ( E r r o r : method TRepair can not be e v a l u a t e d ) ;
r e t u r n 1;
}
p u b l i c s t a t i c i n t FTypTur ( i n t x ) {
d o u b l e p = GRnd . u n i f ( 0 , 2 1 2 . 0 , x ) ;
i f ( p<=75.0) r e t u r n Example . S t o p p i n g ;
i f ( p<=197.0) r e t u r n Example . V i s i t ;
i f ( p<=212.0) r e t u r n Example . T r a n s f e r ;
System . out . p r i n t l n ( E r r o r : No s e pudo e v a l u a r e l metodo FTypTur )
;
r e t u r n 1;
}
p u b l i c s t a t i c i n t FClaExit ( i n t x ) {
i f ( x==Example . F r e i g h t e r ) r e t u r n Example .A;
i f ( x==Example . Bulk ) r e t u r n Example .A;
i f ( x==Example . T o u r i s t ) r e t u r n Example . B ;
i f ( x==Example . Repair ) r e t u r n Example . C ;
System . out . p r i n t l n ( E r r o r : No s e pudo e v a l u a r e l metodo FClaExit
) ; r e t u r n 1;
}

B.4 Puerto con cuatro tipos de embarcaciones

p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
G l i d e r . a c t ( harbor , 0 ) ;
G l i d e r . a c t ( rESUL , 180 2 4 ) ;
MI [ Example . S t o p p i n g ] = 5 ;
MO[ Example . S t o p p i n g ] = 6 ;
MA[ Example . S t o p p i n g ] = 8 ;
MI [ Example . V i s i t ] = 2 7 ;
MO[ Example . V i s i t ] = 4 0 ;
MA[ Example . V i s i t ] = 4 7 ;
MI [ Example . T r a n s f e r ] = 7 2 ;
MO[ Example . T r a n s f e r ] = 9 3 ;
MA[ Example . T r a n s f e r ] = 1 3 0 ;
f r e i B e r t h . setCap ( 5 ) ;
t o u r B e r t h . setCap ( 3 ) ;
bulkB ert h . setCap ( 2 ) ;
r e p a i r B e r t h . setCap ( 1 ) ;
// Rastro
G l i d e r . t r a c e ( Example . t r c ) ;
// E s t a d s t i c a s
G l i d e r . s t a t ( Example . s t a ) ;
G l i d e r . addStat ( ha r b o r ) ;
G l i d e r . addStat ( f r e i B e r t h ) ;
G l i d e r . addStat ( bulkB erth ) ;
G l i d e r . addStat ( t o u r B e r t h ) ;
G l i d e r . addStat ( r e p a i r B e r t h ) ;
G l i d e r . addStat ( d e c E x i t ) ;
G l i d e r . addStat ( e x i t A ) ;
G l i d e r . addStat ( e x i t B ) ;
G l i d e r . addStat ( e x i t C ) ;
// S a l i d a
G l i d e r . setOutg ( P , D e v i a t i o n ) ;
Glider . process () ;
}
}

B.4.2

Nodo BulkBerth

160

B.4 Puerto con cuatro tipos de embarcaciones

import g a l a t e a . g l i d e r . ;
c l a s s BulkBerth e x t e n d s Node {
BulkBerth ( ) {
s u p e r ( bu lkBerth , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
s t a y ( Example . TBulk (GRnd . u n i f ( 0 , 1 ) ) ) ;
s e n d t o ( G l i d e r . mess , Example . d e c E x i t ) ;
}
}

B.4.3

Nodo RepairBerth

import g a l a t e a . g l i d e r . ;
c l a s s Re pa ir Be rt h e x t e n d s Node {
Re p ai rB er th ( ) {
s u p e r ( r e p a i r B e r t h , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
s t a y ( Example . TRepair (GRnd . u n i f ( 0 , 1 ) ) ) ;
s e n d t o ( G l i d e r . mess , Example . d e c E x i t ) ;
}
}

B.4.4

Nodo FreiBerth

import g a l a t e a . g l i d e r . ;
c l a s s F r e i B e r t h e x t e n d s Node {
FreiBerth () {
s u p e r ( f r e i B e r t h , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {

161

B.4 Puerto con cuatro tipos de embarcaciones

s t a y ( Example . TFreig (GRnd . u n i f ( 0 , 1 ) ) ) ;


s e n d t o ( G l i d e r . mess , Example . d e c E x i t ) ;
}
}

B.4.5

Nodo TourBerth

import g a l a t e a . g l i d e r . ;
c l a s s TourBerth e x t e n d s Node {
TourBerth ( ) {
s u p e r ( t o u r B e r t h , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
Example . TypTur = Example . FTypTur ( 1 ) ;
s t a y (GRnd . t r i a ( Example . MI [ Example . TypTur ] , Example .MO[ Example .
TypTur ] , Example .MA[ Example . TypTur ] ) ) ;
s e n d t o ( G l i d e r . mess , Example . d e c E x i t ) ;
}
}

B.4.6

Nodo Harbor

import g a l a t e a . g l i d e r . ;
c l a s s Harbor e x t e n d s Node {
p u b l i c s t a t i c S t r i n g ShipType = ShipType ;
Harbor ( ) {
s u p e r ( h a r bo r , I ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
Example .R = GRnd . u n i f ( 0 , 1 ) ;
i t ( Example . FTBArr ( Example .R) ) ;
G l i d e r . mess . s e t F i e l d ( ShipType , Example . FType ( 1 ) ) ;
s w i t c h ( G l i d e r . mess . g e t i n t V a l u e ( ShipType ) ) {
c a s e Example . F r e i g h t e r :

162

B.4 Puerto con cuatro tipos de embarcaciones

s e n d t o ( G l i d e r . mess , Example . f r e i B e r t h ) ;
break ;
c a s e Example . Bulk :
s e n d t o ( G l i d e r . mess , Example . b ul kB er th ) ;
break ;
c a s e Example . T o u r i s t :
s e n d t o ( G l i d e r . mess , Example . t o u r B e r t h ) ;
break ;
c a s e Example . Repai r :
s e n d t o ( G l i d e r . mess , Example . r e p a i r B e r t h ) ;
break ;
}
}
}

163

B.4 Puerto con cuatro tipos de embarcaciones

B.4.7

Nodo DecExit

import g a l a t e a . g l i d e r . ;
c l a s s DecExit e x t e n d s Node {
DecExit ( ) {
s u p e r ( d e c E x i t , G ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
Example . E x i t C l a s s = Example . FClaExit ( G l i d e r . mess . g e t i n t V a l u e (
ShipType ) ) ;
s w i t c h ( Example . E x i t C l a s s ) {
c a s e Example .A:
s e n d t o ( G l i d e r . mess , Example . e x i t A ) ;
break ;
c a s e Example . B :
s e n d t o ( G l i d e r . mess , Example . e x i t B ) ;
break ;
c a s e Example .C:
s e n d t o ( G l i d e r . mess , Example . e x i t C ) ;
break ;
}
}
}

B.4.8

Nodo ExitA

import g a l a t e a . g l i d e r . ;
c l a s s ExitA e x t e n d s Node {
ExitA ( ) {
s u p e r ( e x i t A , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
p u b l i c v o i d f s c a n ( ) {}
}

164

B.4 Puerto con cuatro tipos de embarcaciones

B.4.9

Nodo ExitB

import g a l a t e a . g l i d e r . ;
c l a s s ExitB e x t e n d s Node {
ExitB ( ) {
s u p e r ( e x i t B , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
p u b l i c v o i d f s c a n ( ) {}
}

B.4.10

Nodo ExitC

import g a l a t e a . g l i d e r . ;
c l a s s ExitC e x t e n d s Node {
ExitC ( ) {
s u p e r ( e x i t C , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
p u b l i c v o i d f s c a n ( ) {}
}

B.4.11

Nodo RESUL

import g a l a t e a . g l i d e r . ;
c l a s s RESUL e x t e n d s Node {
RESUL( ) {
s u p e r ( rESUL , A ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
Example . P = Example . f r e i B e r t h . g e t E l ( ) . m s t l ( ) ;
G l i d e r . outg ( P , Example . P) ;
Example . P = Example . f r e i B e r t h . g e t E l ( ) . dmstl ( ) ;
G l i d e r . outg ( P , Example . P) ;
Example . P = Example . t o u r B e r t h . g e t E l ( ) . m s t l ( ) ;

165

B.5 Sistema de tres colas

G l i d e r . outg ( P , Example . P) ;
Example . P = Example . t o u r B e r t h . g e t E l ( ) . dmstl ( ) ;
G l i d e r . outg ( P , Example . P) ;
Example . P = Example . bulkBerth . g e t E l ( ) . m s t l ( ) ;
G l i d e r . outg ( P , Example . P) ;
Example . P = Example . bulkBerth . g e t E l ( ) . dmstl ( ) ;
G l i d e r . outg ( P , Example . P) ;
Example . P = Example . r e p a i r B e r t h . g e t E l ( ) . m s t l ( ) ;
G l i d e r . outg ( P , Example . P) ;
Example . P = Example . r e p a i r B e r t h . g e t E l ( ) . dmstl ( ) ;
G l i d e r . outg ( P , Example . P) ;
G l i d e r . en d si mu l ( ) ;
}
}

B.5
B.5.1

Sistema de tres colas


Programa Principal

import g a l a t e a . g l i d e r . ;
import j a v a . i o . ;
p u b l i c c l a s s Example {
// A t r i b u t o s
p u b l i c s t a t i c d o u b l e TBA;
p u b l i c s t a t i c i n t TYPA = 0 ;
p u b l i c s t a t i c d o u b l e TBB;
p u b l i c s t a t i c i n t TYPB = 1 ;
p u b l i c s t a t i c d o u b l e FTB;
p u b l i c s t a t i c d o u b l e TS ;
// Histogramas
s t a t i c Histogram TTS = new Histogram ( TTS , 0 . 0 , 1 5 , 1 0 . 0 ) ;
// A r c h i v o s
p u b l i c s t a t i c PrintStream a r t b a d a t ;
// Nodos
s t a t i c InA inA = new InA ( ) ;
s t a t i c InB inB = new InB ( ) ;
s t a t i c WA wA = new WA( ) ;

166

B.5 Sistema de tres colas

167

s t a t i c G g = new G( ) ;
s t a t i c WB1 wB1 = new WB1( ) ;
s t a t i c WB2 wB2 = new WB2( ) ;
s t a t i c E x i t e x i t = new E x i t ( ) ;
p u b l i c s t a t i c d o u b l e FTB( d o u b l e x ) {
i f ( x <0.0)
System . out . p r i n t l n ( E r r o r : method FTB can not be e v a l u a t e d ) ;
i f ( x <=0.3) r e t u r n 0 . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 7 x + 0.2;
i f ( x <=0.5) r e t u r n 0 . 5 x + 0.25;
i f ( x <=0.8) r e t u r n 0 . 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 x + 0.3333333333333333;
i f ( x <=1.0) r e t u r n 0 . 0 x + 0 . 2 ;
System . out . p r i n t l n ( E r r o r : method FTB can not be e v a l u a t e d ) ;
r e t u r n 1;
}
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
G l i d e r . a c t ( 0 , inA ) ;
G l i d e r . a c t ( 0 . 2 , inB ) ;
TBA = 3 ;
TBB = 3 . 5 ;
GRnd . setRn ( 1 , 2 9 8 7 1 ) ;
setExperiment ( args ) ;
// Rastro
G l i d e r . t r a c e ( Example . t r c ) ;
// E s t a d s t i c a s
G l i d e r . s t a t ( Example . s t a ) ;
G l i d e r . addStat (TBA) ;
G l i d e r . addStat (TBB) ;
G l i d e r . addStat ( inA ) ;
G l i d e r . addStat ( inB ) ;
G l i d e r . addStat (wA) ;
G l i d e r . addStat ( g ) ;
G l i d e r . addStat (wB1) ;
G l i d e r . addStat (wB2) ;
G l i d e r . addStat ( e x i t ) ;
a r t b a d a t = G l i d e r . s e t F i l e ( G l i d e r . getPath ( ) , a r t b a . dat , #
G l i d e r . getTime ( ) \n# g e t I t ( ) \n##) ;
Glider . process () ;

B.5 Sistema de tres colas

168

}
public s t a t i c void setExperiment ( String [ ] args ) {
G l i d e r . setTsim ( G al a t ea . doubleArg ( a r g s , tSim , 4 0 0 , Tiempo de
Simulacion ) ) ;
G al a t e a . checkArgs ( a r g s ) ;
G l i d e r . addPath ( Ga la t e a . g e t E x p e r D i r ( ) ) ;
}
}

B.5.2

Nodo InA

import g a l a t e a . g l i d e r . ;
c l a s s InA e x t e n d s Node {
p u b l i c s t a t i c S t r i n g TA = TA ;
InA ( ) {
s u p e r ( inA , I ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
i t (GRnd . expo ( Example .TBA) ) ;
G l i d e r . mess . s e t F i e l d ( TA , 4 ) ;
G l i d e r . mess . s e t F i e l d ( TB , 5 ) ;
G l i d e r . mess . s e t F i e l d ( TYP , Example .TYPA) ;
Example .TBA = 3 + 0 . 0 2 G l i d e r . getTime ( ) ;
G l i d e r . mess . s e t F i e l d ( PRIOR , 4 ) ;
G l i d e r . f i l e ( Example . a r t b a d a t , G l i d e r . getTime ( ) + + g e t I t ( ) ) ;
s e n d t o ( G l i d e r . mess , Example .wA) ;
}
}

B.5 Sistema de tres colas

B.5.3

169

Nodo InB

import g a l a t e a . g l i d e r . ;
c l a s s InB e x t e n d s Node {
InB ( ) {
s u p e r ( inB , I ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
i t (GRnd . expo ( Example .TBB) ) ;
G l i d e r . mess . s e t F i e l d ( TB , 8 ) ;
G l i d e r . mess . s e t F i e l d ( TYP , Example .TYPB) ;
Example .TBB = 3 . 5 + 0 . 0 1 G l i d e r . getTime ( ) ;
G l i d e r . mess . s e t F i e l d ( PRIOR , 3 ) ;
s e n d t o ( G l i d e r . mess , Example . g ) ;
}
}

B.5.4

Nodo G

import g a l a t e a . g l i d e r . ;
c l a s s G e x t e n d s Node {
G( ) {
s u p e r ( g , G ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
i f ( Example . wB1 . g e t I l ( ) . l l ( ) + Example . wB2 . g e t I l ( ) . l l ( ) < 1 0 ) {
i f ( Example . wB1 . g e t I l ( ) . l l ( ) < Example . wB2 . g e t I l ( ) . l l ( ) ) {
s e n d t o ( G l i d e r . mess , Example . wB1) ;
} else {
s e n d t o ( G l i d e r . mess , Example . wB2) ;
}
} else {
setScanFlag ( f a l s e ) ;
return ;

B.5 Sistema de tres colas

}
}
}

B.5.5

Nodo WA

import g a l a t e a . g l i d e r . ;
c l a s s WA e x t e n d s Node {
WA( ) {
s u p e r ( wA , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void f a c t ( ) {
i f (GRnd . b e r ( 0 . 2 ) ) {
s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
} else {
s e n d t o ( G l i d e r . mess , Example . g ) ;
}
}
@Override
public void fscan ( ) {
s t a y ( G l i d e r . mess . g e t d o u b l e V a l u e ( TA ) + GRnd . u n i f ( 0.1 , 0 . 1 )
G l i d e r . mess . g e t d o u b l e V a l u e ( TA ) ) ;
}
}

B.5.6

Nodo WB1

import g a l a t e a . g l i d e r . ;
c l a s s WB1 e x t e n d s Node {
WB1( ) {
s u p e r ( wB1 , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
s t a y ( G l i d e r . mess . g e t d o u b l e V a l u e ( TB ) + GRnd . u n i f ( 0.1 , 0 . 1 )
G l i d e r . mess . g e t d o u b l e V a l u e ( TB ) ) ;

170

B.5 Sistema de tres colas

171

s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
}
}

B.5.7

Nodo WB2

import g a l a t e a . g l i d e r . ;
c l a s s WB2 e x t e n d s Node {
WB2( ) {
s u p e r ( wB2 , R ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
s t a y ( G l i d e r . mess . g e t d o u b l e V a l u e ( TB ) + Example .FTB(GRnd . u n i f ( 0 ,
1 ) ) G l i d e r . mess . g e t d o u b l e V a l u e ( TB ) ) ;
s e n d t o ( G l i d e r . mess , Example . e x i t ) ;
}
}

B.5.8

Nodo Exit

import g a l a t e a . g l i d e r . ;
c l a s s E x i t e x t e n d s Node {
Exit ( ) {
s u p e r ( e x i t , E ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
}
@Override
public void fscan ( ) {
Example . TTS . addObservation ( G l i d e r . getTime ( ) G l i d e r . mess . getGt ( )
);
}
}

B.6 Sistema presa depredador

B.6
B.6.1

172

Sistema presa depredador


Programa Principal

import g a l a t e a . g l i d e r . ;
import j a v a . i o . ;
p u b l i c c l a s s Example {
// A t r i b u t o s
p u b l i c s t a t i c d o u b l e c1 ;
p u b l i c s t a t i c d o u b l e rm ;
p u b l i c s t a t i c d o u b l e c2 ;
p u b l i c s t a t i c d o u b l e c3 ;
p u b l i c s t a t i c d o u b l e c4 ;
// A r c h i v o s
p u b l i c s t a t i c PrintStream g r a p h 0 0 0 1 d a t ;
// Nodos
s t a t i c RF rF = new RF( ) ;
p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) {
G l i d e r . a c t ( 0 , rF ) ;
c1 = 0 . 1 8 ;
c2 = 0 . 0 0 0 1 5 ;
c3 = 0 . 2 ;
c4 = 0 . 0 0 0 1 ;
rF . dt ( 0 . 1 2 5 ) ;
setExperiment ( args ) ;
g r a p h 0 0 0 1 d a t = G l i d e r . s e t F i l e ( G l i d e r . getPath ( ) , graph0001 . dat ,
# G l i d e r . getTime ( ) \n# r . g e t S t a t e ( ) \n# f . g e t S t a t e ( ) \n##) ;
Glider . process () ;
}
public s t a t i c void setExperiment ( String [ ] args ) {
G l i d e r . setTsim ( G al a t ea . doubleArg ( a r g s , tSim , 2 5 0 , Tiempo de
Simulacion ) ) ;
rF . s e t S t a t e ( r , Ga la te a . doubleArg ( a r g s , r , 1 0 0 0 , RABBITS
INITIAL ) ) ;
rF . s e t S t a t e ( f , Ga la t e a . doubleArg ( a r g s , f , 7 5 0 , FOXES
INITIAL ) ) ;
rm = G al at ea . doubleArg ( a r g s , rm , 2 0 0 0 0 , RABBITS MAXIMUM ) ;
G al a t e a . checkArgs ( a r g s ) ;

B.6 Sistema presa depredador

G l i d e r . addPath ( Ga la t e a . g e t E x p e r D i r ( ) ) ;
}
}

B.6.2

Nodo RF

import g a l a t e a . g l i d e r . ;
import j a v a . u t i l . ;
c l a s s RF e x t e n d s Node {
ContR r ;
ContF f ;
RF( ) {
s u p e r ( rF , C ) ;
G l i d e r . n o d e s l . add ( t h i s ) ;
r = new ContR ( r ) ;
t h i s . addEqs ( r ) ;
f = new ContF ( f ) ;
t h i s . addEqs ( f ) ;
}
@Override
public void f a c t ( ) {
G l i d e r . f i l e ( Example . g ra ph00 01 da t , G l i d e r . getTime ( ) + + r .
getState () + + f . getState () ) ;
}
p u b l i c v o i d s e t S t a t e ( S t r i n g id , d o u b l e v a l u e ) {
switch ( id ) {
c a s e r : r . s e t S t a t e ( v a l u e ) ; break ;
c a s e f : f . s e t S t a t e ( v a l u e ) ; break ;
}
}
c l a s s ContR e x t e n d s Cont {
ContR ( S t r i n g l ) {
super ( l ) ;
}
@Override
p u b l i c double f e v a l ( double x , double [ ] y ) {
double r = y [ 0 ] ;
double f = y [ 1 ] ;

173

B.6 Sistema presa depredador

174

r e t u r n Example . c1 ( 1 r / Example . rm) r Example . c2 r


f;
}
}
c l a s s ContF e x t e n d s Cont {
ContF ( S t r i n g l ) {
super ( l ) ;
}
@Override
p u b l i c double f e v a l ( double x , double [ ] y ) {
double r = y [ 0 ] ;
double f = y [ 1 ] ;
r e t u r n Example . c3 f + Example . c4 r f ;
}
}
}

Bibliografa
Banks, J. (2001), Discrete-Event System Simulation, Prentice Hall.
Fisher, R. (1935), The Design of Experiments, Macmillan.
Johnson, J. (2010), Designing with the Mind in Mind: Simple Guide to Understanding
User Interface Design Rules, Morgan Kaufmann.
McConnell, S. (2004), Code Complete: A Practical Handbook of Software Construction,
Microsoft Press.
Ramos, A. (2006), Gide: un ambiente de desarrollo integrado para la plataforma de
simulacion galatea.
Uzcategui, M. (2002), Dise
no de la plataforma de simulacion de sistemas multi-agentes
galatea.
Zeigler, B. (1984), Simulation and Model-Based Methodologies: An Inegrative View,
Springer.
Zeigler, B. (2000), Theory of Modeling and Simulation, ACADEMIC PRESS.

You might also like