Computación basada en membranas

Anuncio
COMPUTACIÓN BASADA EN MEMBRANAS
Pedro Arturo Góngora Luna
[email protected]
25 de junio de 2007
1.
Introducción
La computación basada en membranas es un área de investigación al rededor de un modelo de cómputo: los sistemas P. Estos sistemas, introducidos por
Gheorghe Păun en [Păun, 2000], son un modelo inspirado en los sistemas de la
propia naturaleza. En ese sentido, pertenecen a una lı́nea más amplia de estudio,
la Computación Natural, donde también encontramos a otros modelos como las
redes neuronales artificiales y los algoritmos genéticos.
Para los sistemas P, la abstracción se hace del funcionamiento las células vivas,
esto es, de su estructura e interacción. El concepto principal es el de membrana,
idealizándola como un contenedor que separa a los objetos contenidos de un medio
exterior.
Ası́ como en las células vivas, las membranas en los sistemas P son una estructura jerárquica, donde una membrana puede contener otras membranas, además
de otros objetos. En estos sistemas, el cómputo se logra de la interacción de las
membranas y la evolución de sus elementos.
A pesar de ser una lı́nea de investigación relativamente nueva ha tenido un desarrollo importante, con aceptación por parte de muchos investigadores. El desarrollo actual cuenta ya con diversas propuestas aplicación, además de la investigación
teórica.
La investigación teórica continúa centrada en el estudio del poder computacional en ambos sentidos, de expresividad y complejidadde diversas clases de
sistemas. Ası́ como, la definición de las caracterı́sticas necesarias y suficientes que
otorguen dicho poder de cómputo (cf. [Păun, 2005, Zandron et al., 2000]). También encontramos otros aspectos teóricos como caracterizaciones algebraicas de los sistemas P, que provean de fundamentos sólidos para la implementación de éstos, desde
simulaciones en computadoras digitales hasta implementaciones en hardwareen
silicio y en materia orgánica [Arroyo-Montoro, 2004, Petreska and Teuscher, 2003,
Fernandez et al., 2005].
Dentro de las aplicaciones, podemos encontrar diversas áreas de estudio. Los
sistemas P se han propuesto como modelo de especificación formal para sistemas
1
COMPUTACIÓN BASADA EN MEMBRANAS
4
2
===
==
==
1=
==
==
==
3
5
Figura 1: Estructura jerárquica de membranas.
distribuidos (cf. [Cavaliere and Deufemia, 2005]). También, se han propuesto como modelos para especificar y simular procesos biológicos (cf. [Bernardini, 2005,
Bianco, 2007, Gutiérrez-Naranjo et al., 2005]).
2.
2.1.
Sistemas P
Descripción general de un sistema P
Existen diferentes clases de sistemas P con diferentes componentes. Primero
vamos a describir una clase básica que puede extenderse o modificarse.
Un sistema P se compone de tres elementos básicos:
Una colección de membranas, modeladas como multiconjuntos ordenados en
una estructura jerárquica.
Un conjunto de sı́mbolos que serán los elementos de las membranas, a este
conjunto se le llama alfabeto.
Un conjunto de reglas de evolución, que dictan el cambio de estado en la
configuración de las membranas y sus elementos como función de su contenido.
La intuición proviene de la estructura de las células vivas, las cuales están
organizadas y divididas por membranas que contienen otros elementos simples o
complejos y quizá, a su vez, organizados dentro de otras membranas. Una membrana es básicamente un contenedor tridimensional como, por ejemplo, una bolsa
o un saco. Esta es la razón de la estructura jerárquica dos bolsas no tienen
intersección.
En la figura 1 se muestra una estructura de membranas. Cada nodo del árbol
representa una membrana, cuyo nombre es la etiqueta de éste. Ası́, la membrana
1 con tiene a las membranas 2 y 3, del mismo modo, la membrana 2 contiene a las
membranas 4 y 5.
2
COMPUTACIÓN BASADA EN MEMBRANAS
En la estructura anterior, las membranas 3, 4 y 5 se llaman primitivas, pues no
contienen a otras membranas. La raı́z de la estructura, la membrana 1, se llama
piel, pues es la membrana principal del sistema. Como veremos más adelante, esta
estructura puede ser dinámica, es decir, es posible que se modifique a lo largo del
tiempo eliminando o agregando membranas.
Cada membrana tiene asociado un conjunto de reglas de evolución. Las reglas
de evolución dictan las modificaciones al sistema, de acuerdo con los sı́mbolos
contenidos en la membrana. Estas reglas se aplican de forma no determinista y
paralela maximal de acuerdo con una relación de prioridad. Paralelo maximal, se
refiere a que se aplican exactamente al mismo tiempo las reglas de todas las
membranas, ası́ como, todas las reglas aplicables de cada membrana.
2.2.
Definición de un sistema P básico
La definición formal de un sistema P básico es la siguiente estructura:
Π = (O, C , µ, w1 , . . . , wn , R1 , . . . , Rn , ρ1 , . . . , ρn , io )
donde
O es un conjunto finito de objetos o sı́mbolos, esto es, el alfabeto de Π;
C ⊂ O, es un conjunto de sı́mbolos catalizadores;
µ es una estructura jerárquica de membranas etiquetadas con los números
1, . . . , n;
wi es una cadena de sı́mbolos en O representando el contenido de la membrana i, usamos λ para denotar a la cadena vacı́a;
Ri es un conjunto de reglas de evolución para cada membrana i;
ρi es una relación de prioridad entre las reglas de una membrana, esto es,
una relación de orden parcial asociada al conjunto Ri de reglas;
io es la membrana de salida del sistema, es alguna de las etiquetas 1, . . . , n.
Si las etiquetas de las membranas son 1, . . . , n, entonces decimos que el grado
del sistema es n.
La estructura µ se representa como una cadena de corchetes balanceados. Cada
membrana se representa con una pareja de corchetes uno que abre y otro que
cierra y se utiliza su nombre como subı́ndice.
Por ejemplo, la estructura de la figura 1 se representa con la cadena:
[1 [2 [4 ]4 [5 ]5 ]2 [3 ]3 ]1
3
COMPUTACIÓN BASADA EN MEMBRANAS
Una regla de evolución tiene alguna de las siguientes dos formas:
u→v
u → vδ
con δ 6∈ O.
El antecedente u de una regla es una cadena sobre O. Si la cadena contiene
sólo un carácter, decimos que la regla es no cooperativa, si es una cadena arbitraria,
entonces es cooperativa.
Un caso especial de reglas cooperativas son las reglas catalı́ticas, de la forma:
u = cu0
donde c ∈ C es un catalizador y u0 es una cadena cualquiera sobre O − C . Los
catalizadores no se modifican con las reglas, sólo se utilizan para propiciar los
cambios en el sistema.
El consecuente v de la regla tiene la forma:
v = vhere , vini , vout
El elemento vhere es una cadena sobre O que sustituye a u en la membrana
asociada a la regla. La siguiente parte, vini es también una cadena sobre O que se
coloca en la membrana indicada por el subı́ndice i. Por último, vout es una cadena
sobre O que se envı́a fuera del sistema, es decir, fuera de la piel. Las dos últimas
partes de la regla, esto es vini y vout , son opcionales.
Cuando la regla es del tipo u → vδ, se indica que la membrana asociada a la
regla debe disolverse. Cuando una membrana se disuelve todos sus elementos se
copian a la membrana superior en la jerarquı́a. Las reglas de la membrana disuelta
también se eliminan, de tal forma que en las siguientes iteraciones, las reglas
aplicables son las de la membrana superior. Hay que recordar que δ es un sı́mbolo
especial no contenido en el alfabeto.
Regularmente el subı́ndice here se omite para facilitar la lectura.
Como ya se mencionó, la elección de las reglas se hace de forma no determinista. sin embargo, las relaciones ρi de prioridad pueden ayudar a disminuir el no
determinismo del sistema. En el momento de elegir una regla, sólo se selecciona
ésta si y sólo si no existe otra con mayor prioridad.
2.3.
Un ejemplo sencillo
Para comprender mejor cómo funcionan estos sistemas, vamos a diseñar uno
que realice un cálculo simple: el sucesor de un número en base 1 i.e., usamos un
sı́mbolo para 1, dos sı́mbolos para 2, etc..
Especificamos el sistema P con las siguientes caracterı́sticas:
Πsuc = (O, C , µ, w1 , w2 , w3 , R1 , R2 , R3 , ρ1 , ρ2 , ρ3 , io )
donde
4
COMPUTACIÓN BASADA EN MEMBRANAS
O = {a, b, c};
C = {c};
µ = [ 1 [2 [3 ]3 [4 ]4 ]2 ]1 ;
w1 = w2 = w4 = λ;
w3 = can ;
R1 = R4 = ∅;
R2 = {r2,1 : a → a, r2,2 : cb → c, ain4 };
R3 = {r3,1 : ca → cb, r3,2 : ca → cbbδ, r3,3 : b → b};
ρ1 = ρ4 = ∅;
ρ2 = {r2,1 > r2,2 };
ρ3 = {r3,1 > r3,3 , r3,2 > r3,3 };
io = 4.
La entrada del sistema es un número en la membrana 3, utilizamos el sı́mbolo a
para representarlo, . También utilizamos el sı́mbolo c como catalizador. El resultado,
debe ser también un número en base 1, pero en la membrana 4 de salida. La figura
2 muestra la configuración inicial de este ejemplo.
El algoritmo consiste en convertir las n copias de a en n + 1 copias de b para
después convertir todas las copias de b en a’s, pero moviéndolas a la membrana
de salida.
En un principio, sólo se aplican las reglas de la membrana 3, pues es la única
que tiene elementos. En esta membrana, las reglas r3,1 y r3,2 tienen la misma
prioridad, pero mayor prioridad que r3,3 . Entonces, hay tres escenarios posibles:
1. Se convierten en n pasos todas las copias de a en b usando r3,1 .
2. Se convierten en i pasos, 1 ≤ i < n − 1. En el paso i + 1 se aplica la regla
r3,2 y se disuelve la membrana, pero dejando algunas copias de a.
3. Se convierten en n − 1 pasos (pues sólo hay una sola c) las copias de a en
b usando la regla r3,1 . En el paso n-ésimo, se convierte la última copia de a
en bb, y se disuelve la membrana.
En el primer escenario, se terminan las copias de a sin disolver 3. Esto hace
que la única regla aplicable sea r3,3 , ciclando el sistema.
El segundo escenario es similar, se disuelve 3 dejando algunas copias de a.
Se eliminan las reglas de 3, y sus objetos se mueven a 2. Aquı́ r2,1 tiene la mayor
prioridad, por lo que también se cicla el sistema.
5
COMPUTACIÓN BASADA EN MEMBRANAS
1
2
3
4
can
r3,1
r3,2
r3,3
r3,1
r3,2
: ca → cb
: ca → cbbδ
:b→b
> r3,3
> r3,3
r2,1 : a → a
r2,2 : cb → c, ain4
r2,1 > r2,2
Figura 2: Sistema P para calcular el sucesor de un número n.
En el último escenario se disuelve 3, convirtiendo las n + 1 copias de b, en
n + 1 copias de a y moviéndolas a 4, que es el resultado deseado. Este escenario
se logra utilizando una combinación de elecciones no deterministas y elecciones
basadas en las relaciones de prioridad.
2.4.
Realizando cómputos con sistemas P
Formalmente, para un sistema Π de grado n, decimos que la tupla
(µ, w1 , . . . , wn )
es una configuración del sistema. Decimos que existe una transición entre dos
configuraciones si se puede obtiener una de la otra en un sólo paso (usando las
reglas asociadas), y definimos un cómputo relativo a Π como una secuencia de
transiciones.
Un cómputo se detiene si en la última configuración de la secuencia ya no es
posible aplicar ninguna regla. También, decimos que el cómputo fue exitoso si y sólo
si la membrana, io , de salida es elemental en dicha configuración y, obviamente,
no está disuelta.
El resultado de un cómputo exitoso es el número de elementosi.e., un número
natural en la membrana de salida. Para algún sistema Π, denotamos como N(Π)
al conjunto de los números que se pueden generar con Π. Otro enfoque posible es
definir N(Π) como el número de objetos enviados fuera del sistema, a este enfoque
se le conoce como de salida externa, mientras al primer enfoque se le conoce como
de salida interna.
6
COMPUTACIÓN BASADA EN MEMBRANAS
Como es de esperase, los sistemas P con las caracterı́sticas anteriores son
Turing completos. En otras palabras, los posibles conjuntos N(Π) son exactamente
los conjuntos recursivamente numerables.
Igualmente que otros modelos, como las Máquinas Turing, los sistemas P no solamente pueden utilizarse para generar conjuntos, sino que también pueden usarse
para realizar cálculos y para resolver problemas de decisión.
2.5.
Extensiones al modelo básico
Existen diferentes extensiones al modelo básico de los sistemas P. Una extensión al modelo puede tener dos objetivos principales: acercar el modelo a la
realidad, al funcionamientos de las células vivas, o agregar eficiencia computacional.
El tipo de las reglas del sistema básico, en particular las reglas con instrucciones vinj , no se alejan demasiado del funcionamiento cualquier lenguaje formal. Para
hacer modelos más realistas, existen diversas propuestas, entre las cuales están
la introducción de cargas eléctricas a los componentes del sistema (membranas y
sı́mbolos), modificación del grosor de las membranas, modificación del sistema para
hacer uso de comunicación por medio de puertos bien definidos en las membranas
y permitir el uso de membranas activas i.e., las membranas pueden crearse y
disolverse de forma dinámica. Como veremos más adelante, la extensión al uso
de membranas activas otorga propiedades adicionales de eficiencia a los sistemas
P.
Para introducir cargas eléctricas a los componentes del sistema, modificamos
la definición asociando una carga eléctrica a sus elementos. Una carga puede ser
positiva (+), negativa (-) o neutra. Por ejemplo, escribimos a+ para especificar
que el sı́mbolo a tiene una carga positiva, 0 o la ausencia de superı́ndice indica
carga neutra. La especificación de las cargas sólo se hace en el consecuente de las
reglas, de manera que las cargas se modifican dinámicamente durante la ejecución
del sistema.
En un sistema con cargas eléctricas, se modifican también las reglas con el
componente vinj eliminando el subı́ndice j. El significado de la regla vin es que la
cadena v se introduce en alguna membrana elegida de forma no determinista
que se encuentre directamente debajo de la membrana actual en la jerarquı́a, siempre y cuando, la membrana receptora tenga una carga eléctrica opuesta al objeto
que se introduce en ella. Si la membrana actual no contiene a otras membranas,
entonces una regla de este tipo no es aplicable.
Una extensión similar a las cargas eléctricas, es el uso de catalizadores biestables. Un catalizador biestable puede estar en alguno de los dos estados c o c,
alternando entre uno y otro en cada paso. Con esta extensión, las nuevas reglas
7
COMPUTACIÓN BASADA EN MEMBRANAS
tienen la forma
cu → cv
cu0 → cv 0
que permiten alternar su uso en cada paso computacional.
La extensión del modelo al uso de membranas con grosor variable, introduce el
uso de reglas del tipo
u → vδ
u → vτ
con δ y τ dos sı́mbolos especiales no contenidos en el alfabeto O.
La regla del tipo u → vδ ya estaba en el sistema básico, la extensión radica en
el uso de reglas de tipo u → vτ. Aquı́, el significado es que τ aumenta el grosor de
la membrana asociada a la regla. Cada membrana tiene asociado un grosor, esto
es 1 o 2. La aplicación de una regla τ asigna un grosor 2 a la membrana. Cuando
se aplica una regla δ, puede ocurrir uno de dos casos: (a) si la membrana tiene
grosor 1, entonces ésta se disuelve como en el sistema básico, o (b) si la membrana
tiene grosor 2, entonces no se disuelve, pero se le asigna un grosor 1.
Las membranas basadas en comunicación tienen su origen en la caracterı́stica
de las membranas reales en una célula. En una célula viva, una membrana es una
capa doble de moléculas fosfolı́pidas. A través de estas bicapas fosfolı́pidas, se
crean canales de proteı́nas, por los cuales pueden circular ciertas moléculas.
Los canales de proteı́nas pueden permitir el paso de las moléculas de afuera
hacia adentro y en la dirección opuesta. También existe la posibilidad de que más
de una molécula atraviese por un canal en ambos sentidos y al mismo tiempo. Si
un canal permite el paso de moléculas en un sentido a la vez, se llama “symport”.
Si el canal permite el paso en ambos sentidos al mismo tiempo se llama “antiport”.
También existe la posibilidad de que siempre se permita el paso en un sólo sentido
y a una sola molécula a la vez, en este caso se le conoce como “uniport”.
En un sistema P, el modelo de los puertos o canales de comunicación se representa modificando las reglas de las membranas. La nueva forma de las reglas es
la siguiente:
(v, in)
(v, out)
(v, in; v 0 , out)
Las primeras dos reglas corresponden a canales symport o canales uniport,
si v es un sólo objeto. La última regla corresponde entonces a un canal antiport,
en donde los objetos en v se introducen a la membrana actual, tomándolos de la
membrana superior en la jerarquı́a, mientras que, al mismo tiempo, los objetos en v 0
8
COMPUTACIÓN BASADA EN MEMBRANAS
se envı́an hacia la membrana superior. Si la membrana superior no existe, entonces
los objetos se toman o se envı́an, desde o hacia el “entorno”.
La última extensión aquı́ descrita es la de membranas activas. En este modelo la
estructura de membranas es dinámica, es decir, las membranas pueden disolverse,
pero también pueden dividirse. Para este objetivo, sustituimos los conjuntos de
reglas del sistema básico y las relaciones de prioridad, por un único conjunto
R de reglas de evolución.
Las reglas de evolución para un sistema P con membranas activas pueden ser
de las siguientes formas (donde h es una etiqueta de membrana y e, e0 son cargas
eléctricas de una membrana):
1. [h a → v ]eh :
En este caso la regla es similar a las del sistema básico. Para la membrana
h con carga e, si hay una ocurrencia del sı́mbolo a, entonces se sustituye por
los sı́mbolos en v.
0
0
2. a [h ]eh → [h b ]eh y [h a ]eh → b [h ]eh :
Estas reglas sirven para establecer comunicación con la membrana superior.
En el caso de una ocurrencia de a fuera o dentro de h, para la primera
y segunda regla, respectivamente, se manda hacia afuera o hacia adentro,
posiblemente modificado como b. En la aplicación de esta regla, también se
puede modificar la carga eléctrica de la membrana.
3. [h a ]eh → b:
Esta regla funciona como una regla δ del modelo básico. En la presencia de
un objeto a en la membrana h, ésta se disuelve, posiblemente modificando
al objeto a. El resto de los objetos también se transfieren a la membrana
superior.
0
00
4. [h a ]eh → [h b ]eh [h c ]eh :
Esta regla sirve para dividir membranas. En la presencia de un objeto a, se
divide la membrana en dos, cada parte conservando la misma etiqueta. La
ocurrencia de a, se sustituye por b y c en la primera y segunda membrana
creada, respectivamente. Para cada uno del resto de los objetos se sitúa una
copia de éste en cada membrana creada. Si existe más de una regla aplicable
de este tipo, se selecciona sólo una de manera no determinista, sin embargo,
si existen otras reglas del tipo 1, éstas pueden aplicarse en el mismo paso
en las dos membranas creadas.
2.6.
Soluciones polinomiales para problemas NP completos
Los sistemas P con membranas activas son importantes por que aumentan la
“eficiencia” del cómputo. Esto es, existen varios sistemas propuestos para resolver
9
COMPUTACIÓN BASADA EN MEMBRANAS
problemas NP completos en tiempo polinomial, e incluso hasta lineal, utilizando
membranas activas.
Para observar el funcionamiento de estos sistemas, veamos un ejemplo sencillo
que calcula todos las posibles asignaciones de verdad para n proposiciones:
Πt/f = (O, µ, w1 , w2 , R)
donde
O = {ai , ti , fi | 1 ≤ i ≤ n};
µ = [ 1 [2 ]2 ]1 ;
w1 = λ;
w2 = a1 . . . an ;
R = { [2 ai ]02 → [2 ti ]02 [2 fi ]02 | 1 ≤ i ≤ n}.
Inicialmente, la membrana 2 contiene los objetos a1 . . . an . En el primer paso, se
elige de forma no determinista algún ai y se divide la membrana en dos, sustituyendo ai por ti en una membrana y fi en la otra. En el siguiente paso, se elige otro
ai en cada una de las dos nuevas membranas, y se dividen a su vez en dos cada
una, donde cada copia contiene un valor de verdad distinto para el ai seleccionado.
Siguiendo ası́, en n pasos tenemos 2n membranas, donde cada una tiene asignaciones de verdad para todas las proposiciones distintas a las de las demás, esto
es, se tienen las 2n distintas asignaciones de verdad en n pasos computacionales.
Como nota final, vale la pena mencionar algunos puntos importantes. En los
sistemas básicos, las reglas de tipo a → aa efectivamente son capaces de aumentar
exponencialmente, pero en tiempo lineal, el espacio utilizado por el sistema, sin
embargo, ésto no es suficiente para resolver en tiempo lineal problemas en NP.
Este resultado puede verse en [Zandron et al., 2000] donde se muestra que se puede
simular un sistema P determinista con una máquina de Turing determinista.
2.7.
Sistemas P en tejido y neuronales
Los sistemas P mencionados hasta el momento se basan en el funcionamiento
interno de la célula, a nivel molecular. Esto se obtiene de restringir el arreglo de
las membranas a una estructura de árbol. Sin embargo, se han propuesto otros
sistemas inspirados en la comunicación intercelular, es decir, en una red compleja
de membranas, donde ya no pensamos en cada membrana como un componente
de la célula sino que, más bien, utilizamos una membrana para modelar una célula
completa. Para estos sistemas P, no se tiene restricción alguna sobre la estructura
de las membranas, esto es, se permite una estructura arbitraria de grafo.
Existen dos familias básicas de sistemas P en este paradigma. En la primera
familia (cf. [Martı́n-Vide et al., 2001]), se consideran reglas de comunicación entre
10
COMPUTACIÓN BASADA EN MEMBRANAS
células de tipo symport y antiport, sin otorgar mucha importancia al grafo que
define la estructura de membranas. Las reglas para este tipo de sistemas son de
la forma:
(i, u/v, j)
donde i, j son etiquetas de membranas y u, v son cadenas de sı́mbolos sobre O.
En la regla anterior, se especifica que el multiconjunto de objetos en u se
transfiere de la membrana i a la membrana j, mientras que los objetos en v se
transfieren en la dirección opuesta al mismo tiempo. Entre las etiquetas i y j,
alguna y sólo una– puede ser 0, esto es, la comunicación se establece con el
entorno. De esta forma, la comunicación entre células se logra de manera directa o
a través del entorno. También, cuando alguna de las dos cadenas es vacı́a, tenemos
una regla symport, de otra forma es una regla antiport.
En la segunda familia de sistemas (cf. [Freund et al., 2004]), los sistemas P
en tejido con canales y estados, la estructura de las membranas adquiere mayor
importancia. En este esquema, una arista que conecta dos membranas recibe el
nombre de sinapsis, usamos syn para denotar al conjunto de las sinapsis i.e., el
conjunto de las parejas (i, j), i 6= j que definen el grafo, con 0 en algún par indicando
un enlace con el entorno. Más aún, las sinapsis tienen un estado, y utilizamos
K para referirnos al conjunto de todos los estados. La única restricción aquı́, es
que sólo puede existir a lo más una sinapsis entre dos membranas o entre una
membrana y un estado, esto es, a los más uno de (i, j) o (j, i) está en syn.
Las reglas de este tipo de sistemas se asocian a las sinapsis, esto es, tenemos
un conjunto finito de reglas R(i,j) para cada (i, j) en syn. Las reglas son de la forma:
(s, u/v, s0 )
donde s y s0 son estados en K y u y v son cadenas sobre O. Si dicha regla
pertenece al conjunto R(i,j) , es aplicable si la sinapsis (i, j) se encuentra en el
estado s, y después de aplicarla, se cambia al estado s0 . También, al aplicar la
regla, los objetos en v se transfieren de i a j, y los objetos en v se transfieren en
el sentido contrario. Nuevamente, se permite que alguna de las dos cadenas sea
vacı́a, y tenemos una regla symport. Si ninguna cadena es vacı́a, entonces se trata
de una regla antiport.
Pueden definirse diversas extensiones a estas dos familias básicas de sistemas
P en tejido. Una variante importante se da al relacionar estados a las membranas o células, en este enfoque, en lugar de las sinapsis. De esta manera, la
similitud con las redes neuronales se hace patente. Todos estos sistemas se han
probado Turing completos, sin embargo, aún continúan abiertas varias lı́neas de
investigación (cf. [Ionescu et al., 2005, Păun, 2007]).
11
COMPUTACIÓN BASADA EN MEMBRANAS
3.
3.1.
Algunas aplicaciones de los sistemas P
Biolengujes, simulación y procesos biológicos
En [Arroyo-Montoro, 2004] el autor establece la importancia de lograr una caracterización algebraica de los sistemas P. Se toma a los sistemas P básicos, con
sus reglas de evolución, y se les da una caracterización algebraica. El autor identifica los elementos estáticos u dinámicos del sistema, les da una estructura y define
una serie de operaciones sobre éstos.
Una vez identificadas las estructuras algebraicas que caracterizan un sistema
P, el autor procede a definir las estructuras de datos para representarlas, además
de presentar un algoritmo recursivo que implementa la evolución de un sistema P.
En la caracterización de los sistemas P que se propone, se definen dos tipos de
paralelismo, paralelismo regional y paralelismo global. El paralelismo regional, el
que aplica a las reglas de cada membrana en particular, se caracteriza por medio
de operaciones sobre las reglas de evolución, a su vez, basadas en operaciones de
multiconjuntos.
La representación de la estructura de membranas mediante un árbol, facilita
la definición del algoritmo recursivo, pues en el paralelismo global, que dicta la
concurrencia en la evolución de las membranas, todas las operaciones son independientes. Cada membrana evoluciona por separado, entonces en el algoritmo
propuesto, se desciende por el árbol desde la raı́z, aplicando las operaciones de
cada membrana, y al final se recorre el árbol de nuevo, pero de abajo hacia arriba.
En la segunda pasada, se terminan de aplicar las operaciones de multiconjuntos
para las reglas que establecen comunicación con las membranas. Como parte del
el trabajo, se proporciona una implementación del algoritmo en Haskell (cf. [Arroyo
et al., 2003]).
También, el autor resalta que la investigación al rededor de la caracterización formal de modelos computacionales como los sistemas P, son la base para el
surgimiento de Biolenguajes, término con el que hace referencia a una serie de
nuevos lenguajes, pero basados en modelos biológicos. Dichos biolenguajes, según
el mismo autor, pueden desarrollarse con al menos tres objetivos posibles: implementaciones en computadoras digitales; implementación en hardware con silicio,
o hasta materia orgánica o compuestos quı́micos; y como lenguajes de definición
formal para procesos biológicos o quı́micos, que permitan simulación y estudio de
éstos fenómenos.
En el último sentido, en [Bianco, 2007] pueden observarse ya varias propuestas de modelos biológicos descritos con sistemas P. En el trabajo, el autor parte
del modelado de osciladores, para llegar a la descripción de otros procesos moleculares más complejos. Para este fin, en este trabajo, también se provee de la
implementación de un simulador de sistemas P, Psim, además de una propuesta
para un lenguaje gráfico de membranas denominado MP graph.
En [Bernardini, 2005] se propone una nueva clase de sistemas P, Population
12
COMPUTACIÓN BASADA EN MEMBRANAS
s
cliente
servidor
c
Figura 3: Sistema cliente-servidor y su representación con membranas.
P Systems, basados en el paradigma de los sistemas en tejido y neuronales. Esta
nueva clase de sistemas se propone como marco de trabajo para el modelado de
procesos con una caracterı́stica principal: la existencia de una gran población de
individuos que interactúan entre sı́ como, por ejemplo, colonias de bacterias.
3.2.
Especificación formal de sistemas distribuidos
Otra aplicación interesante se propone en [Cavaliere and Deufemia, 2005]. En
ese trabajo los autores proponen a los sistemas P como modelo de especificación
formal para la arquitectura de sistemas. La propuesta es sencilla, los componentes
del sistema se representan con membranas. La comunicación entre los componentes se especifica con las reglas de evolución. De esta manera, si dos membranas
pueden establecer comunicación utilizando reglas symport o antiport, entonces los
componentes a los que representan deberán tener también conexión. Más aún, por
medio de un sistema de membranas activas, se pueden representar estructuras
dinámicas que varı́en conforme la ejecución del sistema.
Por ejemplo, en el caso de un sistema de tipo cliente-servidor (figura 3), la
estructura de membranas que lo representarı́a serı́a
[s [c ]c ]s
con s representando al servidor y c al cliente.
En esta misma lı́nea un caso más interesante serı́a un sistema de arquitectura
dinámica donde, por ejemplo, exista la posibilidad de intercambiar el enlace entre
el cliente y un servidor primario con otro secundario (figura 4).
Pare este escenario tenemos las reglas:
[c ]c [pri u ]pri → [pri u [c ]c ]pri
[pri d [c ]c ]pri → [pri d ]pri [c ]c
[c ]c [sec u ]sec → [sec u [c ]c ]sec
donde el elemento u dentro de la membrana de un servidor indica que se encuentra
activo, mientras que d indica lo contrario.
La primera regla indica que si el servidor primario está activo, se enlaza con el
cliente. En la segunda regla, cuando el servidor primario falla, se pierde el enlace
13
COMPUTACIÓN BASADA EN MEMBRANAS
primario
c
cliente
secundario
pri
primario
sec
c
cliente
pri
sec
secundario
Figura 4: Sistema cliente-servidor con un servidor de respaldo.
con el cliente, para después enlazarse con el servidor secundario por medio de la
última regla.
4.
Conclusiones
Las membranas a pesar de ser todavı́a un área creciente ya cuentan con un
basto desarrollo y un nicho establecido. Sin embargo, la investigación continúa y
se siguen proponiendo nuevos modelos para diferentes aplicaciones. Sin embargo,
la idea de cómputo con membranas y multiconjuntos no es totalmente nueva como
se especifica en [Păun, 2004]. Otros modelos cercanos son el lenguaje Gamma y la
Chemical Abstract Machine de Berry y Boudol. Incluso en [Arroyo et al., 2003] se
propone la viabilidad de conjuntar los modelos e incluso se habla de traductores
entre ellos.
Otro formalismo que no se menciona, pero que recientemente ha encontrado
un nicho similar, es el cálculo π y sus derivados (cf. [Regev et al., 2001]). Por
ejemplo, el lenguaje MP graph y el lenguaje propuesto en [Phillips et al., 2006]
tienen objetivos similares. El desarrollo de este tipo de lenguajes provee de una
herramienta directamente utilizable por los especialistas en Biologı́a, no sólo para
describir los fenómenos de su estudio, también les podrı́a dar acceso a simulaciones
y otro tipo de metodologı́as propias de los lenguajes formales. Un ejemplo de esto
se puede ver en el modelador disponible en [Sitio web de CellDesigner, 2007].
Quizás otro uso para estos lenguajes gráficos puede darse para la definición de
sistemas distribuidos. Este tipo de herramientas pueden proveer a los diseñadores
de herramientas similares a los biólogos como , por ejemplo, pruebas de corrección,
etc.
Otro aspecto interesante, que se menciona en [Păun, 2007] es la comparación
de los sistemas P neuronales con las redes neuronales artificiales. Una de las des14
COMPUTACIÓN BASADA EN MEMBRANAS
ventajas de las redes neuronales artificiales es la opacidad de su funcionamiento.
Estos nuevos modelos basados en membranas son, en principio, más transparentes
y podrı́an agregar mayor claridad en cuestiones como el aprendizaje, reconocimiento de patrones y otras propias de las redes neuronales.
Referencias
[Arroyo et al., 2003] Fernando Arroyo, Carmen Luengo, Angel V. Baranda, and
Luis F. de Mingo. A software simulation of transition P systems in Haskell. In
Gheorghe Păun, Grzegorz Rozenberg, Arto Salomaa, and Claudio Zandron, editors, Membrane Computing: International Workshop, WMC-CdeA 2002, Curtea
de Arges, Romania, August 19-23, 2002. Revised Papers., volume 2597 of Lecture
Notes in Computer Science, pages 19–32, Curtea de Arges, Romania, July 2003.
Springer-Verlag, Berlin.
[Arroyo-Montoro, 2004] Fernando Arroyo-Montoro. Structures and Biolanguage to
Simulate Membrane Computing. PhD thesis, Departamento de Inteligencia Artificial. Facultad de Informática. Universidad Politécnica de Madrid, Madrid, Spain,
June 2004.
[Bernardini, 2005] Francesco Bernardini. Membrane Systems for Molecular Computing and Biological Modelling. PhD thesis, University of Sheffield, Sheffield,
UK, 2005.
[Bianco, 2007] Luca Bianco. Membrane Models of Biological Systems. PhD thesis,
Università di Verona, Verona, It, 2007.
[Cavaliere and Deufemia, 2005] Matteo Cavaliere and Vincenzo Deufemia. Specifying dynamic software architectures by using membrane systems. In Proceedings
of the Third Brainstorming Week on Membrane Computing, Sevilla (Spain), January 31st - February 4th, pages 87–106, 2005.
[Fernandez et al., 2005] L. Fernandez, V.J. Martinez, F. Arroyo, and L.F. Mingo. A
hardware circuit for selecting active rules in transition p systems. In in G. Ciobanu, Gh. Paun, Pre-Proc. of First International Workshop on Theory and Application of P Systems, Timisoara, Romania, September 26-27, pages 45–48, 2005.
[Freund et al., 2004] Rudolf Freund, Gheorghe Păun, and Mario J. Pérez-Jiménez.
Tissue-like P systems with channel-states. Technical Report 01/2004, Dept. of
Computer Sciences and Artificial Intelligence, Univ. of Sevilla, 2004.
[Gutiérrez-Naranjo et al., 2005] Miguel Angel Gutiérrez-Naranjo, Mario Jesús
Pérez-Jiménez, and Francisco José Romero-Campero. Simulating avascular tumors with membrane systems. In Proceedings of the Third Brainstorming Week
15
COMPUTACIÓN BASADA EN MEMBRANAS
on Membrane Computing, Sevilla (Spain), January 31st - February 4th, pages
185–196, 2005.
[Ionescu et al., 2005] Mihai Ionescu, Gheorghe Păun, and Takashi Yokomori. Spiking neural-like p systems. Submitted, 2005.
[Martı́n-Vide et al., 2001] Carlos Martı́n-Vide, Gheorghe Păun, J. Pazos, and Alfonso
Rodrı́guez-Patón. Tissue P systems. Technical Report 421, Turku Center for
Computer Science-TUCS, September 2001. TUCS Technical Report 421.
[Petreska and Teuscher, 2003] B. Petreska and C. Teuscher. A hardware membrane
system. In A. Alhazov, C Martı́n-Vide, and G. Paun, editors, Proceedings of the
MolCoNet Workshop on Membrane Computing (WMC2003), volume 28/03, pages
343–355, Tarragona (Spain), July 17–22 2003.
[Phillips et al., 2006] Andrew Phillips, Luca Cardelli, and Giuseppe Castagna. A
graphical representation for biological processes in the stochastic pi-calculus.
4230:123–152, 2006.
[Păun, 2000] Gheorghe Păun. Computing with membranes. Journal of Computer
and System Sciences, 1(61):108–143, 2000.
[Păun, 2004] Gheorghe Păun. Introduction to membrane computing. In First brainstorming Workshop on Uncertainty in Membrane Computing, Palma de Mallorca,
Spain, November 2004, 2004.
[Păun, 2005] Gheorghe Păun. Further twenty six open problems in membrane computing. In Proceedings of the Third Brainstorming Week on Membrane Computing, Sevilla (Spain), January 31st - February 4th, pages 249–262, 2005.
[Păun, 2007] Gheorghe Păun. Twenty six research topics about spiking neural p
systems, 2007.
[Regev et al., 2001] Aviv Regev, William Silverman, and Ehud Y. Shapiro. Representation and simulation of biochemical processes using the pi-calculus process
algebra. In Pacific Symposium on Biocomputing, pages 459–470, 2001.
[Sitio web de CellDesigner, 2007] http://www.celldesigner.org/, 2007.
[Zandron et al., 2000] Claudio Zandron, Claudio Ferretti, and Giancarlo Mauri. Solving NP-complete problems using P systems with active membranes. In I. Antoniou, Cristian Calude, and M.J. Dinneen, editors, Unconventional Models of Computation, pages 289–301, London, February 2000. Springer-Verlag. Contributed
paper.
16
Descargar