Tesis Ignaciovalverdadeds PDF
Tesis Ignaciovalverdadeds PDF
Tesis Ignaciovalverdadeds PDF
Introducción 1
I Preliminares 11
1. Computación Bioinspirada 13
vii
2.2.1. Modelos basados en ODEs . . . . . . . . . . . . . . . . . 61
2.2.2. Aproximación basada en agentes . . . . . . . . . . . . . . 64
2.2.3. Redes de Petri . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.4. Álgebra de procesos, π -cálculo . . . . . . . . . . . . . . . 66
2.3. Modelos estocásticos versus modelos probabilísticos . . . . . . . 67
2.3.1. Modelos estocásticos . . . . . . . . . . . . . . . . . . . . 67
2.3.2. Modelos probabilísticos . . . . . . . . . . . . . . . . . . . 70
2.4. Modelos basados en sistemas P . . . . . . . . . . . . . . . . . . 70
2.4.1. Especicación sintáctica . . . . . . . . . . . . . . . . . . 72
2.4.2. Un algoritmo de simulación para sistemas P estocásticos 77
3. Simuladores de sistemas P 83
viii
3.2.7. Año 2007 . . . . . . . . . . . . . . . . . . . . . . . . . . 104
ix
III Aplicación al estudio de ecosistemas 155
5. Modelos de ecosistemas basados en sistemas P 157
Bibliografía 230
x
Índice de guras
xi
xii
Introducción
1
2
encima de todo el esfuerzo denodado de Ch. Babbage que, entre 1833 y 1842,
trató de construir una máquina (denominada máquina analítica) que fuera
capaz no sólo de procesar información sino, además, de autocontrolar, en cierto
sentido, su funcionamiento. Aunque esta máquina no pudo ser implementada
en su época debido, básicamente, a las limitaciones tecnológicas, las ideas
subyacentes en el diseño de dicha máquina son consideradas hoy día como el
germen de la arquitectura de J. von Neumann, en la que se basa los principios
fundamentales de los ordenadores electrónicos actuales.
A nales del siglo XIX empieza a tomar cuerpo la creencia de que existen
problemas que no pueden ser resueltos mediante procedimientos mecánicos.
Ahora bien, para poder asegurar la existencia de tales problemas no era
suciente considerar la idea informal de algoritmo. Se necesitaba una denición
rigurosa de dicho concepto a n de poder armar que un cierto problema
no puede ser resuelto por ningún algoritmo que verique las condiciones
exigidas en la denición formal. Entre 1931 y 1936 aparecen los primeros
modelos formales de computación, debidos a K. Gödel, A. Church, S. Kleene
y A. Turing.
Por otra parte, la aparición de las primeras máquinas de propósito general,
a nales de la década de los cuarenta del pasado siglo, da origen a lo que
podríamos denominar Teoría de la Computabilidad práctica, entendida como
disciplina cuyo objetivo es determinar los problemas abstractos que pueden
ser resueltos por máquinas reales para ejemplares de tamaño sucientemente
grande. Éste es, propiamente, el origen de la Teoría de la Complejidad
Computacional.
Muchos de los esfuerzos realizados en la historia de la Teoría de la
Computabilidad, en general, y de la Teoría de la Complejidad Computacional,
en particular, han estado encaminados hacia el análisis y desarrollo de lo que
podríamos denomianr sistemas articiales. Hoy día está constatado que los
sistemas/organismos vivos también disponen de mecanismos de procesamiento
de la información que les permiten, entre otras cosas, mantener el equilibrio
termodinámico, adaptarse al entorno y evolucionar en un sentido que favorezca
su propia existencia.
3
Contenido de la memoria
La presente memoria está estructurada en tres partes que constan de
un total de siete capítulos cuyos contenidos se describen sucintamente a
continuación.
Parte I: Preliminares
Aportaciones
Entre las aportaciones originales más relevantes que se recogen en la
presente memoria, caben destacar las siguientes:
Publicaciones
Algunos de los resultados más relevantes del trabajo desarrollado en esta
memoria han sido publicados en las revistas y monografías que se citan a
continuación.
Preliminares
11
Capítulo 1
Computación Bioinspirada
13
Capítulo 1. Computación Bioinspirada 14
Todos tenemos una idea informal de qué es un problema. Ahora bien, ¾qué
entendemos por problema desde un punto de vista computacional? Para que
la resolución de un problema pueda ser abordada por una máquina de cálculo
(ordenador) es fundamental que tanto los datos de entrada como los datos de
salida puedan ser codicados mediante sucesiones nitas de símbolos (es decir,
a través de cadenas o palabras sobre un alfabeto nito).
Informalmente hablando, cuando se trabaja con problemas de optimización
se trata de encontrar la mejor solución (de acuerdo a un cierto criterio)
entre una clase de soluciones posibles (candidatos). Es decir, en este tipo de
problemas pueden existir muchas eventuales soluciones pero cada una de ellas
tiene asociado un valor (un número racional positivo), y se trata de encontrar
una solución con valor óptimo (máximo o mínimo).
De manera más formal, diremos que un problema de optimización, X , es
una tupla (IX , sX , fX ) en donde: (a) IX es un lenguaje sobre un alfabeto nito;
(b) sX es una función cuyo dominio es IX y para cada u ∈ IX , sX (u) es
un subconjunto nito de IX ; y (c) fX es una función (función objetivo) que
asigna a cada instancia u ∈ IX y cada cu ∈ sX (u), un número racional positivo
fX (u, cu ).
Los elementos de IX se denominan instancias del problema X . Para cada
instancia u ∈ IX , los elementos del conjunto nito sX (u) se denominan
soluciones candidatas asociada a la instancia u del problema. Para cada
instancia u ∈ IX y cada cu ∈ sX (u), el número racional positivo fX (u, cu )
es el valor de la solución para cu . La función fX proporciona el criterio para
determinar la mejor solución. Una solución óptima para una instancia u ∈ IX
es una solución candidata c ∈ sX (u) asociada a dicha instancia tal que, o
bien para cada c0 ∈ sX (u) se tiene que fX (u, c) ≤ fX (u, c0 ) (c es una solución
minimal para u), o bien para cada c0 ∈ sX (u) se tiene que fX (u, c) ≥ fX (u, c0 )
(c es una solución maximal para u).
Una clase importante de problemas de optimización son los problemas de
decisión que, informalmente, son aquellos que sólo admiten dos respuestas: sí
1.1. Computabilidad versus Complejidad 23
Algoritmos óptimos
Clases de complejidad
de clases de problemas que agrupará a todos aquellos que usen una cantidad
de recursos similar, en cierto sentido. De esta manera surgen las denominadas
clases de complejidad.
Los ingredientes necesarios para denir una clase de complejidad son los
siguientes:
(a) Un modelo de computación que proporcione los dispositivos sobre los que
se van a resolver los problemas.
(c) Una medida de complejidad que permita cuanticar los recursos usados
por los dispositivos computacionales en la resolución de problemas.
(d) Una función total computable entre números naturales que sirva de cota
superior de los recursos usados.
La clase NP
¾Y si P = NP?
Tener presente que algunos problemas sólo son difíciles en el caso peor
Capítulo 1. Computación Bioinspirada 32
(que se podría dar poco) y, en cambio, son fáciles en los restantes casos.
Así se podría obtener un procedimiento mecánico ocasionalmente lento
pero que muchas veces es rápido.
sobre la materia (hay quien extiende este concepto hasta abarcar modelos tales
como la computación cuántica, que no se ajusta elmente a la interpretación
anterior). Es decir, esos modelos estudian la forma en que las diversas leyes de la
naturaleza producen modicaciones en determinados sistemas (desde hábitats
hasta conjuntos de moléculas, pasando por organismos vivos) que pueden ser
interpretados como procesos de cálculo sobre sus elementos. Esta simulación
que aborda la Computación Natural puede tener distintas interpretaciones a
la hora de describir los nuevos modelos: que se utilice para el diseño de nuevos
esquemas algorítmicos usando técnicas inspiradas en la naturaleza, o bien que
sugiera la creación física de nuevos modelos experimentales en los que el medio
electrónico de los ordenadores convencionales se sustituya por otro sustrato
que pueda implementar ciertos procesos que aparecen en el modo de operar de
la naturaleza.
Como ejemplo de la primera interpretación, podemos considerar los
Algoritmos Genéticos, que se basan en el proceso genético de los seres vivos
a través del cual evolucionan y cuyo elemento fundamental es el principio de
selección natural.
Como ejemplo de la segunda interpretación, a nales de la década de los
cincuenta el premio nobel R.P. Feynman [39] postula la necesidad de considerar
operaciones submicroscópicas como única alternativa revolucionaria en la
carrera por la miniaturización de las componentes físicas de los ordenadores
convencionales (basados en circuitos de silicio), y propone la computación a
nivel molecular como posible modelo en el que implementar dichas operaciones.
De esta manera, los complejos moleculares empiezan a ser considerados como
componentes virtuales de un dispositivo de procesamiento de información. En
1987, T. Head [60] propone explícitamente el primer modelo teórico molecular
basándose en las propiedades de la molécula de ADN. En noviembre de 1994,
L. Adleman [2] realiza el primer experimento en un laboratorio que permite
resolver una instancia concreta de un problema NP-completo a través de la
manipulación de moléculas de ADN. Entre las áreas que se enmarcan dentro
de la Computación Natural, destacamos las siguientes:
Capítulo 1. Computación Bioinspirada 34
Los algoritmos genéticos y las redes neuronales articiales han sido imple-
mentadas a través de programas en ordenadores electrónicos convencionales.
La computación molecular basada en ADN ha sido implementada en medios
bioquímicos (el experimento de L. Adleman permitió resolver una instancia
concreta del problema del camino hamiltoniano, en su versión dirigida y con
dos nodos distinguidos, a través de la manipulación de moléculas de ADN en
el laboratorio). En cambio, la Computación celular con membranas aún no ha
sido implementada ni en medios electrónicos ni bioquímicos.
En octubre de 2003, el Institute for Scientic Information (ISI, USA),
ha designado a la Computación celular con membranas como Fast Emerging
Research Front en el área de Computer Science.
1.2. Computación Natural 35
Las neuronas son las células que forman la corteza cerebral de los animales,
cada una está compuesta por un cuerpo neuronal, del que parten dos tipos de
prolongaciones: las dendritas, que son pequeñas y ramicadas, y el axón, que es
un tubo muy largo que se ramica en su extremo distal dando pequeños bulbos
nales que casi tocan las dendritas de las neuronas adyacentes. La pequeña
separación entre los bulbos nales y las dendritas se denomina sinapsis.
El funcionamiento de las neuronas se realiza a través de impulsos eléctricos
y reacciones químicas. Los impulsos eléctricos, que utiliza una neurona para
intercambiar información con las demás, viajan por el axón que hace contacto
con las dendritas de la neurona vecina mediante las sinapsis.
Las Redes Neuronales Articiales surgieron originalmente como una
simulación del sistema nervioso, formado por un conjunto de unidades
conectadas entre sí, simulando a las neuronas de los sistemas nerviosos
biológicos.
El primer modelo de red neuronal fue propuesto en 1943 por W.S.
McCulloch y W. Pitts [78] como simulación de la actividad nerviosa, y, poco
después, sirvió de ejemplo para los modelos posteriores de M. Minsky [81] y F.
Rosenblatt [107], entre otros.
Las redes neuronales constituyen una herramienta de análisis estadístico
que permite la construcción de un modelo de comportamiento a partir de una
base de ejemplos de dicho comportamiento. La red neuronal, completamente
ignorante al principio, efectúa un aprendizaje partiendo de los ejemplos para
transformarse o evolucionar, a través de una serie de modicaciones sucesivas,
en un modelo susceptible de predecir el comportamiento futuro del sistema
simulado.
Esta capacidad para aprender todo aquello que tenga un cierto sentido
(aproximador universal ) ha sido establecida de manera rigurosa (teorema de
Kolmogorov ), por lo que las redes neuronales son consideradas hoy día como
una herramienta de gran rigor cuyas bases teóricas han sido debidamente
justicadas.
Una vez construida la red neuronal, se obtiene un modelo a la medida
1.2. Computación Natural 39
1.3.2. Sistemas P
En las ideas originales de Gh. P un, los sistemas celulares con membranas
no fueron introducidos propiamente para modelizar completamente la
estructura y funcionamiento de una célula, sino más bien para analizar
algunos hechos computacionalmente relevantes que pueden ser abstraídos de
las mismas.
Celula
Realidad
Implementacion Interpretacion
Sistemas P
membrana
elemental piel
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx entorno
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxx
región
entorno
membrana
en donde:
Además, se prueba que muchos de los modelos que se obtienen a partir de los
1.3. Computación celular con membranas 53
55
Capítulo 2. Un marco de modelización basado en sistemas P 56
muy costosos. Por ello, antes de realizar simulaciones hemos de calibrar nuestro
modelo; es decir, hemos de obtener estimaciones acerca de esos parámetros, y
validarlos en función de la conducta esperada del sistema. Una vez que se han
encontrado un conjunto de parámetros ables, podemos centrarnos en algunas
de las cuestiones que han motivado la introducción de nuestro modelo. Existen
diferentes métodos de análisis en función del tipo de modelo, que van desde la
simple generación de simulaciones sobre ordenadores electrónicos a sosticados
métodos estadísticos y/o de model checking.
Por otra parte, existen diversas formas de enfocar el proceso de
modelización formal de sistemas complejos. A continuación, enumeramos
algunas aproximaciones.
Bioquímica PT-net
Molécula Lugar
Población Molecular Marking
Transformación Bioquímica Transición
Reactante Lugar de entrada
Producto Lugar de salida
Al igual que sucede con las redes de Petri ordinarias, este nuevo marco es
sólo cualitativo. Por ello, para introducir información cuantitativa se asocia una
constante a cada canal de comunicación y, entonces, el tiempo de espera para
realizar una comunicación se determina mediante una distribución exponencial
cuyo parámetro se calcula utilizando la constante citada y el número de
procesos que intentan comunicarse a través de dicho canal.
j=1
en donde:
T es un número natural, T ≥ 1;
En donde:
e1 e2
e3 e4
c
Al aplicar una regla de comunicación entre entornos (x)ej −→ (y)ej0 ,
el objeto x pasa del entorno ej al entorno ej 0 , posiblemente transformado en
Capítulo 2. Un marco de modelización basado en sistemas P 76
otro objeto y . Del mismo modo, al aplicar una regla de comunicación entre
c0
entornos (Πk )ej −→ (Πk )ej0 , el sistema Πk pasa del entorno ej al entorno ej 0 .
El papel que juegan las constantes c y c0 en la aplicación de estas reglas viene
determinado por el algoritmo de simulación que se considere para capturar la
semántica del sistema.
En la orientación probabilística, el número de entornos coincide con el
de sistemas P; es decir, m = n y cada entorno ej contiene, inicialmente, el
sistema Πj de tal manera que todos esos sistemas poseen el mismo esqueleto
Π y, además, M0,j , . . . , Mq−1,j describen los correspondientes multiconjuntos
iniciales de Πj , como indica la siguiente gura. Además, las funciones p(k,j,j 0 )
son constantes e iguales a cero (es decir, no existen reglas del entorno del tipo
p(k,j,j 0 )
(Πk )ej −→ (Πk )ej0 ).
e1 e2
e3 e4
intervienen y, además, se admite que todos los entornos están vacíos en ese
instante inicial y que todas las membranas tienen carga neutra.
• Inicialización
◦ Poner el tiempo de simulación a t = 0.
◦ Para cada membrana m en la estructura µ hacer:
1. Cargar las reglas que pueden ser aplicadas en la membrana así
como sus constantes estocásticas.
2. Cargar el número de moléculas determinado por el multiconjun-
to inicial asociado a la membrana.
3. Ejecutar el algoritmo de Gillespie clásico en esa membrana,
devolviendo una terna (τm , j, m).
◦ Ordenar la lista de ternas (τm , j, m) con relación a τm (en orden
ascendente), formando una pila de reglas a aplicar;
• Iteración
◦ Elegir la primera terna de la pila, (τm , j, m).
◦ Poner el tiempo de simulación a t = t + τm .
◦ Actualizar el tiempo de espera para el resto de las ternas,
restando el valor τm .
◦ Aplicar una vez la regla rj modificando el número de objetos en
las membranas afectadas.
◦ Para cada membrana m0 afectada por esa aplicación, eliminar la
terna correspondiente (τm
0
0 , j , m ) de la pila.
0 0
• Finalización
◦ Si el tiempo de la simulación t alcanza o excede a un tiempo
maximal prefijado, finalizar el proceso.
2.4. Modelos basados en sistemas P 79
Aplicaciones informáticas en
Membrane Computing
81
Capítulo 3
Simuladores de sistemas P
83
Capítulo 3. Simuladores de sistemas P 84
Los simuladores suelen seguir una política de caja negra ; es decir, producen
la misma salida que la máquina simulada, pero no informan al usuario sobre
cómo se ha obtenido. En otras palabras, no muestran el funcionamiento del
algoritmo de simulación.
En los últimos años, un gran número de aplicaciones de software y hardware
para Membrane Computing han sido presentadas. La mayoría de ellas son
simuladores que replican una o varias de las posibles computaciones del sistema
P simulado, siendo posible en algunos casos obtener todas las computaciones.
Estos simuladores reciben como dato de entrada la conguración inicial de
un sistema P junto con su conjunto de reglas, y producen un conjunto de
computaciones como dato de salida, o cualquier otra información relevante
para el usuario.
El crecimiento del número de estas aplicaciones se ha producido simultá-
neamente con el desarrollo teórico. En este capítulo se proporciona una descrip-
ción general del estado del arte de las aplicaciones informáticas para Membrane
Computing. En la sección 3.1 se analiza la estructura general de un simulador
para sistemas P; y, en la siguiente sección, se clasican las aplicaciones in-
formáticas existentes atendiendo a diferentes criterios, recogiendo un listado
cronológico de las aplicaciones más relevantes desarrolladas hasta la fecha, así
como explicando brevemente la nalidad y la funcionalidad de cada una.
Núcleo de simulación.
El conjunto de reglas.
software de calidad.
3.1. Estructura general de un simulador para sistemas P 87
Otra propuesta, tal vez más exible, para denir el sistema P que va a ser
simulado consiste en el desarrollo de una interfaz de usuario que, en general,
es la parte de un programa informático destinada al usuario y que le permite
comunicarse con la máquina. Este desarrollo comprende todos los puntos de
3.1. Estructura general de un simulador para sistemas P 89
contacto entre el usuario y el equipo. Los interfaces de usuario deben ser fáciles
de entender y utilizar.
De especial interés son las interfaces grácas de usuario, conocidos también
como GUI (del inglés Graphical User Interface ), que utilizan conjuntos de
imágenes y objetos grácos para representar la información y las acciones
disponibles en la interfaz.
La ventaja fundamental de recurrir a interfaces grácas consiste en que es
posible representar de manera amigable el sistema P que va a ser simulado.
Por otra parte, uno de los puntos más importantes es la dicultad que
entraña su desarrollo. El diseño de interfaces de usuario ecaces es una
tarea difícil de ingeniería ya que se trata directamente con una de las
componentes más complejas de todo sistema informático: el usuario. Más
aún, para toda aplicación suelen existir diversas categorías de usuarios, con
diferentes conocimientos, gustos e intereses, y precisamente esta disparidad
es la que diculta implementar una interfaz amigable orientada al abanico
completo de posibles usuarios.
Atendiendo a los criterios considerados y suponiendo que la interfaz de
usuario está diseñada de manera óptima, se puede armar que:
las que pasa el simulador, o bien se puede optar por almacenar exclusivamente
la última conguración generada.
En cualquier caso, es necesario extraer información de estas conguraciones
con el n de mostrarlas al usuario. La información mostrada dependerá
principalmente de la nalidad del simulador.
Sistemas P de transición
Redes de ordenadores
Hardware especíco
Membranas activas
Paralelismo real
Secuenciales
Pedagógicos
Multi-hilo
Otros
CPU
Simulador de Maliµa X X X X
2000
Simulador de Suzuki y Tanaka X X X X X
Simulador de Balbontín y otros X X X X
2002 Simulador de Baranda y otros X X X X
Simulador de Ciobanu y Paraschiv X X X X X
Simulador de Ardelean y Cavaliere X X X X
Simulador de Ciobanu y Wenyuan X X X X X
2003
Simulador de Georgiou (SubLP- X X X
Studio )
Simulador de Syropoulos y otros X X X X X
Simulador de Nepomuceno (SimCM ) X X X X
2004 Simuladores del GCN X X X X
Simulador del GMNC (PSim ) X X X X X
2005 Simulador de Nishida X X X X
Simuladores de Cazzaniga y Pescini X X X X
Cyto-Sim: Biological compartment si- X X X X
2006
mulator
Simulador de Frisco X X X X X
Simuladores de Romero-Campero y M. X X X X
Gheorghe
Simulador de Acampora y Loia X X X X
Simulador de Borrego-Ropero y otros X X X X
2007
Simulador de Petreska y Teuscher X X X X
Simulador de Ramírez-Martínez y X X X X
Gutiérrez-Naranjo
2008 Simulador de Ribero y otros (JPlant ) X X X X
Simulador de Martínez-del-Amor y X X X X
2009 otros
Simulador de Nguyen y otros X X X X
Simulador de Castellini y otros (Meta- X X X X X
Plab )
Dos años después, Delia Balbontín, Mario J. Pérez y Fernando Sancho pre-
sentaron durante el Workshop on Membrane Computing 2002 un simulador [8]
para sistemas P de transición escrito en MzScheme.
Este simulador, como el de Maliµa, recibe como entrada la conguración
inicial de un sistema incluyendo el conjunto de reglas y una serie de parámetros
especicando el número deseado de pasos de evolución, pero presenta como
novedad importante que proporciona como salida el árbol de computación del
sistema P, paso a paso, hasta alcanzar el número deseado de pasos de evolución.
Evidentemente, cuanto mayor sea la ramicación del árbol de computación,
menor será el número de pasos que se puedan simular.
Simulador de Frisco
107
Capítulo 4. Un entorno de programación para Membrane Computing 108
Los cheros de texto que denen sistemas P deben seguir algún formato; la
mayoría de ellos están diseñados para simuladores concretos, lo cual repercute
negativamente en el tiempo y el esfuerzo que el programador requiere para
desarrollar nuevos simuladores, así como en el tiempo y el esfuerzo que
el usuario nal necesita para asimilar los formatos de chero de diferentes
simuladores.
En esta memoria se presenta un lenguaje de programación, P-Lingua, como
estándar para la codicación de sistemas P en cheros de texto. De esta
manera, se pueden reutilizar los mismos cheros de texto que denen sistemas
P en diferentes aplicaciones informáticas, mejorando el tiempo de adaptación
del usuario a una nueva aplicación y, mediante el desarrollo de bibliotecas de
programación que procesen el formato estándar, se consigue mejorar el coste
de desarrollo de nuevos simuladores.
La comunidad cientíca en Computación celular con membranas está
formada por un grupo heterogéneo de investigadores, desde matemáticos
e informáticos hasta biólogos, ingenieros, físicos y ecólogos. Este grupo
interdisciplinar comparte el lenguaje cientíco en el que se especica los
sistemas P y, por tanto, se hace necesario el desarrollo de un estándar
Capítulo 4. Un entorno de programación para Membrane Computing 110
orientado a esta comunidad que debería tener ciertas similitudes con el lenguaje
utilizado tradicionalmente para especicar sistemas P. De esta manera, se
reduciría la dicultad de aprendizaje y se mejoraría la usabilidad, permitiendo
a los usuarios escribir en un lenguaje que les resulte familiar, dentro de las
limitaciones inherentes a escribir en texto plano.
Por otra parte, la existencia de elementos comunes en soluciones propuestas
a diferentes problemas numéricos NP-completos utilizando familias de
sistemas P reconocedores con membranas activas ha permitido realizar una
primera aproximación al desarrollo de un lenguaje de programación celular
basado en subrutinas o módulos [58]. La especicación de sistemas P de manera
modular presenta una serie de ventajas tales como la mejor comprensión de
los programas escritos, la elegancia de código y la estructuración en módulos
funcionales que se corresponden con secciones o conjuntos de reglas que se
pueden utilizar repetidas veces en el la ejecución del programa.
El lenguaje de programación P-Lingua permite denir sistemas P
pertenecientes a diferentes modelos o variantes de manera sencilla, pues su
sintaxis está basada en la notación cientíca usada por los investigadores: por
una parte, paramétrica, permitiendo denir familias de sistemas P mediante
el uso de índices y parámetros; y por otra, modular, atendiendo a las ideas
expuestas en [58].
Finalmente, los programas escritos en P-Lingua pueden servir de entrada
para diversas aplicaciones informáticas o, mediante el uso de compiladores,
pueden ser traducidos a otros formatos de especicación, aportando interope-
rabilidad entre simuladores, tal como se ilustra en la gura 4.1.
XML
Simulator
file
PLingua Binary
Compiler Simulator
File file
Another
format Simulator
The input
• Sistemas P de transición.
• Sistemas P symport/antiport.
• Sistemas P con membranas activas y reglas de división.
• Sistemas P con membranas activas y reglas de creación.
• Sistemas P estocásticos.
Ampliar el lenguaje para soportar más modelos es uno de los retos que
tenemos planteados y que proponemos como una de las líneas futuras de
investigación en el capítulo 9.
A continuación se presenta la sintaxis de P-Lingua.
Identicadores válidos
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 _
Variables
Variables globales
Las variables globales deben ser declaradas fuera de cualquier módulo (ver
denición de módulos más adelante) y a ellas se puede acceder desde cualquiera
4.1. P-Lingua: un estándar para la denición de sistemas P 113
global_variable_name = numeric_expression;
Variables locales
b{1} = 12;
i = 1;
x{b{i},7}=10;
Etiquetas de membranas
Identicadores de entornos
Expresiones numéricas
34−x +17
23
se escribe (3 (4-x)+17)/23.
Objetos
Cadenas
Subcadenas
@model<membrane_division>
@model<membrane_creation>
@model<transition_psystem>
Capítulo 4. Un entorno de programación para Membrane Computing 116
@model<probabilistic_psystem>
@model<stochastic_psystem>
@model<symport_antiport_psystem>
@model<tissue_psystems>
Denición de módulos
multiconjuntos, para denir reglas, para denir variables y para llamar a otros
módulos. A continuación, se muestra como se escriben estas sentencias.
Llamadas a módulos
@mu = expr;
Denición de multiconjuntos
@ms(label) = multiset_of_objects;
@ms(label) = multiset_of_objects_and_strings;
@ms(label,environment) = multiset_of_objects;
Unión de multiconjuntos
@ms(label) += multiset_of_objects;
@ms(label) += multiset_of_objects_and_strings;
@ms(label,environment) += multiset_of_objects;
Denición de reglas
@model<mebrane_division>
4. Se pueden denir reglas de división del tipo [a ]αh → [b]βh [c]γh de las
siguientes formas:
α[a]'h --> b;
Algunos ejemplos:
2 → b ≡ -[a]'2 --> b;
[a]−
@model<membrane_creation>
@model<transition_psystem>
1. Las reglas del tipo u[v]h → u1 [v1 ]h pueden ser escritas de las siguientes
formas:
2. Las reglas de disolución del tipo u[v]h → w pueden ser escritas de las
siguientes maneras:
u [v]'h --> w;
u [v]'h --> [w,@d]'h;
4.1. P-Lingua: un estándar para la denición de sistemas P 123
3. Las reglas del tipo [u → v, wout , w1(inh1 ) . . . wn(inhn ) ]h pueden ser escritas
de las siguiente formas:
[u []'h1 ...[]'hn ]'h --> w[v [w1 ]'h1 ...[wn ]'hn ]'h;
[u []'h1 ...[]'hn ]'h --> w[v [w1 ]'h1 ...[wn ]'hn ];
[u []'h1 ...[]'hn --> v [w1 ]'h1 ...[wn ]'hn ]'h; (sólo si w =
∅)
Algunos ejemplos:
@model<symport_antiport_psystem>
@model<probabilistic_psystem>
p
1. Se pueden escribir reglas del tipo u[v]αh −→ u1 [v1 ]βh de las siguientes
maneras:
Algunos ejemplos:
0,8
2 −→ x, y[z]2 ≡ a,b*2 +[c,d]'1 --> x,y -[z]'2 :: 0.8;
−
a b2 [c, d1 ]+
4.1. P-Lingua: un estándar para la denición de sistemas P 125
ki,8
Yi,j []2 −→ [B ki ,12 ]2 ≡ Y{i,j}[]'2 --> [B*k{i,12}]'2::k{i,8};
pi,j
(x)i −→ (y)j : 1 ≤ i ≤ E, 1 ≤ j ≤ E ≡
[[x]'{i} []'{j} --> []'{i} [y]'{j}]'global::p{i,j}
:1<=i<=E,1<=j<=E;
@model<stochastic_psystem>
c
[RN AP + < cap.ω.op >]m −→ [< cap.ω.RN AP.op >]m ≡
[RNAP,<cap.?.op>]'m --> [<cap.?.RNAP.op>]'m::c
@model<tissue_psystems>
2. Se pueden escribir reglas de división del tipo [a]h → [b]h [c]h de las
siguientes maneras:
Algunos ejemplos:
Sentencias paramétricas
value1 <>value2
2. [xi,j → xi,j−1 ]+
2 : 1 ≤ i ≤ m, 2 ≤ j ≤ n, i 6= j ≡
+[x{i,j} --> x{i,j-1}]'2 : 1<=i<=m,2<=j<=n,i<>j;
Comentarios
@model<transition>
def main()
{
call n_cuadrados();
}
def n_cuadrados()
{
@mu = [[[]'3 []'4]'2]'1;
@ms(3) = a,f;
[a --> a,bp]'3;
[a --> bp,@d]'3;
[f --> f*2]'3;
[bp --> b]'2;
[b []'4 --> b [c]'4]'2;
(1) [f*2 --> f ]'2;
(2) [f --> a,@d]'2;
}
i(n, m) = 2
Π(hn, mi) = (Γ(n, m), {1, 2}, [[ ]2 ]1 , w1 , w2 , R), se dene como sigue:
• w2 = {d1 }
• El conjunto de reglas, R, es dado por:
−
{[dk ]02 → [dk ]+
2 [dk ]2 : 1 ≤ k ≤ m}
−
{[si,1 → ri,1 ]+ 0
2 , [si,1 → ri,1 ]2 : 1 ≤ i ≤ n}
{[si,1 → λ]− 0 +
2 , [si,1 → λ]2 : 1 ≤ i ≤ n}
−
{[si,j → si,j−1 ]+
2 , [si,j → si,j−1 ]2 : 1 ≤ i ≤ n, 2 ≤ j ≤ m}
−
{[s0i,j → s0i,j−1 ]+ 0 0
2 , [si,j → si,j−1 ]2 : 1 ≤ i ≤ n, 2 ≤ j ≤ m}
−
{[dk ]+ 0 0
2 → [ ]2 dk , [dk ]2 → [ ]2 dk : 1 ≤ k ≤ m}
r1,2n [ ]− +
2 → [r0,2n ]2
{[ck → ck+1 ]−
2 : 1 ≤ k ≤ n}
[cn+1 ]+ + 0
2 → [ ]2 cn+1 ; [cn+1 → cn+2 t]1
−
[t]01 → [ ]+ + 0 +
1 t ; [cn+2 ]1 → [ ]1 Y es ; [d3n+2m+3 ]1 → [ ]1 N o
Denición en P-Lingua
El código es el siguiente:
def Sat(n,m)
{
@mu = [[]'2]'1;
@ms(2) = d{1};
[d{k}]'2 --> +[d{k}]-[d{k}] : 1 <= k <= m;
{
+[s{i,1} --> r{i,1}]'2;
-[sp{i,1} --> r{i,1}]'2;
-[s{i,1} --> #]'2;
+[sp{i,1} --> #]'2;
} : 1 <= i <= n;
{
+[s{i,j} --> s{i,j-1}]'2;
-[s{i,j} --> s{i,j-1}]'2;
+[sp{i,j} --> sp{i,j-1}]'2;
-[sp{i,j} --> sp{i,j-1}]'2;
} : 1<=i<=n, 2<=j<=m;
4.3. Codicación de soluciones ecientes al problema SAT 133
{
+[d{k}]'2 --> []d{k};
-[d{k}]'2 --> []d{k};
} : 1<=k<=m;
d{k}[]'2 --> [d{k+1}] : 1<=k<=m-1;
[r{i,k} --> r{i,k+1}]'2 : 1<=i<=n, 1<=k<=2*m-1;
[d{k} --> d{k+1}]'1 : m <= k<= 3*m-3;
[d{3*m-2} --> d{3*m-1},e]'1;
e[]'2 --> +[c{1}];
[d{3*m-1} --> d{3*m}]'1;
[d{k} --> d{k+1}]'1 : 3*m <= k <= 3*m+2*n+2;
+[r{1,2*m}]'2 --> -[]r{1,2*m};
-[r{i,2*m} --> r{i-1,2*m}]'2 : 1<= i <= n;
r{1,2*m}-[]'2 --> +[r{0,2*m}];
-[c{k} --> c{k+1}]'2 : 1<=k<=n;
+[c{n+1}]'2 --> +[]c{n+1};
[c{n+1} --> c{n+2},t]'1;
[t]'1 --> +[]t;
+[c{n+2}]'1 --> -[]Yes;
[d{3*m+2*n+3}]'1 --> +[]No;
} /* End of Sat module */
def main()
{
call Sat(6,4);
@ms(2) += s{1,1}, sp{2,1}, sp{2,2}, s{3,2},
sp{4,2}, s{5,3}, sp{6,4};
} /* End of main module */
Γ = Σ ∪ {ai , ti , fi | 1 ≤ i ≤ n} ∪ {ri | 1 ≤ i ≤ m}
∪ {Ti , Fi | 1 ≤ i ≤ n} ∪ {Ti,j , Fi,j | 1 ≤ i ≤ n, 1 ≤ j ≤ m + 1}
∪ {bi | 1 ≤ i ≤ 3n + m + 1} ∪ {ci | 1 ≤ i ≤ n + 1}
∪ {di | 1 ≤ i ≤ 3n + nm + 2m + 1}
∪ {ei | 1 ≤ i ≤ 3n + nm + 2m + 3} ∪ {f, q, yes, no},
Σ = {si,j , s0ij : 1 ≤ i ≤ n, 1 ≤ j ≤ m},
Ω = Γ − {yes, no},
M1 = yes no b1 c1 d1 e1 ,
M2 = f a 1 a 2 . . . a n ,
Reglas de división:
r1,i ≡ [ai ]2 → [Ti ]2 [Fi ]2 , para 1 ≤ i ≤ n
Reglas de comunicación:
r2,i ≡ (1, bi /b2i+1 , 0), para 1 ≤ i ≤ n
r3,i ≡ (1, ci /c2i+1 , 0), para 1 ≤ i ≤ n
r4,i ≡ (1, di /d2i+1 , 0), para 1 ≤ i ≤ n
r5,i ≡ (1, ei /ei+1 , 0), para 1 ≤ i ≤ 3n + nm + 2m
r6 ≡ (1, bn+1 cn+1 dn+1 /f, 2)
r7,i ≡ (2, cn+1 Ti /cn+1 Ti,1 , 0), para 1 ≤ i ≤ n
r8,i ≡ (2, cn+1 Fi /cn+1 Fi,1 , 0), para 1 ≤ i ≤ n
r9,ij ≡ (2, Ti,j /ti Ti,j+1 , 0), para 1 ≤ i ≤ n, 1 ≤ j ≤ m
r10,ij ≡ (2, Fi,j /fi Fi,j+1 , 0), para 1 ≤ i ≤ n, 1 ≤ j ≤ m
r11,i ≡ (2, bi /bi+1 , 0), para n + 1 ≤ i ≤ 3n + m
r12,i ≡ (2, di /di+1 , 0), para n + 1 ≤ i ≤ 3n + m
r13,ij ≡ (2, b3n+m+1 ti si,j /b3n+m+1 rj , 0), para 1 ≤ i ≤ n, 1 ≤ j ≤ m
4.3. Codicación de soluciones ecientes al problema SAT 135
Denición en P-Lingua
El módulo main puede ser modicado de manera sencilla para denir cualquier
otro sistema P de tejido perteneciente a la familia. El código fuente se
estructura como sigue:
El código es el siguiente:
@model<tissue_psystems>
def main()
{
call sat_tissue(4,8);
@ms(2) += s{1,1},s{2,1},sp{3,1},s{4,1},
sp{1,2},s{2,2},
s{1,3},sp{2,3},sp{3,3},
s{2,4},sp{3,4},s{4,4},
sp{1,5},s{2,5},s{4,5},
s{2,6},sp{3,6},s{4,6},
s{1,7},s{4,7},
sp{1,8},s{2,8},s{3,8},s{4,8};
}
def sat_tissue(n,m)
{
call init_cells();
call init_multisets(n);
call init_environment(n,m);
call init_rules(n,m);
}
def init_cells()
{
4.3. Codicación de soluciones ecientes al problema SAT 137
@ms(1) = yes,no,b{1},c{1},d{1},e{1};
@ms(2) = f;
@ms(2) += a{i} : 1<=i<=n;
}
def init_environment(n,m)
{
@ms(0) = f,q;
@ms(0) += s{i,j},sp{i,j} : 1<=i<=n,1<=j<=m;
@ms(0) += a{i},t{i},f{i} : 1<=i<=n;
@ms(0) += r{i} : 1<=i<=m;
@ms(0) += T{i},F{i} : 1<=i<=n;
@ms(0) += T{i,j},F{i,j} : 1<=i<=n,1<=j<=m+1;
@ms(0) += b{i} : 1<=i<=3*n+m+1;
@ms(0) += c{i} : 1<=i<=n+1;
@ms(0) += d{i} : 1<=i<=3*n+n*m+2*m+1;
@ms(0) += e{i} : 1<=i<=3*n+n*m+2*m+3;
}
Formatos de entrada
Los formatos de chero para denir sistemas P que puede leer y procesar
pLinguaCore son:
El formato P-Lingua
El formato P-XML
Formatos de salida
Los formatos de chero para denir sistemas P que pueden ser generados
por la biblioteca son:
El formato P-XML
El formato P-Bin
4.5. Simulación por software de sistemas P 141
I. Inicialización
1. C0 es la conguración inicial.
3. Ct = C0 es la conguración actual.
IV. Finalización
1. Si Rsel 6= ∅ entonces
Hacer Ct+1 = Ct
Hacer Rsel = {}
Ir a II
2. Fin
I. Inicialización
1. C0 es la conguración inicial.
3. Ct = C0 es la conguración actual.
a ) Añadir el objeto b a m
b ) Cambiar la carga de m a β
a ) Añadir el objeto b a m
Capítulo 4. Un entorno de programación para Membrane Computing 146
b ) Cambiar la carga de m a β
IV. Finalización
1. Si Rsel 6= ∅ entonces
Hacer Ct+1 = Ct
Hacer Rsel = {}
Ir a II
2. Fin
4.5. Simulación por software de sistemas P 147
1. Inicialización
2. Selección de reglas
3. Ejecución de reglas
4. Finalización
(a) Las reglas se clasican en conjuntos de tal manera que todas las reglas
que se encuentren en el mismo conjunto tienen la misma parte izquierda.
(a) Las reglas se clasican en conjuntos de tal manera que todas las reglas
que se encuentren en el mismo conjunto tienen la misma parte izquierda.
(c) Sea F (N, p) una función que devuelve un número aleatorio discreto,
según la distribución binomial B(N, p)
• Sea d = 1
4.5. Simulación por software de sistemas P 149
• Sea nt = N
I. Inicialización
4. Ct = C0 es la conguración actual.
1. Para cada tupla hck1 , ck2 , (i, u/v, j), M i de Rsel hacer
V. Finalización
1. Si Rsel 6= ∅, entonces
Hacer Ct+1 = Ct
Hacer Rsel = {}
Ir a II
2. Fin.
• P-Lingua
• P-XML
• P-XML
• P-Bin
• transition
• active_membranes
• binomial_probabilistic
• uniform_probabilistic
• tissue
2. Multiconjuntos iniciales.
3. Conjunto de reglas.
Aplicación al estudio de
ecosistemas
155
Capítulo 5
157
Capítulo 5. Modelos de ecosistemas basados en sistemas P 158
en donde:
T es un número natural, T ≥ 1;
1, . . . , T .
Las reglas del sistema son aplicadas en una forma que denominamos
paralela, maximal y consistente; es decir, para cada i ∈ {0, . . . , q − 1},
0
α, α0 ∈ {0, +, −}, todas las reglas del tipo u[v]αi → u0 [v 0 ]αi , para u, v, u0 , v 0
multiconjuntos sobre Γ, que hayan sido seleccionados para su ejecución
en un cierto instante, han de ser aplicadas simultáneamente en dicho
paso.
en donde:
e1 e2
e3 e4
(a) Generar una partición del conjunto de reglas de tal manera que en cada
conjunto de la partición aparezcan todas aquellas reglas que tienen la
misma parte izquierda.
(b) Sea F (N, p) una función que devuelve un número aleatorio discreto a
partir de la función de distribución binomial B(N, p).
(c) Para cada paso de simulación hacer:
crk
crk ←− d ;
N ←− N − nrk ;
q ←− 1 − crk ;
d ←− d ∗ q ;
◦ nrt ←− N
REALLIFE PROCESS
DATA
(e.g. an ecosystem) Compare results
Carrying out
studies/experimets
Inspiration
Inspiration
Run virtual
experiments
VALIDATED
MODEL VALIDATION
MODEL
Success
Fail
Simulator
Por otra parte, una vez que se considera validado un modelo, es posible
analizar la dinámica del mismo ante distintos escenarios que pudieran ser
interesantes para los expertos, lo cual puede asistir a los expertos en el
planteamiento de hipótesis plausibles.
El protocolo de experimentación virtual sería el siguiente:
Check results
Suggest
Expert virtual
experiments
Run virtual
experiments
Simulator
NEW
KNOWLEDGE
en donde:
• Reproducción de plantas.
k1,1
2
◦ r1 ≡ X1,1 [ ]1 −−−→[X1,1 ]1
1−k1,1
◦ r2 ≡ X1,1 [ ]1 −−−→[X1,1 ]1
5.4. Un ejemplo: Interacciones tritrócas 173
◦ r3 ≡ [a1 ]1 → [a2 ]1
• Alimentación y reproducción de animales herbívoros.
k2,1
10
◦ r4 ≡ [X2,1 , X1,1 2
]1 −−−→ b[X2,1 , c]+
1
10 1−k2,1 10 +
◦ r5 ≡ [X2,1 , X1,1 ]1 −−−→ b[X2,1 , X1,1 ]1
◦ r6 ≡ [a2 ]1 → b[a3 ]+
1
◦ r16 ≡ [a4 ]−
1 → b[a1 ]1
◦ r17 ≡ [b]0 → [ ]0
error, así como los valores de las multiplicidades qi,1 (1 ≤ i ≤ 3) que se han
considerado en la simulación.
cada especie, por cada año que se ha simulado. La gura 5.4 muestra los
resultados obtenidos para un proceso de simulación del ecosistema durante 25
años, realizando 50 simulaciones por año.
Capítulo 5. Modelos de ecosistemas basados en sistemas P 176
El código es el siguiente:
@model<probabilistic>
def main()
{
@mu = [ []'1 ]'0;
5.4. Un ejemplo: Interacciones tritrócas 179
@ms(0) = X{1,1}*q{1,1};
@ms(1) = X{2,1}*q{2,1},X{3,1}*q{3,1},a{1};
Casos de estudio
181
Capítulo 6. Casos de estudio 182
gi,1 : es una constante que vale 1 para animales salvajes y 0 para animales
domésticos.
En donde:
Σ=∅
q q
• M11 = {b0i , Xijij , ht 1j : 1 ≤ i ≤ n, 0 ≤ j ≤ gi,6 }, en donde qij
indica el número de animales de la especie i y edad j , inicialmente
presentes en el ecosistema y
P21
j=8 q1j − 6
t = máx{1, d e}
1,352
El valor de t que aparece en la expresión matemática anterior se
obtiene realizando una regresión lineal (que nos proporciona el
crecimiento de la población).
• M21 = {C}
r1 ≡ [b0,i → bi ]01 .
Machos adultos:
(
(1−ki,1 )·(1−ki,4 ) 1 ≤ i ≤ n,
r2 ≡ [Xij −−−→ Yij ]01 ,
gi,4 ≤ j < gi,5
Hembras adultas que se pueden reproducir:
(
ki,2 ·ki,1 ·(1−ki,4 ) ki,3 0 1 ≤ i ≤ 4,
r3 ≡ [Xij −−−→ Yij Yi0 ]1 ,
gi,4 ≤ j < gi,5
(
ki,2 ·ki,1 ·(1−ki,4 ) ki,3 0 7 ≤ i ≤ n,
r4 ≡ [Xij −−−→ Yij Yi0 ]1 ,
gi,4 ≤ j < gi,5
0,5·k5,2 k
r5 ≡ [X5j −−−→ Y5j Y50i,3 ]01 , g5,4 ≤ j < g5,5 .
0,5·k5,2 k
r6 ≡ [X5j −−−→ Y5j Y60i,3 ]01 , g5,4 ≤ j < g5,5 .
• Reglas de mortalidad.
2 ,,
0fi,3 ·gi,2 0fi,4 ·gi,2 0f ·g
r19 ≡ Yigi,6 hks i,4 [ ]02 −−−→[H
c19
i Fi
k
B i,3 i,2 M 0fi,4 ·gi,2 Vi,gi,4
i,4 −1
k k
hs i,4 Ti i,4 ]+
en donde 1 ≤ i ≤ n, t + 1 ≤ s ≤ D + t y siendo
c19 = ki,4 + (1 − ki,4 ) · (mi,4 + (1 − mi,4 ) · mi,2 ).
d0,9∗gi,7 e d0,2∗gi,7 e +
r21 ≡ bi [ ]02 → [bi ai ei ]2 , 1 ≤ i ≤ n.
2 , 1 ≤ i ≤ n.
0,5
r24 ≡ [ei −−−→ λ]+
2.
r27 ≡ [B 0 → B]+
2.
r28 ≡ [M 0 → M ]+
6.1. Un ecosistema real relacionado con el quebrantahuesos 195
2.
r29 ≡ [C 0 → C]+
2 , 1 ≤ i ≤ n.
r30 ≡ [Hi0 → Hi ]+
2 , 1 ≤ i ≤ n.
r31 ≡ [Fi0 → Fi ]+
• Reglas de alimentación.
8
< 1 ≤ i ≤ n,
>
r32 ≡ [Zij hks i,4 ai B fi,5 ·gi,2 Gfi,6 ·gi,2 M fi,7 ·gi,2 ]+2 → Xi(j+1) hsk1,4 [ ]02 , >
0 ≤ j ≤ gi,6 ,
t+1≤s≤D+t
:
• Reglas de actualización.
El objetivo de las siguientes reglas consiste en realizar una
actualización al nal del año. En particular, el alimento sobrante
no es útil para el siguiente año y, por tanto, hay que eliminarlo. Si
la cantidad de comida no es suciente, entonces algunos animales
tienen que morir.
r33 ≡ [G → λ]02 .
r34 ≡ [M → λ]02 .
r35 ≡ [B → λ]02 .
(
gi,1
0f 0f 1 ≤ i ≤ n,
r42 ≡ [Zij −−−→ Hi i,1 Fi i,2 B 0fi,1 M 0fi,2 ]02 ,
0 ≤ j < gi,3
(
1−gi,1 1 ≤ i ≤ n,
r43 ≡ [Zij ]02 −−−→ di [ ]02 ,
0 ≤ j < gi,3
◦ Animales adultos que mueren por falta de comida:
1 ≤ i ≤ n,
k1,4 gi,1 0fi,3 0fi,4 0fi,3 0f 0
r44 ≡ [Zij hs −−−→ Hi Fi B M i,4 ]2 , gi,3 ≤ j ≤ gi,6 ,
t+1≤s≤D+t
1 ≤ i ≤ n,
k1,4 1−gi,1 0
r45 ≡ [Zij hs −−−→ λ]2 , gi,3 ≤ j ≤ gi,6 ,
t+1≤s≤D+t
Poblaciones iniciales.
En la actualidad los expertos han obtenido una gran cantidad de datos acerca
de dicho ecosistema real, lo cual posibilitan el desarrollo de un modelo formal
susceptible de ser validado experimentalmente.
El pantano recibe agua de otros pantanos y de tres ríos. El agua más
caliente y supercial proviene de los ríos, mientras que el agua más fría y
profunda procede de los pantanos. Tras la realización de exhaustivos estudios
se ha llegado a la conclusión de la existencia de 17 zonas bien diferenciadas
en el pantano, que pueden ser analizadas en base a las uctuaciones de
temperatura. La primera consecuencia de esta estructuración es que los ciclos
de reproducción del mejillón comienzan en diferentes momentos en función de
las distintas zonas consideradas. En segundo lugar, hay que destacar el hecho
de que el substrato del pantano es diferente en cada zona, de tal manera que
la densidad de mejillones varía según las zonas; por ejemplo, si un mejillón cae
en una supercie arenosa entonces no puede sobrevivir, en cambio no sucede
lo mismo con otro tipo de sustrato existente en el pantano.
El grafo del sistema es G = (V, S), donde V = {e1 , . . . , e17 } y los arcos
son (v, v), para cada v ∈ V , añadiendo los representados en la siguiente
gura:
5 6 15
1 3 7 9 11 13 16
2 4 8 10 12 14 17
Los objetos que pueden estar presentes en el entorno son los pertenecien-
tes al siguiente alfabeto:
1 ≤ c ≤ 2,
1 ≤ a ≤ T,
r22,c,a,s ≡ W Ec,a,s ej
→ W1,c,a ,
es
(ej , es ) ∈ S,
j 6= s
1 ≤ c ≤ 2,
r23,c,a,j ≡ W Ec,a,j ej
→ W1,c,a , 1 ≤ a ≤ T,
ej
1 ≤ j ≤ 17
1 ≤ j ≤ 17
(
1−fr ,j 1 ≤ c ≤ 2,
r3c ≡ [Dc −−−→ Dc,1,1 ]00 ,
2c
1 ≤ j ≤ 17
1 ≤ d ≤ 14,
fr
4cf 3 ,j
1 ≤ f ≤ 7,
r4cdf ≡ [Dc,d,f −−−→ t1 , t2 , t3 ]00 ,
1 ≤ c ≤ 2,
1 ≤ j ≤ 17
1 ≤ d ≤ 14,
fr
5cf 2 ,j
1 ≤ f ≤ 7,
r5cdf ≡ [Dc,d,f −−−→ t1 , t2 , Dc,d+1,f ]00 ,
1 ≤ c ≤ 2,
1 ≤ j ≤ 17
6.2. Un ecosistema real relacionado con el mejillón cebra 205
1 ≤ d ≤ 14,
fr
6cf 1 ,j
1 ≤ f ≤ 7,
r6cdf ≡ [Dc,d,f −−−→ t1 , Dc,d+1,f ]00 ,
1 ≤ c ≤ 2,
1 ≤ j ≤ 17
1 ≤ d ≤ 14,
1− i=7
P
1 ≤ f ≤ 7,
i=4 fricf (7−i) ,j
r7cdf ≡ [Dc,d,f −−−→ Dc,d+1,f ]00 ,
1 ≤ c ≤ 2,
1 ≤ j ≤ 17
fr 1 ≤ f ≤ 7,
8cf 3 ,j 0
r8cf ≡ [Dc,14,f −−−→ t1 , t2 , t3 ]0 , 1 ≤ c ≤ 2,
1 ≤ j ≤ 17
fr 1 ≤ f ≤ 7,
9cf 2 ,j 0
r9cf ≡ [Dc,14,f −−−→ t1 , t2 , Dc1f +1 ]0 , 1 ≤ c ≤ 2,
1 ≤ j ≤ 17
fr 1 ≤ f ≤ 7,
10cf 1 ,j
r10cf ≡ [Dc,14,f −−−→ t1 , Dc,1,f +1 ]00 , 1 ≤ c ≤ 2,
1 ≤ j ≤ 17
1− i=10
P
i=8 fricf (11−i) ,j
1 ≤ f ≤ 7,
r11cf ≡ [Dc,14,f −−−→ Dc,1,f +1 ]00 , 1 ≤ c ≤ 2,
1 ≤ j ≤ 17
r13 ≡ [t]+ 0
m → t[ ]m , 1 ≤ m ≤ 3
1 ≤ a ≤ T,
n(j) ≤ d ≤ 180,
+ 0,5 gc,1 0
r14 ≡ [Qd,c,a ]m −−−→ Y1,c,a L0,c,a [ ]m , 1 ≤ c ≤ 2,
1 ≤ m ≤ 3,
1 ≤ j ≤ 17
1 ≤ a ≤ T,
n(j) ≤ d ≤ 180,
+ 0,5 0
r15 ≡ [Qd,c,a ]m −−−→ Y1,c,a [ ]m , 1 ≤ c ≤ 2,
1 ≤ m ≤ 3,
1 ≤ j ≤ 17
1 ≤ a ≤ T,
0 ≤ d < n(j),
+ 0
r16 ≡ [Qd,c,a ]m → Y1,c,a [ ]m , 1 ≤ c ≤ 2,
1 ≤ m ≤ 3,
1 ≤ j ≤ 17
1 ≤ a ≤ T,
1 ≤ s ≤ 6,
0,5 gc,s
r17 ≡ [Xs,c,a ]+ 0
m −−−→ Ys,c,a L0,c,a [ ]m ,
1 ≤ c ≤ 2,
1 ≤ m ≤ 3,
1 ≤ a ≤ T,
1 ≤ s ≤ 6,
0,5
r18 ≡ [Xs,c,a ]+ 0
m −−−→ Ys,c,a [ ]m ,
1 ≤ c ≤ 2,
1 ≤ m ≤ 3,
1 ≤ a ≤ T,
fr ,j
1 ≤ c ≤ 2,
r20 ≡ [L28,c,a ]00 −−−→20
W Ec,a,s [ ]00 ,
1 ≤ s ≤ 17,
1 ≤ j ≤ 17
fr ,j
1 ≤ a ≤ T,
21 0
r21 ≡ [L28,c,a −−−→ λ]0 , 1 ≤ c ≤ 2,
1 ≤ j ≤ 17
1 ≤ d ≤ 180,
1 ≤ a ≤ T,
r32 ≡ [Qd,c,a ]− 0
m → Y1,c,a [ ]m ,
1 ≤ c ≤ 2,
1≤m≤3
r33 ≡ [t]− 0
m → t[ ]m , 1 ≤ m ≤ 3
B(k)∗250000 0
r35 ≡ [h]+
4 → b a0 4
, 1 ≤ k ≤ 17
r36 ≡ [as ]+ 0
4 → b[as+1 ]4 , 0 ≤ s ≤ 4
r37 ≡ [e]+ 0
4 → b[f1 ]4
r38 ≡ [ei ]+ 0
4 → b[fi ]4 , 1 ≤ i ≤ 5
r40 ≡ [e6 ]+ 0
4 → b[f ]4
1 ≤ a ≤ T,
0 +
r41 ≡ [Qd,c,a a0 ]4 → Qd+1,c,a [ ]4 , 3 ≤ d ≤ 180,
1≤c≤2
6.2. Un ecosistema real relacionado con el mejillón cebra 209
1 ≤ a ≤ T,
0 +
r42 ≡ [Ys,c,a as ]4 → Xs+1,c+(−1)c+1,a [ ]4 , 1 ≤ s ≤ 5,
1≤c≤2
1 ≤ a ≤ T,
fr
43m ,j
1 ≤ m ≤ 3,
r43m ≡ Xs,c,a [ ]0m −−−→[X 0
s,c,a ]m ,
1 ≤ c ≤ 2,
1 ≤ j ≤ 17
fr ,j
r44m ≡ Qd,c,a [ ]0m −−−→[Q
44m 0
d+1+(c−1)∗60,c+(−1)c+1 ,a+(c−1) ]m ,
8
>
> 1≤ a ≤ T,
< 0≤ d ≤ 121,
>
>
>
1≤ m ≤ 3,
>
>
>
>
> 1≤ c ≤ 2,
1≤ j ≤ 17
:
1 ≤ a ≤ T,
5 ≤ d ≤ 121,
r45 ≡ [Qd,c,a → Qd+1,c,a ]0m ,
1 ≤ m ≤ 3,
1≤c≤2
1 ≤ d ≤ 121,
−
r48 ≡ [Qd,c,a ]4 → M [ ]04 , 1 ≤ c ≤ 2,
1≤a≤T
r49 ≡ [as ]− 0
4 → b[ ]4 , 0 ≤ s ≤ 6
Capítulo 6. Casos de estudio 210
r50 ≡ [b]− 0
4 → b[ ]4
r51 ≡ [b → λ]00
r52 ≡ [t → λ]00
r54 ≡ [ci ]− 0
4 → Di+(−1)i+1 [ci+(−1)i+1 ]4 , 1 ≤ i ≤ 2
r55 ≡ [f ]− 4
4 → b[e]0
(M0 )e = {η0 , T1 }, 1 ≤ e ≤ 17
Temperaturas medias a lo largo del año: son necesarias para calcular las
probabilidades asociadas a las reglas de la r2 a la r11 .
215
Capítulo 7
217
Capítulo 7. Conclusiones y líneas de trabajo futuro 218
El núcleo de simulación.
identicar que una regla no está permitida en el modelo que se está usando o
bien que su sintaxis no es correcta.
Uno de los objetivos que nos proponemos con el desarrollo de P-Lingua
es que se convierta en un estándar para la denición de sistemas P. De esta
manera, se consiguen las siguientes ventajas:
Casos de estudio
Un marco general para la modelización y simulación de ecosistemas
al usuario ecólogo. En este sentido, se puede armar que EcoSim 2.0 es una de
las primeras aplicaciones informáticas basadas en Membrane Computing para
ser usadas como herramienta instrumental en otras ramas de la ciencia.
EcoSim 2.0 también permite un modo de funcionamiento para el usuario
que diseña el modelo; así, la aplicación se comporta como una caja blanca y
permite la simulación de sistemas P probabilísticos paso a paso, con el objetivo
de depurar y validar experimentalmente el modelo.
El modelo que dene el ecosistema a través de un sistema P es escrito en
P-Lingua por el usuario que lo diseña, sin necesidad de conocer otros lenguajes
de programación.
Las adaptaciones especícas de EcoSim 2.0 se mencionan a continuación.
Cabe decir que esta herramienta está siendo utilizada a día de hoy por
expertos en ecología como asistente informático en la toma de decisiones de
gestión y conservación de un ecosistema real.
Se propone:
Para cada nuevo modelo soportado por P-Lingua, será necesario añadir
al marco uno o más algoritmos de simulación.
comporta para él como una caja negra, realizando las simulaciones de manera
transparente. Este usuario tan sólo interactúa con la interfaz de la aplicación.
El desarrollo de una nueva versión de EcoSim 2.0 para otro modelo de
ecosistema conlleva lanzar un proyecto informático para la creación del nuevo
GUI, siguiendo todas las fases del ciclo de vida del software (especicación
funcional, análisis, diseño, codicación, pruebas, puesta en servicio, etc.). Este
proceso contrasta con la enorme agilidad que ofrece P-Lingua para denir el
sistema P del modelo. Por otra parte, el proceso actual conduce a la producción
de muchas versiones de una familia de software, incrementando el coste de
mantenimiento.
Con el n de agilizar el desarrollo de nuevas aplicaciones, se propone
desarrollar una nueva herramienta (EcoSim 3.0 ) que permita al usuario
diseñador, de manera relativamente sencilla, la creación de la interfaz de
usuario. Para ello, se propone establecer un método de denición de interfaces
de usuario basado en cheros Excel o XML. Así, el usuario diseñador no
solamente se encargaría de utilizar EcoSim 3.0 para especicar, depurar y
validar experimentalmente el modelo, sino también para el diseño y la creación
de una interfaz gráca de usuario para la aplicación nal, que se entregará al
usuario ecólogo.
A este nivel de abstracción y teniendo en cuenta que el marco de
modelización se puede extender a otros procesos de la vida real, conviene
resaltar que EcoSim 3.0 podría servir como herramienta en otras ramas de la
ciencia distintas a la Ecología. Si esto es así, se recomienda cambiar el nombre
de EcoSim 3.0 por otro más genérico y cambiar el término de usuario ecólogo
por usuario experto.
También sería conveniente incluir en esta nueva aplicación la integración
con otros simuladores ecientes a través del protocolo de comunicaciones
descrito anteriormente. De esta manera, la interfaz podría comunicarse con
simuladores remotos y ejecutar simulaciones de sistemas P, con el n de
interpretar posteriormente los resultados y mostrarlos de manera comprensible
al usuario experto.
230 Bibliografía
Bibliografía
231
232 Bibliografía
[35] D.W. Corne, P. Frisco. Dynamics of HIV infection studied with Cellular
Automata and conformon-P systems. BioSystems, 91, 3 (2008), 531544.
[38] J.A. Donazar. Los buitres ibéricos: biología y conservación (J.M. Reyero
ed.), Madrid, Spain, 1993.
[43] M.R. Garey, D.S. Johnson. Computers and intractability, W.H. Freeman
and Company, New York, (1979).
[60] T. Head. Formal language theory and DNA: an analysis of the generative
capacity of specic recombinant behaviors. Bulletin of Mathematical
Biology, 49 (1987), 737759.
[63] J.H. Holland. Adaptation in natural and articial systems. MIT Press,
1975.
238 Bibliografía
[70] P.M. Lewis, R.E. Stearn, J. Hartmanis. Memory bounds for recognition
of context-free and context-sensitive languages. Proceedings of the Sixth
Annual IEEE Symposium on Switching Circuit Theory and Logical
Design, 1965, 191202.
[108] C. Ruíz Altaba, P.J. Jiménez, M.A. López. El temido mejillón cebra
empieza a invadir los ríos españoles desde el curso bajo del río Ebro.
Quercus, 188 (2001), 5051.