Algoritmos de distribución de cargas de proceso en computación con membranas
158
0
0
Texto completo
(2) Departamento de Inteligencia Artificial Facultad de Informática. Algoritmos de distribución de cargas de proceso en computación con membranas. TESIS DOCTORAL. Miguel Ángel Peña Camacho Máster en Tecnologías de la Información Graduado en Ingeniería del Software DIRECTORES: Juan Castellanos Peñuela Doctor en Informática Luis Fernando de Mingo López Doctor en Informática. 2011.
(3) UNIVERSIDAD POLITÉCNICA DE MADRID. Tribunal nombrado por el Magfco. y Excmo. Sr. Rector de la Universidad Politécnica de de de 20 Madrid, el día Presidente:. a. Vocal:. a. Vocal:. a. Vocal:. a. Secretario:. a. Suplente:. a. Suplente:. a. Realizado el acto de defensa y lectura de la Tesis el día 20. de. de. en la E.T.S.I./Facultad. a.. EL PRESIDENTE. LOS VOCALES. EL SECRETARIO.
(4) A mis padres. iv.
(5) Agradecimientos ¡Qué contradicción! Esta página que aparece aquí al principio es la última que estoy escribiendo de la tesis, pero será la más leída. Al final de la tesis, se pretende agradecer en esta página a mucha gente sus aportaciones en el desarrollo de la misma. Y yo, sin embargo, tengo el miedo de olvidarme de alguien. Por ello, he decido apenas nombrar, pues igual que soy de la opinión de que las flores a los vivos, los agradecimientos, día a día. Aún así, y para los acérrimos de esta fórmula, quienes pretenden encontrar agradecimientos en esta hoja, abro un poquito de mi corazón, y le dejo las siguientes líneas. Si bien, los agradecimientos a las personas que me han apoyado, espero haberlos entregado antes de poner estas palabras. Con la finalización de esta tesis, pongo fin a una cadena de estudios realizados -aunque de aprender no se termina nunca- y empezaré otra etapa que espero sea tan gratificante como la que dejo atrás. Es por tanto un buen momento para agradecer a todas esas personas que me han marcado, y a las que no puedo nombrar aquí, pues necesitaría otro libro entero. Si bien es un tópico, debo empezar dando las gracias a mis tutores. No sólo por el proceso de 4 años de elaboración de esta tesis, sino por todos esos momentos que hemos vivido. Gracias JuanCas por esos consejos antes de cada viaje, de cada aventura; y gracias LuisFer por enseñarme que sin parecer que se trabaja, se puede hacer mucho. A esa forma de hacer sin darle importancia, porque importa más lo que se hace, que da sus frutos. Gracias también a esos tutores foráneos, de los que tanto he aprendido, y que me han hecho abrir “fronteras”, no sólo a mi parte académica, sino también a mi desarrollo personal. Gracias Cristian, Pier, Erzsébet, György, Anna y Paolo. Siempre recordaré la forma de hacer presentaciones de Pier, saltándose los formalismos, y facilitando la comprensión; el ser capaz de hacer chistes sobre en lo que uno trabaja, como Erzsebet; y a todo un país como Nueva Zelanda. He de dar las gracias al DIA, en el cuál he realizado la tesis, a OEI en la escuela, a la Escuela en general, a la Facultad, a la propia Universidad, y a las Universidades en su conjunto; de las que tanto he aprendido en esta etapa académica, formativa, docente, investigadora, y profesional. Han sido muchos años dentro, en los que he conocido a muchísima gente que me ha aportado tanto, que no tendrían espacio suficiente para nombrarlos a todos aquí. Aún así, un especial agradecimiento a Jorge y Bobi, por tan buenos consejos que he recibido estos años, y por decir las cosas como son. También a Eugenio, que en paz descanse, por tantos proyectos juntos que hemos hecho, y tantas horas de conversación en estos años. Y a Pepi, capaz de enseñarme que las cosas son sencillas si ella está presente.. v.
(6) No puedo olvidarme de mis amigos, ni de los que he ido conociendo en esta etapa y que circunstancias del destino, hacen que estemos alejados. Gracias a Montse, porque es la única que conoce mi verdadero yo, y que tanto apoyo me dió cuando realmente lo necesitaba. Gracias a Josito y David por esas barbacoas en las que no hacía falta nada más para disfrutar. Mi tesis no empezó como vuestro TFC, pero espero que al menos termine igual. Gracias María, por enseñarme que lo importante no es la meta, sino disfrutar del camino. Por recorrer este camino conmigo. Por sufrirme este tiempo. Por esa felicidad que irradias. Por alegrarme cada día. No existen palabras para darte las gracias. . . Gracias papá y mamá. Todo lo que soy es por vosotros. El dedicaros esta tesis es sólo un gesto pequeño del agradecimiento hacia vosotros. Sé que esta tesis significa mucho más para vosotros que para mí. Sé que con esto se cumplen algunos de vuestros sueños, y guardaréis un especial recuerdo de ello. Para mí, me basta con saber que pase lo que pase y esté donde esté, tendré vuestro apoyo y cariño en lo que decida hacer, como lo he tenido hasta ahora. Y gracias Bea, por ser la persona que sufre en silencio mi mal humor, porque, aunque no lo creas, yo tengo envidia de cómo eres.. vi.
(7) Resumen Con el surgir de los problemas irresolubles de forma eficiente en tiempo polinomial en base al dato de entrada, surge la Computación Natural como alternativa a la computación clásica. En esta disciplina se trata de o bien utilizar la naturaleza como base de cómputo o bien, simular su comportamiento para obtener mejores soluciones a los problemas que los encontrados por la computación clásica. Dentro de la computación natural, y como una representación a nivel celular, surge la Computación con Membranas. La primera abstracción de las membranas que se encuentran en las células, da como resultado los P sistemas de transición. Estos sistemas, que podrían ser implementados en medios biológicos o electrónicos, son la base de estudio de esta Tesis. En primer lugar, se estudian las implementaciones que se han realizado, con el fin de centrarse en las implementaciones distribuidas, que son las que pueden aprovechar las características intrínsecas de paralelismo y no determinismo. Tras un correcto estudio del estado actual de las distintas etapas que engloban a la evolución del sistema, se concluye con que las distribuciones que buscan un equilibrio entre las dos etapas (aplicación y comunicación), son las que mejores resultados presentan. Para definir estas distribuciones, es necesario definir completamente el sistema, y cada una de las partes que influyen en su transición. Además de los trabajos de otros investigadores, y junto a ellos, se realizan variaciones a los proxies y arquitecturas de distribución, para tener completamente definidos el comportamiento dinámico de los P sistemas. A partir del conocimiento estático –configuración inicial– del P sistema, se pueden realizar distribuciones de membranas en los procesadores de un clúster para obtener buenos tiempos de evolución, con el fin de que la computación del P sistema sea realizada en el menor tiempo posible. Para realizar estas distribuciones, hay que tener presente las arquitecturas –o forma de conexión– de los procesadores del clúster. La existencia de 4 arquitecturas, hace que el proceso de distribución sea dependiente de la arquitectura a utilizar, y por tanto, aunque con significativas semejanzas, los algoritmos de distribución deben ser realizados también 4 veces. Aunque los propulsores de las arquitecturas han estudiado el tiempo óptimo de cada arquitectura, la inexistencia de distribuciones para estas arquitecturas ha llevado a que en esta Tesis se probaran las 4, hasta que sea posible determinar que en la práctica, ocurre lo mismo que en los estudios teóricos. Para realizar la distribución, no existe ningún algoritmo determinista que consiga una distribución que satisfaga las necesidades de la arquitectura para cualquier P sistema. Por ello, debido a la complejidad de dicho problema, se propone el uso de metaheurísticas de Computación Natural. En primer lugar, se propone vii.
(8) utilizar Algoritmos Genéticos, ya que es posible realizar alguna distribución, y basada en la premisa de que con la evolución, los individuos mejoran, con la evolución de dichos algoritmos, las distribuciones también mejorarán obteniéndose tiempos cercanos al óptimo teórico. Para las arquitecturas que preservan la topología arbórea del P sistema, han sido necesarias realizar nuevas representaciones, y nuevos algoritmos de cruzamiento y mutación. A partir de un estudio más detallado de las membranas y las comunicaciones entre procesadores, se ha comprobado que los tiempos totales que se han utilizado para la distribución pueden ser mejorados e individualizados para cada membrana. Así, se han probado los mismos algoritmos, obteniendo otras distribuciones que mejoran los tiempos. De igual forma, se han planteado el uso de Optimización por Enjambres de Partículas y Evolución Gramatical con reescritura de gramáticas (variante de Evolución Gramatical que se presenta en esta Tesis), para resolver el mismo cometido, obteniendo otro tipo de distribuciones, y pudiendo realizar una comparativa de las arquitecturas. Por último, el uso de estimadores para el tiempo de aplicación y comunicación, y las variaciones en la topología de árbol de membranas que pueden producirse de forma no determinista con la evolución del P sistema, hace que se deba de monitorizar el mismo, y en caso necesario, realizar redistribuciones de membranas en procesadores, para seguir obteniendo tiempos de evolución razonables. Se explica, cómo, cuándo y dónde se deben realizar estas modificaciones y redistribuciones; y cómo es posible realizar este recálculo.. viii.
(9) Abstract Natural Computing is becoming a useful alternative to classical computational models since it its able to solve, in an efficient way, hard problems in polynomial time. This discipline is based on biological behaviour of living organisms, using nature as a basis of computation or simulating nature behaviour to obtain better solutions to problems solved by the classical computational models. Membrane Computing is a sub discipline of Natural Computing in which only the cellular representation and behaviour of nature is taken into account. Transition P Systems are the first abstract representation of membranes belonging to cells. These systems, which can be implemented in biological organisms or in electronic devices, are the main topic studied in this thesis. Implementations developed in this field so far have been studied, just to focus on distributed implementations. Such distributions are really important since they can exploit the intrinsic parallelism and non-determinism behaviour of living cells, only membranes in this case study. After a detailed survey of the current state of the art of membranes evolution and proposed algorithms, this work concludes that best results are obtained using an equal assignment of communication and rules application inside the Transition P System architecture. In order to define such optimal distribution, it is necessary to fully define the system, and each one of the elements that influence in its transition. Some changes have been made in the work of other authors: load distribution architectures, proxies definition, etc., in order to completely define the dynamic behaviour of the Transition P System. Starting from the static representation –initial configuration– of the Transition P System, distributions of membranes in several physical processors of a cluster is algorithmically done in order to get a better performance of evolution so that the computational complexity of the Transition P System is done in less time as possible. To build these distributions, the cluster architecture –or connection links– must be considered. The existence of 4 architectures, makes that the process of distribution depends on the chosen architecture, and therefore, although with significant similarities, the distribution algorithms must be implemented 4 times. Authors who proposed such architectures have studied the optimal time of each one. The non existence of membrane distributions for these architectures has led us to implement a dynamic distribution for the 4. Simulations performed in this work fix with the theoretical studies. There is not any deterministic algorithm that gets a distribution that meets the needs of the architecture for any Transition P System. Therefore, due to the complexity of the problem, the use of meta-heuristics of Natural Computing is proposed. First, Genetic Algorithm heuristic is proposed since it is possible to make a distribution based on the premise that along with evolution the individuals improve, and with the improvement of these individuals, also distributions ix.
(10) enhance, obtaining complexity times close to theoretical optimum time. For architectures that preserve the tree topology of the Transition P System, it has been necessary to make new representations of individuals and new algorithms of crossover and mutation operations. From a more detailed study of the membranes and the communications among processors, it has been proof that the total time used for the distribution can be improved and individualized for each membrane. Thus, the same algorithms have been tested, obtaining other distributions that improve the complexity time. In the same way, using Particle Swarm Optimization and Grammatical Evolution by rewriting grammars (Grammatical Evolution variant presented in this thesis), to solve the same distribution task. New types of distributions have been obtained, and a comparison of such genetic and particle architectures has been done. Finally, the use of estimators for the time of rules application and communication, and variations in tree topology of membranes that can occur in a non-deterministic way with evolution of the Transition P System, has been done to monitor the system, and if necessary, perform a membrane redistribution on processors to obtain reasonable evolution time. How, when and where to make these changes and redistributions, and how it can perform this recalculation, is explained.. x.
(11) Índice general Agradecimientos. V. Resumen. VII. Abstract. IX. Índice de figuras. XIV. Índice de cuadros. XVII. I Introducción 1. Computación Natural. 2. 2. Computación con Membranas 2.1. La membrana biológica . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Definición formal de los elementos de los sistemas de membranas Multiconjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estructura de membranas . . . . . . . . . . . . . . . . . . . . . . . Reglas de evolución . . . . . . . . . . . . . . . . . . . . . . . . . . . Definición de un P sistema de transición . . . . . . . . . . . . . . . Dinámica de los P sistemas de transición . . . . . . . . . . . . . . Aplicación de las reglas de evolución . . . . . . . . . . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. 5 6 9 9 10 13 14 14 16. II Estado del arte de las implementaciones de los P sistemas 3. 4. Las Implementaciones de los P Sistemas 3.1. Computación secuencial basada en software . . . . . . . . . . 3.2. Computación paralela basada en software . . . . . . . . . . . 3.3. Computación basada en hardware . . . . . . . . . . . . . . . . 3.4. Análisis de las implementaciones y frameworks de desarrollo. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 20 21 21 22 23. Implementaciones distribuidas de P Sistemas 4.1. Selección de reglas . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Aplicación de reglas . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. Arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entre iguales (Peer-to-Peer - P2P) . . . . . . . . . . . . . . . . Peer-to-Peer Jerárquica (Hierarchical Peer-to-Peer - HP2P) . . Maestro-Esclavo (Master-Slave - MS) . . . . . . . . . . . . . . Maestro-Esclavo Jerárquica (Hierarchical Master-Slave - HMS) 4.4. Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arquitectura Peer-to-Peer (P2P) . . . . . . . . . . . . . . . . . Arquitectura P2P Jerárquica (HP2P) . . . . . . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. 24 26 29 30 31 33 35 36 40 42 45. xi.
(12) Arquitectura Maestro-Esclavo (MS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Arquitectura Maestro-Esclavo Jerárquica (HMS) . . . . . . . . . . . . . . . . . . . . . . . . . 49. III Distribuciones estáticas 5. 6. Distribución basada en parámetros globales 5.1. Algoritmos genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tipo de la representación . . . . . . . . . . . . . . . . . . . . . . . . . . Tamaño de la población . . . . . . . . . . . . . . . . . . . . . . . . . . Población inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Función objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operador de cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operador de mutación . . . . . . . . . . . . . . . . . . . . . . . . . . . Reemplazo de la población o extensión y reducción de la población . Parada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paralelismo de los Algoritmos Genéticos . . . . . . . . . . . . . . . . . 5.2. Aplicación de algoritmos genéticos para la distribución de membranas Algoritmo genético que preserva la topología arbórea . . . . . . . . . . Población inicial . . . . . . . . . . . . . . . . . . . . . . . . . . Operador de cruce . . . . . . . . . . . . . . . . . . . . . . . . Operador de mutación . . . . . . . . . . . . . . . . . . . . . . Operadores o algoritmos reparadores . . . . . . . . . . . . . . Resultados de los operadores . . . . . . . . . . . . . . . . . . Aplicación en la distribución de membranas . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. Distribución basada en parámetros locales 6.1. Optimización por Enjambres de Partículas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Evolución Gramatical y Enjambres de Gramáticas . . . . . . . . . . . . . . . . . . . . . . . . Evolución Gramatical con reescritura de gramáticas . . . . . . . . . . . . . . . . . . . . . . 6.3. Distribución de membranas con Enjambres Gramaticales y Optimización por Enjambres de Partículas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. 54 56 59 59 60 60 61 61 62 63 64 64 64 65 65 66 67 69 69 75. 82 . 88 . 92 . 95 . 97. IV Distribuciones dinámicas 7. 8. Distribución dinámica 7.1. Control de tiempos, e intervalos de control . . . . . . . . . . . . . . . . . . . . . . . 7.2. Arquitecturas Peer-to-Peer y Peer-to-Peer Jerárquica, con recálculo total . . . . . . 7.3. Arquitecturas Peer-to-Peer y Peer-to-Peer Jerárquica, con recálculo de adyacentes . 7.4. Arquitecturas Maestro-Esclavo y Maestro-Esclavo Jerárquica, con recálculo total . 7.5. Arquitectura Maestro-Esclavo Jerárquica, con recálculo en maestros intermedios . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 105 108 111 113 115 118. Algoritmos reubicativos 120 8.1. Arquitecturas Peer-to-Peer (P2P) y Peer-to-Peer Jerárquica (HP2P) . . . . . . . . . . . . . 121 8.2. Arquitectura Maestro-Esclavo (MS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 8.3. Arquitectura Maestro-Esclavo Jerárquica (HMS) . . . . . . . . . . . . . . . . . . . . . . . . . 126. V Conclusiones 9. Conclusiones y Líneas Futuras. 129. 10 Conclusions and Future Remarks. 131. VI Bibliografía. xii.
(13) Bibliografía. 134. xiii.
(14) Índice de figuras. 1.1.. Dominios de la Computación Natural. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2.1. 2.2. 2.3. 2.4.. Esquema de una célula eucariota [Fuente: Wikipedia]. . . . . . . . . . Modelo del mosaico fluido [fuente: Wikipedia]. . . . . . . . . . . . . . . Estructura de membranas y su árbol asociado. . . . . . . . . . . . . . . Grado de cambio de permeabilidad de la membrana con las acciones δ. 4.1.. Ejemplo de P sistema de transición y el árbol de decisión de la membrana 1 para la determinación de reglas activas. [Fuente: [Frutos et al., 2009]] . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de distribución de un P sistema en procesadores sin conservar la topología arbórea (izquierda) y preservándola (derecha). [Fuente: [Tejedor et al., 2008]] . . . . . . . . . . . . . . . Ejemplo de cómo el uso de proxies para la comunicación del ejemplo de la figura 4.2 reduce el número de comunicaciones. [Fuente: [Tejedor et al., 2008]] . . . . . . . . . . . . . . . . . . . . . . Distribución de procesadores en forma de árbol con 4 niveles de altura y amplitud 3. [Fuente: [Bravo et al., 2007a]] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cronograma de la arquitectura HP2P con 4 niveles y amplitud 3. [Fuente: [Peña et al., 2011]] . Amplitud y número de niveles para obtener el mínimo tiempo usando la arquitectura HP2P. [Fuente: [Peña et al., 2011]] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cronograma de la arquitectura Maestro-Esclavo, con 4 esclavos. [Fuente: [Bravo et al., 2007b]] Cronograma de la arquitectura HMS con 4 niveles y amplitud 3. [Fuente: [Peña et al., 2011]] . . Amplitud y número de niveles para obtener el mínimo tiempo usando la arquitectura HMS. [Fuente: [Peña et al., 2011]] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cronograma de la arquitectura HMS con 4 niveles y amplitud 3 con solapamiento de etapas. [Fuente: [Peña et al., 2011]] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Amplitud y número de niveles para obtener el mínimo tiempo usando la arquitectura HMS con solapamiento de etapas. [Fuente: [Peña et al., 2011]] . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de distribución de un P sistema en 4 procesadores y el contenido del procesador 2 y de su proxy asociado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diferentes arquitecturas de P sistemas distribuidos, incluyendo el orden de comunicación. [Fuente: [Peña et al., 2011]] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo del proxy según la arquitectura P2P, para el procesador 2 del P sistema de la figura 4.12. Ejemplo de distribución de un P sistema según la arquitectura MS. . . . . . . . . . . . . . . . . . Ejemplo de los proxies según la arquitectura MS, para el procesador 2 y el maestro del P sistema de la figura 4.15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo de distribución de un P sistema según la arquitectura HMS. . . . . . . . . . . . . . . . .. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. 4.9. 4.10. 4.11. 4.12. 4.13. 4.14. 4.15. 4.16. 4.17. 5.1.. . . . . . . . . . y τ.. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. 3. . 7 . 8 . 11 . 13 28 32 32 34 34 35 36 37 38 39 40 42 43 44 48 49 52. Ejemplo de una distribución de membranas (T ) en procesadores (C T ) conservando la topología arbórea. V es representado por círculos, y E son aristas continuas. C se representa por cuadrados, y A son fechas discontinuas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56. xiv.
(15) 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. 5.10. 5.11. 5.12. 5.13.. 1. n. n. 1. Ejemplo de c v i → c k y c v i → c k , donde c v i → c k = {c a , c b } y c v i → c k = {c c , c d , c e }. . . . . . . . . Diferentes posibilidades de existencia de membranas madres e hijas de v i en el mismo clúster. Ejemplos de distribuciones en las que en c i está v i y su madre (v p ), pero no sus hijas, y las migraciones que se pueden realizar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de distribuciones en las que en c i está v i y alguna de sus hijas (v c ), pero no su madre (v p ), y las migraciones que se pueden realizar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplos de distribuciones en las que en c i está v i , pero ninguna de sus hijas ni su madre (v p ), y las migraciones que se pueden realizar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiempos mejor, peor y media para la población inicial y final (después del algoritmo genético) para distintos porcentajes de mutación, sobre una población de 100 P sistemas de 100 membranas cada uno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiempos mejor, peor y media para la población inicial y final (después del algoritmo genético) para distintos porcentajes de mutación, sobre una población de 100 P sistemas de 1000 membranas cada uno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiempos con una distribución aleatoria y después de evolucionar con los algoritmos genéticos para las diferentes arquitecturas, y comparativa con la mejor solución teórica. . . . . . . . . . . Tiempos con una distribución aleatoria y después de evolucionar con los algoritmos genéticos para las arquitecturas P2P y HP2P, en los P sistemas de 100 membranas, y la comparativa con la mejor solución teórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiempos con una distribución aleatoria y después de evolucionar con los algoritmos genéticos para las arquitecturas MS y HMS, en los P sistemas de 100 membranas, y la comparativa con la mejor solución teórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiempos con una distribución aleatoria y después de evolucionar con los algoritmos genéticos para las arquitecturas P2P y HP2P, en los P sistemas de 1000 membranas, y la comparativa con la mejor solución teórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tiempos con una distribución aleatoria y después de evolucionar con los algoritmos genéticos para las arquitecturas MS y HMS, en los P sistemas de 1000 membranas, y la comparativa con la mejor solución teórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6.1.. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en la arquitectura P2P sobre los P sistemas de 100 membranas. . . . . . . . . . . . . . . . . . . . . . 6.2. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en la arquitectura HP2P sobre los P sistemas de 100 membranas. . . . . . . . . . . . . . . . . . . . . 6.3. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en la arquitectura MS sobre los P sistemas de 100 membranas. . . . . . . . . . . . . . . . . . . . . . 6.4. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en la arquitectura P2P sobre los P sistemas de 1000 membranas. . . . . . . . . . . . . . . . . . . . . 6.5. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en la arquitectura HP2P sobre los P sistemas de 1000 membranas. . . . . . . . . . . . . . . . . . . . 6.6. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en la arquitectura MS sobre los P sistemas de 1000 membranas. . . . . . . . . . . . . . . . . . . . . . 6.7. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en las arquitecturas P2P, HP2P y MS sobre los P sistemas de 100 membranas. . . . . . . . . . . . . . 6.8. Comparativa de los tiempos obtenidos tras usar algoritmos genéticos para la distribución en las arquitecturas P2P, HP2P y MS sobre los P sistemas de 1000 membranas. . . . . . . . . . . . . 6.9. Comparativa de los tiempos obtenidos tras usar PSO y algoritmos genéticos para la distribución en la arquitectura HMS sobre los P sistemas de 100 membranas. . . . . . . . . . . . . . . . . . 6.10. Tiempos comparativos entre Algoritmos Genéticos y Gramáticas Evolutivas con reescritura para las arquitecturas P2P y HP2P, en los P sistemas de 100 membranas. También se muestran los tiempos de las distribuciones aleatorias con los que ha partido cada heurística. . . . . . . . . . 6.11. Tiempos comparativos entre Algoritmos Genéticos y Gramáticas Evolutivas con reescritura para las arquitecturas P2P y HP2P, en los P sistemas de 1000 membranas. También se muestran los tiempos de las distribuciones aleatorias con los que ha partido cada heurística. . . . . . . . . .. xv. . 68 . 70 . 71 . 72 . 73 . 75 . 76 . 78 . 79 . 79 . 80 . 81 . 85 . 85 . 86 . 86 . 87 . 87 . 88 . 88 . 98 . 100 . 101.
(16) 6.12. Tiempos comparativos para las diferentes arquitecturas utilizando la metaheurística que mejores resultados obtiene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.1. 7.2.. Ejemplo de un P sistema de transición con el membrana 1. [Fuente: [Frutos et al., 2009]] . . . Ejemplo del contenido del procesador 2, con sus el ejemplo de la figura 4.12. . . . . . . . . . . .. árbol de selección de reglas activas para la . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 acumuladores de tiempos de evolución, según . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110. xvi.
(17) Índice de cuadros 4.1.. Orden de complejidad de algoritmos para obtener reglas activas. [Fuente: [Frutos et al., 2009]] . 28. 6.1.. Mejoras obtenidas con el uso de tiempos parciales en distribuciones realizadas con algoritmos genéticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mejoras obtenidas por los algoritmos genéticos con el uso de tiempos parciales. . . . . . . . . . Ejemplo de genotipo, representado cada codón de 8 bits como un número entero. . . . . . . . Proceso de transformación del genotipo del cuadro 6.3 con la gramática indicada. . . . . . . . Genotipo, que utilizando una transformación con reescritura de gramáticas, para el P sistema de la figura 5.1 da como resultado la distribución de dicha imagen. . . . . . . . . . . . . . . . . Mejoras obtenidas al aplicar evolución gramatical con reescritura de gramáticas contra los mismos test utilizando algoritmos genéticos, para cálculos con tiempos parciales. . . . . . . . . . . Porcentaje de mejora obtenido en la población inicial al usar evolución gramatical, comparado con la población inicial de los algoritmos genéticos, para cálculos con tiempos parciales. El valor negativo indica que la población inicial en algoritmos genéticos es mejor. . . . . . . . . . . . . Porcentaje de mejora obtenido tras la evolución gramatical, en comparativa a los tiempos de distribuciones aleatorias utilizados para la misma técnica. . . . . . . . . . . . . . . . . . . . . .. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8.. xvii. . . . .. 85 87 94 94. . 96 . 101 . 102 . 102.
(18) Índice de algoritmos 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.. Algoritmo de aplicación de reglas [Fuente: [Gil et al., 2009]] . . . . . . . . . . . . . . . . . . Algoritmo del proxy para la arquitectura P2P . . . . . . . . . . . . . . . . . . . . . . . . . . . Local analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process the message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Children communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create a message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preparing the message for the parent with dissolved membranes application . . . . . . . . . Father sending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo del proxy para la arquitectura HP2P . . . . . . . . . . . . . . . . . . . . . . . . . . Children communication in HP2P architecture . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo del proxy de los procesadores esclavos para la arquitectura MS . . . . . . . . . . . Algoritmo del proxy del procesador maestro para la arquitectura MS . . . . . . . . . . . . . . Algoritmo Genético Abstracto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo 1 recursivo (llamado distribute1) para crear un individuo que preserve la topología arbórea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo 2 recursivo (llamado distribute2) para crear un individuo que preserve la topología arbórea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operador reparador cuando el número de nodos del árbol es mayor que el permitido para individuos válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operador reparador cuando el número de nodos del árbol es menor que el permitido para individuos válidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo del PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo para la reubicación de membranas en la arquitectura P2P, que utiliza el procesador raíz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo para la reubicación de membranas en la arquitectura P2P, que utiliza el resto de procesadores, con cada mensaje que recibe . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo para la reubicación de membranas en la arquitectura MS, cuando se realiza la reubicación entre la recepción de objetos por el procesador maestro, y su respuesta . . . . . Algoritmo para la reubicación de membranas en la arquitectura MS, cuando se realiza la reubicación después de terminar la etapa de comunicación . . . . . . . . . . . . . . . . . . .. xviii. . . . . . . . . . . . . . .. 29 45 45 46 46 46 46 47 47 47 48 50 51 58. . 66 . 67 . 70 . 74 . 90 . 122 . 123 . 125 . 126.
(19) Parte. I. Introducción. 1.
(20) Capítulo. 1. Computación Natural Desde la formalización de los primeros modelos de computación en la década de los treinta, hasta la actualidad, el estudio científico que se desarrolla sobre los sistemas automatizados de manejo de información, ha crecido de forma insospechada. En esa primera década, y más concretamente en el lustro comprendido entre 1931 y 1936, se realizaron tres formalizaciones diferentes del concepto de procedimiento mecánico. En 1931 K. Gödel [Gödel, 1931] definió la relación recursiva y las funciones recursivas. La segunda formalización [Church, 1936], con una idea originaria en el mismo año, fue propuesta por A. Church y S. Kleene en su desarrollo del concepto de λ-cálculo y la relación con el concepto de función computable. Y la tercera formalización, y más extendida, proviene de A. Turing, quien en 1936 [Turing, 1937b] utilizara el concepto abstracto de máquina como formalización del concepto de algoritmo y de función computable. Posteriormente, en 1937, Turing [Turing, 1937a] establece la equivalencia de su modelo y el de las funciones λ-calculables, y anuncia la equivalencia entre la clase de funciones computables por máquinas de Turing y la clase de funciones recursivas, obteniendo que los tres modelos de computación introducidos formalmente son equivalentes. Estos estudios, no solo son las primeras formalizaciones de los algoritmos, sino que dan lugar a la aparición de los primeros modelos de computación, teniendo tres formalizaciones diferentes del procedimiento mecánico. Se cree que las máquinas de Turing (y por equivalencia, los modelos de computación de las funciones recursivas y del λ-cálculo) tienen una potencia computacional universal. Es decir, todos los modelos construidos posteriormente se pueden simular en dichas máquinas. En base a los trabajos de Turing de una máquina universal, programable y de propósito general, John von Neumann desarrolla el modelo conceptual de los ordenadores actuales; marcando este hito, el inicio de la Teoría de la Computación. En la década de los cincuenta, se desarrollan los primeros lenguajes de programación, traductores y sistemas operativos. En esta época, el poder de cálculo de los procesadores y de almacenamiento de las memorias está muy limitado, tomando importancia el estudio de la complejidad de los problemas. En la década de los sesenta, se realiza la clasificación de los lenguajes y funciones en base al tiempo y el espacio necesario para su generación y cálculo [Stearns et al., 1965] [Lewis et al., 1965]. Estos estudios son los orígenes de la Teoría de la Complejidad Computacional, que estudia la complejidad inherente a la resolución de un problema computable, normalmente en base al tiempo (y número de pasos) que tarda un algoritmo y al espacio (memoria necesaria) que se necesitan. En base a estos parámetros, la Teoría de la Complejidad. 2.
(21) clasifica los problemas en función de la resolubilidad algorítmica práctica de los mismos en base a si los recursos necesarios para su ejecución, en el peor de los casos, están acotados por un polinomio en el tamaño del dato de entrada o no. Da lugar a los problemas tratables (designados por P) cuando son resolubles de forma eficiente, y a problemas NP cuando no. Puesto que los computadores actuales de silicio, basados en la arquitectura de von Neumann, permiten resolver los problemas P, pero no los problemas NP, han surgido otra serie de alternativas con ideas de algoritmos no deterministas. Entre las alternativas existentes, la que más énfasis tiene y más esfuerzos concentra es la llamada Computación Natural. La Computación Natural es una de las alternativas a la computación denominada clásica, que busca nuevos paradigmas que puedan proporcionar una solución efectiva a las limitaciones de los modelos conceptuales. Estos paradigmas se centran principalmente en dos tipos de soluciones: crear nuevos algoritmos inspirados en el comportamiento de la naturaleza, o utilizar elementos de la naturaleza como base de cómputo. Entre los que se encuentran en el primer grupo, se puede mencionar las redes neuronales y la programación evolutiva, mientras que en el segundo grupo se tiene a la computación molecular y a la computación cuántica (que aunque no es fiel a la definición de Computación Natural, se suele agrupar dentro de la misma). Otra clasificación que se suele realizar de los modelos de biocomputación es la clasificación por niveles de agregación, como se muestra en la figura 1.1.. Figura 1.1: Dominios de la Computación Natural. En 1943, W.S. McCulloch y W. Pitts [McCulloch and Pitts, 1943] proponen el primer modelo de Red Neuronal como simulación de la actividad nerviosa. Esta red finita de neuronas convencionales puede implementar un programa de la máquina de Turing. Con el estudio del cerebro y de las neuronas se ha implementado 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 diferencia entre las redes neuronales y los modelos convencionales radica en que las redes no son algorítmicas, sino que es la propia red la que genera sus propias reglas y aprende de los ejemplos y sus errores. Otro gran ejemplo de simulación de sistemas biológicos en ordenadores es la Computación Evolutiva, cuyo máximo representante son los algoritmos genéticos. Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los más fuertes, postulados por Darwin. 3.
(22) [Darwin, 1859]. Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones, con una adecuada codificación de las mismas, converge hacia valores óptimos del problema. Los principios básicos de los Algoritmos Genéticos fueron establecidos por Holland [Holland, 1975], y se encuentran bien descritos en los textos de Goldberg [Goldberg, 1989] o Davis [Davis, 1991]. La Inteligencia de Enjambres es una disciplina de la Computación Natural que trata con sistemas naturales y artificiales compuestos de muchos individuos que se coordinan utilizando control descentralizado y autoorganización. El término, introducido por Beni y Wang [Beni and Wang, 1989], se refiere a sistemas que están constituidos por agentes simples que interactúan localmente unos con otros y con el ambiente, siguiendo reglas simples y sin tener un control centralizado, y cuyas interacciones producen una conducta global inteligente. Existen múltiples algoritmos, destacando los basados en el comportamiento de animales, como hormigas (Optimización por Colonias de Hormigas), abejas, bacterias, pájaros (Optimización de Enjambres de Partículas), etc. Además de estas técnicas de cómputo inspiradas en la naturaleza e implementadas en equipos electrónicos, existen otros paradigmas cuyo soporte hardware es la propia naturaleza, o una representación de la misma. Se puede destacar en este grupo a la computación molecular y a la computación cuántica. Las ideas del premio nobel R.P. Ferynman [Feynman, 1960] a finales de los 50 sobre el concepto teórico de Computación Molecular adquieren relevancia cuando en la década de los 80 se establecen las limitaciones físicas de la velocidad de cálculo de los procesadores. En 1987, T. Head [Head, 1987] propone el modelo splicing basado en la manipulación de las moléculas de ADN, de forma que la información es almacenada en las cadenas de caracteres al modo en que lo hacen las moléculas de ADN. En 1994 Adleman [Adleman, 1994] realizó un experimento en un laboratorio que conseguía solucionar el Problema del Camino Hamiltoniano de 7 nodos, que es considerado un problema intratable. Aunque este experimento no es una implementación práctica del modelo de Head, el sustrato utilizado y las operaciones que usa sobre dicho sustrato son similares a las propuestas por el modelo splicing. En la actualidad han surgido modelos moleculares alternativos, la mayoría de los cuales, utilizan el ADN como molécula básica y se diferencian en las operaciones primitivas. Existen otros modelos que utilizan diferentes tipos de moléculas biológicas como dispositivo para almacenar la información, tales como ARN, y enzimas específicas para su tratamiento. La idea de Computación Cuántica surge en 1981, cuando Paul Benioff expuso su teoría para aprovechar las leyes cuánticas en el entorno de la computación. En vez de trabajar a nivel de voltajes eléctricos, se trabaja a nivel de Quantum. En la computación cuántica, al contrario que en la computación digital que los bit pueden tomar dos valores, la partícula puede estar en superposición coherente, permitiendo realizar varias operaciones a la vez. Los modelos de computación basados en la naturaleza estaban inspirados en la observación de dos niveles: el nivel neuronal y el nivel genético. Gheorghe Păun, en 1998, se inspira en el nivel celular para dar lugar a la Computación con Membranas [Păun, 2000]. Este modelo bioinspirado nace como una abstracción y simplificación de las membranas contenidas en las células. Sobre este sistema inicial han sido muchas las variantes introducidas buscando una veces mayor eficiencia en la solución de los problemas complejos, y otras, una mayor aproximación al modelo biológico real que trata de simular. A diferencia de los otros modelos de la Computación Natural descritos, la Computación con Membranas no dispone (Figura 1.1) en la actualidad de ninguna implementación real, ya sea en laboratorio o en la adaptación de ordenadores convencionales. Todo lo realizado en esta dirección se reduce a una interpretación de redes de ordenadores convencionales o de los procesos de ciertas reacciones químicas que se producen en medio acuoso, y a una simple simulación de ejecuciones a través de lenguajes de programación. Basándose en los P sistemas que propuso Păun, Victor Mitrana propone otro modelo de computación basado en las regiones celulares, llamado Redes de Procesadores Evolutivos. Son una serie de procesadores interconectados, formando un grafo no dirigido, que poseen cadenas (multiconjuntos de objetos), y que transforman estas cadenas en base a unas reglas de evolución. Las cadenas son enviadas entre procesadores, pero los canales de comunicación tienen unos filtros de entrada y salida, que restringen las transferencias. [Castellanos et al., 2001], [Castellanos et al., 2003] y [Martin-Vide and Mitrana, 2005].. 4.
(23) Capítulo. 2. Computación con Membranas En octubre de 1998 Gh. Păun introduce un nuevo modelo de computación paralela y distribuida, denominada P sistemas de transición [Păun, 2000]. Este modelo también se conoce con el nombre de computación celular con membranas. Los procesos que se producen en una célula son lo suficientemente complejos para no intentar modelizarlos. El objetivo de Păun fue crear un modelo abstracto que simule el comportamiento de las células y que permita obtener soluciones alternativas a problemas computacionalmente intratables desde un punto de vista convencional. Para ello toma todas las características del comportamiento y constitución de la célula que pueden ser de utilidad en la elaboración de un modelo de computación que combine potencia y sencillez. La primera característica destacable es la estructura interna de la célula. En ella, las distintas partes que la componen se encuentran delimitadas por varios tipos de membranas. Una característica de estas membranas es que no delimitan compartimentos estancos sino que permiten el paso de ciertos compuestos químicos. En base a esta idea, los P sistemas se basan en una estructura de membranas como modelo matemático de ordenación física de la célula. En esta agrupación en forma jerárquica de membranas existirán unos elementos atómicos denominados objetos, al igual que en el interior de las células biológicas existen sustancias químicas que pueden traspasar las membranas. Estas sustancias químicas en base a reacciones químicas pueden transformase en otras. De igual forma, en los P sistemas, en base a reglas de evolución, los objetos pueden convertirse en otros. Las reglas de evolución, además de indicar las transformaciones de objetos, indican el traspaso de objetos entre membranas; y también pueden hacer desaparecer la membrana sobre la que se están ejecutando, simulando el hecho biológico de la disolución de las membranas. Cuando ocurre esta disolución, los objetos de la membrana disuelta pasan a formar parte de la membrana que la contuviese directamente. Con respecto a las reacciones químicas que se producen puede haber diferencias de probabilidad de producirse, basándose en el hecho de que la aplicación de ciertas enzimas puede provocar la inhibición de otras presentes en la misma membrana. Otro motivo también diferenciador de las reacciones químicas es que en ciertos momentos, solo alguna puede desatarse debido al alto consumo de energía que puede requerir. Este comportamiento biológico, se ha copiado en la computación con membranas, donde se puede considerar un cierto orden en la aplicación de las reglas a través de una relación de prioridad, de modo que si dos reglas pueden ser aplicadas simultáneamente, y hay una relación de prioridad entre ellas, entonces solo se podrán ejecutar aquellas de prioridad más alta. En el caso de que existan varias reglas en una misma. 5.
(24) membrana que puedan ser ejecutadas en un cierto instante, el sistema actuará de manera no determinista; es decir, el sistema tendrá varias posibilidades de evolución, y podrá ejecutar cualquiera de las reglas de igual prioridad que sean aplicables. Además, las reglas deben aplicarse en su máximo, en el sentido de que en cada paso de computación deben agotarse todos los objetos afectados por reglas que se puedan aplicar. Para ello, se entiende que el dispositivo está sincronizado. Además de este paralelismo (todas las reglas se ejecutan a la vez), en el sistema existe otro de mayor envergadura, puesto que todas las membranas evolucionan a la par. Desde el punto de vista estático, e inicial del P sistema antes de la evolución, los elementos principales son: la estructura de membranas, los multiconjuntos de objetos y los conjuntos de reglas de evolución persistentes en las regiones definidas en la estructura de membranas. El estado de estos elementos en cada instante temporal es conocido como configuración. Pero como se ha mencionado levemente, estos componentes interactúan de forma dinámica en la evolución del sistema. A partir de una configuración, y con la aplicación de las reglas de evolución, se producen una transacción, que es el proceso para pasar de una configuración a otra. Y una secuencia de transacciones entre configuraciones se define como computación. De entre las posibles computaciones, serán satisfactorias aquellas cuya computación finalice. Es decir, aquellas que lleguen a una configuración en la que ninguna de las reglas existentes en el sistema pueda ser aplicada. A una computación satisfactoria se le puede asociar un resultado contando los objetos presentes en la configuración final en una membrana elemental, i 0 . De una forma más concreta, se puede usar un sistema de membranas para resolver tres tipos de tareas: utilizarlo como un dispositivo generativo, como un dispositivo de cálculo, o como un dispositivo de decidibilidad. En algunos casos, en lugar de utilizar la membrana elemental para obtener la salida del sistema, también se puede considerar que los objetos que abandonan la membrana externa del sistema durante el proceso de la computación satisfactoria determinan el multiconjunto de objetos resultado. Por último, es remarcable que se ha demostrado que algunos de los dispositivos esbozados anteriormente son Turing completos. Por ejemplo, en el caso generativo, pueden generar todos los conjuntos de vectores de números naturales recursivamente enumerables. Por otro lado, ciertas clases de sistemas de membranas, con un paralelismo potenciado, son capaces de resolver problemas NP-completos en tiempo lineal. Esto supone cambiar espacio por tiempo, y utilizar un espacio exponencial, en forma de membranas y objetos presentes en la configuración del sistema durante una computación. En la sección siguiente se describe brevemente el modelo biológico que sustenta estos sistemas, y en la última sección se da una definición formal de los sistemas de membranas.. 2.1. La membrana biológica La célula es la subdivisión morfológica y funcional más pequeña que puede considerarse viva. A partir de ella, se clasifican los organismos vivos según la cantidad de ellas que contengan. Las células también se clasifican en dos tipos en función de la existencia (eucariota) o no (procariota) de núcleo. Además, las procariotas no tienen sistemas de endomembranas u orgánulos delimitados por membranas biológicas. El sistema endomembranoso también proporciona un sistema del transporte para las moléculas móviles a través del interior de la célula, así como superficies interactivas para la síntesis de lípidos y de proteínas. Las membranas que componen el sistema endomembranoso se construyen a partir de una bicapa lípida, con las proteínas unidas a cada lado o atravesándolas. El esquema de una célula eucariota se puede observar en la figura 2.1, donde se observa como la célula está compuesta de múltiples orgánulos especialidazados de entre los que destaca el núcleo y el Aparato de Golgi. Las células son entes dinámicos, con un metabolismo celular interno de gran actividad cuya estructura es un flujo entre rutas anastomosadas. Un fenómeno observado en todos los tipos celulares es la compartimentalización, que consiste en una heterogeneidad que da lugar a entornos más o menos definidos (rodeados o no mediante membranas biológicas) en las cuales existe un microentorno que aglutina a los elementos. 6.
(25) Figura 2.1: Esquema de una célula eucariota [Fuente: Wikipedia]. implicados en una ruta biológica. Esta compartimentalización alcanza su máximo exponente en las células eucariotas, las cuales están formadas por diferentes estructuras y orgánulos que desarrollan funciones específicas, lo que supone un método de especialización espacial y temporal. No obstante, células más sencillas, como las procariotas, ya poseen especializaciones semejantes. Las membranas que se ubican en la célula poseen características similares, pero la composición y funcionamiento es diferente. Entre los distintos tipos de membranas que existen, se puede destacar a la membrana celular o plasmática, la envoltura nuclear y los retículos endoplasmáticos. Estas membranas son simples o dobles, y como se muestra en el retículo endoplasmático, son un conjunto de membranas. Desde el punto de vista de la estructura, funcionamiento y composición, destaca la membrana plasmática, que ha sido la que más estudios ha recibido. Un modelo que explica el funcionamiento de la membrana plasmática es el modelo del mosaico fluido, de J. S. Singer y G. Nicolson en 1972 [Singer and Nicolson, 1972], que desarrolla un concepto de unidad termodinámica basada en las interacciones hidrófobas entre moléculas y otro tipo de enlaces no covalentes, como se observa en la figura 2.2. La membrana plasmática o celular es una estructura laminar formada por fosfolípidos (con cabeza hidrofílica y dos colas hidrofóbicas) y proteínas que engloban a las células, definiendo sus límites y contribuyendo a mantener el equilibrio entre el interior (medio intracelular) y el exterior (medio extracelular) de éstas. La composición de la membrana plasmática varía entre células dependiendo de la función o del tejido en la que se encuentre, pero posee elementos comunes. Está compuesta por una doble capa de fosfolípidos, por proteínas unidas no covalentemente a esa bicapa, y por glúcidos unidos covalentemente a lípidos o proteínas. Generalmente, las moléculas más numerosas son las de lípidos; sin embargo, la proteínas, debido a su mayor masa molecular, representan aproximadamente el 50% de la masa de la membrana. La principal característica de esta barrera es su permeabilidad selectiva, lo que le permite seleccionar las moléculas que deben entrar y salir de la célula. De esta forma se mantiene estable el medio intracelular, regulando el paso de agua, iones y. 7.
(26) Figura 2.2: Modelo del mosaico fluido [fuente: Wikipedia]. metabolitos, a la vez que mantiene el potencial electroquímico (haciendo que el medio interno esté cargado negativamente). Los lípidos más abundantes son los fosfoglicéridos (fosfolípidos) y los esfingolípidos, que se encuentran en todas las células; le siguen los glucolípidos, así como esteroides (sobre todo colesterol). El porcentaje de proteínas oscila entre un 20% en la vaina de mielina de las neuronas y un 70% en la membrana interna mitocondrial; el 80% son intrínsecas, mientras que el 20% restantes son extrínsecas. Las proteínas son responsables de las funciones dinámicas de la membrana, por lo que cada membrana tiene una dotación muy específica de proteínas; las membranas intracelulares tienen una elevada proporción de proteínas debido al elevado número de actividades enzimáticas que albergan. En la membrana, las proteínas desempeñan diversas funciones: transportadoras, conectoras, receptoras y enzimas. El orden de las cabezas hidrofílicas y las colas hidrofóbicas de la bicapa lipídica impide que solutos polares, como aminoácidos, ácidos nucleicos, carbohidratos, proteínas e iones, difundan a través de la membrana, pero generalmente permite la difusión pasiva de las moléculas hidrofóbicas. Esto permite a la célula controlar el movimiento de estas sustancias vía complejos de proteína transmembranal tales como poros y caminos, que permiten el paso de glucosa e iones específicos como el sodio y el potasio. Las cinco capas de moléculas fosfolípidas forman un “sándwich” con las colas de ácido graso dispuestos hacia el centro de la membrana plasmática y las cabezas de fosfolípidos hacia los medios acuosos que se encuentran dentro y fuera de la célula. La función básica de la membrana plasmática es mantener el medio intracelular diferenciado del entorno. Esto es posible gracias a la naturaleza aislante en medio acuoso de la bicapa lipídica y a las funciones de transporte que desempeñan las proteínas. La combinación de transporte activo y transporte pasivo hacen de la membrana plasmática una barrera selectiva que permite a la célula diferenciarse del medio. La mayor característica de las membranas es la permeabilidad, es decir, la facilidad de las moléculas para atravesarla. Esto depende principalmente de la carga eléctrica y, en menor medida, de la masa molar de la molécula. Moléculas pequeñas o con carga eléctrica neutra pasan la membrana más fácilmente que elementos cargados eléctricamente y moléculas grandes. Además, la membrana es selectiva, lo que significa que permite la entrada de unas moléculas y restringe la de otras. Debido a la selectividad de la membrana surge el concepto de transporte de membrana como el mecanismo que regula el paso de iones, solutos y moléculas a través de la membrana plasmática. En los tipos de transporte, está la difusión simple (que no requiere de la intervención de proteínas de las membranas, pero si de las características de la sustancia a transportar y de la naturaleza de la bicapa), la difusión facilitada (que requiere de la intervención de proteínas), y el transporte activo y contransporte (que al contrario que los anteriores que aumentan la entropía del sistema y disminuyen la energía libre, porque las proteínas transportadoras implicadas consumen energía metabólica).. 8.
(27) 2.2. Definición formal de los elementos de los sistemas de membranas A continuación se definen matemáticamente algunos de los elementos que constituyen los sistemas de membranas, tal y como se encuentran recogidos generalmente en la literatura relevante sobre el área. En primer lugar se especifican los multiconjuntos de objetos, después la estructura de membranas -y por extensión la estructura del sistema-, y el último elemento caracterizador, que son las reglas de evolución. A partir de estos preliminares se definirá el modelo, tal y como fue definido en su origen, y se explicará el comportamiento del mismo, explicando el dinamismo del sistema.. Multiconjuntos Un multiconjunto es un conjunto en el que se considera la multiplicidad o número de veces que un elemento se encuentra repetido en dicho conjunto. Definición 2.2.1. Un multiconjunto sobre un conjunto finito arbitrario U es una correspondencia unívoca de U sobre el conjunto de los números naturales M:. U →N a → Ma. La imagen de todo elemento de a ∈ U se define como la multiplicidad de a , esto es, el número de copias que del elemento a se tiene en el multiconjunto. Naturalmente, la multiplicidad de todo elemento de U es finita para nuestros propósitos. Otra forma de representar multiconjuntos es de forma de conjuntos de pares ordenados, en los que el primer elemento del par es el elemento de U y el segundo elemento del par es la multiplicidad de dicho elemento. M = {(a, M a)|a ∈ U }. Incluso se puede representar un multiconjunto sobre U = {a1 , a2 , . . . , am } de forma más compacta de la manera siguiente: M (a ) M (a 1 ) M (a 2 ) a2 . . . am m. M = a1. Toda permutación de este polinomio considerado como cadena de caracteres representa al mismo multiconjunto. Más aún, se denomina el vector de Parikh asociado al multiconjunto M sobre U al vector de las multiplicidades de los elementos de U (M (a1 ), M (a2 ), . . . M (am )) . En esta definición el orden de los elementos del conjunto U es relevante. Definición 2.2.2. Sea M un multiconjunto sobre un conjunto U . Se define soporte del multiconjunto M y se representa por supp(M ) al conjunto siguiente: supp(M ) = {a ∈ U |M (a) > 0}. Definición 2.2.3. Un multiconjunto se dice que es vacío si su soporte es el conjunto vacío y se representa por ;. Consideramos ahora el conjunto de todos los multiconjuntos que se pueden formar sobre un conjunto finito U . M (U ) = {M : U → N |M es un Multiconjunto sobre U }. 9.
(28) Sobre M (U ) se puede definir la relación de inclusión y las siguientes operaciones: Inclusión de Multiconjuntos: ∀M 1 , M 2 ∈ M (U ), M 1 ⊆ M 2 ⇔ ∀a ∈ U , M 1 (a) ≤ M 2 (a). Suma de Multiconjuntos +:. M (U )xM (U ) → M (U ) (M 1 , M 2 ) → M 1 + M 2 = {(a, M 1 (a) + M 2 (a))|a ∈ U }. Diferencia de Multiconjuntos ∀M1 , M2 ∈ M (U )|M1 ⊆ M2 −:. M (U )xM (U ) → M (U ) (M 1 , M 2 ) → M 1 − M 2 = {(a, M 1 (a) − M 2 (a))|a ∈ U }. Producto escalar por un número natural ·:. M (U )xM (U ) → M (U ) (n, M ) → n · M = {(a, n · M (a))|a ∈ U }. Estructura de membranas El elemento principal de un sistema de membranas es la propia estructura de membranas. Una estructura de membranas puede visualizarse como una distribución tridimensional de vesículas, en las que el tamaño y la distribución espacial no son relevantes; lo que realmente importa son las relaciones de inclusión entre membranas. En estos sistemas siempre habrá una membrana externa, la piel. En este punto, es importante hacer notar la correspondencia uno a uno entre membranas y regiones que encierran. Precisamente a causa de esta correspondencia, es posible hablar de membranas, de etiquetas de las regiones, de los contenidos de las membranas, etc. El concepto de membrana que se utiliza en la computación con membranas es un concepto idealizado, de forma que lo que permanece de la biología es la idea de barrera entre una región interior y otra región exterior. En este modelo la estructura interna de la membrana se pierde. Una estructura de membranas se puede representar matemáticamente como un árbol dirigido y desordenado, en el que la raíz del árbol es la membrana externa o piel, los nodos son las membranas y los arcos representan la relación “estar incluida directamente en”. En la representación en árbol de la estructura de membranas se pierde la interpretación bioquímica enfatizando el hecho de que las posiciones no son relevantes, sino que lo que realmente importa, son las relaciones de contenido de unas membranas en otras. Un ejemplo de la estructura de membranas y su árbol asociado aparece en la figura 2.3. Una estructura de membranas también puede ser representada como una cadena de paréntesis emparejados. Por ejemplo, la estructura en árbol de la figura 2.3 se puede representar en forma de cadena de la forma siguiente: [1 [2 ]2 [3 ]3 [4 [5 ]5 [6 [8 ]8 [9 ]9 ]6 [7 ]7 ]4 ]1. Debido a que las membranas tienen asociadas etiquetas, los corchetes etiquetados también están etiquetados. Al considerar la estructura de membranas como un árbol, surgen ciertas definiciones referentes a la relación jerárquica de las mismas. Definición 2.2.4. Se considera un grafo no dirigido G como el par ordenado (V, E ), en donde V es un conjunto finito cuyos elementos se denominan vértices o nodos y E ⊆ {{u, v} : u, v ∈ V ∧ u 6= v}.. 10.
(29) Figura 2.3: Estructura de membranas y su árbol asociado.. Definición 2.2.5. Se define un camino de longitud k desde un vértice u hasta un vértice v de G = (V, E ) como la sucesión finita (x 0 , x 1 , · · · , x k ) de vértices de G tal que u = x 0 ,v = x k y ∀ j (0 ≤ j < k → [x j , x j +1 ] ∈ E ). Definición 2.2.6. Se dice que un grafo no dirigido es conexo si todo par de vértices distintos están conectados por algún camino en el grafo. Definición 2.2.7. Se define un ciclo como un camino en el que todas las aristas y todos los vértices que lo forman son diferentes entre sí (excepto el primero y el último), de longitud al menos 1 y que comienza y acaba en el mismo vértice. Definición 2.2.8. Se denomina árbol a un grafo no dirigido, conexo y sin ciclos (acíclico). Definición 2.2.9. Se denomina árbol enraizado al árbol con uno de sus vértices distinguido. Este vértice se denomina raíz. Definición 2.2.10. Sea G un árbol enraizado de raíz r , y dado un vértice u , cualquier otro vértice v (v 6= u ), que esté en el único camino que une la raíz r con u , se dice que es un antecesor o ascendiente de u . También diremos que u es un descendiente de v . Definición 2.2.11. Dado G = (V, E ), un árbol enraizado de raíz r , diremos que un vértice u es padre de v si {v, u} ∈ E y v es descendiente de u . De igual forma, diremos que v es hijo de u . Definición 2.2.12. Diremos que un vértice de un árbol es hoja si el vértice no tiene descendientes. Definición 2.2.13. Una estructura de membranas es un árbol enraizado en el que los nodos se denominan membranas, la raíz se denomina piel, y las hojas se denominan membranas elementales. La representación en árbol de la estructura de membranas hace posible considerar varios parámetros, como son: la profundidad de la estructura de membranas, y la topología de la estructura de membranas según la forma del árbol.. 11.
(30) Definición 2.2.14. Sea M S el lenguaje sobre el alfabeto V = {[, ]} cuyas cadenas se definen recursivamente de la forma siguiente: [] ∈ M S. si µ1 , . . . , µn ∈ M S, n ≥ 1, entonces [µ1 . . . µn ] ∈ M S Sobre M S se define la relación ∼ de la forma siguiente: ∀x, y ∈ M S, x ∼ y ⇔ x = µ1 µ2 µ3 µ4 ∧ y = µ1 µ3 µ2 µ4 ∧ µ1 µ4 µ2 µ3 ∈ M S. Esta relación establece que dos estructuras de membranas están relacionadas si y solo si una se obtiene a partir de la otra como una permutación de paréntesis emparejados situados en el mismo nivel. Es decir, si tomamos las representaciones en árbol de ambas estructuras de membranas y a partir de una, intercambiando dos nodos del mismo nivel del árbol obtenemos la otra. Representando con ∼ ∗ el cierre transitivo y reflexivo de la relación ∼ se tiene que dicho cierre establece sobre M S una relación de equivalencia. Definición 2.2.15. Sea M S ∼ ∗ = M S el conjunto de las clases de equivalencia de M S sobre la relación ∼ ∗. Los elementos de M S se denominan estructuras de membranas. Cada par de corchetes emparejados [,] de la estructura de membranas se denomina membrana. La membrana externa de la estructura de membranas se denomina piel. Una membrana que no tiene membranas internas (es decir con la forma []) se denomina membrana elemental. El número de membranas de una estructura de membranas µ ∈ M S se llama grado de la estructura de membranas y se representa por d eg (µ) y se define recursivamente de la forma siguiente: g r ad o([]) = 1 g r ad o([µ1 · · · µn ]) = 1 +. n X. d eg (µi ). i =1. En una estructura de membranas µ ∈ M S se puede definir, también recursivamente, la función de profundidad que determina el número de membranas que forman la estructura de la forma siguiente: pr o f ([]) = 1 pr o f ([µ1 · · · µn ]) = 1 + max{pr o f (µ1 ), · · · , pr o f (µn )}. El concepto de adyacencia es fundamental en la definición de la estructura de membranas desde el punto de vista formal, y se puede definir de la forma siguiente: Sea µ ∈ M S una estructura de membranas con las membranas etiquetadas biunívocamente en L = {1, · · · , d eg (µ)}. Automáticamente, las regiones asociadas a las membranas son también etiquetadas con la misma etiqueta que su membrana asociada. Entonces, se puede definir la siguiente relación de orden parcial en L : Definición 2.2.16. Dadas dos etiquetas i , j ∈ L , diremos que i <µ j si y solo si la región con etiqueta i contiene directamente a la región con etiqueta j o i contiene una región con etiqueta k ∈ L que contiene a la región con etiqueta j . De esta manera, se puede caracterizar las regiones adyacentes. Definición 2.2.17. Sean i , j ∈ L = {1, · · · , d eg (µ)} dos etiquetas asociadas a dos regiones de una estructura de membranas µ, diremos que la región con etiqueta i es adyacente a la región con etiqueta j si y solo si: (i <µ j ∧ Øk ∈ {1, · · · , d eg (µ)}|i <µ k ∧ k <µ j ) ∨ ( j <µ i ∧ Øk ∈ {1, · · · , d eg (µ)}| j <µ k ∧ k <µ i ). 12.
Outline
Análisis de las implementaciones y frameworks de desarrollo
Arquitecturas
Aplicación de algoritmos genéticos para la distribución de membranas
Evolución Gramatical y Enjambres de Gramáticas
Distribución de membranas con Enjambres Gramaticales y Optimización por Enjambres de
Arquitecturas Peer-to-Peer y Peer-to-Peer Jerárquica, con recálculo total
Arquitecturas Peer-to-Peer y Peer-to-Peer Jerárquica, con recálculo de adyacentes
Arquitecturas Maestro-Esclavo y Maestro-Esclavo Jerárquica, con recálculo total
Arquitectura Maestro-Esclavo Jerárquica, con recálculo en maestros intermedios
Arquitectura Maestro-Esclavo (MS)
Documento similar