10 research outputs found

    Formal methods applied to the analysis of phylogenies: Phylogenetic model checking

    Get PDF
    Los árboles filogenéticos son abstracciones útiles para modelar y caracterizar la evolución de un conjunto de especies o poblaciones respecto del tiempo. La proposición, verificación y generalización de hipótesis sobre un árbol filogenético inferido juegan un papel importante en el estudio y comprensión de las relaciones evolutivas. Actualmente, uno de los principales objetivos científicos es extraer o descubrir los mensajes biológicos implícitos y las propiedades estructurales subyacentes en la filogenia. Por ejemplo, la integración de información genética en una filogenia ayuda al descubrimiento de genes conservados en todo o parte del árbol, la identificación de posiciones covariantes en el ADN o la estimación de las fechas de divergencia entre especies. Consecuentemente, los árboles ayudan a comprender el mecanismo que gobierna la deriva evolutiva. Hoy en día, el amplio espectro de métodos y herramientas heterogéneas para el análisis de filogenias enturbia y dificulta su utilización, además del fuerte acoplamiento entre la especificación de propiedades y los algoritmos utilizados para su evaluación (principalmente scripts ad hoc). Este problema es el punto de arranque de esta tesis, donde se analiza como solución la posibilidad de introducir un entorno formal de verificación de hipótesis que, de manera automática y modular, estudie la veracidad de dichas propiedades definidas en un lenguaje genérico e independiente (en una lógica formal asociada) sobre uno de los múltiples softwares preparados para ello. La contribución principal de la tesis es la propuesta de un marco formal para la descripción, verificación y manipulación de relaciones causales entre especies de forma independiente del código utilizado para su valoración. Para ello, exploramos las características de las técnicas de model checking, un paradigma en el que una especificación expresada en lógica temporal se verifica con respecto a un modelo del sistema que representa una implementación a un cierto nivel de detalle. Se ha aplicado satisfactoriamente en la industria para el modelado de sistemas y su verificación, emergiendo del ámbito de las ciencias de la computación. Las contribuciones concretas de la tesis han sido: A) La identificación e interpretación de los árboles filogeneticos como modelos de la evolución, adaptados al entorno de las técnicas de model checking. B) La definición de una lógica temporal que captura las propiedades filogenéticas habituales junto con un método de construcción de propiedades. C) La clasificación de propiedades filogenéticas, identificando categorías de propiedades según estén centradas en la estructura del árbol, en las secuencias o sean híbridas. D) La extensión de las lógicas y modelos para contemplar propiedades cuantitativas de tiempo, probabilidad y de distancias. E) El desarrollo de un entorno para la verificación de propiedades booleanas, cuantitativas y paramétricas. F) El establecimiento de los principios para la manipulación simbolica de objetos filogenéticos, p. ej., clados. G) La explotación de las herramientas de model checking existentes, detectando sus problemas y carencias en el campo de filogenia y proponiendo mejoras. H) El desarrollo de técnicas "ad hoc" para obtener ganancia de complejidad alrededor de dos frentes: distribución de los cálculos y datos, y el uso de sistemas de información. Los puntos A-F se centran en las aportaciones conceptuales de nuestra aproximación, mientras que los puntos G-H enfatizan la parte de herramientas e implementación. Los contenidos de la tesis están contrastados por la comunidad científica mediante las siguientes publicaciones en conferencias y revistas internacionales. La introducción de model checking como entorno formal para analizar propiedades biológicas (puntos A-C) ha llevado a la publicación de nuestro primer artículo de congreso [1]. En [2], desarrollamos la verificación de hipótesis filogenéticas sobre un árbol de ejemplo construido a partir de las relaciones impuestas por un conjunto de proteínas codificadas por el ADN mitocondrial humano (ADNmt). En ese ejemplo, usamos una herramienta automática y genérica de model checking (punto G). El artículo de revista [7] resume lo básico de los artículos de congreso previos y extiende la aplicación de lógicas temporales a propiedades filogenéticas no consideradas hasta ahora. Los artículos citados aquí engloban los contenidos presentados en las Parte I--II de la tesis. El enorme tamaño de los árboles y la considerable cantidad de información asociada a los estados (p.ej., la cadena de ADN) obligan a la introducción de adaptaciones especiales en las herramientas de model checking para mantener un rendimiento razonable en la verificación de propiedades y aliviar también el problema de la explosión de estados (puntos G-H). El artículo de congreso [3] presenta las ventajas de rebanar el ADN asociado a los estados, la partición de la filogenia en pequeños subárboles y su distribución entre varias máquinas. Además, la idea original del model checking rebanado se complementa con la inclusión de una base de datos externa para el almacenamiento de secuencias. El artículo de revista [4] reúne las nociones introducidas en [3] junto con la implementación y resultados preliminares presentados [5]. Este tema se corresponde con lo presentado en la Parte III de la tesis. Para terminar, la tesis reaprovecha las extensiones de las lógicas temporales con tiempo explícito y probabilidades a fin de manipular e interrogar al árbol sobre información cuantitativa. El artículo de congreso [6] ejemplifica la necesidad de introducir probabilidades y tiempo discreto para el análisis filogenético de un fenotipo real, en este caso, el ratio de distribución de la intolerancia a la lactosa entre diversas poblaciones arraigadas en las hojas de la filogenia. Esto se corresponde con el Capítulo 13, que queda englobado dentro de las Partes IV--V. Las Partes IV--V completan los conceptos presentados en ese artículo de conferencia hacia otros dominios de aplicación, como la puntuación de árboles, y tiempo continuo (puntos E-F). La introducción de parámetros en las hipótesis filogenéticas se plantea como trabajo futuro. Referencias [1] Roberto Blanco, Gregorio de Miguel Casado, José Ignacio Requeno, and José Manuel Colom. Temporal logics for phylogenetic analysis via model checking. In Proceedings IEEE International Workshop on Mining and Management of Biological and Health Data, pages 152-157. IEEE, 2010. [2] José Ignacio Requeno, Roberto Blanco, Gregorio de Miguel Casado, and José Manuel Colom. Phylogenetic analysis using an SMV tool. In Miguel P. Rocha, Juan M. Corchado Rodríguez, Florentino Fdez-Riverola, and Alfonso Valencia, editors, Proceedings 5th International Conference on Practical Applications of Computational Biology and Bioinformatics, volume 93 of Advances in Intelligent and Soft Computing, pages 167-174. Springer, Berlin, 2011. [3] José Ignacio Requeno, Roberto Blanco, Gregorio de Miguel Casado, and José Manuel Colom. Sliced model checking for phylogenetic analysis. In Miguel P. Rocha, Nicholas Luscombe, Florentino Fdez-Riverola, and Juan M. Corchado Rodríguez, editors, Proocedings 6th International Conference on Practical Applications of Computational Biology and Bioinformatics, volume 154 of Advances in Intelligent and Soft Computing, pages 95-103. Springer, Berlin, 2012. [4] José Ignacio Requeno and José Manuel Colom. Model checking software for phylogenetic trees using distribution and database methods. Journal of Integrative Bioinformatics, 10(3):229-233, 2013. [5] José Ignacio Requeno and José Manuel Colom. Speeding up phylogenetic model checking. In Mohd Saberi Mohamad, Loris Nanni, Miguel P. Rocha, and Florentino Fdez-Riverola, editors, Proceedings 7th International Conference on Practical Applications of Computational Biology and Bioinformatics, volume 222 of Advances in Intelligent Systems and Computing, pages 119-126. Springer, Berlin, 2013. [6] José Ignacio Requeno and José Manuel Colom. Timed and probabilistic model checking over phylogenetic trees. In Miguel P. Rocha et al., editors, Proceedings 8th International Conference on Practical Applications of Computational Biology and Bioinformatics, Advances in Intelligent and Soft Computing. Springer, Berlin, 2014. [7] José Ignacio Requeno, Gregorio de Miguel Casado, Roberto Blanco, and José Manuel Colom. Temporal logics for phylogenetic analysis via model checking. IEEE/ACM Transactions on Computational Biology and Bioinformatics, 10(4):1058-1070, 2013

    Contributions to the deadlock problem in multithreaded software applications observed as Resource Allocation Systems

    Get PDF
    Desde el punto de vista de la competencia por recursos compartidos sucesivamente reutilizables, se dice que un sistema concurrente compuesto por procesos secuenciales está en situación de bloqueo si existe en él un conjunto de procesos que están indefinidamente esperando la liberación de ciertos recursos retenidos por miembros del mismo conjunto de procesos. En sistemas razonablemente complejos o distribuidos, establecer una política de asignación de recursos que sea libre de bloqueos puede ser un problema muy difícil de resolver de forma eficiente. En este sentido, los modelos formales, y particularmente las redes de Petri, se han ido afianzando como herramientas fructíferas que permiten abstraer el problema de asignación de recursos en este tipo de sistemas, con el fin de abordarlo analíticamente y proveer métodos eficientes para la correcta construcción o corrección de estos sistemas. En particular, la teoría estructural de redes de Petri se postula como un potente aliado para lidiar con el problema de la explosión de estados inherente a aquéllos. En este fértil contexto han florecido una serie de trabajos que defienden una propuesta metodológica de diseño orientada al estudio estructural y la correspondiente corrección física del problema de asignación de recursos en familias de sistemas muy significativas en determinados contextos de aplicación, como el de los Sistemas de Fabricación Flexible. Las clases de modelos de redes de Petri resultantes asumen ciertas restricciones, con significado físico en el contexto de aplicación para el que están destinadas, que alivian en buena medida la complejidad del problema. En la presente tesis, se intenta acercar ese tipo de aproximación metodológica al diseño de aplicaciones software multihilo libres de bloqueos. A tal efecto, se pone de manifiesto cómo aquellas restricciones procedentes del mundo de los Sistemas de Fabricación Flexible se muestran demasiado severas para aprehender la versatilidad inherente a los sistemas software en lo que respecta a la interacción de los procesos con los recursos compartidos. En particular, se han de resaltar dos necesidades de modelado fundamentales que obstaculizan la mera adopción de antiguas aproximaciones surgidas bajo el prisma de otros dominios: (1) la necesidad de soportar el anidamiento de bucles no desplegables en el interior de los procesos, y (2) la posible compartición de recursos no disponibles en el arranque del sistema pero que son creados o declarados por un proceso en ejecución. A resultas, se identifica una serie de requerimientos básicos para la definición de un tipo de modelos orientado al estudio de sistemas software multihilo y se presenta una clase de redes de Petri, llamada PC2R, que cumple dicha lista de requerimientos, manteniéndose a su vez respetuosa con la filosofía de diseño de anteriores subclases enfocadas a otros contextos de aplicación. Junto con la revisión e integración de anteriores resultados en el nuevo marco conceptual, se aborda el estudio de propiedades inherentes a los sistemas resultantes y su relación profunda con otros tipos de modelos, la confección de resultados y algoritmos eficientes para el análisis estructural de vivacidad en la nueva clase, así como la revisión y propuesta de métodos de resolución de los problemas de bloqueo adaptadas a las particularidades físicas del dominio de aplicación. Asimismo, se estudia la complejidad computacional de ciertas vertientes relacionadas con el problema de asignación de recursos en el nuevo contexto, así como la traslación de los resultados anteriormente mencionados sobre el dominio de la ingeniería de software multihilo, donde la nueva clase de redes permite afrontar problemas inabordables considerando el marco teórico y las herramientas suministradas para subclases anteriormente explotadas

    Synthesis of asynchronous controllers using integer linear programming

    Get PDF
    A novel strategy for the logic synthesis of asynchronous control circuits is presented. It is based on the structural theory of Petri nets and integer linear programming. Techniques that are capable of checking implementability conditions, such as complete state coding, and deriving a gate netlist to implement the specified behavior are presented. These techniques can handle Petri net specifications consisting of several thousands of transitions and provide a significant speed-up compared with techniques that have previously been proposed.Peer ReviewedPostprint (published version

    Desarrollo de un Framework de simulación de sistemas de eventos discretos complejos

    Get PDF
    El diseño de sistemas complejos de grandes dimensiones requiere la definición de modelos de diferentes perspectivas y con diferentes niveles de abstracción. En este proyecto se han usado las redes de Petri como modelo formal. Una metodología modular y jerárquica de construcción de modelos es la más adecuada para gestionar la complejidad donde la definición de componentes y la comunicación/sincronización entre ellos juega un papel central. El objetivo es la generación de código eficiente para simulación distribuida con soporte al balanceo de carga, e implementar algoritmos de sincronización específicos en simulación que aseguren su corrección.<br /

    Modelos y plataforma IEC 61499 adaptados al control distribuido de máquinas herramienta en sistemas de fabricación ágil

    Get PDF
    Los sistemas de fabricación han ido evolucionando para adaptarse a las cada vez más cambiantes demandas del mercado, pasando de los sistemas de fabricación en masa a los sistemas flexibles y, finalmente, a los sistemas ágiles. Estos últimos están soportados por sistemas reconfigurables, capaces de ser modificados sin parar su funcionamiento, así como por tecnologías de la información y la comunicación, por lo que pueden adaptarse muy rápidamente a cambios en la producción. Para denominar estos nuevos sistemas han surgido también términos como e-manufacturing, cloud-manufacturing, industrie 4.0. El estándar actual de referencia para el desarrollo de software de control en los sistemas de fabricación es IEC 61131, del que algunos trabajos han indicado su poca adecuación frente a los requisitos de los nuevos sistemas. Por este motivo ha surgido el más complejo IEC 61499, que define arquitecturas y modelos para un software de control distribuido y reconfigurable. La industria demanda a este estándar la capacidad para desarrollar software de control: predecible, escalable, mantenible y extensible. A este respecto, aunque ha sido objeto de múltiples trabajos por parte de la comunidad académica, a día de hoy IEC 61499 no ha adquirido esa capacidad, por lo que no es aceptado todavía por la industria. El objeto de la presente tesis es aportar propuestas que contribuyan a que el estándar alcance dicha capacidad. Con este fin, se propone el uso de metodologías y modelos de componentes software adaptados al dominio de aplicación, en particular, al control de máquinas herramienta en sistemas de fabricación ágil. Este dominio ha sido elegido por su complejidad, frente a los sencillos tipos de aplicación y casos de uso considerados en anteriores propuestas relacionadas con IEC 61499. Para establecer dichas metodologías y modelos adaptados se estudia en primer lugar el dominio indicado, determinando los principios de diseño de su software de control. Estos principios sirven de base para efectuar una revisión del estado actual del estándar. Seguidamente, se propone y modela el control distribuido de una máquina herramienta genérica, a partir del cual se establecen los modelos de bloque función y de ejecución IEC 61499 adaptados a ese dominio. Dichos modelos facilitan el establecimiento de una metodología de diseño, a la vez que permiten una implementación del estándar determinista, eficiente, escalable y que cumple restricciones de tiempo real. A la hora de verificar experimentalmente la metodología y los modelos adaptados es necesaria una plataforma de ejecución. Debido a que las plataformas IEC 61499 existentes no soportan dichos modelos se ha especificado, diseñado e implementado la plataforma COSME. A diferencia de anteriores plataformas, ésta incorpora características que hacen posible su empleo en entornos industriales. En este sentido, la plataforma COSME ha sido desarrollada dentro de un proyecto de investigación, transferencia y colaboración tecnológica entre la universidad y un grupo industrial fabricante de máquinas herramienta. Dicho proyecto ha permitido que esta plataforma, la metodología y los modelos adaptados hayan sido validados en casos de uso reales

    Análisis filogenético mediante lógica temporal y model checking

    No full text
    El análisis filogenético es la rama de la bioinformática que se encarga de estudiar la clasificación de un conjunto de especies distintas en función de su relación de proximidad evolutiva. La metodología de trabajo que sigue actualmente es muy “ad-hoc”; es decir, cuando especificamos una nueva propiedad biológica o añadimos otra especie al modelo necesitamos reimplementar el algoritmo de verificación para que considere los nuevos datos. Para solucionarlo, nuestra aproximación trata de sistematizar el método de trabajo en el análisis filogenético, además de reaprovechar conceptos y métodos consolidados en otras áreas de análisis de sistemas. Para ello proponemos el uso de “model checking”, una técnica de verificación automática madura en el mundo de la verificación. Nuestra aproximación se sustenta sobre tres pilares principales. Primero, el modelado de la dinámica evolutiva es análogamente equivalente al modelado de un sistema de transiciones, donde las características biológicas de las especies (ADN, fenotipo, etc) definen las variables de los estados; y la mutación o salto entre especies se corresponde con la ejecución de una transición. Segundo, el uso de lógicas temporales sistematiza el proceso de formulación y aporta formalismo a la especificación de propiedades filogenéticas. Por último, la verificación de estas fórmulas se realiza de manera automática por cualquiera de las herramientas informáticas existentes, devolviendo un contraejemplo en el caso de resultar falsas. Además de la aportación teórica, hemos evaluado empíricamente las prestaciones del sistema sobre una herramienta software de model checking real: SMV. Esta tecnología ha demostrado ser viable cuando trabaja aisladamente con genes o fragmentos de ADNmt, ya que su tamaño no es excesivamente grande. Sin embargo, su coste temporal escala cuadráticamente con la longitud de las secuencias, mientras que el consumo de memoria crece linealmente hasta alcanzar más de 2,5 GBytes en el caso peor. Por estos motivos, en estudios filogenéticos futuros sobre el ADNmt completo (o el ADN nuclear, que es más grande) será necesario paralelizar y componer la solución a partir de los resultados parciales. También se ha propuesto una estructura de datos basada en los diagramas de decisión para manejar cadenas de ADNmt de forma más eficiente en memoria a cómo se realiza en la actualidad

    Métodos basados en redes de Petri para el diseño de algoritmos de encaminamiento adaptativos mínimos libres de bloqueos

    Get PDF
    La presente memoria se ha centrado en el desarrollo de una metodología completa para la construcción de algoritmos de encaminamiento adaptativos mínimos de tipo wormhole y que estén libres de bloqueo. El buscar una metodología completa que cubre desde la fase de especificación, pasando por el análisis y llegando hasta la síntesis que introduce correcciones en caso de haber detectado errores en el diseño original, es en sí mismo una aportación en cuanto que las aproximaciones existentes no cubren sobre todo las últimas fases. Nos hemos concentrado en los problemas de bloqueos, entendidos estos como la situación que aparece cuando un mensaje en tránsito desde un origen a un destino no puede alcanzar nunca su destino. Para abordar este problema se ha adaptado un tipo de abstracción del diseño que se denomina abstracción como sistema de asignación de recursos ó abstracción SAR. Desde un punto de vista instrumental se ha utilizado como herramienta formal, las redes de Petri, por tratarse de un paradigma de modelado formal para el que existe un rico cuerpo de resultados para todas las fases del ciclo de diseño. Se han desarrollado técnicas nuevas para la corrección de los modelos en caso de que existan bloqueos aprovechando la teoría desarrollada para la clase de redes de Petri obtenidas a través de la metodología utilizando un ejemplo para una red de interconexión en donde se aplica la metodología completamente. Este trabajo contribuye en: 1. Un nuevo enfoque de modelado para los algoritmos de encaminamientos de tipo adaptativo mínimo, desde una visión de SAR del sistema. 2. Desarrollo de una metodología de modelado formal para los sistemas de encaminamiento que asiste al diseñador desde la especificación de partida hasta la obtención de la red de Petri. 3. Caracterización de la clase de redes de Petri obtenidas a través de la metodología y que pertenece a la muy estudiada clase de redes de Petri denominadas S4PR. 4. Se define una nueva clase de redes de Petri denominada SOAR2 para la cual se definen características estructurales particulares sobre la cual razonar

    Teoría de Grafos Aplicada al Análisis de Redes S4PR y Subclases: El Problema de Cálculo de los Cerrojos Mínimos

    Get PDF
    La presente memoria utiliza la teoría de grafos en el análisis de redes s4pr. La necesidad de disponer de algoritmos eficientes para calcular los cerrojos mínimos u otros conjuntos de cerrojos para esta clase de redes es el motivo que ha conducido esta investigación. Para alcanzar el objetivo trazado se ha desarrollado como punto de partida las propiedades estructurales que poseen las redes s4pr, esto se ha hecho debido a que en todos los trabajos anteriores se utilizaban las mismas propiedades que poseen las redes de petri generales y no se tomaba ventaja de la estructura que este tipo de redes posee. De igual forma se han caracterizado los cerrojos mínimos en función del conjunto de recursos que estos poseen. A partir de los resultados antes mencionados se ha desarrollado una herramienta denominada relación de poda entre los cerrojos mínimos de un recurso la cual nos permite determinar el conjunto de lugares que un cerrojo mínimo de un recurso puede podar a otro cerrojo mínimo de un recurso. Esta herramienta nos permite obtener los cerrojos mínimos del conjunto de cerrojos que la red posee. Para representar esta relación se utiliza un grafo al cual se le ha llamado grafo de poda y tres funciones de etiquetado asociadas al mismo. Este grafo nos permite realizar el cálculo de cerrojos para un conjunto de recursos dado o el cálculo de cerrojos mínimos de una manera más eficiente al trabajar calculando y manipulando los subgrafos fuertemente conexos máximos del grafo. Por lo tanto, la memoria requerida es muy pequeña y del orden del tamaño del grafo de poda. Finalmente, se presenta la especialización de los algoritmos de cálculo de cerrojos mínimos con más de un recurso para las redes l-s3pr, s3pr y soar2 cuyo objetivo es obtener algoritmos que sean más eficientes que el desarrollado para las redes s4pr. Este trabajo contribuye en: 1. Nuevas propiedades estructurales para las redes s4pr. 2. Cotas inferior y superior de los cerrojos mínimos para las redes s4pr, l-s3pr, s3pr y soar2. 3. Caracterización de los cerrojos mínimos por el conjunto de recursos que contienen. 4. Nuevas herramientas: relación de poda y grafo de poda, que nos permiten obtener los cerrojos mínimos del conjunto de cerrojos que una red s4pr posee. 5. Algoritmo para calcular los cerrojos de una red s4pr que contengan determinados recursos. 6. Algoritmo para calcular los cerrojos mínimos para redes s4pr, l-s3pr, s3pr y soar2

    Diseño e implementación de un simulador distribuido de eventos discretos con mecanismos de balanceo de carga

    No full text
    El análisis y comprensión del comportamiento de sistemas en el ámbito de la ingeniería ha cobrado una vital importancia en los últimos tiempos con el aumento exponencial de su tamaño y complejidad. Debido a ello, se hace muy complicado el hecho de crear prototipos o clones de un sistema para analizar su comportamiento o probar nuevas mejoras del mismo. Para dar solución a este problema, la simulación de sistemas permite reproducir el comportamiento de un sistema dinámico mediante la interpretación de un modelo que representa de manera fidedigna su funcionamiento.Sin embargo, para poder simular sistemas de gran tamaño y complejidad, se requiere que esta simulación y las herramientas que lo soportan sean escalables. Para ello, se ha abordado el desarrollo e implementación de un simulador distribuido que reproduce el comportamiento de un sistema de eventos discretos modelado por Redes de Petri, y además, se han incorporado mecanismos que sean capaces de redistribuir la carga de trabajo que soporta cada uno de los nodos que interviene en la simulación.Estos mecanismos de balanceo de la carga son el aspecto innovador que aporta este trabajo al campo de la simulación distribuida conservativa, ya que la solución propuesta de redistribuir la partición de modelo que recibe un nodo de simulación durante el proceso de simulación sin llegar a detenerla es novedosa, a pesar de que en otros trabajos anteriores se hayan abordado soluciones respecto al balanceo de la carga en simulaciones distribuidas<br /

    Synthesis of asynchronous controllers using integer linear programming

    No full text
    A novel strategy for the logic synthesis of asynchronous control circuits is presented. It is based on the structural theory of Petri nets and integer linear programming. Techniques that are capable of checking implementability conditions, such as complete state coding, and deriving a gate netlist to implement the specified behavior are presented. These techniques can handle Petri net specifications consisting of several thousands of transitions and provide a significant speed-up compared with techniques that have previously been proposed.Peer Reviewe
    corecore