Вы находитесь на странице: 1из 135

1

MODELAMIENTO REALISTICO DE SISTEMAS DINAMICOS COMPLEJOS


MEDIANTE MAPAS COGNITIVOS DIFUSOS








DAVID AMAYA BELTRAN
ANTONIO PINEDO HERRERA











CORPORACION UNIVERSITARIA RAFAEL NUEZ
FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
COORDINACION DE INVESTIGACIONES
CARTAGENA DE INDIAS
2006
2
MODELAMIENTO REALISTICO DE SISTEMAS DINAMICOS COMPLEJOS
MEDIANTE MAPAS COGNITIVOS DIFUSOS






DAVID AMAYA BELTRAN
ANTONIO PINEDO HERRERA



Monografa para optar el titulo de Ingeniero de Sistemas


Director
JUAN CONTRERAS MONTES
Ingeniero Electrnico.
Especialista en Automatizacin Industrial



CORPORACION UNIVERSITARIA RAFAEL NUEZ
FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
COORDINACION DE INVESTIGACIONES
CARTAGENA DE INDIAS
2006
3


































Nota de Aceptacin


______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________






______________________________
Firma del Presidente del Jurado




______________________________
Firma del Jurado




______________________________
Firma del Jurado







Cartagena de Indias, 10 de Agosto de 2006
4
Dedico este triunfo a mi familia, por brindarme el apoyo para lograr mis metas, en especial
a mis padres, por el gran amor que siempre me han dado y la confianza que han depositado
en m a lo largo de todo este tiempo.

Antonio


5
AGRADECIMIENTOS

Agradecemos este triunfo a Dios por guiarnos y darnos la fuerza para sacar adelante este
proyecto, y superar todos los inconvenientes que la elaboracin de este acarre.

A todas las personas que nos apoyaron de alguna u otra forma, y estuvieron pendientes de
nuestros avances en el proyecto, a FenixKim, a nuestros asesores, y en especial a nuestro
director de tesis Juan Antonio Contreras Montes por el gran apoyo, paciencia y amistad
que nos brind durante todo el desarrollo del proyecto

6
Cartagena de Indias, 10 de Agosto de 2006



Seores:
COORDINACION DE INVESTIGACIONES
Facultad de Ingeniera
Corporacin Universitaria Rafael Nez
L. C.

Cordial saludo:
Por medio de la presente hago constar que siendo el director del trabajo de grado de los
estudiantes DAVID AMAYA BELTRAN y ANTONIO PINEDO HERRERA titulado:
MODELAMIENTO REALISTICO DE SISTEMAS DINAMICOS COMPLEJOS
MEDIANTE MAPAS COGNITIVOS DIFUSOS, estoy de acuerdo con los objetivos y
alcances obtenidos en el proyecto.

Atentamente,



_______________________________________
Ing. JUAN ANTONIO CONTRERAS MONTES.
Docente
7
Cartagena de Indias, 10 de Agosto de 2006


Seores:
COORDINACION DE INVESTIGACIONES
Facultad de Ingeniera
Corporacin Universitaria Rafael Nez
L. C.

Cordial saludo:
Por medio de la presente presentamos ante ustedes para su consideracin, estudio y
aprobacin el proyecto del trabajo de grado titulado MODELAMIENTO REALISTICO
DE SISTEMAS DINAMICOS COMPLEJOS MEDIANTE MAPAS COGNITIVOS
DIFUSOS, realizado por DAVID AMAYA BELTRAN y ANTONIO PINEDO
HERRERA.

De antemano agradecemos la atencin prestada.

Atentamente,


______________________________ ___________________________
DAVID AMAYA BELTRAN ANTONIO PINEDO HERRERA
CC. N 73.191.506 de Cartagena CC. N 73.191.397 de Cartagena
8

CONTENIDO


pg.

INTRODUCCIN 13
EL PROBLEMA Y OBJETIVOS DE LA INVESTIGACIN 14
DESCRIPCIN Y ANLISIS DEL PROBLEMA 14
FORMULACION DEL PROBLEMA 15
JUSTIFICACIN DE LA INVESTIGACIN 16
OBJETIVOS DE LA INVESTIGACIN 17
OBJETIVO GENERAL 17
OBJETIVOS ESPECFICOS 17
METAS DE LA INVESTIGACIN. 18
PRODUCTO 18
ESTRATEGIA METODOLOGICA 18
Clase o modalidad de la investigacin. 18
MARCO TEORICO 19
MARCO CONCEPTUAL 21
1. MAPAS COGNITIVOS DIFUSOS 23
1.1 DESARROLLO Y CLCULO DE MAPAS COGNITIVOS
DIFUSOS
24
1.2 EJERCICIO Y FUNCIONAMIENTO DE LA FASE DE
APRENDIZAJE
28
1.2.1 Etapa de aprendizaje 31
1.2.2 Etapa de funcionamiento 31
2. SISTEMAS REACTIVOS Y ANIMACION REACTIVA 42
9
2.1 SISTEMAS ESTTICOS Y DINMICOS 42
2.2 SISTEMAS REACTIVOS 43
2.2.1 Caractersticas de los sistemas reactivos. 43
2.2.2 Sistemas reactivos y sus tipos eventos 45
2.2.3 Aplicaciones de los sistemas reactivos 46
2.3 PROGRAMA REACTIVO 47
2.4 ANIMACIN REACTIVA 48
2.4.1 Diagrama conceptual animacin reactiva 49
3. ANALISIS Y DISEO DEL SOFTWARE 51
3.1. MODELO DE DESARROLLO DE MCD SIMULATOR 51
3.2. MODELADO DE REQUISITOS 51
3.2.1 Descripcin del problema. 51
3.2.2 Modelo de caso de uso. 53
3.2.2.1 Documentacin diagramas de caso de uso. 55
3.2.3 Modelo de Interfaz. 60
3.3. MODELADO DE ANALISIS 66
3.3.1 Diagrama de estado 66
3.4 MODELADO DE DISEO 67
3.4.1 Diagrama de flujo 67
4. ASPECTOS DE INFRAESTRUCTURA 69
4.1 RECURSOS HUMANOS 69
4.2 DESCRIPCIN DE EQUIPOS Y/O LABORATORIOS
REQUERIDOS
69
4.3 FUENTES DE FINANCIACIN Y PRESUPUESTO 69
4.4 CRONOGRAMA DE ACTIVIDADES 70
5. CONCLUSIONES 71
BIBLIOGRAFIA 72
ANEXOS 73

10

LISTA DE TABLAS

Tabla 1.1 Matriz de adyacencia 30
Tabla 1.2 Matriz de adyacencia (nodos difusos calculados) 30
Tabla 1.3 Tabla resultados Ej. 1 34
Tabla 1.4 Tabla resultados Ej. 2 38
Tabla 3.1 Actor Usuario 55
Tabla 3.2 Actor Usuario2 55
Tabla 3.3 Actor Sistema 55
Tabla 3.4 Caso de uso digitar datos 56
Tabla 3.5 Caso de uso Guardar datos animacin 56
Tabla 3.6 Caso de uso Ver animacin 57
Tabla 3.7 Caso de uso Establecer conexin 57
Tabla 3.8 Caso de uso Generar animacin 58
Tabla 3.9 Caso de uso Calcular V. Salida 58
Tabla 3.10 Caso de uso Calcular nivel de temperatura 59
Tabla 3.11 Caso de uso Calcular nivel de salinidad 59
Tabla 4.1 Fuente de financiacin y presupuesto 69
Tabla 4.2 Cronograma de actividades 70


11
LISTA DE FIGURAS

Figura 1.1 Funcin Triangular Temperatura 26
Figura 1.2 Funcin Triangular Salinidad 27
Figura 1.3 Mapa cognitivo difuso del manglar 29
Figura 1.4 Representacin Matriz de adyacencia 31
Figura 1.5 Multiplicacin Matricial Ej. 1 32
Figura 1.6 Grafica iteraciones Ej. 1 35
Figura 1.7 Matriz de adyacencia Ej.2 35
Figura 1.8 Grafica mangle Ej. 2 39
Figura 1.9 Grafica temperatura Ej. 2 39
Figura 1.10 Grafica salinidad Ej. 2 40
Figura 1.11 Grafica tala Ej. 2 40
Figura 1.12 Grafica organismos Ej. 2 41
Figura 1.13 Grafica resultados Ej. 2 41
Figura 2.1 Diagrama conceptual animacin reactiva 49
Figura 2.2 Grafica interaccin MCD y animacin 50
Figura 3.1 Diagrama de Casos de Uso 54
Figura 3.2 Pantalla de inicio de sesin 60
Figura 3.3 Pantalla de cerrado de sesin 61
Figura 3.4 Pantalla principal de administrador 62
Figura 3.5 Pantalla guardar animacin 63
Figura 3.6 Pantalla principal invitado 64
Figura 3.7 Pantalla abrir animacin 65
Figura 3.8 Diagrama de estado 66
Figura 3.9 Diagrama de flujo 67
Figura 3.10 Continuacin A Diagrama de flujo 68
Figura 3.11 Continuacin B Diagrama de flujo 68
12
LISTA DE ANEXOS

Anexo A. Manual de Usuario. 74
Anexo B. Manual del Sistema. 99
Anexo C. Artculo Cientfico. 126


13
INTRODUCCIN


El manejo de la informacin, hoy es mucho ms importante que en otras pocas,
ya que este nos ayuda a predecir y calcular hechos, comportamientos de sistemas
o ambientes en general. Para poder manejar bien la informacin, debemos tener
en cuenta la tecnologa y la forma de procesar las variables, y as saber cuales
son los factores que pueden afectar de una forma negativa o positiva a un
sistema.

Los modelos matemticos que utilizan ecuaciones diferenciales en ciertas
ocasiones, resultan tiles para analizar cada una de las variables que intervienen
en un determinado sistema o proceso, y simular o predecir los cambios que se
presenten ante una excitacin o afectacin del entorno. Sin embargo, cuando se
trabaja con sistemas complejos, que contienen grandes cantidades de variables
en las que su informacin es incierta, los modelos matemticos no son una
solucin muy factible, ya que no manejan la incertidumbre presente en estas
variables y no se puede obtener ecuacin especifica que modele el sistema.

En la modelacin de sistemas dinmicos complejos, los mapas cognitivos difusos
forman una herramienta valiosa para analizar relaciones inexactas, que se
presentan entre las variables en diversas situaciones. De esta manera se puede
modelar una gran variedad de sistemas, con un alto grado de complejidad en su
dinmica, as se solucionan los inconvenientes y demora en los clculos, que se
presentan con los mtodos clsicos.

14
EL PROBLEMA Y OBJETIVOS DE LA INVESTIGACIN


DESCRIPCIN Y ANLISIS DEL PROBLEMA

Descripcin

En este proyecto se describe un sistema de modelamiento y animacin de
sistemas dinmicos complejos, desarrollando en dos componentes: Uno
consistente en el cdigo para la modelacin, mediante la implementacin de
mapas cognitivos difusos; y el otro consistente en el mdulo de representacin
visual desarrollado en Flash, el cual, ms que una simple interfaz grfica de
usuario, permite una animacin reactiva del sistema, de acuerdo al cdigo recibido
del componente de modelacin. Ambos componentes son conectados, utilizando
el protocolo de comunicacin TCP/IP, lo que permite que trabajen en mquinas
separadas. Se muestra la representacin de un ambiente de manglar en la que se
genera una animacin, mediante las relaciones y factores que intervienen en este
ambiente, para predecir cmo estas variables afectan la vida y el desarrollo del
ecosistema.

Anlisis del Problema

La simulacin de sistemas dinmicos complejos, requiere el empleo de muchas
variables e informacin, que en la mayora de los casos est revestida de
incertidumbre, por lo cual el empleo de tcnicas clsicas, como las ecuaciones
diferenciales, no representan una alternativa viable en este tipo de simulacin. El
diseo de un modelo que permita simular el comportamiento de las variables, que
intervienen en un sistema dinmico, permitir manipular la incertidumbre existente
en estos sistemas.
15
Por esta razn se ha recurrido al uso de los Mapas cognitivos difusos MCD. Ya
que en estos no se requiere de extensivos clculos matemticos complejos, para
obtener nuevos estados, prediciendo acciones que afecten directamente al
sistema.

FORMULACION DEL PROBLEMA

Es prctico y eficaz disear una simulacin de sistemas dinmicos complejos
usando mapas cognitivos difusos?




















16
JUSTIFICACIN DE LA INVESTIGACIN


En el programa de ingeniera de sistemas, se han venido desarrollando
investigaciones en el campo de los mapas cognitivos difusos, para la modelacin
de diversos sistemas dinmicos complejos, los mapas cognitivos difusos
constituyen una herramienta valiosa para analizar relaciones entre conceptos, y
modelar una gran variedad de sistemas, con un alto grado de complejidad en su
dinmica, lo que resulta imposible de modelar mediante tcnicas matemticas
clsicas, de esta forma los MCDS resultan muy prcticos y atractivos para la
simulacin de diversos ambientes y situaciones, ya que hacen dinmicos los
sistemas, proporcionando animaciones cuyo resultados son previamente
desconocidos, basados en la lgica y en las situaciones que se presentan en el
mundo real.

Este campo de aplicacin de la lgica difusa, es uno de los que mas se est
investigando en la facultad de Ingeniera de Sistemas de la CURN, y permitir
afianzar y generar nuevos conocimientos relacionados a esta, debido a que se
cuentan con las bases y experiencia necesaria para llevar a cabo este tipo
proyecto, dando como resultado un fortalecimiento en esta importante y atractiva
lnea de investigacin.








17
OBJETIVOS DE LA INVESTIGACIN


OBJETIVO GENERAL

Modelamiento y animacin de sistemas dinmicos complejos mediante mapas
cognitivos difusos, con un modulo de representacin visual creado en Flash, que
permitir una animacin reactiva del sistema en modelacin.

OBJETIVOS ESPECFICOS
- Recopilar informacin sobre los factores ms determinantes que
intervienen en el desarrollo del ecosistema de manglar.
- Recopilar y analizar informacin sobre los mapas cognitivos difusos y sus
aplicaciones.
- Determinar las caractersticas principales que brinda un sistema reactivo,
en la representacin y evaluacin de un sistema, en tiempo real.
- Diseo de un sistema de modelacin, mediante mapas cognitivos difusos.
- Desarrollar un sistema que integre un componente modelador de sistemas
dinmicos con un componente de animacin, utilizando el protocolo de
comunicacin TCP/IP.
- Implementacin y simulacin de mapas cognitivos difusos.







18
METAS DE LA INVESTIGACIN
Despus de realizar el proyecto se espera brindar una herramienta computacional,
que sea de gran utilidad en el mbito cientfico, acadmico y ecolgico para la
modelacin de sistemas dinmicos complejos, en donde se desarrollar una
aplicacin basada en mapas cognitivos difusos, y una animacin reactiva del
problema o ambiente en cuestin.

PRODUCTO
Se obtendr un software para la modelacin y simulacin de sistemas dinmicos
complejos, mediante mapas cognitivos difusos, con su manual de usuario y
sistema, incluyendo su respectiva monografa, que contendr todos lo referente al
proyecto.

ESTRATEGIA METODOLOGICA
Clase o modalidad de la investigacin: Esta investigacin es de tipo tecnolgica
aplicada.













19
MARCO TEORICO


ANTECEDENTES:

Actualmente se presentan tantos problemas con el manejo de la informacin, para
la prediccin de eventos o comportamientos futuros, en distintos ambientes o
situaciones, Para esto se requiere un manejo cuidadoso de la tecnologa, y de los
adelantos tecnolgicos, para as procesar la informacin y obtener datos mas
acertados; en algunos casos se hace necesario la utilizacin de modelos
matemticos, basados en ecuaciones diferenciales, porque resultan muy tiles en
el manejo y anlisis de las variables que se utilizan en determinado sistema, y a si
poder simular o modelar el entorno de dicho sistema.

Pero no todo es tan sencillo. Existen sistemas muy complejos los que tienen
muchas variables y su informacin es incierta. Un ejemplo en el ecosistema
manglar, podra ser la temperatura, por que es difcil determinar un valor exacto, y
saber en que momento est afectando al mangle, de una forma positiva o
negativa, para el desarrollo de este, por ende no podramos definir una ecuacin
concreta. Por consiguiente el modelamiento de estos sistemas dinmicos se
puede realizar por medio de los mapas cognitivos difusos, porque estos nos
permiten la utilizacin de variables inexactas, que se presentan en el sistema a
diferencia de los mtodos clsicos






20
REFERENTES TERICOS:

Mapas cognitivos difusos

Los mapas cognitivos difusos MCDs son grafos dirigidos, en los cuales los nodos
representan los conceptos, y los arcos las influencias causales entre estos. La
ponderacin de los arcos indica que tanta influencia ejerce un nodo sobre el otro.

Hoy por hoy la utilizacin de los mapas cognitivos difusos es ms comn que
antes; estos no necesitan extensos clculos matemticos complejos, que nos
permitan predecir actos futuros que perjudiquen al sistema. Sin embargo esta
tecnologa algunas veces puede ser inexacta, errnea e incluso el sistema puede
quedarse en ciclos interminables, por eso se utilizan tcnicas de balanceo o
equilibrio del mapa cognitivo difuso.

Visto de esta forma los MCD, son herramientas valiosas que nos permiten el
modelamiento de sistemas, con mltiples variables difusas, y a su vez modelar
sistemas reactivos dinmicos, que son casi imposibles de realizar con los mtodos
tradicionales

Sistema reactivo

Es un sistema que interacciona continuamente con el entorno, recibiendo
estmulos del mismo y produciendo salidas en respuesta a los mismos. Los
eventos que se producen no son predecibles, dado que el orden de la ejecucin
de las instrucciones externas es muy cambiante, un ejemplo muy comn de
sistema reactivo, es un sistema en tiempo real.

21
Los sistemas reactivos no se limitan a dar resultados finales, sino que estn en
constante interaccin con el ambiente, siendo muy semejante a un sistema de
tiempo real; esto exige un poco ms en los sistemas de animacin reactiva, dado
que sus grficos tienen que estar muy sincronizados y su interfaz ser mucho ms
exigente.


MARCO CONCEPTUAL

- Lgica difusa: La lgica difusa procura crear aproximaciones matemticas
en la resolucin de ciertos tipos de problemas. Pretenden producir
resultados exactos a partir de datos imprecisos, por lo cual son
particularmente tiles en aplicaciones electrnicas o computacionales.

- Mapas cognitivos difusos: Pueden modelar sistemas en donde ocurren
eventos, acciones, valores, metas o procesos. Es decir variables que
afectan el sistema, de tal modo este cambie hasta encontrar un estado de
equilibrio.

- Red auto-asociativa: Es aquella red que permite retroalimentarse con la
salida de cada iteracin anterior, permitindole que esta sea de entrada
para la siguiente, hasta encontrar una situacin parecida a las
almacenadas.

- Funcin de activacin: Determina el nuevo estado de activacin de la
neurona, teniendo en cuenta la entrada total calculada y el anterior estado
de activacin.

22
- Funcin escaln: Se asocia a neuronas binarias en las cuales cuando la
suma de las entradas es mayor o igual que el umbral de la neurona, la
activacin es 1; si es menor, la activacin es 0.

- Funcin lineal: Responde a la expresin f(x)=X. Si la suma de las seales
de entrada es menor que un lmite inferior la activacin se define como 0.
Si dicha suma es mayor o igual que el lmite superior, entonces la
activacin es 1. Si la suma esta comprendida entra ambos lmites entonces
la activacin es una funcin lineal.

- Funcin sigmoidal: Se trata de una funcin continua no lineal, la cual
posee un rango comprendido entre 0 y 1. Esto, aplicado a las unidades de
proceso de una red neuronal artificial, significa que; sea cual sea la entrada,
la salida estar comprendida entre 0 y1.



23
1. MAPAS COGNITIVOS DIFUSOS


Una de las caractersticas mas sobresalientes que se encuentran en los Sistemas
Expertos, es la base de conocimientos, en la cual se incluyen hechos, opiniones y
experiencias de los expertos trabajadores del sistema. Sin embargo hay factores
que no se pueden determinar a simple vista, ya que los datos no son totalmente
exacto y ciertos, por ende debemos depender de la opinin poco precisa del
experto del sistema.

Por esto el enfoque que se tiene de los Sistemas Expertos para los problemas de
datos inciertos o borrosos no es tan fcil, para esto se pueden utilizar otros
sistemas mejores, como son los Mapas Cognitivos Difusos (MCD).

Los mapas cognitivos difusos MCDs son grafos dirigidos, en los cuales los nodos
representan los conceptos y los arcos las influencias causales entre estos. La
ponderacin de los arcos indica que tanta influencia ejerce un nodo sobre el otro.
Si el valor de la ponderacin es cero el nodo antecesor no tiene ninguna influencia
sobre el nodo predecesor. Si la ponderacin es positiva existir una relacin
causal directamente proporcional, de manera tal que si hay un aumento o
disminucin en la valoracin del nodo antecesor habr un aumento o disminucin
proporcional en la valoracin del nodo predecesor. Si por el contrario, la
ponderacin es negativa, indicar una relacin causal inversa o negativa.

Una de las aplicaciones, en las cuales se puede trabajar con los mapas cognitivos
difusos son: poltica, sociologa, ecologa entre otros, ya que algunos de los
conocimientos o factores son difusos. Esto nos va a permitir mostrar hechos,
procesos o eventos de conocimientos complejos y dar una prediccin de estos. Ya
24
que los MCD demuestran su potencial, cuando sus reglas no estn totalmente
bien definidas.
Actualmente se ha recurrido al uso de los Mapas Cognitivos difusos MCD, ya que
en estos no se requiere de extensivos clculos matemticos complejos para
obtener nuevos estados, prediciendo acciones futuras que afecten directamente al
sistema. Constituyndose as Los mapas cognitivos difusos, en una herramienta
valiosa para analizar relaciones entre conceptos, y para modelar sistemas
reactivos con dinmicas tan complejas que son prcticamente imposibles de
modelar mediante ecuaciones matemticas.

1.1 DESARROLLO Y CLCULO DE MAPAS COGNITIVOS DIFUSOS
La estructura de los mapas cognitivos se basa en grafos dirigidos difusos, con el
fin de representar el razonamiento causal de un determinado ambiente o
fenmeno. Al tener los MCDs esta caracterstica difusa, les permite evaluar y
calcular grados de causalidad entre conceptos o elementos de un sistema poco
claro, con la gran ventaja de que su estructura de grafo, les permite una
propagacin y relacin sistemtica de las causas y efectos de cada elemento
(nodo) que lo compone.

Debido a esto, los mapas cognitivos difusos, son ideales para modelar sistemas
de retroalimentacin, con altos grados de causalidad e incertidumbre entre sus
componentes, estando estos grados de causalidad comprendidos en un intervalo
de 0 a 1.

El proceder o comportamiento del sistema en modelacin, se obtendr
retroalimentando al mapa cognitivo partiendo de un estado o entrada inicial, la cual
estimular al mapa y sus componentes, produciendo una serie de eventos y
salidas, las cuales retroalimentarn al mapa, para generar as nuevos estados del
sistemas evaluado.
25
La forma ideal de representar a un MCD es a travs de una matriz de adyacencia,
en la cual se consigna y almacena la informacin de las conexiones entre nodos.
Las salidas de los mapas cognitivos, se obtienen por medio de una multiplicacin
matricial, por el vector de entrada. Que es el vector de la salida anterior,
terminando este proceso cuando el vector de entrada es igual al vector de salida.

Se ha considerado el empleo de la funcin de activacin sigmoidal (ecuacin (1)).
De tal manera que los cambios de estado se hagan de forma continua y con
resultados ms detallados sobre el estado final de los factores, que intervienen en
el ambiente a evaluar

x
e
x f

+
=
1
1
) (
(1)


Para evaluar los elementos negativos y positivos que se encuentren en el vector,
resultado de la multiplicacin matricial del vector de entrada y la matriz, Es
necesario cambiar la operacin de agregacin (OR) MAX por la T-Conorma
propuesta por Hamacher (ecuacin 2).



(2)

Donde a y b son dos elementos consecutivos de la columna de la matriz de
adyacencia que se est evaluando, luego de haber sido afectada por el vector de
entrada o el vector resultante de la iteracin inmediatamente anterior.

26
La T-Conorma de Hamacher evita el problema del operador MAX cuando existen
efectos causales negativos y positivos sobre determinado nodo, ya que este ltimo
operador elimina cualquier valor negativo. Al contrario de la T Conorma de
Hamacher evala tanto los elementos positivos como los negativos, logrando de
esta forma modificaciones ms suaves entre cada iteracin.

Un ejemplo de los nodos borrosos o variables difusas es la temperatura en el
ecosistema manglar, ya que est en constante cambio y seria muy difcil en un
tiempo determinado decir cual es su valor exacto, que solo un experto podra
determinar. Por eso utilizamos uno de los artificios matemticos de la lgica
difusa, la cual nos permite calcular un valor de temperatura con unas funciones de
activacin, para poder calcularla en determinado tiempo, y poder decir cual es su
condicin con respecto a los dems factores.

Por consiguiente utilizamos una funcin triangular, pero tomando solo la mitad del
triangulo, formando un trapecio, el cual nos ayudar a decidir cual es la
temperatura ideal para nuestro sistema. Ver figuras 1.1 y 1.2.


Figura 1.1 Funcin Triangular Temperatura









Temperatura




g
1
-1
c
b
0
a

27
Figura 1.2 Funcin Triangular Salinidad











Los mapas cognitivos difusos, manejan un intervalo de [0,1] donde 0 es el valor
nulo o de no cambio y 1 es el valor ms alto de cambio o afectacin de uno de los
factores, esto nos permite saber cuales son los cambios mas radicales en los
factores del sistema que se est trabajando, sin embargo, tenemos que estimar
los valores negativos, porque estos tambin son fundamentales para hallar valores
que afecten a un sistema o aun factor especifico. Por eso cambiamos el valor del
intervalo por [-1,1] y utilizamos la frmula que se muestra en la ecuacin (3).

+
(

|
|
.
|

\
|

=> =
+
(

|
|
.
|

\
|

=> =
2
1 2
2 2
1
2
1 1
2 2
1
) ( 1 ,
0
) ( 1 ,
b
b c
b c
b x x si
a
a b
a b
a x x si
x
(3)
Salinidad
Fg



g
1
-1
c
b
0
a

28
A medida que se vayan presentando las iteraciones y las retroalimentaciones del
sistema que se est modelando, nos mostrar cuales son los eventos, acciones, o
procedimientos y cual es su comportamiento a travs del tiempo, partiendo de un
punto inicial.

Por medio de una matriz se mantiene la informacin de las conexiones entre
nodos. Los cambios en la matriz de adyacencia del sistema modelado, se generan
por la accin de un vector de entrada, el cual nos brindar la informacin que se
necesite para las salidas de los mapas cognitivos, que se obtienen por medio de
una multiplicacin matricial por el vector de entrada, el cual no es ms que el
vector de la salida anterior. El ciclo lmite muestra como se comportar el sistema
de acuerdo a la entrada proporcionada.

1.2 EJERCICIO Y FUNCIONAMIENTO DE LA FASE DE APRENDIZAJE
En el siguiente ejercicio se muestra la representacin de los principales factores
que afectan al ecosistema del manglar (fig.1.3), en esta intervienen cinco variables
bsicas: mangle C1, temperatura C2, salinidad C3, tala C4, y organismos C5. Los
arcos indican las relaciones causales entre cada variables, los pesos el grado de
afectacin de un nodo sobre otro y los signos indican si la relacin es directamente
proporcional, (signo positivo) o inversamente proporcional (signo negativo),
tambin se muestran los nodos que cuentan con variables difusas, los cuales
tomaran valores positivos o negativos dependiendo de la funcin de activacin que
se este usando, en este caso se us una funcin de tipo triangular, para hallar las
relaciones directamente proporcionales o inversamente proporcionales que
pueden tener los nodos difusos de la temperatura C2 y salinidad C3.




29
Figura 1.3 Mapa cognitivo difuso del manglar










Como se puede apreciar en el ejemplo de la figura 1.3, a medida que hay una
disminucin en el mangle C1, causa directamente una disminucin en los
organismos C5 que habitan en este, de lo contrario aumenta, por otra parte el
aumento de la tala C4 disminuye considerable a el mangle C1, la temperatura C2
y la salinidad C3 por ser nodos difusos, tendrn efectos positivos o negativos
sobre el mangle C1, dependiendo del resultado de la funcin de activacin.
Para apreciar y registrar la influencia que tiene un nodo sobre otro, se consulta a
entidades ambientales e ingenieros forestales especialista en el manejo y
desarrollo del ecosistema de manglar, al los cuales se les plantean una serie de
preguntas acerca de que tanto afectan cada uno de los factores que intervienen,
en el mantenimiento del ecosistema del manglar.

30
La representacin de las relaciones entre nodos del mapa anterior, se muestra
mediante la siguiente matriz de adyacencia (Tabla 1.1).


Tabla 1.1 Matriz de adyacencia
C1 C2 C3 C4 C5
C1 0 0 0 0 0.7
C2 Difuso 0 0 0 0
C3 Difuso 0 0 0 0
C4 -0.8 0 0 0 0
C5 0 0 0 0 0


Al someter los nodos difusos de temperatura C2 y salinidad C3, a la funcin de
activacin triangular que se muestra en las figuras 1.1 y 1.2, da como resultado
que para una temperatura de 22*C el nodo C2 toma un valor de 0.7 con efecto
positivo sobre el mangle C1, y para una salinidad de 49 00 / 0 el nodo C3 toma un
valor de 0.6 con efecto igualmente positivo sobre el mangle C1. Estos valores
obtenidos pueden ser reemplazados en el mapa cognitivo y en la matriz de
adyacencia (tabla 1.2), para su posterior uso en los clculos de dicho mapa.


Tabla 1.2 Matriz de adyacencia (nodos difusos calculados)
C1 C2 C3 C4 C5
C1 0 0 0 0 0.7
C2 0.7 0 0 0 0
C3 0.6 0 0 0 0
31
C4 -0.8 0 0 0 0
C5 0 0 0 0 0


1.2.1. Etapa de aprendizaje.


Figura 1.4 Representacin Matriz de adyacencia



M = =




En los mapas cognitivos, la fase de aprendizaje es muy sencilla, ya que solo se
necesita llenar la base de conocimiento, con los respectivos valores que el
especialista o la entidad competente designa a cada factor, que interviene en la
situacin o mbito a evaluar (figura 1.4). Siendo esta una gran ventaja, ya que no
se deben utilizar complicados y largos mtodos de aprendizaje.

1.2.2. Etapa de funcionamiento En el inicio de la etapa de funcionamiento, se
necesitan de patrones de entrada que permitirn estimular el sistema. Por
ejemplo, Sea el vector de entrada.

C = [C
1
C
2
C
3
C
4
C
5
]
C = [0.3 0.8 0.6 0.1 0.1]

0.0 0.0 0.0 0.0 0.0 0.7
0.7 0.0 0.0 0.0 0.0 0.0
0.6 0.0 0.0 0.0 0.0 0.0
-0.8 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
W
11
W
12
W
13
W
14
W
15
W
16

W
21
W
22
W
23
W
24
W
25
W
26

W
31
W
32
W
33
W
34
W
35
W
36

W
41
W
42
W
43
W
44
W
45
W
46
W
51
W
52
W
53
W
54
W
55
W
56


32
Donde:
C
1
=0.3, Determina un estado aceptable del mangle.
C
2
=0.8 Muestra un alto nivel de temperatura que beneficia al mangle.
C
3
=0.6 Muestra un nivel medio de salinidad que afectara positivamente al mangle.
C
4
=0.1 Establece un efecto negativo mnimo de la tala sobre el mangle
C
5
=0.1 Determina una baja presencia de organismos en el mangle.

Con el anterior vector de entrada se analizaran dos tipos resultados e iteraciones,
obtenidas sobre la reaccin y estimulo que este vector tiene sobre la matriz de
adyacencia del mapa cognitivo, para esto se utilizara la funcin de activacin
sigmoidal con la operacin de agregacin OR y posteriormente con la T-Corona de
Hamacher.

Utilizando la funcin de activacin sigmoidal de la ecuacin (1) y la operacin de
agregacin MAX (OR), se obtiene los siguientes resultados:


Figura 1.5 Multiplicacin Matricial Ej. 1



i=0, C*W[i][j] = *




=

Se toma el vector de entrada y se multiplican sus elementos por cada columna
de la matriz de adyacencia, como se muestra la figura 1.5 en la primera iteracin.
0.3 0.8 0.6 0.1 0.1
0.0 0.0 0.0 0.0 0.7
0.7 0.0 0.0 0.0 0.0
0.6 0.0 0.0 0.0 0.0
-0.8 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0





0.0 0.56 0.36 -0.8 0.0
33
Luego de que se han obtenido los vectores del producto matricial de la matriz de
adyacencia y el vector de entrada, en este caso 5 vectores, se verifica si todos los
elementos de cada vector son ceros, de ser as, el elemento del vector de salida
ser igual a el del vector de entrada en esa misma posicin, de lo contrario, se
utiliza la operacin de agregacin MAX (OR) en cada vector resultante, con el fin
de obtener el mximo valor de este vector. Aplicando este proceso en el primer
vector producto de la multiplicacin matricial, y reemplazndolo en la funcin de
activacin sigmoidal, se obtiene el primer elemento del primer vector resultante
as:


MAX =

MAX = 0.56
Sigmoidal = 636453 . 0
1
1
56 . 0
=
+

e



De igual forma se repite el anterior proceso para los vectores resultantes en cada
iteracin, tomando como nuevo vector de entrada el vector resultante anterior, y
deteniendo el proceso cuando el vector de entrada y salida sean iguales

Las iteraciones y el vector resultante para el ejemplo anterior, utilizando los
mximos de cada vector y la funcin de activacin sigmoidal, se muestran en la
siguiente tabla 1.3.

Vector de entrada inicial: [0.3 0.8 0.6 0.1 0.1]




0.0 0.56 0.36 -0.8 0.0
34

Tabla 1.3 Tabla resultados Ej. 1
Iteracin Vector de entrada Vector de Salida
1 [0.3 0.8 0.6 0.1 0.1] [0.636453 0.8 0.6 0.1 0.552308]
2 [0.636453 0.8 0.6 0.1 0.552308] [0.636453 0.8 0.6 0.1 0.609573]
3 [0.636453 0.8 0.6 0.1 0.609573] [0.636453 0.8 0.6 0.1 0.609573]


Los resultados muestran (figura 1.3) que hubo un incremento en el nodo C1 de
Mangle gracias a la temperatura y salinidad favorable, actuando de esta forma
positivamente los nodos difusos C2 y C3 sobre el mangle C1, a su vez los
organismos C5 aumentaron debido al incremento del mangle C1, la tala C4 no
afect de forma contundente al mangle C1, ya que su valor fue mnimo en el
vector de entrada y en las iteraciones. La salinidad, temperatura y tala,
mantuvieron sus valores constantes desde la primera iteracin, debido a que estos
nodos no tienen relacin de dependencia con ningn otro nodo del mapa.

Grficamente los resultados obtenidos en las iteraciones quedan de la siguiente
forma:










35

Figura 1.6 Grafica iteraciones Ej. 1
Grafica Iteraciones
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1 2 3
Mangle
Temperatura
Salinidad
Tala
Organismos



Tomando para el siguiente caso la funcin de activacin sigmoidal ecuacin (1) y
la T-Corona de Hamacher, ecuacin (2), se obtienen los siguientes resultados:


Figura 1.7 Matriz de adyacencia Ej. 2




i=0, C*W[i][j] = *





=

0.3 0.8 0.6 0.1 0.1
0.0 0.0 0.0 0.0 0.7
0.7 0.0 0.0 0.0 0.0
0.6 0.0 0.0 0.0 0.0
-0.8 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0





0.0 0.56 0.36 -0.08 0.0
36
Al igual que en el anterior ejercicio donde se utiliz la operacin MAX (OR), se
toma el vector de entrada y se obtienen los valores del vector de salida, producto
de la multiplicacin matricial entre este vector de entrada y cada columna de la
matriz de adyacencia. Luego de que se hayan obtenido los vectores de cada
multiplicacin matricial, se verifica que todos sus elementos no sean ceros, y se
aplica la T-Corona de Hamacher a cada vector resultante de la multiplicacin,
como se muestra en la ecuacin (4):

0 ,
]) 1 [ * ] [ * ) 1 ( 1 (
] 1 [ * ] [ ) 2 ( ] 1 [ ] [ (
>
+
+ + +
=


i v i v
i v i v i v i v
Hamacher
(4)

Siendo V[i] el vector resultante de la multiplicacin matricial, del vector de entrada
por la matriz de adyacencia.

Tomando el primer vector de la primera iteracin, y evalundolo con la T-Corona
de Hamacher, posteriormente aplicndole la funcin de activacin sigmoidal, da
como resultado el primer elemento del primer vector resultante:

Hamacher , =1:

56 . 0
) 56 . 0 * 0 * ) 1 1 ( 1 (
56 . 0 * 0 * ) 1 2 ( 56 . 0 0 (
=

+


7184 . 0
) 36 . 0 * 56 . 0 * ) 1 1 ( 1 (
36 . 0 * 56 . 0 * ) 1 2 ( 36 . 0 56 . 0 (
=

+


695872 . 0
) 08 . 0 * 7184 . 0 * ) 1 1 ( 1 (
08 . 0 * 7184 . 0 * ) 1 2 ( 08 . 0 7184 . 0 (
=

+

0.0 0.56 0.36 -0.08 0.0
37

695872 . 0
) 0 * 695872 . 0 * ) 1 1 ( 1 (
0 * 695872 . 0 * ) 1 2 ( 0 695872 . 0 (
=

+


Funcin Sigmoidal = 667272 . 0
1
1
695872 . 0
=
+

e


De igual forma se continuar con el mismo proceso con el resto de vectores,
(vectores del producto matricial) aplicacin de la T-Corona de Hamacher a sus
elementos, y posteriormente, el valor resultante de cada vector ser sometido a la
funcin de activacin sigmoidal (ecuacin (5)).

] [
1
1
.
i v
e
Sigmoidal f

+
=
(5)

Siendo V[i] el elemento resultante de la T-Corona de Hamacher, y a su vez un
elemento del vector resultante, cuando posteriormente haya pasado por la funcin
de activacin sigmoidal.

Las iteraciones y el vector resultante para el ejemplo anterior utilizando la T-
Conorma de Hamacher y la funcin de activacin sigmoidal son:

Vector de entrada inicial: [0.3 0.8 0.6 0.1 0.1]





38
Tabla 1.4 Tabla resultados Ej. 2
Iteracin Vector de entrada Vector de Salida
1 [0.3 0.8 0.6 0.1 0.1] [0.667272 0.8 0.6 0.1 0.552308]
2 [0.667272 0.8 0.6 0.1 0.552308] [0.667272 0.8 0.6 0.1 0.614695]
3 [0.667272 0.8 0.6 0.1 0.614695] [0.667272 0.8 0.6 0.1 0.614695]

El proceso termina cuando el vector de salida es igual al vector de entrada, siendo
el resultado final: [0.667272 0.8 0.6 0.1 0.614695]

Los resultados al igual que en el ejercicio anterior muestran un aumento en el
nodo C1 , los organismos C5 aumentaron debido al incremento del mangle C1, la
tala C4 no afect de forma contundente al mangle C1, debido a su mnimo valor
en el vector de entrada. Igualmente la salinidad, temperatura y tala mantuvieron
sus valores constantes. Sin embargo tomando como referencia los resultados
obtenidos anteriormente con la operacin MAX (OR) y los actuales con la T-
Corona de Hamacher, observamos que T-Corona de Hamacher proporciona
resultados ms precisos y reales, ya que evala los elementos negativos del
vector, contrario a la operacin MAX (OR) que excluye los elementos negativos
sin importar lo significativo que estos podran ser. En este caso con la T-Corona
de Hamacher se tom en cuenta el valor -0,08 de la matriz de adyacencia, al igual
que el resto de valores positivos inferiores a 0.56, los cuales habran sido
ignorados por la operacin MAX (OR) en la primera resolucin.







39
Grficamente los cambios en los nodos se pueden observar de la siguiente forma:

- Mangle C1


Figura 1.8 Grafica mangle Ej. 2
Mangle C1
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
1 2
Mangle



- Temperatura C2


Figura 1.9 Grafica temperatura Ej. 2
Temperatura C2
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1 2
Temperatura




40
- Salinidad C3


Figura 1.10 Grafica salinidad Ej. 2
Salinidad C3
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
1 2
Salinidad



- Tala C4


Figura 1.11 Grafica tala Ej. 2

Tala C4
0
0,02
0,04
0,06
0,08
0,1
0,12
1 2
Tala






41
- Organismos C5


Figura 1.12 Grafica organismos Ej. 2
Organismos C5
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
1 2 3
Organismos



- Grafica general de resultados


Figura 1.13 Grafica resultados Ej. 2

0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1 2 3
Mangle
Temperatura
Salinidad
Tala
Organismos

42
2. SISTEMAS REACTIVOS Y ANIMACION REACTIVA


2.1 SISTEMAS ESTTICOS Y DINMICOS
Los sistemas estticos describen un sistema en trminos de ecuaciones
matemticas, donde el efecto potencial de cada alternativa es evaluada a travs
de ecuaciones. La actuacin del sistema es determinada sumando los efectos
individuales. Los sistemas estticos ignoran las variaciones en el tiempo, en estos
todos sus elementos permanecen estables, al contrario, los sistemas dinmicos
complejos estn compuestos por un gran nmero de variables, algunas son
difusas, otras son el resultado de un proceso de entrada de datos, cambiando
estas repetidamente su valor en cada entrada o digitacin de informacin. Lo cual
hace que estos sistemas eleven su complejidad, ya que en ellos se presenta un
gran flujo de informacin, necesitndose de esta forma de herramientas
adecuadas para su tratamiento.

Debido a la enorme complejidad de estos sistemas la propiedad fundamental que
los caracteriza es que poseen un comportamiento impredecible. Slo somos
capaces de prever su evolucin futura hasta ciertos lmites, siempre suponiendo
un margen de error muy creciente con el tiempo. Para realizar predicciones ms o
menos precisas de un sistema dinmico complejo, frecuentemente se han de usar
mtodos matemticos como la estadstica, la probabilidad o las aproximaciones
numricas como los nmeros aleatorios.






43
2.2 SISTEMAS REACTIVOS
El trmino sistema complejo se ha popularizado en los ltimos aos, habindose
difundido en estudios sobre sistemas ambientales, biolgicos, autmatas
celulares, etc. y convergiendo en un rea denominada vida o inteligencia artificial.
Sin embargo existe aun una clase ms problemtica de sistemas dinmicos
complejos, dichos sistemas estn compuestos por una gran carga de control o
manejo de eventos. Siendo estos los llamados sistemas reactivos, debido a que
su papel es el de reaccionar a varios tipos de eventos, seales y condiciones de
diversas formas complejas. Su aspecto ms significativo, es que no existe una
pregunta o control, para que el proceso que se est llevando a cabo en estos
sistemas, llegue a un lgico final. Sin embargo el sistema mantiene una constante
interaccin con su ambiente, arrojando en tiempo real los diferentes resultados y
cambios que se presentan en el sistema.
Los sistemas reactivos interaccionan continuamente con el entorno, recibiendo
estmulos del mismo y produciendo salidas en respuesta a los mismos. El orden
de los eventos en un sistema reactivo no es predecible, viene determinado
externamente, es decir, el orden de ejecucin de las instrucciones puede venir
determinado por la ocurrencia de eventos externos. Un ejemplo tpico de sistema
reactivo es un sistema de tiempo real. En los sistemas de tiempo real los eventos
deben ser tratados en instantes de tiempo predeterminados.

2.2.1 Caractersticas de los sistemas reactivos. En general, todos los sistemas
reactivos comparten una serie de caractersticas comunes, independientemente
de la aplicacin final a la que se destinen. Entre estas caractersticas podemos
encontrar las siguientes:

Paralelismo: Los sistemas reactivos se ejecutan en paralelo con otros sistemas.
Adems, ellos mismos, posiblemente, estn constituidos por una serie de mdulos
funcionando en paralelo (Ej.: un mdulo de animacin y un mdulo lgico). Esto es
44
muy habitual, dado que simplifica notablemente el diseo de sistemas, la
posibilidad de dividirlo en un conjunto determinado de mdulos, que funcionan en
paralelo y que cooperan para obtener el comportamiento deseado.

Condicionantes temporales: Como se mencion anteriormente, los sistemas
reactivos tienen que responder a los estmulos de entrada instantneamente.
Independientemente del tipo de sistema que se trate, los condicionantes
temporales dependiendo de cada caso, son un punto importante a tener en cuenta
a la hora de desarrollar y de verificar la correccin del sistema. Estos estados
temporales nos muestra el desarrollo, ya sea negativo o positivo del sistema que
se este controlando, as como tambin las variaciones que sufren sus
componentes a lo largo del tiempo.

Confiabilidad: La mayor parte de los sistemas reactivos, se emplean en
situaciones donde un error puede resultar crtico. Esto hace que sean necesarios
mtodos de desarrollo y verificacin rigurosa para poder detectar antes de su
implementacin cualquier posible anomala que pueda darse, para de esta forma
evitar que el sistema y la aplicacin reactiva que lo controla, arroje resultados
falsos o errneos.

Determinismo: Otra de las caractersticas importantes que todo programa
reactivo debe tener es el determinismo. Un programa se considera determinista
cuando produce las mismas secuencias de salida ante las mismas secuencias de
entradas. Esta caracterstica hay que considerarla con su justo valor: los sistemas
reactivos deterministas son ms fciles de especificar, depurar y analizar que los
no deterministas.



45
2.2.2 Sistemas reactivos y sus tipos de eventos: La gran difusin y uso de
sistemas que deben reaccionar rpidamente ante eventos generados por su
entorno, como por ejemplo sistemas de control industrial, hizo que a mediados de
los aos 80 se afrontara su desarrollo de una manera diferente al del resto de los
sistemas. Apareci el concepto de sistema reactivo. Dadas las especiales
caractersticas que presentan este tipo de sistemas mencionadas anteriormente,
pronto se vio que las tcnicas y herramientas de desarrollo que tradicionalmente
se estaban utilizando para otros tipos de sistemas, no eran adecuadas para el
desarrollo de sistemas reactivos, sino que stos precisaban de tcnicas de
desarrollo especficas.

Siendo los sistemas reactivos parte de los denominados sistemas dirigidos por
eventos, denotando de esta manera que la evolucin del sistema viene
determinada por la ocurrencia de eventos. Los eventos son sucesos que en cada
momento pueden aparecer o estar ausentes. Por ejemplo, cuando se pulsa un
botn determinado en cualquier sistema, el evento asociado a ese botn estar
activo; cuando el botn no est pulsado el evento estar ausente.

En general, en todos los sistemas reactivos su evolucin se va a ver condicionada
por los eventos que vaya generando el entorno. De la misma manera, la reaccin
del sistema ser comunicada al entorno por medio de eventos. Ms an la
comunicacin entre las distintas partes del sistema en s suele llevarse a cabo en
muchos casos por medio de eventos. A este tipo de eventos, que son los ms
utilizados para guiar la evolucin de los sistemas reactivos, y que en un momento
determinado pueden estar presentes o ausentes se les denomina eventos
discretos. Su nica caracterstica es su presencia o ausencia. No tienen ningn
valor ni tipo asociado.

46
Adems de stos, suelen aparecer otros tipos de eventos en los sistemas
reactivos. Los primeros son valores de determinado tipo que estn siempre
presentes. Por ejemplo, la medida de la temperatura que ofrece un sensor
termomtrico es un valor que est siempre presente y que va variando a lo largo
del tiempo. La evolucin de los sistemas reactivos tambin puede estar
condicionada por eventos de este estilo. Denominaremos eventos continuos.

El ltimo tipo de eventos a considerar es una mezcla de los dos anteriores, son
eventos que aparecen o no estn activos en determinados momentos, pero tienen
una caracterstica adicional: A la presencia del evento estn acompaados por
algn o algunos valores de un determinado tipo. Sern los eventos discretos con
parmetros.

2.2.3 Aplicaciones de los sistemas reactivos: Los sistemas reactivos pueden
ser relativamente pequeos, como celulares, PDAs, y relojes digitales, o mucho
ms complejos, como sistemas autnomos y aplicaciones aeroespaciales. Los
sistemas reactivos pueden ser sistemas para controlar redes telefnicas y
controladores de comunicacin, el trfico areo, y robots industriales, o a mayor
escala interactuar con paquetes interactivos de software, como procesadores de
palabras y programas de e-mail. Al igual estos sistemas se pueden presentar en
los sistemas biolgicos, como el cerebro y el sistema inmunolgico, estos pueden
ser vistos como un sistema reactivo complejo, ya que estn sujetos a constantes
variaciones, las cuales son controladas y representadas por nuestro propio
organismo, por ejemplo cuando nos enfermamos nuestros signos vitales se
encuentra en constante variacin y mostramos ciertos cambios en tiempo real en
nuestro organismo y apariencia externa.

De cualquier forma, tamao o funcin, todos los sistemas reactivos deben
mantener una relacin compleja y dinmica con su ambiente, reaccionando de
47
forma apropiada y a tiempo, en el caso de aplicaciones informticas al clic de
Mouse, oprimidas de botones, cambios de temperatura, movimientos de cursores
o en el caso de los mapas cognitivos, en el cambio de valores de las variables
difusas o pesos.


2.3 PROGRAMA REACTIVO
La caracterstica principal de un sistema reactivo es no limitarse a producir un
valor final al terminar, sino permanecer en interaccin constante con su ambiente.
Por esta razn la animacin de un sistema reactivo requiere unas caractersticas
ms exigentes que una interfaz grfica de usuario. De esta forma un programa
reactivo se caracterizara por su permanente interaccin con el entorno,
reaccionando a las entradas provenientes de ste y envindole al mismo, las
salidas oportunas para generar nuevos resultados constantemente.

Un programa reactivo se define de la misma manera que un sistema reactivo. Un
programa reactivo se caracteriza por su permanente interaccin con el entorno,
reaccionando a las entradas provenientes de ste y envindole al mismo las
salidas oportunas. Los programas reactivos son el componente fundamental de los
sistemas reactivos.

Otro trmino importante en el mbito de las aplicaciones y programas reactivos es
el de programacin reactiva. Con este concepto se hace referencia al proceso de
realizar programas reactivos. Estando formada la estructura general de un
programa reactivo por tres niveles bsicos:

Un interfaz con el entorno, que se encarga de recibir las entradas de ste y de
generar las salidas. Realiza la transformacin entre los eventos fsicos que genera
el entorno y los eventos lgicos que realiza el resto del sistema.
48
Un ncleo reactivo que contiene la lgica del programa. Como su nombre indica
es la parte ms importante del sistema dado que se encarga de decidir en cada
momento qu es lo que hay que hacer.

Una capa de manejo de datos, cuya misin es realizar el procesamiento de datos
clsico a peticin del ncleo.

Por lo general cuando se estudian los sistemas reactivos, se limita a analizar solo
el ncleo reactivo, dado que las dos capas restantes son aspectos habituales en
cualquier tipo de programa, y se suelen implementar en cualquier tipo de lenguaje
tradicional.

2.4 ANIMACIN REACTIVA
La animacin reactiva no es una nueva forma de animar algoritmos, esta no
pretende introducir un nuevo mtodo para traducir complejidad algortmica en una
animacin abstracta de esta. Al contrario, la animacin reactiva usa unas
interfaces y animaciones dinmicas para el usuario, de tal forma que estas
representen la operacionalidad del sistema y su conducta de forma realstica. De
esta manera, la animacin reactiva, une los esfuerzos realizados por los
desarrolladores, en el diseo del sistema (system desing) y la portada (front-end
desing).

Por medio de la animacin reactiva se combina el estado del arte de la reactividad
y el estado del arte de la animacin, uniendo estas avanzadas herramientas en
dos reas. Una formada por el desarrollo e implementacin del sistema dinmico
complejo, y otra que hace parte del diseo de la interfaz, que va servir de puente
entre la apariencia del sistema y lo que este va hacer. En esencia la animacin
reactiva tiene dos brazos; uno compuesto por las diferentes herramientas y
mtodos propios de los sistemas reactivos, siendo esta parte el ncleo principal,
49
para realizar una rigurosa especificacin del sistema reactivo a tratar. La otra parte
esta compuesta por las herramientas propias de la animacin, las cuales sirven
para representar las especificaciones y variaciones del sistema reactivo, de forma
controlable y animada en la portada (front- end). La unin de estas dos ramas (el
comportamiento reactivo del diseo y su portada) que a simple vista no coinciden,
pero que conectadas y con una cooperacin mutua de recursos e informacin, se
convierten en una herramienta esencial para entender y facilitar el estudio de
sistemas complejos.

2.4.1 Diagrama conceptual animacin reactiva: En el siguiente diagrama
(Fig.2.1) se muestra como se relacionan los dos componentes esenciales (Diseo
del sistema y animacin) que hacen posible la animacin reactiva de un sistema
complejo


Figura 2.1 Diagrama conceptual animacin reactiva











En la siguiente imagen (FIg.2.2) se muestran la forma fsica y real de los
componentes de una animacin reactiva, tomando como referencia, el ejemplo de
50
un sistema dinmico complejo del ecosistema del manglar, anteriormente descrito
y evaluado mediante mapas cognitivos difusos, que vienen siendo a su vez la
parte de diseo del sistema de la animacin reactiva


Figura 2.2 Grafica interaccin MCD y animacin



51
3. ANALISIS Y DISEO DEL SOFTWARE


3.1. MODELO DE DESARROLLO DE MCD SIMULATOR
En el desarrollo de MCD SIMULATOR se emple el modelo de desarrollo
Incremental, basndose en los principios de este modelo, en los cuales se
desarrolla y entrega el software en partes pequeas pero utilizables (incrementos),
fueron necesarios para la consecucin de los objetivos y requerimientos del
sistema 5 incrementos:

1. Diseo interfaz grfica
2. Manejo de datos y clculos del sistema
3. Creacin y carga de animacin
4. Inicio y cerrado de sesin de usuarios
5. Conexiones para guardar y abrir animacin - datos.

Debido a la complejidad de disear y desarrollar una aplicacin basada en
animacin reactiva, la cual esta formada por un componente lgico y otro de
animacin, fue indispensable y de gran ayuda la utilizacin del modelo
incremental, ya que es una forma de reducir los riesgos de errores graves,
cuando las partes lgicas y animadas se unieran, de esta forma los incrementos
de los dos mdulos (lgico y animado) fueron ejecutados y probados en pequeas
aplicaciones independientes, las cuales luego de correcciones y ajustes, fueron
integradas en el sistema final.

3.2. MODELADO DE REQUISITOS
3.2.1 Descripcin del problema: Para la simulacin de sistemas dinmicos
complejos, es necesario emplear grandes variables de informacin, que en la
mayora de los eventos est revestida de dudas, por lo cual el empleo de tcnicas
52
comunes, como las ecuaciones diferenciales que no representan una opcin
viable en este tipo de simulacin.

Es as por lo que se recurre al uso de los Mapas cognitivos difusos MCD. Ya que
en estos no se necesitan largos clculos matemticos complejos, para obtener
nuevos estados, conociendo acciones futuras que afecten directamente al
sistema.

La creacin de un software de modelamiento de sistemas dinmicos complejos,
utilizando mapas cognitivos difusos y animacin reactiva, permitir a el usuario
analizar y observar de forma clara los estados que se presentan en este tipo de
sistemas, arrojando como resultado una animacin en tiempo que real que refleja
los cambios y efectos que se presentan en estos, los cuales son establecidos
previamente por el usuario, pudiendo tener estos, efectos positivos o negativos en
el sistema dinmico en evaluacin.

El sistema presenta en su pantalla principal, la opcin de inicio de sesin,
dependiendo del usuario, siendo este administrador o invitado, podr tener acceso
a las siguientes operaciones del programa:

Usuario administrador:
- Calcular vector de salida
- Generar animacin
- Guardar animacin datos
- Resetear animacin
- Abrir animacin

53
El usuario como administrador controla todas las operaciones del programa, de
esta forma puede analizar y observas los cambios que se presentan en el MCD y
la animacin, segn los valores iniciales que este digite como entrada del sistema

Usuario invitado:
- Abrir y visualizar la animacin

El usuario como invitado podr visualizar los cambios que se presenten en el MCD
mediante una animacin, y a su vez obtener los datos de las iteraciones realizadas
en los clculos del sistema

3.2.2 Modelo de caso de uso. En la figura 3.1 se describe la secuencia de
eventos que intervienen en el sistema cuando esta siendo utilizado.
















54
Figura 3.1 Diagrama de Casos de Uso














55
3.2.2.1 Documentacin diagramas de caso de uso


- Actores


Tabla 3.1 Actor Usuario
Actor Usuario
Caso de Uso Digitar datos, enviar animacin.
Tipo Primario
Descripcin Actor principal, el cual ejecuta el software y maneja todas operaciones de este


Tabla 3.2 Actor Usuario2
Actor Usuario2
Caso de Uso Ver Animacin, Establecer conexin.
Tipo Secundario
Descripcin
Actor secundario, el cual observa la animacin generada por el sistema y
enviada por el Usuario.
Este usuario solo es un observador de la simulacin, no puede hacer ningn
cambio sobre los clculos realizados por el sistema.


Tabla 3.3 Actor Sistema
Actor Sistema
Caso de Uso Calcula v. salida, calcular temperatura, calcular salinidad, generar animacin.
Tipo Secundario
Descripcin Realiza todas las operaciones, clculos y animaciones propias del software.










56
- Casos de Uso


Tabla 3.4 Caso de uso digitar datos
Caso de Uso Digitar datos
Actores Usuario
Tipo Bsico
Propsito
Le permite al usuario establecer los valores iniciales con los que va ha
realizar las operaciones y animaciones el sistema.
Resumen
El usuario digita el vector de entrada inicial, llena los campos de la matriz
de adyacencia, correspondientes a las variables difusas de temperatura y
salinidad, y establece el valor de la variable landa.
Pre-condiciones Ninguna
Flujo Principal Ninguno
Subflujos
S.1. Principal. La pantalla principal del programa presenta la opcin de
digitar todos los datos requeridos, para que el sistema ejecute las
operaciones necesarias y obtenga un resultado final del proceso.
S.2. Digitar datos Se muestra en la pantalla principal una fila compuesta
por una serie de Inputs (campos de entrada de datos), en los que se
ingresan los valores iniciales del vector de entrada. Al igual que se cuenta
con un campo aparte donde se podr digitar el valor de la variable Landa.
Excepciones
E.1. Datos numricos. Los datos digitados deben ser solo numricos,
comprendidos desde 0 hasta 1, con un mximo de 5 caracteres
incluyendo el punto, no se permite el ingreso de nmeros negativos.


Tabla 3.5 Caso de uso Guardar datos - animacin
Caso de Uso Guardar Datos - Animacin
Actores Usuario, Sistema, Usuario2
Tipo Bsico
Propsito El usuario puede enviar la animacin a otro PC
Resumen
El usuario establece una conexin con otro PC y enva la animacin
generada por el sistema a un usuario2
Pre-condiciones
Es necesario que el sistema halla calculado el vector de salida y
generado la animacin
Flujo Principal
Luego que el sistema calcula el vector de salida (caso de uso Calcular V.
Salida) y genera la animacin correspondiente a este calculo (caso de
uso Generar animacin), le es permitido al usuario guardar la animacin y
los datos de esta, por medio de la activacin del botn Guardar, dando
como resultado la ejecucin del caso de uso Guardar datos animacin.
Subflujos
S.1. Principal. La pantalla principal del programa muestra el botn
Guardar donde el usuario puede enviar los valores finales del vector de
salida hacia otro PC, para generar la animacin.
Excepciones
E.1. Calcular vector de salida. El vector de salida debe haber sido
calculado por el sistema, si este calculo no se ha efectuado, no se podr
enviar los datos hacia el otro PC, y el botn Guardar aparece desactivado
57
Tabla 3.6 Caso de uso Ver animacin
Caso de Uso Ver animacin
Actores Usuario2, Usuario
Tipo Bsico
Propsito Permite mostrar la animacin enviada por el usuario
Resumen El usuario2 visualiza la animacin enviada por el usuario en otro PC
Pre-condiciones
Se necesita que los datos resultantes de los clculos hallan sido enviados
por el usuario y se establezca una conexin entre las dos maquinas
Flujo Principal
El usuario principal por medio del botn Guardar ejecuta el caso de uso
Guardar animacin datos, posterior a esto escoge la direccin dentro
del servidor donde va ha ser guardado el archivo con la animacin y los
datos. Permitiendo de esta forma que el usuario2 pueda acceder a la
animacin y los resultados obtenidos por el programa, ejecutndose as el
caso de uso Ver animacin
Subflujos
S.1. Principal La pantalla principal del programa instalado en el otro PC,
mostrara un botn de Abrir , el que permite recibir los datos enviados por
el usuario principal y de acuerdo estos generar la animacin
Excepciones
E.1. Envi de datos. Para que el ususario2 pueda ver la animacin es
necesario que los datos hayan sido guardados en una direccin del
servidor, donde el ususario2 pueda ubicar y abrir el archivo con la
animacin y los datos.


Tabla 3.7 Caso de uso Establecer conexin
Caso de Uso Establecer conexin
Actores Usuario, Usuario2
Tipo Inclusin
Propsito Establecer la conexin entre los dos PCs
Resumen
Se realiza la conexin entre los dos PCs del Usuario y Usuario2, para que
el Usuario2 pueda recibir los datos de la animacin por parte del PC del
usuario principal.
Pre-condiciones Ninguno
Flujo Principal Ninguno
Subflujos Ninguno
Excepciones Ninguno







58
Tabla 3.8 Caso de uso Generar animacin
Caso de Uso Generar animacin
Actores Sistema
Tipo Bsico
Propsito Generar la animacin de acuerdo a los cambios en el v de salida.
Resumen Muestra la animacin y sus cambios al usuario
Pre-condiciones Calculo del vector de salida por parte del sistema
Flujo Principal
El sistema realiza los clculos e iteraciones necesarias para obtener el
vector de salida final (ejecucin Caso de uso Calcular v salida), para de
esta forma generar la animacin y ejecutar el caso de uso Generar
animacin
Subflujos
S.1. Principal La pantalla principal del programa muestra los cambios del
vector de salida por medio de una animacin
Excepciones Ninguno


Tabla 3.9 Caso de uso Calcular V. Salida
Caso de Uso Calcular V. Salida
Actores Sistema, Usuario
Tipo Bsico
Propsito
Realizar los clculos e iteraciones necesarias para obtener un resultado final
del estado del MCD
Resumen Realiza una serie de iteraciones hasta encontrar un vector de salida ideal.
Pre-condiciones
Es necesario que el usuario previamente digite los valores del MCD, vector de
entrada, landa y variables difusas de salinidad y temperatura, para que luego el
sistema realice los clculos e iteraciones necesarias para encontrar un estado
final de la animacin y sus transiciones.
Flujo Principal
El usuario principal digita los datos en los campos requeridos (Ejecucin del
caso de uso digitar datos), para que el sistema pueda realizar lo clculos e
iteraciones necesarias, y de esta forma generar un vector de salida final.
Subflujos
S.1. Principal Los valores resultantes del vector de salida final se presentan al
usuario, as como tambin las iteraciones y valores que se calcularon para
llegar a este vector final.
Excepciones
E.1. Informacin incompleta. Todos los campos de entrada (Inputs) deben
estar llenos, en caso de que falte alguno(s), se mostrara un mensaje
solicitando ingresar todos los datos y no se ejecutara la operacin indicada por
el usuario en ese momento hasta que estn todos llenos.






59
Tabla 3.10 Caso de uso Calcular nivel de temperatura
Caso de Uso Calcular nivel temperatura
Actores Sistema
Tipo Inclusin
Propsito
Dependiendo del valor de temperatura que digite el usuario, el sistema
calculara su valor correspondiente y efecto que este tiene en el MCD
Resumen
Al ser un nodo difuso la temperatura puede tener valores positivos o
negativos, lo cual hace necesario un previo calculo de su valor y efectos
sobre el MCD
Pre-condiciones
Digitar el valor de la temperatura, en la ubicacin establecida para esta
en la matriz.
Flujo Principal
El usuario principal digita un valor en el campo requerido para la
temperatura, (Ejecucin del caso de uso digitar datos), para que
posteriormente el sistema pueda calcular el nivel de la temperatura, y
ejecute de esta forma el caso de uso Calcular nivel de temperatura
Subflujos
S.1. Principal En la pantalla principal se encuentra el campo de entrada
especifico para calcular en nivel de temperatura, junto con el resto de
variables que intervienen en los clculos del MCD
Excepciones
E.1. Informacin incompleta. El campo de entrada (Input) de la
temperatura debe estar lleno, para que el sistema pueda transformar el
valor digitado a su correspondiente en el MCD
E.2. Datos numricos. Los datos digitados deben ser solo numricos.


Tabla 3.11 Caso de uso Calcular nivel de salinidad
Caso de Uso Calcular nivel salinidad
Actores Sistema
Tipo Inclusin
Propsito
Dependiendo del valor de salinidad que digite el usuario, el sistema
calculara su valor correspondiente y efecto que este tiene en el MCD
Resumen
Al ser un nodo difuso la salinidad puede tener valores positivos o
negativos, lo cual hace necesario un previo calculo de su valor y efectos
sobre el MCD
Pre-condiciones
Digitar el valor de la salinidad, en la ubicacin establecida para esta en la
matriz.
Flujo Principal
El usuario principal digita un valor en el campo requerido para la
salinidad, (Ejecucin del caso de uso digitar datos), para que
posteriormente el sistema pueda calcular el nivel de la salinidad, y ejecute
de esta forma el caso de uso Calcular nivel de salinidad.
Subflujos
S.1. Principal En la pantalla principal se encuentra el campo de entrada
especifico para calcular en nivel de salinidad, junto con el resto de
variables que intervienen en los clculos del MCD
Excepciones
E.1. Informacin incompleta. El campo de entrada (Input) de la salinidad
debe estar lleno, para que el sistema pueda transformar el valor digitado a
su correspondiente en el MCD
E.2. Datos numricos. Los datos digitados deben ser solo numricos.

60

3.2.3 Modelo de Interfaz. Se muestran a continuacin las principales pantallas
diseadas para MCD Simulator, las cuales se clasifican segn el tipo de usuario,
que puede ser; administrador o invitado


Pantallas de inicio y cerrado de sesin


Figura 3.2 Pantalla de inicio de sesin



61
Pantalla de inicio de sesin (Fig.3.2), el usuario en esta pantalla tiene dos
opciones, ingresar como administrado o como invitado, dependiendo del password
que digite.


Figura 3.3 Pantalla de cerrado de sesin



En la pantalla de cerrado de sesin (Fig.3.3) el usuario puede cambiar su estado
dependiendo de las operaciones que desee hacer, sean estas como administrador
o invitado.



62
Pantallas de administrador


Figura 3.4 Pantalla principal de administrador



En pantalla del administrador (Fig.3.4), el usuario puede realizar todas las
operaciones que ofrece el programa. Como son: Calcular vector de salida y
generar animacin (botn calcular), guardar animacin datos (botn guardar),
resetear animacin (botn reset) y abrir animacin (botn abrir). Para realizar las
operaciones anteriores, el usuario como administrador puede digitar en los
campos de entrada establecidos, (inputs) los valores del vector de entrada,
variables difusas de temperatura, salinidad y de la variable Landa

63
Figura 3.5 Pantalla guardar animacin



La pantalla de guardar animacin (Fig.3.5) le presenta al usuario administrador,
un campo de entrada en el que podr especificar el nombre, con el cual va ha
guardar el archivo que va ha contener la animacin y los datos de esta.
64
Pantallas de invitado


Figura 3.6 Pantalla principal invitado



En esta pantalla (Fig.3.6), el usuario como invitado, puede abrir y visualizar la
animacin junto con los datos del vector de salida (botn abrir), que han sido
generados y guardados en el servidor por el administrador.
65
Figura 3.7 Pantalla abrir animacin



La pantalla de abrir animacin (Fig 3.7) le presenta al usuario invitado, un campo
de entrada en el que podr especificar el nombre, con el cual va ha abrir el
archivo que va ha contener la animacin y los datos de esta.
66
3.3. MODELADO DE ANALISIS
3.3.1 Diagrama de estado


Figura 3.8 Diagrama de estado
67
3.4 MODELADO DE DISEO
3.4.1 Diagrama de flujo


Figura 3.9 Diagrama de flujo
68
Figura 3.10 Continuacin A Diagrama de Flujo





Figura 3.11 Continuacin B Diagrama de Flujo


69
4. ASPECTOS DE INFRAESTRUCTURA


4.1 RECURSOS HUMANOS
- Director: Ing. Juan Antonio Contreras Montes
- Asesores: Ing. Lisbeth Urueta, Ing. Juan Pablo Paz.
- Investigadores: David Amaya, Antonio Pinedo.


4.2 DESCRIPCIN DE EQUIPOS Y/O LABORATORIOS REQUERIDOS
- Laboratorio de Robtica
- Equipos de cmputo con sistema operativo Windows 98 o superior, y
maquina virtual de Java.
- Lenguaje Flash (Action Script)


4.3 FUENTES DE FINANCIACIN Y PRESUPUESTO


Tabla 4.1 Fuente de financiacin y presupuesto
No Descripcin
Unidad Cantidad
Valor
unitario
Valor
parcial
Subtotal
RECURSOS FISICOS
1 Papelera y
varios
Global 1 500.000 500.000
2 Impresin Global 1 160.000 160.000
3 Computador Horas 160 1.500 240.000
4 Transporte Global 1 90.000 50.000
COSTO TOTAL DEL PROYECTO 950.000

70
4.4 CRONOGRAMA DE ACTIVIDADES.


Tabla 4.2 Cronograma de actividades
Actividades
(tiempo en
semanas)
MARZO ABRIL MAYO JUNIO JULIO AGOSTO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Recopilacin
informacin del
manglar

Recopilar
informacin
sobre MCD y
sus aplicaciones

Caractersticas
de un sistema
reactivo

Diseo de
sistema
modelacin
mediante MCDs

Desarrollo de un
modelador de
sistemas
dinmicos junto
a una animacin

Implementacin
y simulacin de
MCDs




71
5 CONCLUSIONES


Los mapas cognitivos difusos se establecen en la actualidad, como una poderosa
herramienta para analizar relaciones entre conceptos, y modelar sistemas
reactivos con dinmicas extremadamente complejas, que son prcticamente
imposibles de modelar mediante ecuaciones matemticas, debido al gran numero
de variables, y relaciones que ocurren entre estas.

La implementacin de sistemas reactivos en la evaluacin y observacin de
ambientes y fenmenos, permite percibir de una forma fcil y sencilla, la
interaccin que se presenta entre los diferentes componentes que hacen parte de
este tipo de entornos, en donde, el sistema reactivo recibe los estmulos del
entorno en evaluacin y a su vez produce salidas en respuesta a estos estmulos
recibidos. El orden de estos eventos sucede de forma impredecible, estando
determinados externamente, es decir, el orden de ejecucin de las instrucciones
puede venir establecido por la ocurrencia de eventos o estmulos externos.

La creacin de un programa reactivo, se fundamenta en el desarrollo y diseo de
dos componentes bsicos. Conformado por un sistema de modelacin y otro de
animacin, el uno y el otro trabajan cada componente de forma independiente,
trayendo esto, ventajas notables en el progreso del sistema, ofreciendo cierta
flexibilidad e independencia a los diseadores y desarrolladores. Sin embargo, es
de gran importancia definir previamente y con sumo cuidado las caractersticas de
cada componente, con el fin de que cada uno sea el complemento ideal del otro.
72
BIBLIOGRAFA


- EFRONI, S., HAREL, D., COHEN, I. Reactive Animation: Realistic Modeling
of Complex Dynamic Systems. IEEE Computer Society, 2005. vol. 38, pp.
38 47.


- FULLR, Robert. Neural Fuzzy Systems, Abo Akademy University, 1995.


- HARARY, F. On The Measurement of Structural Balance, Behavior
Science, 1959. vol. 4, pp.316-323.


- KOSKO, Bart. Fuzzy Thinking. Hyperion, 1998.


- NAKAMURA, K. Decision Support Using Causation Knowledge Base,
IEEE Transactions on Systems Man And Cybernetics, 1982 vol. 12, pp.765-
777


- TSADIRAS, A., MARGARITIS, K. A New Balance for Fuzzy Cognitive
Maps, Department of Applied Informatics, University of Macedonia, 1998.



73











































74











































75
MANUAL DE USUARIO


REQUERIMIENTOS DEL SISTEMA

MCD SIMULATOR v1.0, es una aplicacin creada para poder observar la
simulacin de un sistema dinmico complejo especifico (ecosistema de manglar),
y as saber cuales son los factores que lo afectan lo favorecen en determinada
zona.

Requerimientos del sistema

Procesador de 1.5 Ghz superior.
Memoria RAM de 256MB superior.
Unidad de lectura de discos.
60 MB libres en disco.
Flash Player 8 Plug-in.
Windows 98-XP o superiores.
Servidor PHP local o externo.
76
COMO UTILIZAR MCD SIMULATOR v1.0


Al ejecutar MCD SIMULATOR v1.0 se desplegar una pantalla de inicio de
sesin, la cual permitir entrar de dos maneras: como usuario invitado o
administrador, tal como se muestra en la figura 1.


Figura 1. Login.





Password nico para acceder como
invitado o administrador
Nota: Password invitado: user
Password administrador: admin
Botn de ingreso
Nombre de la
aplicacin
77
1. MODO DE USUARIO INVITADO

Accediendo a la aplicacin en modo usuario invitado, se podr ver como se crea o
carga el primer ecosistema manglar que aparece por defecto, seguido de la
pantalla de trabajo del invitado. Tal como se muestra en la figura 2.


Figura 2. Carga de mapa en modo usuario invitado






Carga de mapa del ecosistema
78
Al ser usuario invitado tendr la opcin de Abrir un Archivo existente, el cual
contendr clculos que se hallan hecho en el sistema con su respectiva
animacin, para visualizar los cambios sufridos por el ecosistema, tambin tendr
la opcin de Salir del sistema. Adems aparecer un cuadro de texto que muestra
la informacin de los clculos realizados, tal como se observa en la figura 3.

Situando el cursor sobre el mapa, se muestra la ubicacin de un punto sobre la
animacin del ecosistema.


Figura 3. Pantalla principal en modo usuario invitado.



Botn de salida/ cierre de sesin
Botn para abrir
Cuadro de visualizacin
de operaciones
Ubicacin en el mapa
79
Si escogi la opcin Abrir aparecer la pantalla que se muestra en la figura 4, en
la cual deber digitar el nombre del archivo con la extensin *.MCD en caso de
conocerlo, de lo contrario al hacer click sobre la opcin Buscar se desplegar una
ventana de bsqueda en la cual ubicar el nombre del archivo, el cual por defecto
se ubica en la carpeta files, tal como se muestra en la figura 5.

Como se muestra en la figura 4, luego de conocer el nombre del archivo deber
pulsar el botn Abrir para cargar la animacin y los datos contenidos en el archivo,
tal como aparece en la figura 6.


Figura 4. Abrir.


Botn para Volver a
la pantalla principal
Nombre del archivo Botn de
apertura del
archivo
Botn de
bsqueda
80
Figura 5. Bsqueda de archivo
.



Tendr la opcin de cancelar el proceso de carga de la animacin del mapa,
haciendo click sobre el botn cancelar que aparece en la figura 6.







Extensin
del archivo
Cuadro de
bsqueda
81
Figura 6. Carga o de un nuevo mapa.





Al terminar la carga del mapa se mostrarn las iteraciones necesarias para la
creacin del nuevo mapa, como se observa en la figura 7.






Cancelacin de un mapa que se
este cargando
Carga del nuevo mapa
82
Figura 7. Mapa cargado con su tabla de resultados.







S despus de haber observado la animacin y los datos, desea salir del sistema
deber pulsar el botn Salir, donde aparecer la pantalla que se muestra en la
figura 8, la cual muestra las opciones de Cerrar sesin o Salir del sistema. La
primera opcin permite regresar a la animacin y a los datos calculados, la
segunda opcin es para cerrar la sesin y permitirle el acceso a otra persona, y la
ltima es para cerrar la aplicacin.
Cuadro de resultados de
los calculo hechos en el
mapa cargado
83
Figura 8. Salir.






Botn para
Volver a la
pantalla principal
Cerrar sesin
Cerrar aplicacin en la
forma de ejecucin
84
2. MODO DE USUARIO ADMINISTRADOR

En el modo administrador, usted deber ejecutar el archivo mcd_v1.html
acompaado en la misma ubicacin por los archivos crearMCDFile.php,
mcd_v1.swf y una carpeta llamada files (donde se guardaran los archivo *.MCD),
desde un servidor PHP local o externo, y abrir la aplicacin en un explorador de
Internet.

Inicialmente se cargar la animacin que contiene el mapa del ecosistema, que se
observa en la figura 9.


Figura 9. Carga del mapa del sistema
.
Carga del mapa del ecosistema
85
Luego de haber cargado el mapa, aparecern las opciones de Calcular, Guardar,
Reset, Abrir y Salir, al igual que los campos de entrada de informacin
correspondiente al vector inicial, variables difusas de temperatura y salinidad, y
landa


Figura 10. Pantalla principal de modo administrador.







Campos de
entrada de datos
Ayuda para la utilizacin
de este factor
Descripcin de campos e indicador
de campos faltantes
Cuadro de ayuda
Variable Landa
86
Despus de haber digitado la informacin necesaria en los campos de entrada,
podr realizar los clculos haciendo click sobre el botn Calcular y de esta forma
observar la animacin e iteraciones realizadas por el sistema, como se muestra en
la figura 11.

Figura 11. Clculos.





El botn de expansin que se seala en la figura 11, le permitir ampliar la tabla
de las iteraciones resultantes, como se observa en la figura 12.



Vector de resultados
Resultado de las
operaciones
Botn de expansin
del cuadro de
resultados
87
Figura 12. Cuadro expandido.





Para guardar la animacin deber presionar el botn Guardar, donde aparecer
un campo de entrada, en el cual usted deber digitar el nombre del archivo a
guardar, como se observa en la figura 13.
Botn para contraer el
cuadro de resultados
88
Figura 13. Guardar




Si escogi la opcin Abrir, aparecer la pantalla que se muestra en la figura 14, en
la cual deber digitar el nombre del archivo con la extensin *.MCD en caso de
conocerlo, de lo contrario al hacer click sobre la opcin Buscar se desplegar una
ventana de bsqueda en la cual se ubicar el nombre del archivo, el cual por
defecto se ubica en la carpeta files, tal como se muestra en la figura 15.

Como se muestra en la figura 14, luego de conocer el nombre del archivo deber
pulsar el botn Abrir para cargar la animacin y los datos contenidos en el archivo,
tal como aparece en la figura 16.
Botn para guardar Nombre del archivo
a guardar
89
Figura 14. Abrir.













Botn para
Volver a la
pantalla principal
Nombre del
archivo
Botn de
apertura del
archivo
Botn de
bsqueda
90
Figura 15. Bsqueda de archivo
.



Tendr la opcin de cancelar el proceso de carga de la animacin del mapa,
haciendo click sobre el botn cancelar que aparece en la figura 16.







Extensin
del archivo
Cuadro de
bsqueda
91
Figura 16. Carga de un nuevo mapa.






Al terminar la carga del mapa se mostrarn las iteraciones necesarias para su
creacin, como se observa en la figura 17.





Cancelacin de un mapa que se
este cargando
Carga del nuevo mapa
92
Figura 17. Mapa cargado con su tabla de resultados.







S despus de haber observado la animacin y los datos, desea salir del sistema
deber pulsar el botn Salir, donde aparecer la pantalla que se muestra en la
figura 18, la cual muestra las opciones de Cerrar sesin o Salir del sistema. La
primera opcin permite regresar a la animacin y a los datos calculados, la
segunda opcin es para cerrar nuestra sesin y permitirle el acceso a otra persona
y la ltima es para cerrar la aplicacin.
Cuadro de resultados de
los calculo hechos en el
mapa cargado
93
Figura 18. Salir.






En la pantalla que se muestra en la figura 19, aparecen los nombres de las
personas que fueron participes durante el desarrollo de MCD SIMULATOR 1.0.





Botn para
Volver a la
pantalla principal
Cerrar sesin
Cerrar aplicacin en la
forma de ejecucin
94
Figura 19. Crditos.




Acerca de MCD
95
3. RESTRICCIONES DE MCD SIMULATOR 1.0

En la pantalla de login o inicio de sesin, el password debe ser escrito en letras
minsculas, siendo este para el administrador admin y para el invitado user. Fig.20


Figura 20. Pantalla de inicio de sesin


Password aceptado solo en
letras minsculas
96
Dentro de la pantalla principal de administrador, todos los campos de entrada
(vector de entrada y Variable landa) deben estar llenos en su totalidad, con el valor
o dato aceptado por el sistema como se muestra e la figura 21, para una buena
realizacin de los clculos e iteraciones del MCD.


Figura 21. Restricciones pantalla principal Administrador







Campos de entrada solo
aceptan nmeros
positivos de 0 a 1.
Campos de entrada solo
aceptan valores numricos
Valores de landa numricos
comprendidos entre 0 y 1.
Botones Reset y Guardar
desactivados, hasta previa
ejecucin del botn guardar
97
En la pantalla de administrador de guardar archivo, el nombre del archivo a
guardar debe contener al menos 4 caracteres. Fig. 22.


Figura 22. Restricciones guardar archivo

Nombre de archivo a guardar
mnimo de 4 caracteres.
98
Para abrir un archivo (figura 23) el invitado necesita digitar el nombre correcto de
este, junto con su extensin. Ej. Mapa1.mcd, de lo contrario aparece un mensaje
de error en la apertura del archivo.


Figura 23. Abrir archivo










Se digita el nombre del archivo a
abrir con su extensin (*.mcd).
99











































100
MANUAL DE SISTEMA


El diseo y codificacin de MCD Simulator se bas en dos componentes
principales: uno Lgico, donde se incluyen todas las operaciones, clculos
matemticos e iteraciones que realiza el sistema, y un componente visual o
grfico, el cual se encarga de la interfaz visual y la animacin del MCD,
dependiendo de los resultados de los clculos que este reciba.
A continuacin se describen el cdigo y funciones principales de los dos
componentes anteriormente mencionados.


Codificacin componente lgico

1. Variables:

//========================DECLARACION DE VARIABLES================================

var numero:Number; // Variable que almacena datos de los inputs al vector de entrada
var gridSize:Number = 9; // variable que contiene el tamao de los arreglos utilizados
var i:Number; // Contador utilizado en diversos ciclos
var j:Number; // Contador utilizado en diversos ciclos
var vmin:Array = new Array(gridSize); // Arreglo que almacena el producto matricial
var ve:Array = new Array(gridSize); // Arreglo que almacena el vector de entrada
var vr:Array = new Array(gridSize); // Arreglo que almacena el vector resultante
var h:Number; // variable que almacena los clculos de Hamacher
var landa:Number; // variable que interviene en la T-Conorma de Hamacher
var cont:Number; // Contador de elementos iguales entre el vector de entrada y el resultante
var ite:Number = 1; // Contador de iteraciones
var sc:Number; // variable que almacena la sumatoria del producto matricial
var tep:Number; // almacena el valor inicial de la temperatura digitado por el usuario
var py:Number; // almacena el resultado del calculo del nuevo valor de la temperatura
var auxi:Number; // variable auxiliar para el calculo de la temperatura
var salini:Number; // almacena el valor inicial de la salinidad digitado por el usuario
var py2:Number; // almacena el resultado del calculo del nuevo valor de la salinidad
101
var auxi2:Number; // variable auxiliar para el calculo de la salinidad
var cinp:Number; // contador utilizado en el ciclo de llenado del vector de entrada
var hi:Number; // contador utilizado en el ciclo impresin del vector resultante en la 3era fila de ouputs


2. Funciones

calcularDatos: Realiza todas la operaciones necesaria para calcular las
iteraciones y el vector resultante del MCD.

Funcin:
//-----------------------------------------------------
//Calcula todas las operaciones
//-----------------------------------------------------
_global.calcularDatos = function() {

//************* Llenado de los valores en las posiciones de la matriz, en donde existen relaciones del MCD.*************

mat[0][1] = form1["campo"+0].mytf.text;
mat[0][2] = form1["campo"+1].mytf.text;
mat[2][0] = form1["campo"+2].mytf.text;
mat[3][0] = form1["campo"+3].mytf.text;
mat[6][0] = form1["campo"+6].mytf.text;
mat[7][3] = form1["campo"+7].mytf.text;
mat[8][0] = form1["campo"+8].mytf.text;
mat[8][1] = form1["campo"+8].mytf.text;
mat[9][3] = form1["campo"+9].mytf.text;

//*****************************************************************************************

//******************* Calculo del valor de variable difusa temperatura*********************
tep = Number(form1["campo"+4].mytf.text);
if ((tep<5) || (tep>45)) { // Valores < 5 o > 45 la temperatura tendr un efecto negativo de -1 sobre el mangle
py = -1;
} else {
if ((tep<25) && (tep>=5)) { // Valores < 25 y >=5 tendrn una rango de -1 a 0.9 de efecto en el mangle
auxi = (tep-5)*0.1;
py = auxi-1;
}
if ((tep>=25) && (tep<=45)) ( // Valores >= 25 y <=45 tendrn una rango de 1 a -1 de efecto en el mangle
102
auxi = (tep-45)*-0.1;
py = auxi-1;
}
}
//*****************************************************************************************

mat[4][0] = py; // Se almacena el valor calculado en la posicin correspondiente a la temperatura en la matriz
form1["campo"+4].mytf.text = py;

//******************* Calculo de variable difusa de temperatura*********************
salini = Number(form1["campo"+5].mytf.text);
if ((salini<25) || (salini>65)) { // Valores < 25 o > 65 la salinidad tendr un efecto negativo de -1 sobre el mangle
py2 = -1;
} else {
if ((salini<45) && (salini>=25)) { // Valores < 45 y >=25 tendrn una rango de -1 a 0.9 de efecto en el mangle
auxi2 = (salini-25)*0.1;
py2 = auxi2-1;
}
if ((salini>=45) && (salini<=65)) { // Valores >= 45 y <=65 tendrn una rango de 1 a -1 de efecto en el mangle
auxi2 = (salini-65)*-0.1;
py2 = auxi2-1;
}
}
//*****************************************************************************************
mat[5][0] = py2; // Se almacena el valor calculado en la posicin correspondiente a la temperatura en la matriz
form1["campo"+5].mytf.text = py2;

//****************** Imprime los valores de la matriz en el output ********************
for (i=0; i<=gridSize; i++) {
for (j=0; j<=gridSize; j++) {
a = a+mat[i][j]+" ";
output.mytf.text = a;
}
a = a+"\n";
}
//******************************************************************************************

//*************** Se llena el vector de entrada *****************************************
cinp = 0;
for (i=10; i<=19; i++) {
numero = Number(form1["campo"+i].mytf.text);
ve[cinp] = numero;
cinp++;
103
}
*******************************************************************************************

//*************** Se crea la tabla de va ha contener el vector resultante y las iteraciones**********
//output.mytf.text += "\n"+date_str2+"\n";
output.mytf.text += "\n"+"ITERACIONES: "+"\n";
output.mytf.text += " "+""+"\n";
output.mytf.text += " "+" C1C2C3C4C5C6C7C8C9C10"+"\n";
output.mytf.text += " "+""+"\n";
*************************************************************************************************************

***************************************CALCULOS PRINCIPALES DEL MCD ***************************
do {
for (j=0; j<=gridSize; j++) {
//**************** MULTIPLICACIN MATRICIAL ENTRE EL VECTOR DE ENTRADA Y LA MATRIZ *****************
for (i=0; i<=gridSize; i++) {
vmin[i] = Number(ve[i]*mat[i][j]);
}
//******************VALIDA SI UN VECTOR ESTA COMPUESTO SOLO POR CEROS**********************************
sc = 0;
for (i=0; i<gridSize; i++) {
sc = sc+vmin[i]; // Sumatoria de lo elementos del arreglo
}
if (sc != 0) {
//Si la sumatoria no es cero, se aplica la t conorma de hammacher en el arreglo

//******************************** T-CONORMA DE HAMACHER*********************************************************
landa = Number(form1.ye.mytf.text);
h = vmin[0];
for (i=1; i<=gridSize; i++) {
h = (h+vmin[i]-(2-landa)*h*vmin[i])/(1-(1-landa)*h*vmin[i]); // calculo t-conorma de hamacher
}
//*******************************************FUNCIN SIGMOIDAL********************************************************
vr[j] = 1/(1+Math.exp(Number(-h)));
} else {
vr[j] = ve[j];
}
}
//*********************************************************DETENER*********************************************************
cont = 0;
(ite<10) ? output.mytf.text += "0"+ite+" " : output.mytf.text += ite+" ";
for (i=0; i<=gridSize; i++) {
if (ve[i] == vr[i]) {// Compara los elementos del vector de entrada y el resultante
104
cont++; // Si existen elementos iguales se incrementa en contador
}
ve[i] = vr[i]; // Vector resultante se convierte en el prximo vector de entrada
//************************DIVISIONES DE LA TABLA QUE CONTIENE A LAS ITERACIONES***************************
if ((length(vr[i])>=1) and (length(vr[i])<3)) {
tamLinea = " ";
}
if ((length(vr[i])>=3) and (length(vr[i])<=4)) {
tamLinea = " ";
}
if (length(vr[i])>=19) {
tamLinea = " ";
}
if ((length(vr[i])>=15) and (length(vr[i])<=18)) {
tamLinea = " ";
}
output.mytf.text += +vr[i]+tamLinea;
}
//***********************************************************************************************************************************
if (cont>=10) { // Si el cont>=10 el vector resultante es igual al de entrada y se detienen las iteraciones
output.mytf.text += "\n"+" "+""+"\n";
output.mytf.text += "\n"+" Total de Iteraciones: "+ite+"\n";
ite = 0;
} else {
output.mytf.text += "\n"+" "+""+"\n";
}
ite++;
} while (cont<10); // Si cont<10 el vector resultante es diferente al de entrada y deben continuar las iteraciones
hi = 20;
for (i=0; i<=gridSize; i++) {
form1["campo"+hi].toOutput(vr[i]); // Se imprime los elementos del vector final en la 3er fila de outputs
hi++;
}
};

reemplazo: Funcin que se encarga de reasignar un nuevo valor a los elementos
de la matriz que crea la animacin del mapa, para cuando se presente un cambio
en la animacin, los elementos de esta cambien dependiendo del valor que le es
asignado en el reemplazo.

105
Funcion:

//-----------------------------------------------------
//Reasignacion de datos
//-----------------------------------------------------
_global.reemplazo = function() {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 1) {
matrix[i][j] = 50;
}
if (matrix[i][j] == 2) {
matrix[i][j] = 60;
}
if (matrix[i][j] == 3) {
matrix[i][j] = 70;
}
if (matrix[i][j] == 4) {
matrix[i][j] = 80;
}
if (matrix[i][j] == 5) {
matrix[i][j] = 90;
}
if (matrix[i][j] == 6) {
matrix[i][j] = 55;
}
if (matrix[i][j] == 7) {
matrix[i][j] = 65;
}
if (matrix[i][j] == 8) {
matrix[i][j] = 75;
}
if (matrix[i][j] == 9) {
matrix[i][j] = 85;
}
if (matrix[i][j] == 10) {
matrix[i][j] = 95;
}
}
}
};

106
cambios: Esta funcin realiza los cambios en la matriz de la animacin,
cambiando los valores de los elementos de la matriz que forman el dibujo de la
animacin, dependiendo del resultado del vector resultante.

Funcion:

//-----------------------------------------------------
//Cambios de datos
//-----------------------------------------------------

_global.cambios = function(vect) {
// ***********************************************DISMINUCION DEL MANGLE****************************************************
var vrRound = vect; // Captura y redondea el valor final del estado del mangle para su posterior evaluacin
if ((vrRound>=40) && (vrRound<=49)) { // Dependiendo del valor de vrRound realiza los cambios en la animacin
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 2;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 3;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 4;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 5;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 7;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 9;
}
107
if (matrix[i][j] == 85) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 10;
}
}
}
}
if ((vrRound>=30) && (vrRound<=39)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 3;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 4;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 5;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 7;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 9;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 10;
}
}
108
}
}
if ((vrRound>=20) && (vrRound<=29)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 4;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 5;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 7;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 9;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 10;
}
}
}
}
if ((vrRound>=10) && (vrRound<=19)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 5;
109
}
if (matrix[i][j] == 60) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 7;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 9;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 10;
}
}
}
}
if ((vrRound>=0) && (vrRound<=9)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 9;
}
110
if (matrix[i][j] == 80) {
matrix[i][j] = 9;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 10;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 10;
}
}
}
}
// ***********************************************AUMENTO DEL MANGLE***************************************

if ((vrRound>=51) && (vrRound<=60)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 2;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 3;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 4;
111
}
if (matrix[i][j] == 55) {
matrix[i][j] = 5;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 7;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 8;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 9;
}
}
}
}





if ((vrRound>=61) && (vrRound<=70)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 2;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 3;
}
if (matrix[i][j] == 55) {
112
matrix[i][j] = 4;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 5;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 7;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 8;
}
}
}
}
if ((vrRound>=71) && (vrRound<=80)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 2;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 3;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 4;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 5;
113
}
if (matrix[i][j] == 85) {
matrix[i][j] = 6;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 7;
}
}
}
}
if ((vrRound>=81) && (vrRound<=100)) {
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
if (matrix[i][j] == 50) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 60) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 70) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 80) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 90) {
matrix[i][j] = 1;
}
if (matrix[i][j] == 55) {
matrix[i][j] = 2;
}
if (matrix[i][j] == 65) {
matrix[i][j] = 3;
}
if (matrix[i][j] == 75) {
matrix[i][j] = 4;
}
if (matrix[i][j] == 85) {
matrix[i][j] = 5;
}
if (matrix[i][j] == 95) {
matrix[i][j] = 6;
}
114
}
}
}
};

resetMap: Reinicia los valores que trae por defecto el mapa, lo cual hace que la
animacin vuelva a su estado original

Funcin:

//-----------------------------------------------------
//Resetea el mapa
//-----------------------------------------------------
_global.resetMap = function() {
_global.mapa = _root["world"+1];
for (i=0; i<36; i++) {
for (j=0; j<84; j++) {
_root.world2[i][j] = _root.world1[i][j]; /* Reemplaza los elementos de la matriz con los cambios,
con los de la matriz original, que es una copia de los que tenia antes la matriz que cambio */
}
}
};

myStatus: Imprime el mensaje de ayuda en la barra de estado, junto con la hora
en el que se mostr en pantalla.

Parmetros:
- mytext: Cadena de caracteres que contiene el mensaje de ayuda.






115
Funcion:

//-----------------------------------------------------
//Barra d estado
//-----------------------------------------------------
_global.myStatus = function(mytext) {
statusBar.khead(date_str2+mytext, "", 3, 10); //Muestra la hora seguido del mensaje en la barra de estado
};
enviarDatos: Crea y guarda el archivo que contiene los resultados de las
iteraciones y el vector resultante, los cuales van a establecer los cambios en la
animacin. Ej.: mapa.mcd
Funcin:

//-----------------------------------------------------
//Guardar archivo
//-----------------------------------------------------
function enviarDatos() {
valor = path.vr[0]; // valor almacena el contenido del vector resultante y la ruta donde se encuentra (path)
valorIter = path.output.mytf.text // valorIter almacena el contenido de las iteraciones y su ruta (path)
envio.vect = Math.round(valor*100); // captura el valor del vector resultante en el archivo php
envio.iter = valorIter; // captura el valor de las iteraciones en el archivo php
envio.action = "crear";
// ********Crea y guarda un archivo con extencion *.MCD con el contenido del v,resultante y las iteraciones*********
envio.file = "files/"+saveAs.mytf.text+".mcd";
envio.sendAndLoad("crearMCDFile.php", recibir, "POST");
}


openFileMCD: Luego de que se abre el archivo, esta funcin llama las funciones
que se encargan de generar y hacer los cambios en la animacin del mapa
(descritas anteriormente), de esta forma el invitado puede visualizar la animacin y
los datos del MCD.

Parmetros:
- vect:. Contiene el valor que indica el estado del mangle.
116
- Iter: Contiene la tabla con las iteraciones que han sido realizadas

Funcion:

//-----------------------------------------------------
//Operaciones abrir archivo
//-----------------------------------------------------
_global.openFileMCD = function(vect, iter) {
resetMap(); // Llamado a la function que reinicia la animacin del mapa
matrix = _root["world"+2]; // Se abre la matriz que contiene la animacin del mapa
reemplazo(); // Llamado a la funcin que reemplaza los valores de la matriz del mapa
cambios(vect); // Se realizan los cambios en la matriz del mapa, segn el valor recibido de vect
_global.mapa = matrix;
renderNewMap(); // Se carga la animacin
output.khead(iter, "", 3, 10);
};
onLoad: verifica la existencia del archivo, lee su contenido y lo envia llamando a
la funcion openFileMCD (descrita anteriormente), para que esta realice los
cambios correspondientes en el mapa.

Funcion:
//-----------------------------------------------------
// onLoad
//-----------------------------------------------------
this.importXML.onLoad = function() {
if (success) { // valida el xito en la carga del archivo
xmlNode = this.firstChild; // busca la primera posicin del contenido capturado en php
vect = xmlNode.childNodes[0].attributes.ve; // lee los atributos del contenido del vector resultante
iter = xmlNode.childNodes[0].attributes.out;// lee los atributos del contenido de las iteraciones
back.mrelease();

openFileMCD(vect, iter); /* llama a la function anteriormente descrita (openFileMCD) y esta ejecuta las operaciones para
cargar el MCD, dependiendo del valor de vect (vector resultante) e iter (iteraciones) que le enve */

} else { // Si no existe el archivo muestra el siguiente mensaje de error en la barra de estado
statusBar.khead("Error de carga o archivo inexistente", "", 3, 10); //
}
};
117
CODIFICACION DE COMPONENTE GRAFICO


1. FUNCIONES GLOBALES
Estas funciones son utilizadas por otras funciones las cuales son llamadas desde
cualquier parte del programa; se utilizan para construir el entorno grafico y los
elementos que se incluyen en este como: inputs, ouputs, mensajes, ventanas
emergentes, efectos de animacin, entre otros.

DotRun: Esta funcin se utiliza para indicar que se esta ejecutando un proceso
del programa durante un tiempo determinado, ejemplo: guardando...

Parmetros:
- mydottext: recibe una cadena de caracteres
- char: recibe un carcter

Funcin:
// --------------------------------------------------------------
// Puntos corriendo
// --------------------------------------------------------------
MovieClip.prototype.dotrun = function(mydottext, char) {
if (char == undefined) {
char = ".";
}
this.maxdot = 4;
this.dots = 0;
this.dotdir = 1;
this.onEnterFrame = function() {
this.dots += this.dotdir;
if (this.dots>=this.maxdot) {
this.dotdir = -1;
} else if (this.dots<1) {
this.dotdir = 1;
}
118
this.tempdots = "";
for (dc=0; dc<this.dots; dc++) {
this.tempdots += char;
}
this.mytf.text = mydottext+this.tempdots;
};
};

khead: Esta funcin sirve para escribir una cadena de caracteres de forma
animada, desde su inicio hasta llegar al ltimo carcter, es usada para imprimir los
mensajes de la barra de estado.

Parmetros:
- newtext: Indica el texto que se va ha imprimir
- oldtext: Indica el texto que va a ser sobrescrito
- lspeed: Velocidad en la que aparece el newtext
- blinkdelay: Duracin del efecto intermitente en la escritura del texto
- shadowtext: Texto oculto
- sethtml: Activa los tags html

Funcin:
// --------------------------------------------------------------
// Escribir texto
// --------------------------------------------------------------
MovieClip.prototype.khead = function(newtext, oldtext, lspeed, blinkdelay, shadowtext, sethtml) {
if (sethtml == undefined) {
sethtml = true;
}
this.temptext = oldtext;
this.i = oldtext.length;
if (lspeed == null) {
lspeed = 1;
}
if (blinkdelay == null) {
blinkdelay = 31;
119
}
this.temptext = "";
this.counter = 0;
this.onEnterFrame = function() {
for (mylspeed=0; mylspeed<lspeed; mylspeed++) {
this.temptext += newtext.charAt(this.i);
if ((newtext.charAt(this.i) == "<") and (sethtml)) {
htmlend = newtext.indexOf(">", this.i);
htmladd = htmlend-this.i;
this.i += htmladd;
this.temptext = newtext.substr(0, this.i);
} else {
this.i++;
}
}
this.mytf.htmlText = this.temptext+"_";
if (shadowtext) {
this.mytf2.htmlText = this.temptext+"_";
}
if (this.i>=newtext.length) {
this.mybool = 1;
this.onEnterFrame = function() {
this.counter++;
this.mybool = !this.mybool;
if (this.mybool == true) {
this.mytf.htmlText = this.temptext+"_";
if (shadowtext) {
this.mytf2.htmlText = this.temptext+"_";
}
} else {
this.mytf.htmlText = this.temptext;
if (shadowtext) {
this.mytf2.htmlText = this.temptext;
}
}
if (this.counter>=blinkdelay) {
this.mytf.htmlText = this.temptext;
if (shadowtext) {
this.mytf2.htmlText = this.temptext;
}
this.counter = 0;
delete this.onEnterFrame;
this.finifunc();
120
this.done = true;
}
};
}
};
};

createoutput: Crea dinmicamente un campo de salida de informacin y le
agrega dos barras de desplazamiento en su borde lateral derecho e inferior.

Parmetros:
- outputname: El nombre de la instancia
- x: Posicin en el eje x
- y: Posicin en el eje y
- w: Ancho
- h: Alto
- d: Profundidad
- mytextformat: Formato de texto
- mylabel: Titulo de la etiqueta

Funcin:
// --------------------------------------------------------------
// Crear un output
// --------------------------------------------------------------
MovieClip.prototype.createoutput = function(outputname, x, y, w, h, d, mytextformat, myLabel) {
this.createEmptyMovieClip(outputname, d);
var _local1 = this[outputname];
_local1._x = x;
_local1._y = y;
_local1.w = w;
_local1.h = h;
// dibuja un cuadrado alrededor del campo de texto
_local1.drawbounds();
// importa un clip de la librera y se usa como color de fondo
_local1.setinputback();
121
// crea el campo de texto, aplica el formato, y adjunta las barras de
desplazamiento
_local1.setoutput(mytextformat);
// crea un campo de texto para la etiqueta y le aplica el formato.
_local1.createLabel(myLabel, mytextformat, require);
};

createinput: Crea dinmicamente un campo de entrada y lo configura para que
este pueda ser utilizado en las operaciones posteriores.

Parmetros
:
- inputname: Es el nombre de la instancia del campo de entrada
- x: Posicin en el eje x
- y: Posicin en el eje y
- w: Ancho
- h: Alto
- d: Profundidad
- mytextformat: Formato de texto aceptado en el campo de entrada
- multiline: Verifica si el texto es multilnea
- maxchars: Mximo de caracteres de entrada
- isNum: Verifica si el texto de entrada es numrico
- mytext: Texto que saldra por defecto
- pass: Verifica si es un password en texto de entrada
- mylabel: Titulo de la etiqueta
- help: Crea un clip con el smbolo de ayuda (ayuda de variables difusas)
- disable: Cuando no se pude escribir nada, asigna un color diferente al texto



122
Funcin:
// --------------------------------------------------------------
// Crear Input
// --------------------------------------------------------------
MovieClip.prototype.createinput = function(inputname, x, y, w, h, d, mytextformat, multiline, maxchars, isNum, mytext, pass,
myLabel, help, disable) {
this.createEmptyMovieClip(inputname, d);
var _local1 = this[inputname];
_local1._x = x;
_local1._y = y;
_local1.w = w;
_local1.h = h;
// dibuja un recuadro en alto relive cuando este est activado
_local1.createoutline("outline", 5);
// dibuja un cuadrado alrededor del campo de texto
_local1.drawbounds();
// importa un clip de la librera y se usa como color de fondo
_local1.setinputback();
// crea el campo de texto, aplica el formato
_local1.setinput(mytextformat, multiline, maxchars, isNum, mytext, pass,
disable);
if (myLabel) {
// crea un campo de texto para la etiqueta y le aplica el formato.
_local1.createLabel(myLabel, mytextformat, help);
}
};


createpopbox: Funcin que se encarga de crear un texto emergente de ayuda.

Parmetros:
- n: Nombre de la instancia
- d: Nivel en el que aparece la ventana de ayuda ( nivel superior delante de
todos los elementos del programa)
- w: Ancho
- tmargin: margen
- tcontent: contenido, cadena de texto.
123
- delay: Retrazo en el tiempo en que aparecer la ventana de ayuda.
- tformat: Formato del texto
- big: Cuando requiere ms de una lnea

Funcion:
// --------------------------------------------------------------
// tooltip
// --------------------------------------------------------------
MovieClip.prototype.createpopbox = function(n, d, w, tmargin, tcontent, delay, tformat, big) {
if (tformat == undefined) {
tformat = standardformat;
}
embedfonts = tformat.embedFonts;
this.createEmptyMovieClip(n, d);
this[n]._alpha = 0;
if ((delay == undefined) || (!delay)) {
this[n].createTextField("mytf", 5, tmargin, tmargin, w-tmargin*2, 100);
this[n].mytf.html = true;
this[n].mytf.embedFonts = true;
this[n].mytf.autoSize = true;
if (big) {
this[n].mytf.multiline = true;
this[n].mytf.wordWrap = true;
}
this[n].mytf.htmlText = tcontent;
this[n].mytf.selectable = false;
this[n].mytf.setTextFormat(tformat);
if ((w == 0) || ((w+tmargin*2)>this[n].mytf.textWidth)) {
w = this[n].mytf.textWidth+tmargin*2+4;
this[n].mytf._width = this[n].mytf.textWidth+4;
}
this[n].attachMovie("inputback", "back", 3, {_x:1, _y:1});
// dibuja un recuadro
this[n].mcreateoutline("outline", w, this[n].mytf._height+tmargin*2, 4, 0x333333);
this[n].back._width = w-2;
this[n].back._height = this[n].mytf._height+tmargin*2-2;
// dibuja la sombra
this[n].popshadow(w, h, tmargin);
// aplica una disolvencia
this[n].mfade({_alpha:100}, 2);
124
// se mueve con el mouse
this[n].initpopdrag();
} else {
// lo que debe demorar en aparecer el tip
this[n].popwait(n, d, w, tmargin, tcontent, delay);
}
};

renderNewMap: Esta funcin se encarga de activar una ventana emergente la
cual permite la creacin y cancelacin de un nuevo mapa.

Funcin:

//-----------------------------------------------------
//render new map
//-----------------------------------------------------
_global.renderNewMap = function() {
// esta es la ventana emergente
path.attachMovie("renderCancel", "win_cancelWin", path.getNextHighestDepth(), {_x:0, _y:660});
// cuando se termina de crear la venta llama la funcion createNewMap
path.win_cancelWin.tween("_ry", 492, 0.5, "easeOutExpo", null, createNewMap);
};


createNewMap: Esta funcin se activa despus de ser llamada por
renderNewMap, y se encarga de crear el mapa.

Funcin:
//-----------------------------------------------------
//Creacion del mapa dinamicamente
//-----------------------------------------------------
_global.createNewMap = function() {
// crea un movieclip vacio y lo pone en el nivel que tiene incre
path.createEmptyMovieClip("mapon"+incre, incre);
// adjunta un clip de la librera y lo mente en mapon
eval("mapon"+incre).attachMovie("mapa", "maponCompleto", path.getNextHighestDepth(), {_x:0, _y:60});
// arranca el render
eval("mapon"+incre).maponCompleto.gotoAndPlay("on");
125
// lo convierte en mapas de bits
eval("mapon"+incre).cacheAsBitmap = true;

removeMapOld: Esta funcin se encarga de borrar el mapa ms antiguo despus
de haber creado un nuevo mapa a partir de un nuevo calculo o por efecto de
reinicio de operaciones en el mapa y la animacin (Reset)

Funcin:
//-----------------------------------------------------
// borra el mapa antiguo
//-----------------------------------------------------
_global.removeMapOld = function() {
removeMovieClip(eval("mapon"+(incre-2)));
};


























126











































127


MODELAMIENTO REALSTICO DE SISTEMAS DINMICOS
COMPLEJOS MEDIANTE MAPAS COGNITIVOS DIFUSOS
David Amaya Beltrn
Antonio Pinedo Herrera
Juan Contreras Montes
Corporacin Universitaria Rafael Nez
Centro, Calle del Tejadillo, No. 38-71
davidamaya24@yahoo.com
tojose@gmail.com
epcontrerasj@ieee.org
Cartagena de Indias


Abstract: se describe un sistema de modelamiento y animacin de sistemas dinmicos
complejos desarrollando en dos componentes: uno consistente en el cdigo para la
modelacin, mediante la implementacin de mapas cognitivos difusos; y el otro consistente
en el mdulo de representacin visual desarrollado en Flash, el cual, ms que una simple
interfaz grfica de usuario, permite una animacin reactiva del sistema de acuerdo al cdigo
recibido del componente de modelacin. Ambos componentes son conectados utilizando el
protocolo de comunicacin TCP/IP, lo que permite que trabajen en mquinas separadas. Se
muestra la representacin de un ambiente de manglar en la que se genera una animacin,
mediante las relaciones y factores que intervienen en este ambiente, para predecir cmo
estas variables afectan la vida y el desarrollo del ecosistema.
Keywords: Mapa cognitivo difuso, efecto causal, animacin reactiva, matriz de Adyacencia

1. Introduccin

En el mundo cada vez es ms importante el manejo de la informacin y la manera cmo
esta puede ayudar a predecir el comportamiento y efectos futuros que pueden presentarse
sobre determinados ambientes o situaciones, por lo que se requiere de avances
significativos en los procesos tecnolgicos para anlisis y procesamiento de las variables y
factores que intervienen, negativa o positivamente, en determinada situacin, con el fin de
conseguir conocimiento a priori de una forma segura y controlada, en un mnimo de
tiempo, que conlleve a
tomar decisiones acertadas y con la anticipacin requerida.

Existen situaciones en donde los modelos matemticos basados en ecuaciones diferenciales
resultan muy tiles para analizar cada una de las variables que intervienen en un
determinado sistema, o proceso, y simular o predecir los cambios que se presenten ante una
excitacin o afectacin del entorno.

128


Sin embargo existen sistemas muy complejos que requiere el empleo de muchas variables y
se posee informacin incierta. Por ejemplo, en el caso del manglar es sabido que la
salinidad tiene un gran efecto sobre su desarrollo; sin embargo, resulta difcil precisar la
relacin exacta que permita plantear una ecuacin concreta. El empleo de las tcnicas
clsicas para la resolucin de estos problemas resulta poco efectivo.

Para la modelacin de sistemas dinmicos complejos, los mapas cognitivos difusos [1]
constituyen una herramienta valiosa para analizar relaciones inexactas que se presentan
entre las variables en diversas situaciones. De esta manera se pueden modelar una gran
variedad de sistemas con un alto grado de complejidad en su dinmica, solucionando as los
inconvenientes o la poca practicidad que se presenta con los mtodos clsicos. En este
documento se presenta como ejemplo la modelacin de un ecosistema de manglar.

Los ecosistemas de manglares en Colombia abarcan aproximadamente 379.954 hectreas
que se reparten entre la Costa Pacifica y la Regin Caribe. Los manglares se desarrollan de
manera natural, en las franjas intermareales de las costas tropicales y subtropicales del
planeta, constituyndose de estas manera en un ecosistema complejo por la interaccin de
cientos de especies de todo los niveles taxonmicos, desde microorganismos hasta especies
de mamferos grandes, incluyendo entre todas estas cientos de clases de peces que son el
sustento de muchas comunidades. El mangle es un ecosistema muy frgil y susceptible al
deterioro por factores externos negativos, entre los que se destacan: el dficit hdrico, la
construccin de obras civiles, la expansin de las fronteras urbanas, desarrollo e
implantacin agrcola e industrial, la contaminacin por hidrocarburos y plsticos y la tala,
entre otros. Se destacan dos factores ambientales muy importantes en la dinmica de los
manglares, estos son la salinidad y la temperatura, ya que de los niveles que tengan estos y
de su interaccin, depende de gran manera la vida del ecosistema manglar. Las altas
temperaturas, en combinacin con una alta radiacin solar y la obstruccin de flujos
hdricos, aumentan la evapotranspiracin y por lo tanto aumenta los niveles de salinidad del
suelo, condicin que resulta perjudicial para el desarrollo del mangle.

2. Mapas cognitivos difusos

Los mapas cognitivos difusos MCDs son grafos dirigidos, en los cuales los nodos
representan los conceptos y los arcos las influencias causales entre estos. La ponderacin de
los arcos indica que tanta influencia ejerce un nodo sobre el otro. Si el valor de la
ponderacin es cero el nodo antecesor no tiene ninguna influencia sobre el nodo
predecesor. Si la ponderacin es positiva existir una relacin causal directamente
proporcional, de manera tal que si hay un aumento o disminucin en la valoracin del nodo
antecesor habr un aumento o disminucin proporcional en la valoracin del nodo
predecesor. Si por el contrario, la ponderacin es negativa, indicar una relacin causal
inversa o negativa.
129


Actualmente se ha recurrido al uso de los Mapas Cognitivos difusos MCD, ya que en estos
no se requiere de extensivos clculos matemticos complejos para obtener nuevos estados,
prediciendo acciones futuras que afecten directamente al sistema. Sin embargo esta
tecnologa algunas veces puede dar datos inexactos o errneos e incluso el sistema puede
entrar en ciclos ilimitados por lo que se necesita de herramientas que eviten dichos
problemas. Una de las soluciones a la posible no convergencia del mapa cognitivo difuso
consiste en buscar mtodos para balancear o equilibrar el mapa antes de su implementacin.

Un mapa cognitivo difuso se considera equilibrado si se encuentran dos o ms lazos entre
dos nodos que tengan relacin causal de signos iguales. En caso contrario, se consideran
desbalanceados o desequilibrados. Para calcular el efecto total que un nodo tiene sobre otro
se deben considerar las relaciones directas y las indirectas que puedan existir. Existen
varias propuestas para calcular el grado de balance del mapa, como las de Nakamura [2] y
Harary [3]. En este proyecto se ha implementado el propuesto por Tsadiras y Margaritis [4],
dado por la ecuacin:






Donde pm es el nmero de semiciclos positivos en el grafo que tienen longitud m, nm es el
nmero de semiciclos negativos que tienen longitud m, y f(m) es una funcin monotnica.

La figura 1 muestra la representacin resumida de un problema en el que intervienen cinco
variables: inversin extranjera C1, nivel de empleo C2, leyes de regulacin C3,
conflictividad social C4 y estabilidad del gobierno C5. Los arcos indican las relaciones
causales entre cada variables, los pesos el grado de afectacin de un nodo sobre otro y los
signos indican si la relacin es directamente proporcional (signo positivo) o inversamente
proporcional (signo negativo).











130


Figura 1. Mapa cognitivo de un problema socio poltico.

La representacin del mapa mediante una matriz de adyacencia se muestra en la figura 2.












Figura 2. Representacin del mapa cognitivo difuso de un problema socio poltico con
matriz de adyacencia


Si el mapa cognitivo de la figura 1 es alimentado con la entrada dada por:







Es decir, una inversin extranjera alta (C1) y una conflictividad social alta (C4). Los
resultados arrojados por el mapa luego de 29 iteraciones est dada en la figura 3












131


Figura 3. Dinmica del problema socio poltico




Los resultados vislumbran que la alta inversin extranjera ocasionar una mejora
considerable de la tasa de empleo (C2), una disminucin de la conflictividad social (C4),
una considerable estabilidad del gobierno (C5) y un efecto nulo sobre las leyes de
regulacin. Adems, la inversin extranjera permanecer en un alto valor fruto de la
mejora en la situacin poltica del gobierno.

3. Implementacin del sistema de modelacin y animacin

La caracterstica principal de un sistema reactivo [5] es que este no se limita a producir un
valor final al terminar sino que est en permanente interaccin con su ambiente, semejante
a un sistema en tiempo real. Por esta razn la animacin de un sistema reactivo requiere
unas caractersticas ms exigentes que una interfaz grfica de usuario.

En este proyecto se ha pretendido desarrollar un sistema integrado por un componente
modelador de sistemas dinmicos y un componente de animacin, los cuales se comunican
utilizando el protocolo de comunicacin TCP/IP, en caso de trabajar en maquinas
separadas. Adems, cada componente es desarrollado independientemente uno del otro por
un grupo de ingenieros de modelacin y diseadores del panel frontal de animacin,
buscando combinar la precisin en el modelo con el panel frontal animado.














Figura 4. Estructura bsica del sistema de modelacin y animacin


132


El componente de modelacin ha sido desarrollado, en una primera fase, en lenguaje C++,
empleando mapas cognitivos difusos. La razn del uso de esta tcnica de modelacin es
sustentada por la gran cantidad de variables que intervienen y la imprecisin, manifestada
por los expertos, de las relaciones causales entre cada una de las variables.

Para el caso del sistema de manglar, las variables que se han considero son: manglar (C0),
fauna (C1), sedimentacin del canal del Dique (C2), tala (C3), desechos industriales (C4),
complejos tursticos (C5), Invasiones (C6), Pobreza (C7), Fenmenos naturales (C8),
precipitaciones (C9), salinidad (C10), flujos hdricos (C11), temperatura (C12) y vas y
muelles (C13). La figura 5 muestra una primera aproximacin de un mapa cognitivo difuso
para un sistema de manglar. Los pesos y signos de las relaciones causales han sido
obtenidas por medio de entrevistas con personal experto y a partir de informacin
estadstica proveniente de la Corporacin Autnoma Regional del Canal del Dique
CARDIQUE, ubicada en Cartagena, Colombia, la cual se encarga, entre otras actividades,
del monitoreo del ecosistema local.























Figura 5. Sistema de manglar representado con mapa cognitivo difuso.

133
Se ha considerado el empleo de la funcin de activacin sigmoidal, de tal manera que los
cambios de estado se hagan de forma continua y permita un ambiente virtual ms ameno.
Tambin es necesario cambiar la operacin de agregacin (OR) MAX por la T- Conorma
propuesta por Hamacher [6]:






donde a y b son dos elementos consecutivos de la columna de la matriz de adyacencia que
se est evaluando, luego de haber sido afectada por el vector de entrada o el vector
resultante de la iteracin inmediatamente anterior.

La T-Conorma de Hamacher evita el problema del operador MAX cuando existen efectos
causales negativos y positivos sobre determinado nodo, ya que este ltimo operador elimina
cualquier valor negativo. Adems, se logran modificaciones ms suaves entre cada
iteracin, consiguiendo un ambiente virtual sin sobresaltos repentinos. Note que si y se
hace igual a cero, la T - Conorma se convierte en la Suma Algebraica. A pesar de que
existen otras TNormas paramtricas, la planteada por Hamacher presenta una mejor
respuesta cuando se trata con valores diversos en el rango [-1,1] Los clculos parciales
arrojados por el mapa cognitivo difuso en cada iteracin son enviados al componente de
animacin, hecho en Flash. Para una entrada representada con un alto valor de sedimentos
del canal del dique (C2) y un crecimiento en los niveles de pobreza en la poblacin (C7)
transforma la imagen inicial del manglar vista en la figura 6 en la imagen final vista en la
figura 7, en una forma gradual muy suave producto de cada iteracin del mapa.












Figura 6. Manglar en buenas condiciones




134














Figura 7. Zona de manglar afectada por alta sedimentacin e invasiones

El sistema (en caso de simulacin) provee informacin sobre las variables, el componente
de modelacin, mediante el mapa cognitivo difuso calcula las variaciones en cada nodo y
enva la informacin al componente de animacin, que se encarga de presentar en forma
visual las afectaciones ocasionadas por cambios en las variables.

4. Conclusiones

Los mapas cognitivos difusos constituyen una herramienta valiosa para analizar relaciones
entre conceptos y para modelar sistemas reactivos con dinmicas tan complejas que son
prcticamente imposibles de modelar mediante ecuaciones matemticas.

Trabajar el sistema de modelacin y animacin de forma independiente tiene ventajas
notables en el tiempo de desarrollo del sistema y da cierta flexibilidad e independencia a los
diseadores y desarrolladores. Sin embargo, requiere definir previamente y con sumo
cuidado las caractersticas de cada componente.

El sistema desarrollado puede ser manejado de forma local, en la misma mquina, o de
manera remota, en mquinas separadas con comunicacin TCP/IP.

Modificaciones ligeras a los pesos de las relaciones causales ocasionan pequeas
modificaciones en los resultados finales. Una seleccin inadecuada de pesos y signos puede
causar desbalance en el mapa, lo cual es detectado por los algoritmos planteados para el
balanceo del MCD.




135
Bibliografa

1. KOSKO, Bart, (1998). Fuzzy Thinking. Hyperion
2. NAKAMURA, K, (1982), Decisin Support Using Causation Knowledge Base, IEEE
Transactions on Systems Man And Cybernetics, vol. 12, pp.765-777
3. HARARY, F., (1959), On The Measurement of Structural Balance, Behavior Science,
vol. 4, pp.316-323.
4. TSADIRAS, A., MARGARITIS, K., (1998), A New Balance for Fuzzy Cognitive
Maps, Department of Applied Informatics, University of Macedonia
5. EFRONI, S., HAREL, D., COHEN, I. (2005).Reactive Animation: Realistic Modeling of
Complex Dynamic Systems. IEEE Computer Society, vol. 38, pp. 38 47.
6. FULLR, Robert, (1995), Neural Fuzzy Systems, Abo Akademy University.

Вам также может понравиться