Publication:
Integración de ILOG CP en TOY

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2009
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
La programación con restricciones (del inglés Constraint Programming: CP) es una rama que lleva años estudiando problemas con una fuerte componente combinatoria. El esquema CP está basado en el planteamiento de restricciones, que pueden ser vistas como relaciones entre el dominio de ciertas variables. Cualquier esquema CP debe ser instanciado a un dominio D concreto, CP(D). Este dominio proporciona tipos de datos, un lenguaje de restricciones basadas en operaciones primitivas y un resolutor de restricciones. Los lenguajes declarativos son más apropiados para formular problemas CP que los lenguajes imperativos por su mayor nivel de abstracción. Los lenguajes funcionales y lógicos son los dos paradigmas declarativos más importantes, y su combinación ha sido un tema de investigación en las dos últimas décadas. En este trabajo se estudia el sistema lógico-funcional con restricciones (del inglés Constraint Functional Logic Programming: CFLP(D)) TOY, que incluye los dominios de restricciones FD (del inglés Finite Domains: FD), R (del inglés Reals: R), H (del inglés Herbrand: H) y un dominio M (del inglés Mediator: M). Actualmente el sistema TOY(FD) (al que denominamos en este trabajo TOY(FDs)) utiliza el sistema de restricciones FD externo ofrecido por SICStus Prolog en su biblioteca clpfd. En este trabajo se intercambia clpfd por ILOG CP 1.4 como nuevo sistema de restricciones FD externo del sistema T OY, dando lugar al nuevo sistema TOY(FDi). El primer capítulo es introductorio y estudia el sistema de restricciones TOY(FD) desde un punto de vista genérico. Se detalla la tecnología clpfd utilizada y se enumeran los inconvenientes de su utilización. A continuación se presenta la tecnología ILOG CP 1.4, incidiendo en las ventajas que ofrece y estudiando en detalle la arquitectura básica de sus aplicaciones. En el segundo capítulo se detalla la nueva arquitectura de componentes del sistema TOY que permite integrar la tecnología ILOG CP como sistema de restricciones FD externo. Se estudia el marco de comunicación entre SICStus y C++. Se detalla cómo adaptar este marco al sistema TOY y a ILOG CP. Se desarrolla una primera versión básica del sistema TOY(FDi) que permite modelar y resolver con ILOG CP un pequeño repertorio de restricciones FD soportadas por el lenguaje TOY. En el tercer capítulo se amplía esta versión del sistema TOY(FDi), dotándolo de una mayor funcionalidad mediante backtracking, procedimientos de búsqueda, sincronización de las restricciones de igualdad y desigualdad gestionadas en el dominio de restricciones H y definiendo un nuevo propagador que permita sincronizar información desde ILOG a TOY. El capítulo 4 muestra el rendimiento del sistema TOY(FDi) sobre algunos ejemplos, comparando este rendimiento con el del sistema TOY(FDs) y el de la tecnología ILOG CP actuando en solitario. El capítulo 5 presenta las conclusiones obtenidas al desarrollar el trabajo y el trabajo futuro que este desencadena. Los resultados de este trabajo han sido aceptados para su presentación en el 18th International Workshop on Functional (Constraint) Logic Programming (WFLP'09), celebrado en Brasilia el 28 de Junio. El mismo artículo ha sido invitado para una segunda revisión que le permita aparecer en el volumen de Lecture Notes in Computer Science asociado al congreso. Asimismo, los resultados de este trabajo han sido aceptados para su presentación en las 9as Jornadas sobre Programación y Lenguajes (PROLE'09), celebrado en San Sebastian del 9 al 11 de Septiembre. [ABSTRACT] Combinatorial problems have been studied in the Constraint Programming area since many years. The CP scheme is based on posing constraints, which are basically relations among domain variables. Any CP scheme must be instantiated by a parametrically given constraint domain D. This domain provides specific data values, a constraint language based on primitive operations and a constraint solver. Due to its higher level of abstraction, declarative languages seem to be more suitable to formulate CP problems than imperatives languages. Functional languages and logic languages are the most paradigmatic declarative languages, and its Combination has been studied in the last two decades. In this work, we study the Constraint Functional Logic Programming system CFLP(D) TOY, which includes the Constraint domains FD, R, H and M. Currently, the system T OY(FD) (which we denote here as TOY(FDs)) uses the external FD constraint system offered by SICStus Prolog via its library clpfd. In this work, we replace clpfd by ILOG CP 1.4 as a new external FD constraint system for TOY, given rise to the new system TOY(FDi). Int chapter 1 we introduce our work and study the system TOY(FD) from a generic point of view. Also, we detail the clpfd technology used, enumerating the disadvantages that TOY suffer by using it. Next, we present the ILOG CP 1.4 technology, enumerating the advantages it offers, and studying in detail the basic architecture of its applications. In chapter 2 we show the new component architecture of the system TOY, which uses ILOG CP as a new external FD constraint system. We study the communication framework that SICStus offers to communicate SICStus and C++. We detail how to adapt this framework to our particular context between TOY and ILOG CP. We develop a very basic first release of the system TOY(FDi), which gives support to model and solve a little set of FD constraints of the language TOY. In chapter 3 we enhance the first release of TOY(FDi). We develop a second release of TOY(FDi) which includes, backtracking, labeling, a synchronization of the equality and disequality constraints managed in the constraint system H and a new propagator which allows to synchronize information from ILOG to TOY. In chapter 4 we show the TOY(FDi) performance for some examples. We compare the TOY(FDi) performance to TOY(FDs) and ILOG CP. In chapter 5 we present some conclusions and future work. The results of this work have been accepted for its presentation in the 18th International Workshop on Functional (Constraint) Logic Programming (WFLP'09), held in Brasilia on June 28th. This article has been invited for a second review to appear in the Lecture Notes in Computer Science publication associated to the conference. Also, the results of this work have been accepted for its resentation in the 9as Jornadas sobre Programación y Lenguajes (PROLE'09), held in San Sebastian on September 9th-11th.
Description
Máster en Investigación en Informática, Facultad de Informática, Departamento de Sistemas Informáticos y Computación, curso 2008-2009
Keywords
Citation