918 resultados para Lógica de predicados


Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Relevância:

20.00% 20.00%

Publicador:

Resumo:

La computación molecular es una disciplina que se ocupa del diseño e implementación de dispositivos para el procesamiento de información sobre un sustrato biológico, como el ácido desoxirribonucleico (ADN), el ácido ribonucleico (ARN) o las proteínas. Desde que Watson y Crick descubrieron en los años cincuenta la estructura molecular del ADN en forma de doble hélice, se desencadenaron otros descubrimientos como las enzimas que cortan el ADN o la reacción en cadena de la polimerasa (PCR), contribuyendo más que signi�cativamente a la irrupción de la tecnología del ADN recombinante. Gracias a esta tecnología y al descenso vertiginoso de los precios de secuenciación y síntesis del ADN, la computación biomolecular pudo abandonar su concepción puramente teórica. En 1994, Leonard Adleman logró resolver un problema de computación NP-completo (El Problema del Camino de Hamilton Dirigido) utilizando únicamente moléculas de ADN. La gran capacidad de procesamiento en paralelo ofrecida por las técnicas del ADN recombinante permitió a Adleman ser capaz de resolver dicho problema en tiempo polinómico, aunque a costa de un consumo exponencial de moléculas de ADN. Utilizando algoritmos similares al de �fuerza bruta� utilizado por Adleman se logró resolver otros problemas NP-completos (por ejemplo, el de Satisfacibilidad de Fórmulas Lógicas / SAT). Pronto se comprendió que la computación con biomolecular no podía competir en velocidad ni precisión con los ordenadores de silicio, por lo que su enfoque y objetivos se centraron en la resolución de problemas biológicos con aplicación biomédica, dejando de lado la resolución de problemas clásicos de computación. Desde entonces se han propuesto diversos modelos de dispositivos biomoleculares que, de forma autónoma (sin necesidad de un bio-ingeniero realizando operaciones de laboratorio), son capaces de procesar como entrada un sustrato biológico y proporcionar una salida también en formato biológico: procesadores que aprovechan la extensión de la Polimerasa, autómatas que funcionan con enzimas de restricción o con deoxiribozimas, circuitos de hibridación competitiva. Esta tesis presenta un conjunto de modelos de dispositivos de ácidos nucleicos escalables, sensibles al tiempo y energéticamente e�cientes, capaces de implementar diversas operaciones de computación lógica aprovechando el fenómeno de la hibridación competitiva del ADN. La capacidad implícita de estos dispositivos para aplicar reglas de inferencia como modus ponens, modus tollens, resolución o el silogismo hipotético tiene un gran potencial. Entre otras funciones, permiten representar implicaciones lógicas (o reglas del tipo SI/ENTONCES), como por ejemplo, �si se da el síntoma 1 y el síntoma 2, entonces estamos ante la enfermedad A�, o �si estamos ante la enfermedad B, entonces deben manifestarse los síntomas 2 y 3�. Utilizando estos módulos lógicos como bloques básicos de construcción, se pretende desarrollar sistemas in vitro basados en sensores de ADN, capaces de trabajar de manera conjunta para detectar un conjunto de síntomas de entrada y producir un diagnóstico de salida. La reciente publicación en la revista Science de un autómata biomolecular de diagnóstico, capaz de tratar las células cancerígenas sin afectar a las células sanas, es un buen ejemplo de la relevancia cientí�ca que este tipo de autómatas tienen en la actualidad. Además de las recién mencionadas aplicaciones en el diagnóstico in vitro, los modelos presentados también tienen utilidad en el diseño de biosensores inteligentes y la construcción de bases de datos con registros en formato biomolecular que faciliten el análisis genómico. El estudio sobre el estado de la cuestión en computación biomolecular que se presenta en esta tesis está basado en un artículo recientemente publicado en la revista Current Bioinformatics. Los nuevos dispositivos presentados en la tesis forman parte de una solicitud de patente de la que la UPM es titular, y han sido presentados en congresos internacionales como Unconventional Computation 2010 en Tokio o Synthetic Biology 2010 en París.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Se utiliza la lógica borrosa como herramienta para el desarrollo sostenible

Relevância:

20.00% 20.00%

Publicador:

Resumo:

En este se estudia diseños y e implementaciones de paradigmas visuales para observar la ejecución de programas lógicos con restricciones, enfocados hacia la depuración, optimización y enseñanza. Nos centraremos en la representación de datos en ejecuciones CLP, donde perseguimos la representación de variables con restricciones y de las restricciones en sí mismas. Se han implementado dos herramientas, VIFID y TRIFID, que utilizan dichas representaciones y que se usan para mostrar la utilidad de las visualizaciones desarrolladas.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Dentro de los paradigmas de programación en el mundo de la informática tenemos la "Programación Lógica'', cuyo principal exponente es el lenguaje Prolog. Los programas Prolog se componen de un conjunto de predicados, cada uno de ellos definido en base a reglas que aportan un elevado nivel de abstracción y declaratividad al programador. Sin embargo, las formulación con reglas implica, frecuentemente, que un predicado se recompute varias veces para la misma consulta y además, Prolog utiliza un orden fijo para evaluar reglas y objetivos (evaluación SLD) que puede entrar en "bucles infinitos'' cuando ejecuta reglas recursivas declarativamente correctas. Estas limitaciones son atacadas de raiz por la tabulación, que se basa en "recordar'' en una tabla las llamadas realizadas y sus soluciones. Así, en caso de repetir una llamada tendríamos ya disponibles sus soluciones y evitamos la recomputación. También evita "bucles infinitos'' ya que las llamadas que los generan son suspendidas, quedando a la espera de que se computen soluciones para las mismas. La implementación de la tabulación no es sencilla. En particular, necesita de tres operaciones que no pueden ser ejecutadas en tiempo constante simultáneamente. Dichas operaciones son: suspensión de llamadas, relanzamiento de llamadas y {acceso a variables. La primera parte de la tesis compara tres implementaciones de tabulación sobre Ciao, cada una de las cuales penaliza una de estas operaciones. Por tanto, cada solución tiene sus ventajas y sus inconvenientes y se comportan mejor o peor dependiendo del programa ejecutado. La segunda parte de la tesis mejora la funcionalidad de la tabulación para combinarla con restricciones y también para evitar computaciones innecesarias. La programación con restricciones permite la resolución de ecuaciones como medio de programar, mecanismo altamente declarativo. Hemos desarrollado un framework para combinar la tabulación con las restricciones, priorizando objetivos como la flexibilidad, la eficiencia y la generalidad de nuestra solución, obteniendo una sinergia entre ambas técnicas que puede ser aplicada en numerosas aplicaciones. Por otra parte, un aspecto fundamental de la tabulación hace referencia al momento en que se retornan las soluciones de una llamada tabulada. Local evaluation devuelve soluciones cuando todas las soluciones de la llamada tabulada han sido computadas. Por contra, batched evaluation devuelve las soluciones una a una conforme van siendo computadas, por lo que se adapta mejor a problemas donde no nos interesa encontrar todas las soluciones. Sin embargo, su consumo de memoria es exponencialmente peor que el de local evaluation. La tesis presenta swapping evaluation, que devuelve soluciones tan pronto como son computadas pero con un consumo de memoria similar a la de local evaluation. Además, se implementan operadores de poda, once/1, para descartar la búsqueda de soluciones alternativas cuando encontramos la solución deseada. Por último, Prolog adopta con relativa facilidad soluciones para paralelismo gracias a su flexibilidad en el control de la ejecución y a que sus asignaciones son lógicas. La tercera parte de la tesis extiende el paralelismo conjuntivo de Ciao para trabajar con programas no deterministas, lo que presenta dos problemas principales: los objetivos atrapados y la recomputación de objetivos. Las soluciones clásicas para los objetivos atrapados rompían muchos invariantes de la ejecución Prolog, siendo soluciones difíciles de mantener y de extender, que la experiencia nos dice que han caído en desuso. Nosotros proponemos una solución modular (basada en la implementación de swapping evaluation), localizada y que no rompe los invariantes de la ejecución Prolog, pero que mantiene un alto rendimiento de la ejecución paralela. En referencia a la recomputación de objetivos paralelos en presencia de no determinismo hemos adaptado ténicas derivadas de la tabulación para memorizar computaciones de estos objetivos y evitar su recomputación.