Results 1  10
of
266
Concurrent Constraint Programming
, 1993
"... This paper presents a new and very rich class of (concurrent) programming languages, based on the notion of comput.ing with parhal information, and the concommitant notions of consistency and entailment. ’ In this framework, computation emerges from the interaction of concurrently executing agent ..."
Abstract

Cited by 456 (15 self)
 Add to MetaCart
This paper presents a new and very rich class of (concurrent) programming languages, based on the notion of comput.ing with parhal information, and the concommitant notions of consistency and entailment. ’ In this framework, computation emerges from the interaction of concurrently executing agents that communicate by placing, checking and instantiating constraints on shared variables. Such a view of computation is interesting in the context of programming languages because of the ability to represent and manipulate partial information about the domain of discourse, in the context of concurrency because of the use of constraints for communication and control, and in the context of AI because of the availability of simple yet powerful mechanisms for controlling inference, and the promise that very rich representational/programming languages, sharing the same set of abstract properties, may be possible. To reflect this view of computation, [Sar89] develops the cc family of languages. We present here one member of the family, CC(.L,+) (pronounced “cc with Ask and Choose”) which provides the basic operations of blocking Ask and atomic Tell and an algebra of behaviors closed under prefixing, indeterministic choice, interleaving, and hiding, and provides a mutual recursion operator. cc(.L,t) is (intentionally!) very similar to Milner’s CCS, but for the radically different underlying concept of communication, which, in fact, pro’ The class is founded on the notion of “constraint logic programming ” [JL87,Mah87], fundamentally generalizes concurrent logic programming, and is the subject of the first author’s dissertation [Sar89], on which this paper is substantially based.
A Scheme for Integrating Concrete Domains into Concept Languages
, 1991
"... A drawback which concept languages based on klone have is that all the terminological knowledge has to be defined on an abstract logical level. In many applications, one would like to be able to refer to concrete domains and predicates on these domains when defining concepts. Examples for such conc ..."
Abstract

Cited by 269 (19 self)
 Add to MetaCart
A drawback which concept languages based on klone have is that all the terminological knowledge has to be defined on an abstract logical level. In many applications, one would like to be able to refer to concrete domains and predicates on these domains when defining concepts. Examples for such concrete domains are the integers, the real numbers, or also nonarithmetic domains, and predicates could be equality, inequality, or more complex predicates. In the present paper we shall propose a scheme for integrating such concrete domains into concept languages rather than describing a particular extension by some specific concrete domain. We shall define a terminological and an assertional language, and consider the important inference problems such as subsumption, instantiation, and consistency. The formal semantics as well as the reasoning algorithms are given on the scheme level. In contrast to existing klone based systems, these algorithms will be not only sound but also complete. The...
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 199 (7 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 173 (9 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.
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 167 (6 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 ...
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 148 (14 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...
ArcConsistency and ArcConsistency Again
 Artificial Intelligence
, 1994
"... Constraint networks are known as a useful way to formulate problems such as design, scene labeling, temporal reasoning, and more recently natural language parsing. The problem of the existence of solutions in a constraint network is NPcomplete. Hence, consistency techniques have been widely studied ..."
Abstract

Cited by 142 (11 self)
 Add to MetaCart
Constraint networks are known as a useful way to formulate problems such as design, scene labeling, temporal reasoning, and more recently natural language parsing. The problem of the existence of solutions in a constraint network is NPcomplete. Hence, consistency techniques have been widely studied to simplify constraint networks before or during the search of solutions. Arcconsistency is the most used of them. Mohr and Henderson [Moh&Hen86] have proposed AC4, an algorithm having an optimal worstcase time complexity. But it has two drawbacks: its space complexity and its average time complexity. In problems with many solutions, where the size of the constraints is large, these drawbacks become so important that users often replace AC4 by AC3 [Mac&Fre85], a nonoptimal algorithm. In this paper, we propose a new algorithm, AC6, which keeps the optimal worstcase time complexity of AC4 while working out the drawback of space complexity. More, the average time complexity of AC6 is optimal for constraint networks where nothing is known about the semantic of the constraints. At the end of the paper, experimental results show how much AC6 outperforms AC3 and AC4. 1.
Approximation in Databases
 In PPCP'93, First International Workshop on Principles and Practice of Constraint Programming
, 1995
"... One source of partial information in databases is the need to combine information from several databases. Even if each database is complete for some "world", the combined databases will not be, and answers to queries against such combined databases can only be approximated. In this paper w ..."
Abstract

Cited by 127 (12 self)
 Add to MetaCart
One source of partial information in databases is the need to combine information from several databases. Even if each database is complete for some "world", the combined databases will not be, and answers to queries against such combined databases can only be approximated. In this paper we describe various situations in which a precise answer cannot be obtained for a query asked against multiple databases. Based on an analysis of these situations, we propose a classification of constructs that can be used to model approximations. A major goal is to obtain universality properties for these models of approximations. Universality properties suggest syntax for languages with approximations based on the operations which are naturally associated with them. We prove universality properties for most of the approximation constructs. Then we use them to design languages built around datatypes given by the approximation constructs. A straightforward approach results in langauges that have a numb...
Practical Applications of Constraint Programming
 CONSTRAINTS
, 1996
"... Constraint programming is newly flowering in industry. Several companies have recently started up to exploit the technology, and the number of industrial applications is now growing very quickly. This survey will seek, by examples, ..."
Abstract

Cited by 109 (1 self)
 Add to MetaCart
Constraint programming is newly flowering in industry. Several companies have recently started up to exploit the technology, and the number of industrial applications is now growing very quickly. This survey will seek, by examples,
Introducing Global Constraints in CHIP
, 1994
"... The purpose of this paper is to show how the introduction of new primitive constraints (e.g. among, diffn, cycle) over finite domains in the constraint logic programming system CHIP result in finding very rapidly good solutions for a large class of difficult sequencing, scheduling, geometrical place ..."
Abstract

Cited by 97 (14 self)
 Add to MetaCart
The purpose of this paper is to show how the introduction of new primitive constraints (e.g. among, diffn, cycle) over finite domains in the constraint logic programming system CHIP result in finding very rapidly good solutions for a large class of difficult sequencing, scheduling, geometrical placement and vehicle routing problems. The among constraint allows to specify sequencing constraints in a very concise way. For the first time, the diffn constraint allows to express and to solve directly multidimensional placement problems where one has to consider non overlapping constraints between ndimensional objects (e.g. rectangles, parallelepipeds). The cycle constraint makes possible to specify a wide range of graph partitioning problems that could not yet be expressed by using current constraint logic programming languages. One of the main advantage of all these new primitives is to take into account more globally a set of elementary constraints. Finally, we point out that all the previous primitive constraints enhance the power of the CHIP system significantly, allowing to solve real life problems that were not within reach of constraint technology before. 1