María del Carmen Graciani Díaz
La Computación Molecular y, en concreto, la Computación con ADN, es una disciplina que se enmarca dentro del campo de investigación conocido como Computación Natural. Tiene como objetivo el desarrollo de modelos de computación inspirados en el comportamiento de las moléculas de ADN, y en las posibilidades que abren las técnicas de laboratorio para su manipulación.
En la memoria se han estudiado distintas adaptaciones del marco formal en que se describen distintos modelos de computación con ADN al lenguaje de especificaciones de PVS, que es un sistema de verificación cuyo lenguaje está basado en la lógica clásica de segundo orden con un sistema de tipos acorde con la teoría de conjuntos de Zermelo-Fraenkel con el axioma de elección. El demostrador del sistema está basado en cálculos de secuentes combinando la interacción con el usuario y el automatismo.
Como aportaciones originales señalar la descripción en PVS del modelo restringido de Adleman y el modelo sticker, y la representación y verificación en PVS de programas moleculares que resuelven problemas clásicos NP-completos.
En una primera aproximación al modelo sticker se ha realizado una implementación de la metodología presentada por Fernando Sancho en su tesis doctoral para la verificación de programas en el citado modelo. Así mismo, la consideración de los programas en este modelo como meros programas imperativos ha llevado a la descripción de la lógica de primer orden para dos tipos (indpendiente de la del sistema) y del cálculo de Floyd-Hoare, desarrollando un conjunto de estrategias que permiten simi-automatizar el proceso de verificación de programas imperativos.
La presente memoria tiene dos objetivos fundamentales: por un lado estudiar la adaptación de nuevos modelos de computación no convencionales al marco formal de un sistema de verificación automática y, por otro, verificar la corrección y completitud de programas en dichos modelos utilizando para ello el demostrados del sistema.
En esta memoria se presentan distintas aproximaciones a dos modelos de computación molecular basada en ADN y a la verificación de programas moleculares en los mismos que resuelven algunos problemas clásicos. El desarrollo de la misma está estructurada en capítulos que pasamos a reseñar sucintamente.
En el Capítulo 1 se describen algunos paradigmas y modelos de Computación Natural como son las redes neuronales artificiales, los algoritmos genéticos, la programación evolutiva, la computación molecular, y la computación celular, como marco dentro del cual se describen los modelos de computación basados en AD, una de las áreas en la que se desarrolla presente memoria.
En el Capítulo 2 se presenta una descripción básica del sistema PVS, con el fin de facilitar la lectura y compresión de los capítulos posteriores sin requerir un conocimiento mayor del mismo. Cada una de las secciones del capítulo se corresponde con uno de los elementos del lenguaje de especificaciones del sistema. Por último se incluye un breve ejemplo que ilustra el manejo del demostrador.
El Capítulo 3 está dedicado a la computación molecular basada en ADN. Se incluye una descripción de la estructura química del ADN y su comportamiento, así como de algunas de las técnicas de laboratorio que se utilizan para su manipulación y que justifican la elección de las operaciones elementales de los modelos de computación molecular considerados. Por su importancia histórica se presenta al experimento de Adleman, considerando propiamente el origen de la Computación basada en ADN. Por último, se describen los modelos restringido de Adleman y sticker, objeto de estudio de la presente memoria. El primero como representante de los modelos sin memoria, ya que las operaciones moleculares consideradas no alteran la estructura de las moléculas de ADN. El segundo, como ejemplo de un modelo molecular con memoria, por el uso que hace de las moléculas de ADN como unidades de memoria que pueden ser modificadas a lo largo de la ejecución de un programa.
En el Capítulo 4 se presentan, en primer lugar, dos problemas clásicos en teoría de la complejidad computacional, el problema SAT de la satisfactibilidad de la Lógica Proposicional y el problema de la 3 coloración de un grafo no dirigido. El trabajo de F. Martín y otros inspiró la posibilidad de utilizar un demostrador para la implementación y verificación de programas en modelos moleculares. Basado en dicho trabajo se realizó una primera aproximación en PVS basada en listas. A continuación se desarrolló una segunda implementación que utiliza como tipos de datos básicos los multiconjuntos y las sucesiones finitas de elementos, que permiten manejar de manera más natural las estructuras de datos del modelo. Dado que los dos problemas anteriores tienen en común que en el tubo inicial deben estar representadas todas las posibles funciones con dominio un conjunto finito de elementos y rango en un conjunto de valores, se especifica la construcción de un tubo inicial genérico. Por último, se incluye la verificación de programas moleculares diseñados para resolver los problemas citados.
En el Capítulo 5 se estudia la implementación de una metodología diseñada por F. Sancho para la verificación de programas en el modelo sticker. Al considerar los programas como una sucesión de instrucciones básicas, éstos se consideran como la composición de funciones elementales. La única peculiaridad la proporcionan los bucles que son tratados como funciones recursivas dependientes de un valor para el caso base y una función que representa la sucesión de instrucciones que se repite a lo largo del bucle. Como ilustración se presente la verificación de una serie de programas moleculares diseñados para resolver problemas relativos a conjuntos numéricos y que son utilizados como subrutinas de programas que resuelven problemas clásicos NP-completos: el problema Subset-Sum, el problema de la Mochila 0/1 acotado, el problema del empaquetamiento, Set Packing¸ el del recubrimiento exacto, Exact Cover, y el problema del recubrimiento minimal.
A continuación se puede decir que empieza una segunda parte en la memoria, en la que se consideran los programas en el modelo sticker como meros programas imperativos y, como tales, susceptibles de ser verificados con los métodos habituales utilizados para este tipo de programas, basados en las especificaciones de corrección parcial de Floyd-Hoare. Se considera que la ejecución de un programa imperativo produce un cambio de estado; es decir, un cambio en el valor de las variables asociadas al programa. Para poder expresar los programas y determinados asertos que permitan formular las condiciones de corrección de los mismos, Gloees represente en PVS la lógica clásica de Primer Orden y una técnica de verificación de programas imperativos basada en el cálculo de Hoare.
En el capítulo 6 se presenta la lógica clásica y la lógica tipada de Primer Orden. A continuación se describe una implementación de la primera y el desarrollo, en PVS, de una lógica de primer orden para dos tipos, que nos permitirá escribir los programas de modelos sticker y demostrar la corrección de los mismos.
En el Capítulo 7 se describe la implementación de las distintos comandos o instrucciones con los que se construyen los programas imperativos considerados: asignaciones, secuenciación y bucles para. Con cada una de las instrucciones consideradas se incluye el esquema o axioma correspondiente de la lógica de Floyd-Hoare que permite establecer la corrección de las mismas. Las operaciones del modelo se consideran como términos en las variables del programa. Para ilustrar el comportamiento de la misma se incluye la especificación de las subrutinas y del programa, presentadas en el capítulo 5, para resolver el problema del recubrimiento exacto en el modelo sticker, estableciendo su corrección.
En el último capítulo de esta memoria se resumen algunas de las ideas acerca del desarrollo del trabajo, se presentan algunos datos que permiten cuantificar el mismo y se destaca algunas conclusiones extraídas de los resultados obtenidos. Se concluye con las perspectivas de trabajo futuro que se vislumbran tras los objetivos conseguidos en esta memoria y que marcan una línea de investigación en modelos de computación no convencionales.
© 2001-2024 Fundación Dialnet · Todos los derechos reservados