Results 1  10
of
71
Constraint Logic Programming: A Survey
"... Constraint Logic Programming (CLP) is a merger of two declarative paradigms: constraint solving and logic programming. Although a relatively new field, CLP has progressed in several quite different directions. In particular, the early fundamental concepts have been adapted to better serve in differe ..."
Abstract

Cited by 847 (24 self)
 Add to MetaCart
Constraint Logic Programming (CLP) is a merger of two declarative paradigms: constraint solving and logic programming. Although a relatively new field, CLP has progressed in several quite different directions. In particular, the early fundamental concepts have been adapted to better serve in different areas of applications. In this survey of CLP, a primary goal is to give a systematic description of the major trends in terms of common fundamental concepts. The three main parts cover the theory, implementation issues, and programming for applications.
An OpenEnded Finite Domain Constraint Solver
, 1997
"... We describe the design and implementation of a finite domain constraint solver embedded in a Prolog system using an extended unification mechanism via attributed variables as a generic constraint interface. The solver is essentially a scheduler for indexicals, i.e. reactive functional rules encodin ..."
Abstract

Cited by 186 (8 self)
 Add to MetaCart
We describe the design and implementation of a finite domain constraint solver embedded in a Prolog system using an extended unification mechanism via attributed variables as a generic constraint interface. The solver is essentially a scheduler for indexicals, i.e. reactive functional rules encoding local consistency methods performing incremental constraint solving or entailment checking, and global constraints, i.e. general propagators which may use specialized algorithms to achieve a higher degree of consistency or better time and space complexity. The solver has an openended design: the user can introduce new constraints, either in terms of indexicals by writing rules in a functional notation, or as global constraints via a Prolog programming interface. Constraints defined in terms of indexicals can be linked to 0/1variables modeling entailment; thus indexicals are used for constraint solving as well as for entailment testing. Constraints can be arbitrarily combined using the ...
Oz Explorer: A Visual Constraint Programming Tool
, 1997
"... This paper describes the Oz Explorer and its implementation. The Explorer is a visual constraint programming tool intended to support the development of constraint programs. It uses the search tree of a constraint problem as its central metaphor. Exploration and visualization of the search tree ar ..."
Abstract

Cited by 54 (1 self)
 Add to MetaCart
(Show Context)
This paper describes the Oz Explorer and its implementation. The Explorer is a visual constraint programming tool intended to support the development of constraint programs. It uses the search tree of a constraint problem as its central metaphor. Exploration and visualization of the search tree are userdriven and interactive. The constraints of any node in the tree are available firstclass: predefined or userdefined procedures can be used to display or analyze them. The Explorer is a fast and memory efficient tool intended for the development of realworld constraint programs. The Explorer is implemented in Oz using firstclass computation spaces. There is no fixed search strategy in Oz. Instead, firstclass computation spaces allow to program search engines. The Explorer is one particular example of a userguided search engine. The use of recomputation to trade space for time makes it possible to solve large realworld problems, which would use too much memory otherwise.
19831993: The Wonder Years of Sequential Prolog Implementation
, 1993
"... This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part ..."
Abstract

Cited by 50 (4 self)
 Add to MetaCart
(Show Context)
This report surveys the major developments in sequential Prolog implementation during the period 19831993. In this decade, implementation technology has matured to such a degree that Prolog has left the university and become useful in industry. The survey is divided into four parts. The first part gives an overview of the important technical developments starting with the Warren Abstract Machine (WAM). The second part presents the history and the contributions of the major software and hardware systems. The third part charts the evolution of Prolog performance since Warren's DEC10 compiler. The fourth part extrapolates current trends regarding the evolution of sequential logic languages, their implementation, and their role in the marketplace.
Beyond the Glass Box: Constraints as Objects
, 1995
"... Constraint Logic Programming (CLP) is a very active research area. One reason being that finite domain CLP systems have been successfully applied to various combinatorial optimization problems such as time tabling, scheduling, frequency allocation, manpower planning, production planning. State of th ..."
Abstract

Cited by 50 (2 self)
 Add to MetaCart
(Show Context)
Constraint Logic Programming (CLP) is a very active research area. One reason being that finite domain CLP systems have been successfully applied to various combinatorial optimization problems such as time tabling, scheduling, frequency allocation, manpower planning, production planning. State of the art finite domain CLP languages offer programming constructs that gives access to the state of the constraint solver. With these constructs, new constraints can be defined in the CLP language directly, hence the name "glassbox". However, current glass box approaches do not give access to the constraints themselves. This prevents the use of sophisticated constraint solving techniques borrowed from Operations Research. In order to overcome this limitation, we propose to give acces to the constraints as first class citizen of the CLP language. We implemented this approach into an object oriented language, where constraints are explicitly represented by objects. We provide both theoretical and experimental evidence of the interest of our approach. In particular, we show that some of our extensions provide speedups of more than one order of magnitude over current glass box constraint solvers.
An Overview of HAL
, 1999
"... Experience using constraint programming to solve reallife problems has shown that finding an efficient solution to the problem often requires experimentation with different constraint solvers or even building a problemspecific constraint solver. HAL is a new constraint logic programming language e ..."
Abstract

Cited by 46 (25 self)
 Add to MetaCart
Experience using constraint programming to solve reallife problems has shown that finding an efficient solution to the problem often requires experimentation with different constraint solvers or even building a problemspecific constraint solver. HAL is a new constraint logic programming language expressly designed to facilitate this process. It provides a welldefined solver interface, mutable global variables for implementing a constraint store, and dynamic scheduling which support combining, extending and writing new constraint solvers. Equally importantly, HAL supports semioptional type, mode and determinacy declarations. These allow natural constraint specification by means of type overloading, better compiletime error checking and generation of more efficient runtime code.
An Exact Constraint Logic Programming Algorithm for the Traveling Salesman Problem with Time Windows
 Transportation Science
, 1996
"... This paper presents a constraint logic programming model for the traveling salesman problem with time windows which yields an exact branchand bound optimization algorithm without any restrictive assumption on the time windows. Unlike dynamic programming approaches whose performance relies heavily o ..."
Abstract

Cited by 45 (5 self)
 Add to MetaCart
(Show Context)
This paper presents a constraint logic programming model for the traveling salesman problem with time windows which yields an exact branchand bound optimization algorithm without any restrictive assumption on the time windows. Unlike dynamic programming approaches whose performance relies heavily on the degree of discretization applied to the data, our algorithm does not suffer from such spacecomplexity issues. The datadriven mechanism at its core more fully exploits pruning rules developed in operations research by using them not only a priori but also dynamically during the search. Computational results are reported and comparisons are made with both exact and heuristic algorithms. On Solomon's wellknown test bed, our algorithm is instrumental in achieving new best solutions for some of the problems in set RC2 and strengthens the presumption of optimality for the best known solutions to the problems in set C2. Introduction In the last few years, constraint programming (cp) has b...
wamcc: Compiling Prolog to C
 IN 12TH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING
, 1995
"... We present the wamcc system, a Prolog compiler that translates Prolog to C via the WAM. This approach has some interesting consequences: simplicity, efficiency, portability, extensibility and modularity. Indeed the system does not incorporate complex optimizations but is as efficient as Quintus Prol ..."
Abstract

Cited by 39 (6 self)
 Add to MetaCart
(Show Context)
We present the wamcc system, a Prolog compiler that translates Prolog to C via the WAM. This approach has some interesting consequences: simplicity, efficiency, portability, extensibility and modularity. Indeed the system does not incorporate complex optimizations but is as efficient as Quintus Prolog 2.5 (based on an emulator written in assembly language) and only 30 % slower than Sicstus Prolog (compiling to native code). It is instantly portable to any machine with a C compiler and easily expandable with various extensions, such as constraints, as shown by the clp(FD) system which is based on wamcc. It also incorporates a simple but efficient handling of modularity thanks to the use of C modularity.
A Prolog Constraint Handling Rules Compiler and Runtime System, Special Issue of the
 Journal of Applied Arti Intelligence on Constraint Handling Rules (C. Holzbaur
"... We introduce the most recent and advanced implementation of constraint handling rules (CHR) in a logic programming language. The Prolog implementation consists of a runtime system and a compiler. The runtime system utilizes attributed variables for the realization of the constraint store with eÆcie ..."
Abstract

Cited by 33 (3 self)
 Add to MetaCart
(Show Context)
We introduce the most recent and advanced implementation of constraint handling rules (CHR) in a logic programming language. The Prolog implementation consists of a runtime system and a compiler. The runtime system utilizes attributed variables for the realization of the constraint store with eÆcient retrieval and update mechanisms. Rules describing the interactions between constraints are compiled into Prolog clauses by a compiler, the core of which comprises a small number of compact code generating templates in the form of denite clause grammar rules. 1