• No se han encontrado resultados

Sistemas software secuenciales (simuladores)

3 Estado del arte

3.2 Sistemas software secuenciales (simuladores)

Parece bastante razonable pensar que los sistemas que pueden ejecutar software de manera secuencial, en los que cada instrucción debe ser extraída de memoria y decodificada de manera individual para posteriormente ser ejecutada, no reflejan de manera adecuada el espíritu y modo de comportamiento de los Sistemas P, en los que existe en todo momento un altísimo nivel de paralelismo, tanto dentro de cada una de las membranas como en el conjunto del sistema completo. Sin embargo, la creación y existencia de entornos de simulación resulta del todo imprescindible desde el punto de vista científico para disponer de una herramienta que, de alguna manera, pueda validar los resultados esperados y obtenidos desde un punto de vista teórico. En general, este tipo de plataformas permiten realizar seguimientos de la evolución de las diferentes configuraciones de un Sistema P, permitiendo entender los procesos que se producen a nivel celular. La utilización de este software, de cara a obtener modelos de funcionamiento se hace imprescindible también debido a la gran facilidad que supone su modificación en caso necesario, lo que significa una altísima flexibilidad en el sistema.

Desde que se desarrolló el primer simulador, presentado en [Malita, 2000], han surgido muchos otros y sus autores han utilizado los más dispares criterios en su construcción así como en las características principales que cumplen. Variaciones que van desde el lenguaje en el que han sido programados hasta diferencias en la elección del número de reglas a evaluar o el carácter indeterminista del sistema los diferencian. Tanto J. Tejedor como L. Fernández hacen una excelente clasificación de este tipo de sistemas en [Tejedor, 2011] y [Fernández, 2011] que se resume aquí en una selección de los principales:

89

- Como se ha mencionado, el primer simulador aparecido en el año 2000

fue el descrito por M. Malita en [Malita, 2000] y estaba escrito en Prolog. Implementaba Sistemas P de Transición con disolución de membranas y con la característica de que se aplicaba una única regla de evolución en cada membrana y se aplicaba tantas veces como fuese posible.

- En [Suzuki & Tanaka, 2000] los autores presentan un sistema desarrollado

en LISP y que trabaja con Sistemas Artificiales de Células, caracterizadas por el hecho de que el conjunto de reglas de evolución es común para todas las membranas, así como que la concentración de objetos en una determinada cantidad puede provocar la disolución de la membrana.

- G. Ciobanu y D. Paraschiv presentan en 2001 [Ciobanu & Paraschiv,

2001] el primer simulador que incorporaba un interfaz gráfico de usuario que, además, permitía la ejecución de una simulación paso a paso, lo que permite observar las diferentes configuraciones del sistema en cada momento. Fue desarrollado en C++ y permite la visualización de Sistemas de Membranas Activas y de Sistemas de Células Catalíticas.

- En 2002, en [Balbotin et al, 2002] los autores presentan n simulador de

Sistemas P de transición escrito en el lenguaje MzScheme.

- En [Arroyo et al, 2003] los autores presentan y desarrollan un simulador

de Sistemas P de Transición con capacidad para la disolución de membranas escrito en Haskell. Este simulador permite la entrada de un fichero que describe la configuración actual del sistema y produce como resultado otro fichero que contiene, en formato propio, la descripción de la configuración final.

- En el año 2004 se presenta en [Cordón et al., 2004] un simulador para

Sistemas P con membranas activas que pueden producir la división de una membrana en dos. Este sistema está desarrollado en Prolog y tiene un comportamiento determinista ya que solamente se desarrolla una rama del árbol de computación, pudiendo consultar en cualquier momento el estado de la configuración en curso.

- [Pérez-Jiménez & Romero-Campero, 2004] presenta un desarrollo

mediante el paradigma de las reglas de sistemas expertos con CLIPS. Variantes posteriores permiten trabajar con reglas symport/antiport.

- Otro de los simuladores es SimCM, presentado por Nepomuceno-

Chamorro, de la Universidad de Sevilla en [Nepomuceno-Chamorro, 2004] que hace evolucionar a Sistemas P de Transición con disolución de

90

membranas y la existencia de prioridades entre las reglas de evolución. Posee además un interfaz agradable al usuario en el que se puede elegir el sistema de funcionamiento, escogiendo la rama de computación o el modo de nivel por nivel en la computación.

- En [Gutiérrez, 2005] los autores presentan un simulador que puede

trabajar con varios tipos de Sistemas P (de transición y de membranas activas) siempre y cuando éstos sean jerárquicos, permitiendo incluso realizar mezclas entre varios de ellos. El sistema fue desarrollado en Prolog. Este sistema es flexible en lo referente a la complejidad de sistema, entendiendo como tal el número de objetos y reglas dentro de las membranas y multiconjuntos. El sistema desarrolla una única rama del árbol de computación y se puede obtener la salida detallada de todas las configuraciones y reglas aplicadas en cada paso de evolución.

- Bonchi utiliza tecnologías destinadas al desarrollo web para crear un

simulador accesible desde cualquier punto de la red a través de un navegador [Bonchi et al, 2005]. El usuario debe enviar mediante una herramienta gráfica escrita en javascript o mediante XML la descripción del Sistema P junto con las consultas destinadas a la recuperación de la información (escritas en un lenguaje propio). El sistema utiliza lenguaje PHP en servidor para la recogida de la información que le pasa posteriormente a través de un CGI escrito en C y que transforma dicha información al núcleo que está desarrollado en CLIPS. Es destacable la variedad que permite el sistema ya que además de la división de membranas, puede manejar reglas con inhibidores y promotores e incluso reglas de tipo symprt/antiport.

- Más recientemente, Ramírez-Martínez y Gutiérrez-Naranjo presentaron

un simulador de Sistemas P neuronales de impulsos en [Ramírez-Martínez & Gutiérrez-Naranjo, 2007] que permite observar en modo gráfico todas las configuraciones de un determinado sistema de membranas. Se utilizaron varios lenguajes dependiendo de la funcionalidad del módulo y se incluyó XBase++ y Prolog. Permite definir las células, las conexiones entre ellas (sinapsis) y los trenes de impulsos y sus reglas.