Results 1  10
of
85
A Generic ArcConsistency Algorithm and its Specializations
 Artificial Intelligence
, 1992
"... Consistency techniques have been studied extensively in the past as a way of tackling constraint satisfaction problems (CSP). In particular, various arcconsistency algorithms have been proposed, originating from Waltz's filtering algorithm [26] and culminating in the optimal algorithm AC4 of ..."
Abstract

Cited by 213 (8 self)
 Add to MetaCart
(Show Context)
Consistency techniques have been studied extensively in the past as a way of tackling constraint satisfaction problems (CSP). In particular, various arcconsistency algorithms have been proposed, originating from Waltz's filtering algorithm [26] and culminating in the optimal algorithm AC4 of Mohr and Henderson [15]. AC4 runs in O(ed 2 ) in the worst case, where e is the number of arcs (or constraints) and d is the size of the largest domain. Being applicable to the whole class of (binary) CSP, these algorithms do not take into account the semantics of constraints. In this paper, we present a new generic arcconsistency algorithm AC5. This algorithm is parametrized on two specified procedures and can be instantiated to reduce to AC3 and AC4. More important, AC5 can be instantiated to produce an O(ed) algorithm for a number of important classes of constraints: functional, antifunctional, monotonic and their generalization to (functional, antifunctional, and monotonic) piecewise constraints. We also show that AC5 has an important application in constraint logic programming over finite domains [23]. The kernel of the constraint solver for such a programming language is an arcconsistency algorithm for a set of basic constraints. We prove that AC5, in conjunction with node consistency, provides a decision procedure for these constraints running in time O(ed).
DESIGN, IMPLEMENTATION, AND EVALUATION OF THE CONSTRAINT LANGUAGE cc(FD)
 J. LOGIC PROGRAMMING 1994:19, 20:1679
, 1994
"... This paper describes the design, implementation, and applications of the constraint logic language cc(FD). cc(FD) is a declarative nondeterministic constraint logic language over finite domains based on the cc framework [33], an extension of the CLP scheme [21]. Its constraint solver includes (nonl ..."
Abstract

Cited by 188 (11 self)
 Add to MetaCart
This paper describes the design, implementation, and applications of the constraint logic language cc(FD). cc(FD) is a declarative nondeterministic constraint logic language over finite domains based on the cc framework [33], an extension of the CLP scheme [21]. Its constraint solver includes (nonlinear) arithmetic constraints over natural numbers which are approximated using domain and interval consistency. The main novelty of cc(FD) is the inclusion of a number of generalpurpose combinators, in particular cardinality, constructive disjunction, and blocking implication, in conjunction with new constraint operations such as constraint entailment and generalization. These combinators significantly improve the operational expressiveness, extensibility, and flexibility of CLP languages and allow issues such as the definition of nonprimitive constraints and disjunctions to be tackled at the language level. The implementation of cc(FD) (about 40,000 lines of C) includes a WAMbased engine [44], optimal arcconsistency algorithms based on AC5 [40], and incremental implementation of the combinators. Results on numerous problems, including scheduling, resource allocation, sequencing, packing, and hamiltonian paths are reported and indicate that cc(FD) comes close to procedural languages on a number of combinatorial problems. In addition, a small cc(FD) program was able to find the optimal solution and prove optimality to a famous 10/10 disjunctive scheduling problem [29], which was left open for more than 20 years and finally solved in 1986.
Constraint Hierarchies
 LISP AND SYMBOLIC COMPUTATION
, 1992
"... Constraints allow programmers and users to state declaratively a relation that should be maintained, rather than requiring them to write procedures to maintain the relation themselves. They are thus useful in such applications as programming languages, user interface toolkits, and simulation package ..."
Abstract

Cited by 164 (15 self)
 Add to MetaCart
Constraints allow programmers and users to state declaratively a relation that should be maintained, rather than requiring them to write procedures to maintain the relation themselves. They are thus useful in such applications as programming languages, user interface toolkits, and simulation packages. In many situations, it is desirable to be able to state both required and preferential constraints. The required constraints must hold. Since the other constraints are merely preferences, the system should try to satisfy them if possible, but no error condition arises if it cannot. A constraint hierarchy consists of a set of constraints, each labeled as either required or preferred at some strength. An arbitrary number of different strengths is allowed. In the discussion of a theory of constraint hierarchies, we present alternate ways of selecting among competing possible solutions, and prove a number of propositions about the relations among these alternatives. We then outline algorit...
Multiway versus Oneway Constraints in User Interfaces: Experience with the DeltaBlue Algorithm
, 1993
"... this paper we argue that many user interface construction problems are handled more naturally and elegantly by multiway constraints than by oneway constraints. We present pseudocode for an incremental multiway constraint satisfaction algorithm, DeltaBlue, and describe experience in using the algo ..."
Abstract

Cited by 96 (18 self)
 Add to MetaCart
this paper we argue that many user interface construction problems are handled more naturally and elegantly by multiway constraints than by oneway constraints. We present pseudocode for an incremental multiway constraint satisfaction algorithm, DeltaBlue, and describe experience in using the algorithm in two user interface toolkits. Finally, we provide performance figures demonstrating that multiway constraint solvers can be entirely competitive in performance with oneway constraint solvers
Constraint satisfaction using constraint logic programming
 Artificial Intelligence
, 1992
"... Constraint logic programming (CLP) is a new class of declarative programming languages whose primitive operations are based on constraints (e.g. constraint solving and constraint entailment). CLP languages naturally combine constraint propagation with nondeterministic choices. As a consequence, the ..."
Abstract

Cited by 79 (3 self)
 Add to MetaCart
Constraint logic programming (CLP) is a new class of declarative programming languages whose primitive operations are based on constraints (e.g. constraint solving and constraint entailment). CLP languages naturally combine constraint propagation with nondeterministic choices. As a consequence, they are particularly appropriate for solving a variety of combinatorial search problems, using the global search paradigm, with short development time and efficiency comparable to procedural tools based on the same approach. In this paper, we describe how the CLP language cc(FD), a successor of CHIP using consistency techniques over finite domains, can be used to solve two practical applications: testpattern generation and car sequencing. For both applications, we present the cc(FD) program, describe how constraint solving is performed, report experimental results, and compare the approach with existing tools.
Constraint Arithmetic on Real Intervals
, 1993
"... Constraint interval arithmetic is a sublanguage of BNR Prolog which offers a new approach to the old problem of deriving numerical consequences from algebraic models. Since it is simultaneously a numerical computation technique and a proof technique, it bypasses the traditional dichotomy between (nu ..."
Abstract

Cited by 72 (3 self)
 Add to MetaCart
Constraint interval arithmetic is a sublanguage of BNR Prolog which offers a new approach to the old problem of deriving numerical consequences from algebraic models. Since it is simultaneously a numerical computation technique and a proof technique, it bypasses the traditional dichotomy between (numeric) calculation and (symbolic) proofs. This interplay between proof and calculation can be used effectively to handle practical problems which neither can handle alone. The underlying semantic model is based on the properties of monotone contraction operators on a lattice, an algebraic setting in which fixed point semantics take an especially elegant form.
Hierarchical Constraint Logic Programming
, 1993
"... A constraint describes a relation to be maintained ..."
Abstract

Cited by 71 (3 self)
 Add to MetaCart
(Show Context)
A constraint describes a relation to be maintained
Constraint Hierarchies and Logic Programming
, 1989
"... Constraint Logic Programming (CLP) is a general scheme for extending logic programming to include constraints. It is parameterized by D, the domain of the constraints. However, CLP(D) languages, as well as most other constraint systems, only allow the programmer to specify constraints that must hold ..."
Abstract

Cited by 67 (5 self)
 Add to MetaCart
(Show Context)
Constraint Logic Programming (CLP) is a general scheme for extending logic programming to include constraints. It is parameterized by D, the domain of the constraints. However, CLP(D) languages, as well as most other constraint systems, only allow the programmer to specify constraints that must hold. In many applications, such as interactive graphics, page layout, and decision support, one needs to express preferences as well as strict requirements. If we wish to make full use of the constraint paradigm, we need ways to represent these defaults and preferences declaratively, as constraints, rather than encoding them in the procedural parts of the language. We describe a scheme for extending CLP(D) to include both required and preferential constraints, with an arbitrary number of strengths of preference. We present some of the theory of such languages, and an algorithm for executing them. To test our ideas, we have implemented an interpreter for an instance of this language scheme with D equal to the reals. We describe our interpreter, and outline some examples of using this language.
Extending Prolog with Constraint Arithmetic on Real Intervals
, 1990
"... Prolog can be extended by a system of constraints on closed intervals to perform declarative relational arithmetic. Imposing constraints on an interval can narrow its range and propagate the narrowing to other intervals related to it by constraint equations or inequalities. Relational interval ar ..."
Abstract

Cited by 56 (7 self)
 Add to MetaCart
Prolog can be extended by a system of constraints on closed intervals to perform declarative relational arithmetic. Imposing constraints on an interval can narrow its range and propagate the narrowing to other intervals related to it by constraint equations or inequalities. Relational interval arithmetic can be used to contain floating point errors and, when combined with Prolog backtracking, to obtain numeric solutions to linear and nonlinear rational constraint satisfaction problems over the reals (e.g. ndegree polynomial equations). This technique differs from other constraint logic programming (CLP) systems like CLP(R) or PrologIII in that it does not do any symbolic processing.
Metastructures vs. Attributed Variables in the Context of Extensible Unification  Applied for the Implementation of CLP Languages
 In 1992 International Symposium on Programming Language Implementation and Logic Programming
, 1992
"... We relate two mechanisms which aim at the extension of logic programming languages. The first mechanism directly extends syntactic unification through the introduction of a data type, whose (unification) semantics are specified through userdefined predicates. The second mechanism was utilized for th ..."
Abstract

Cited by 55 (2 self)
 Add to MetaCart
We relate two mechanisms which aim at the extension of logic programming languages. The first mechanism directly extends syntactic unification through the introduction of a data type, whose (unification) semantics are specified through userdefined predicates. The second mechanism was utilized for the implementation of coroutining facilities, and was independently derived with optimal memory management for various Prolog extensions in mind. Experience from the application of both mechanisms to the realization of CLP languages, without leaving the logic programming context, enables us to reveal similarities and the potential with respect to this task. Constructive measures that narrow or close the gap between the two conceptual schemes are provided. 1 Introduction As a serious user of two rather similar mechanisms  as far as their applications are concerned  we think that it is useful to expose this similarity in some detail. Both mechanisms provide means for the extension of logi...