TL;DR: A scheme for extending CLP to include both required and preferential constraints, and an extension, Hierarchical Constraint Logic Programming, of the CLP scheme to include constraint hierarchies, are described, giving an operational, model theoretic and fixed-point semantics for the HCLP scheme.
Abstract: A constraint describes a relation to be maintained; it states what the relationship is as opposed to how to maintain it. In many applications, such as interactive graphics, planning, document formatting, and decision support, one needs to express preferences as well as strict requirements. Such constraints are sometimes called soft constraints; the required ones are called hard constraints. We allow an arbitrary number of levels of preference, each successive level being more weakly preferred than the previous one. A collection of constraints at various levels of preference is known as a constraint hierarchy. Constraint Logic Programming (CLP) is a general scheme for extending logic programming to include constraints. It is parameterized by ${\cal D},$ the domain of the constraints. However, CLP(${\cal D}$) languages, as well as most other constraint systems, only allow the programmer to specify constraints that must hold. 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(${\cal D}$) to include both required and preferential constraints. We present a theory of constraint hierarchies, and an extension, Hierarchical Constraint Logic Programming, of the CLP scheme to include constraint hierarchies. We give an operational, model theoretic and fixed-point semantics for the HCLP scheme. Finally, we describe two interpreters we have written for instances of the HCLP scheme, give example programs, and discuss related work.
TL;DR: This work introduces a new partitioning approach that caters to the main objective of the hardware/software partitioning problem, i.e., minimizing hardware for given performance constraints, and demonstrates results superior to those of previously published algorithms intended for hardware/ software partitioning.
Abstract: Partitioning a system ‘3 functionality among interacting hardware and software components is an important part of system design. We introduce a new partitioning approach that caters to the main objective of the hardware/software partitioningproblem, i.e., minimizing hardware ,for given performance constraints. We demonstrate results superior to those of previously published algorithms intendedjor hardware/software partitioning. The approach may be genera&able to problems in which one metric must be minimized while other metrics must merely satisfy constraints.
TL;DR: By extending techniques used for the combination of unification in disjoint equational theories, it is shown how to combine constraint solvers on different algebraic domains that may share some constant symbols.
TL;DR: This paper describes how the CLP language cc(FD), a successor of CHIP using consistency techniques over finite domains, can be used to solve two practical applications: test-pattern generation and car sequencing.
Abstract: Constraint logic programming (CLP) is a new class of declarative programming languages whose primitive operations are based on constraints (eg 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: test-pattern 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
TL;DR: An improved version of AC-6 which uses constraint bidirectionality and is optimal in the number of constraint checks performed, i.e. given a variable, value, and arc ordering, it performs the minimum possible number of constraints checks according to these orders.
Abstract: C. Bessiere and M.O. Cordier (1994) said that the AC-6 arc consistency algorithm is optimal in time on constraint networks where nothing is known about the constraint semantics. However, in constraint networks, it is always assumed that constraints are bidirectional. None of the previous algorithms achieving arc-consistency (AC-3, AC-4, AC-6) use constraint bidirectionality. We propose here an improved version of AC-6 which uses this property. Then, we claim that our new algorithm is optimal in the number of constraint checks performed (i.e. given a variable, value, and arc ordering, it performs the minimum possible number of constraint checks according to these orders). >
TL;DR: The design and the implementation of clp(B): a boolean constraint solver in the Constraint Logic Programming paradigm is presented, based on local propagation methods and follows the “glassbox” approach of compiling high-level constraints into primitive low-level ones.
Abstract: We present the design and the implementation of clp(B): a boolean constraint solver in the Constraint Logic Programming paradigm. This solver is based on local propagation methods and follows the “glassbox” approach of compiling high-level constraints into primitive low-level ones. We detail its integration into the WAM showing that the necessary extension is truly minimal since only four new instructions are added. The resulting solver is around an order of magnitude faster than other existing boolean solvers.
TL;DR: The narrowing method reduces the goal solving problem in the whole theory to rewriting and constraint solving in an adequate combined theory and results in a combined solver for goals with constraints in theories deened by unconstrained equalities.
Abstract: Narrowing is a way to integrate function evaluation and equality deenition into logic programming. Here we show how this can be combined with the constraint paradigm. We propose a solver for goals with constraints in theories deened by unconstrained equalities and rewrite rules with constraints expressed in an algebraic built-in structure. The narrowing method reduces the goal solving problem in the whole theory to rewriting and constraint solving in an adequate combined theory. The combined solver is obtained through the combination of a solver in the built-in structure and a solver for the unconstrained equalities. Suucient syntactic conditions are proposed to get a process that enumerates a complete set of solutions.
TL;DR: A bounded knapsack sharing problem is a maximin or minimax mathematical programming problem with one or more linear inequality constraints, an objective function composed of single variable continuous functions called tradeoff functions, and lower and upper bounds on the variables.
Abstract: A bounded knapsack sharing problem is a maximin or minimax mathematical programming problem with one or more linear inequality constraints, an objective function composed of single variable continuous functions called tradeoff functions, and lower and upper bounds on the variables. A single constraint problem which can have negative or positive constraint coefficients and any type of continuous tradeoff functions (including multi-modal, multiple-valued and staircase functions) is considered first. Limiting conditions where the optimal value of a variable may be plus or minus infinity are explicitly considered. A preprocessor procedure to transform any single constraint problem to a finite form problem (an optimal feasible solution exists with finite variable values) is developed. Optimality conditions and three algorithms are then developed for the finite form problem. For piecewise linear tradeoff functions, the preprocessor and algorithms are polynomially bounded. The preprocessor is then modified to handle bounded knapsack sharing problems with multiple constraints. An optimality condition and algorithm is developed for the multiple constraint finite form problem. For multiple constraints, the time needed for the multiple constraint finite form algorithm is the time needed to solve a single constraint finite form problem multiplied by the number of constraints. Some multiple constraint problems cannot be transformed to multiple constraint finite form problems.
TL;DR: A new property called constraint looseness is presented and it is shown how it can be used to estimate the level of local consistency of a binary constraint network and an algorithm is developed that can sometimes find an ordering of the variables such that a network is backtrack-free.
Abstract: We present a new property called constraint looseness and show how it can be used to estimate the level of local consistency of a binary constraint network. Specifically, we present a relationship between the looseness of the constraints, the size of the domains, and the inherent level of local consistency of a constraint network. The results we present are useful in two ways. First, a common method for finding solutions to a constraint network is to first preprocess the network by enforcing local consistency conditions, and then perform a backtracking search. Here, our results can be used in deciding which low-order local consistency techniques will not change a given constraint network and thus are not useful for preprocessing the network. Second, much previous work has identified conditions for when a certain level of local consistency is sufficient to guarantee a network is backtrack-free. Here, our results can be used in deciding which local consistency conditions, if any, still need to be enforced to achieve the specified level of local consistency. As well, we use the looseness property to develop an algorithm that can sometimes find an ordering of the variables such that a network is backtrack-free.
TL;DR: A constraint logic programming system for the domain of complex functions is described and intended users of the language are scientist and engineers who often reason/compute with constraints over complex functions, such as functional equalities, differential equations, etc.
Abstract: A constraint logic programming system for the domain of complex functions is described. The intended users of the language are scientist and engineers who often reason/compute with constraints over complex functions, such as functional equalities, differential equations, etc. Constraints are solved by iterating several solving methods such as Laplace transformation, non-linear equation solving, etc. A prototype has been built and is illustrated in the paper.
TL;DR: This paper aims to present three different solved forms two of which are used in the main CLP languages with linear constraints CHIP, CLP(R) and Prolog III and the third form proposed by JL.
Abstract: Linear constraint solving in Constraint Logic Programming languages rests on rewriting constraints under syntaxic forms. These syntaxic forms are generally called solved forms, since a satisfiable linear constraint system can be rewritten under one of these forms, and reciprocally, a linear constraint system of one of these forms is satisfiable. This paper aims to present three different solved forms two of which are used in the main CLP languages with linear constraints CHIP, CLP(R) and Prolog III. The third form was proposed by JL. Imbert and P. Van Hentenryck in 1991 [8]. We discuss the advantages and disadvantages of each and present the results of some comparative tests.
TL;DR: In this paper, the authors present a special constraint solving technique for the domain {0, 1} originating from mathematical programming. The key concepts are the generation of strong valid inequalities for the solution set of a constraint system and the notion of branch-and-cut.
Abstract: Pseudo-Boolean constraints are equations or inequalities between integer polynomials in 0–1 variables. On the one hand, they generalize Boolean constraints, on the other hand, they are a restricted form of finite domain constraints. In this paper, we present special constraint solving techniques for the domain {0,1} originating from mathematical programming. The key concepts are the generation of strong valid inequalities for the solution set of a constraint system and the notion of branch-and-cut.
TL;DR: Toupie is presented, the language Toupie that is designed to solve second order constraints and uses an extension of Bryant's binary decision diagrams to encode relations which makes it possible to handle relations with huge numbers of elements.
Abstract: Constraint logic programming (CLP) has demonstrated its ability to handle difficult problems coming from operation research. We think that this approach is relevant to perform program analyses too. However, program analysis often requires solvers for second order constraints, i.e. mainly fixpoint equations, that are not available in CLP languages. In this paper, we present, the language Toupie that is designed to solve such constraints. Toupie uses an extension of Bryant's binary decision diagrams to encode relations which makes it possible to handle relations with huge numbers of elements.
TL;DR: In this article, the authors present an extension of the original algorithm that allows constraint uncertainty to be represented as a mixture of Gaussians, and thereby allows arbitrary constraint distributions, and illustrate the performance of this algorithm on a problem drawn from the domain of molecular structure determination.
Abstract: We have previously reported a Bayesian algorithm for determining the coordinates of points in three-dimensional space from uncertain constraints. This method is useful in the determination of biological molecular structure. It is limited, however, by the requirement that the uncertainty in the constraints be normally distributed. In this paper, we present an extension of the original algorithm that allows constraint uncertainty to be represented as a mixture of Gaussians, and thereby allows arbitrary constraint distributions. We illustrate the performance of this algorithm on a problem drawn from the domain of molecular structure determination, in which a multicomponent constraint representation produces a much more accurate solution than the old single component mechanism. The new mechanism uses mixture distributions to decompose the problem into a set of independent problems with unimodal constraint uncertainty. The results of the unimodal subproblems are periodically recombined using Bayes' law, to avoid combinatorial explosion. The new algorithm is particularly suited for parallel implementation.
TL;DR: In this paper, a class of programs that accumulate and simplify systems of linear arithmetic constraints are considered, and source-to-source translations that make this composition of transforms explicit, replacing constraint solving with ground (imperative) arithmetic are presented.
Abstract: A central issue in the optimizing compilation of Constraint Logic Programming (CLP) languages is how to compile away as much general constraint solving as possible. Most such work relies on obtaining mode and type information by global analysis, and uses it to generate specialized code for individual constraints and calls, often with the aid of multiple specialization. Some recent work has augmented these techniques with procedure-level analysis of the interrelationships between constraints, to detect constraints that subsume other constraints, and variables that cease to be reachable at some point in a computation. In combination, these techniques have been shown to dramatically improve performance for a number of programs. Here we continue this line of investigation by considering a class of programs that accumulate and simplify systems of linear arithmetic constraints. The programs contain procedures that relate their parameters by an aane transform. For some calling patterns, the procedures repeatedly compose and simplify aane transforms, using virtually the full power of the linear arithmetic constraint solver, and incurring considerable expense. We describe source to source translations that make this composition of transforms explicit, replacing constraint solving with ground (imperative) arithmetic. We demonstrate the translations and present experimental data showing substantial improvements in execution speed and space utilization.
TL;DR: Experiences with constraint-based array dependence analysis and Logic-based methods for optimization in constraint satisfaction problems are shared.
Abstract: A substitution operation for constraints.- Contradicting conventional wisdom in constraint satisfaction.- Nogood backmarking with min-conflict repair in constraint satisfaction and optimization.- Global consistency for continuous constraints.- Locally simultaneous constraint satisfaction.- Analyzing and debugging hierarchies of multi-way local propagation constraints.- Inferring 3-dimensional constraints with DEVI.- Beyond finite domains.- QUAD-CLP(R): Adding the power of quadratic constraints.- Applications in constraint logic programming with strings.- Some methodological issues in the design of CIAO, a generic, parallel concurrent constraint logic programming system.- Encapsulated search and constraint programming in Oz.- Towards a concurrent semantics based analysis of CC and CLP.- CC programs with both in- and non-determinism: A concurrent semantics.- Efficient and complete tests for database integrity constraint checking.- Linear vs. polynomial constraints in database query languages.- Foundations of aggregation constraints.- Constraint-generating dependencies.- Constraint objects.- Specification and verification of constraint-based dynamic systems.- GSAT and dynamic backtracking.- Foundations of indefinite constraint databases.- Set constraints and set-based analysis.- On the design of constraint satisfaction problems.- Experiences with constraint-based array dependence analysis.- Set constraints: Results, applications and future directions.- Logic-based methods for optimization.- Panel session: Commercial Applications of Constraint programming.
TL;DR: A new constraint satisfaction system is provided that extends the constraint network to an acyclic one, computes a join tree, and establishes the directional strong k-consistency before any attempt is made to construct a solution; after this, the variables are instantiated without any backtracking.
Abstract: We provide a new constraint satisfaction system that extends the constraint network to an acyclic one, computes a join tree, and establishes the directional strong k-consistency before any attempt is made to construct a solution; after this, the variables are instantiated without any backtracking. This method is extremely efficient if the constraint network is acyclic and the number of variables per constraint is bounded by a small constant or if a lot of solutions have to be computed. >
TL;DR: Many AI tasks can be formulated as a Constraint Satisfaction Problem (CSP), i.e. the problem of finding an assignment of values for a set of variables subject to a given collection of constraints.
Abstract: Many AI tasks can be formulated as a Constraint Satisfaction Problem (CSP), i.e. the problem of finding an assignment of values for a set of variables subject to a given collection of constraints. In this framework each constraint is defined over a set of variables and specifies the set of allowed combinations of values as a collection of tuples.
TL;DR: In this paper, a constraint satisfaction approach is proposed for modeling biological structures. But the approach is not suitable for modeling uncertain biological structures, as it requires a large amount of data and a relatively small amount of experimental data.
TL;DR: An extension of the ML language for handling constraints in finite domains, as originally proposed by the CHIP Constrain Logic Programming Language, following and attending techniques originating from Constraint Satisfaction Problems is proposed.
Abstract: We propose an extension of the ML language for handling constraints in finite domains, as originally proposed by the CHIP Constraint Logic Programming Language, following and attending techniques originating from Constraint Satisfaction Problems. This makes it possible for the programmer to declaratively combine in a single application both purely functional parts and constraint solving parts for efficient handling of discrete search problems. In order to show the effectiveness of this approach, we present a simple demonstrative problem-solving example using finite domain constraints such as linear equations and disequations. >
TL;DR: The main point of the paper is the explanation of joining ACDGs, which represent individual geometric objects, into a new common ACDG, in this way a new parametric representation of a resulting geometrical object is obtained.
Abstract: The paper describes an experimental constraint based 2D geometric modeling system. As a result of constraint solving, an acyclic constraint description graph (ACDG) is obtained. It stores the sequence of applying inserted constraints and can be observed as a parametric description of a geometric object. The main point of the paper is the explanation of joining ACDGs, which represent individual geometric objects, into a new common ACDG. In this way a new parametric representation of a resulting geometrical object is obtained. To preserve a clear hierarchical structure of the common ACDG, constraint interfaces are introduced among individual ACDGs. The user is not extinguished by the mechanism of constraints, constraint solving, and constraint description graphs. Instead of this, a geometrical object is offered to him/her as a black box. By geometrical constraints these black boxes are joined in a natural way using expressions close to the engineer vocabulary. >
TL;DR: Two simple examples show how a facility location problem is solved in Prolog and its standard mathematical programming formulation is represented in CLP(ℜ) to reach an optimal solution faster.
Abstract: Logistic systems analysts use a wide array of modeling systems such as algebraic and logic programs. Two simple examples show how they mesh as Constraint Logic programs, emphasizing the visual style of formulation. A facility location problem is solved in Prolog. Its standard mathematical programming formulation is then represented in CLP(ℜ) to reach an optimal solution faster. The examples are chosen to raise systemic issues such as model re-use and adaptability that are at the heart of logistic analysis and planning.
TL;DR: Although GENET has been designed to be implemented on VLSI hardware, empirical evidence is presented to show that even when simulated on a single processor GENET can OUtperfOrm e.Xkting iterative improvement techniques on hard instances of certain constraint satisfaction problems.
Abstract: New approaches to solving constraint satisfaction problems using iterative improvement techniques have been found to be successful on certain, very large problems such as the million queens. However, on highly constrained problems it is possible for these methods to get caught in local minima. In this paper we present GENET, a connectionist architecture for solving binary and general constraint satisfaction problems by iterative improvement. GENET incorporates a learning strategy to escape from local minima. Although GENET has been designed to be implemented on VLSI hardware, we present empirical evidence to show that even when simulated on a single processor GENET can OUtperfOrm e.Xkting iteratk? improvement techniques on hard instances of certain constraint satisfaction problems.