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 complejidadde 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 hardwareen 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 elementosi.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