20 research outputs found

    TOY: A System for Experimenting with Cooperation of Constraint Domains

    Get PDF
    AbstractThis paper presents, from a user point-of-view, the mechanism of cooperation between constraint domains that is currently part of the system TOY, an implementation of a constraint functional logic programming scheme. This implementation follows a cooperative goal solving calculus based on lazy narrowing. It manages the invocation of solvers for each domain, and projection operations for converting constraints into mate domains via mediatorial constraints. We implemented the cooperation among Herbrand, real arithmetic (R), finite domain (FD) and set (S) domains. We provide two mediatorial constraints: The first one relates the numeric domains FD and R, and the second one relates FD and S

    Constraint Functional Logic Programming over Finite Domains.

    Get PDF
    Abstract In this paper, we present our proposal to Constraint Functional Logic Programming over Finite Domains (CFLP (FD) ) with a lazy functional logic programming language which seamlessly embodies finite domain (FD) constraints. This proposal increases the expressiveness and power of constraint logic programming over finite domains (CLP (FD) ) by combining functional and relational notation, curried expressions, higher-order functions, patterns, partial applications, non-determinism, lazy evaluation, logical variables, types, domain variables, constraint composition, and finite domain constraints. We describe the syntax of the language, its type discipline, and its declarative and operational semantics. We also describe TOY(FD), an implementation for CFLP (FD) , and a comparison of our approach with respect to CLP (FD) from a programming point of view, showing the new features we introduce. And, finally, we show a performance analysis which demonstrates that our implementation is competitive with respect to existing CLP (FD) systems and that clearly outperforms the closer approach to CFLP (FD)

    Mejora del aprendizaje de SQL con realimentaci贸n sem谩ntica

    Get PDF
    Depto. de Ingenier铆a de Software e Inteligencia Artificial (ISIA)Fac. de Inform谩ticaFALSEsubmitte

    Un esquema de programaci贸n l贸gico-funcional con restricciones: marco te贸rico y aplicaci贸n a la depuraci贸n declarativa

    Get PDF
    En este trabajo consideramos dos tipos de errores susceptibles de ser tratados mediante nuestro m茅todo de depuraci贸n declarativa. En primer lugar, se consideran aquellas respuestas que han sido obtenidas de manera inesperada para un objetivo determinado (respuestas incorrectas). Para este primer caso, proponemos un c谩lculo de prueba positivo desarrollado a partir de CRWL(D), mediante el que es posible definir los 谩rboles de c贸mputo como 谩rboles de derivaci贸n l贸gica. En segundo lugar, se considera como un posible error aquel en el que en el conjunto de todas las respuestas obtenidas para un mismo objetivo falte alguna respuesta esperada (respuestas perdidas). En este segundo caso, proponemos otro c谩lculo denominado c谩lculo de prueba negativo, en el cual las derivaciones l贸gicas formalizan la recolecci贸n de respuestas computadas y sirven para definir 谩rboles de c贸mputo aplicables a la diagnosis de respuestas perdidas. Demostramos la correcci贸n l贸gica de los m茅todos de diagnosis propuestos, tanto para respuestas incorrectas como para respuestas perdidas, en relaci贸n a los sistemas de resoluci贸n de objetivos presentados. Finalmente, proponemos la implementaci贸n en el sistema TOY de dos posibles herramientas basadas en los m茅todos de depuraci贸n descritos

    A generic, collaborative framework for internal constraint solving

    Get PDF
    Esta tesis propone un esquema gen茅rico y cooperativo para CLP(Interval(X)) donde X es cualquier dominio de computaci贸n con estructura de ret铆culo. El esquema, que est谩 basado en la teor铆a de ret铆culos, es un enfoque general para la satisfacci贸n y op-timizaci贸n de restricciones de intervalo as铆 como para la cooperaci贸n de resolutores de intervalo definidos sobre dominios de computaci贸n con estructura de ret铆culos, independientemente de la cardinalidad de estos. Nuestra propuesta asegura un enfoque transparente sobre el cual las restricciones, los dominios de computaci贸n y los mecanismos de propagaci贸n y cooperaci贸n, definidos entre las variables restringidas, pueden ser f谩cilmente especificados a nivel del usuario. La parte principal de la tesis presenta una especificaci贸n formal de este esquema.Los principales resultados conseguidos en esta tesis son los siguientes:Una comparativa global de la eficiencia y algunos aspectos de la expresividad de ocho sistemas de restricciones. Esta comparativa, realizada sobre el dominio finito y el dominio Booleano, muestra diferencias principales entre los sistemas de restricciones existentes.Para formalizar el marco de satisfacci贸n de restricciones para CLP(Interval(X))hemos descrito el proceso global de resoluci贸n de restricciones de intervalo sobre cualquier ret铆culo, separando claramente los procesos de propagaci贸n y divisi贸n (ramificaci贸n) de intervalos. Una de las ventajas de nuestra propuesta es que la mon贸tona de las restricciones esta impl铆citamente definida en la teor铆a. Adem谩s, declaramos un conjunto de propiedades interesantes que, bajo ciertas condiciones, son satisfechas por cualquier instancia del esquema gen茅rico. Mas a煤n, mostramos que muchos sistemas de restricciones actualmente existentes satisfacen estas condiciones y, adem谩s, proporcionamos indicaciones sobre como extender el sistema mediante la especificaci贸n de otras instancias interesantes y novedosas. Nuestro esquema para CLP(Interval(X)) permite la cooperaci贸n de resolutores de manera que la informaci贸n puede 鈦皍ir entre diferentes dominios de computaci贸n.Adem谩s, es posible combinar distintas instancias del esquema: por ejemplo, instancias bien conocidas tales como CLP(Interval(<)), CLP(Interval(Integer)),CLP(Interval(Set)), CLP(Interval(Bool)), y otras novedosas que son el resultado de la generaci贸n de nuevos dominios de computaci贸n definidos por el usuario, o incluso que surgen de la combinaci贸n de dominios ya existentes como puede ser CLP(Interval(X1 拢 : : : 拢 Xn)). Por lo tanto, X puede ser instanciado a cualquier conjunto de dominios de computaci贸n con estructura de ret铆culo de forma que su correspondiente instancia CLP(Interval(X)) permite una amplia flexibilidad en la definici贸n de dominios en X (probablemente definidos por el usuario) y en la interaccion entre estos dominios.Mediante la implementacion de un prototipo, demostramos que un unico sistema,que este basado en nuestro esquema para CLP(Interval(X)), puede proporcionarsoporte para la satisfaccion y la optimizacion de restricciones as como para la cooperacion de resolutores sobre un conjunto conteniendo multiples dominios decomputacion. Ademas, el sistema sigue un novedoso enfoque transparente sujeto a una doble perspectiva ya que el usuario puede definir no solo nuevas restricciones y su mecanismo de propagacion, sino tambien nuevos dominios sobre los cuales nuevas restricciones pueden ser resueltas as como el mecanismo de cooperacion entre todos los dominios de computaci贸n (ya sean definidos por el usuario o predefinidos por el sistema).En nuestra opini贸n, esta tesis apunta nuevas y potenciales direcciones de investigaci贸n dentro de la comunidad de las restricciones de intervalo.Para alcanzar los resultados expuestos, hemos seguido los siguientes pasos (1) la elecci贸n de un enfoque adecuado sobre el cual construir los fundamentos te贸ricos de nuestro esquema gen茅rico; (2) la construcci贸n de un marco te贸rico gen茅rico (que llamaremos el marco b谩sico) para la propagaci贸n de restricciones de intervalo sobre cualquier ret铆culo; (3) la integraci贸n, en el marco b谩sico, de una t茅cnica novedosa que facilita la cooperaci贸n de resolutores y que surge de la definici贸n, sobre m煤ltiples dominios, de operadores de restricciones y (4) la extensi贸n del marco resultante para la resoluci贸n y optimizaci贸n completa de las restricciones de intervalo.Finalmente presentamos clp(L), un lenguaje de programaci贸n l贸gica de restricciones de intervalo que posibilita la resoluci贸n de restricciones sobre cualquier conjunto de ret铆culos y que esta implementado a partir de las ideas formalizadas en el marco te贸rico. Describimos una primera implementaci贸n de este lenguaje y desarrollamos algunos ejemplos de como usarla. Este prototipo demuestra que nuestro esquema para CLP(Interval(X)) puede ser implementado en un sistema 煤nico que, como consecuencia, proporciona, bajo un enfoque transparente sobre dominios y restricciones, cooperaci贸n de resolutores as铆 como satisfacci贸n y optimizaci贸n completa de restricciones sobre diferentes dominios de computaci贸n
    corecore