Results 1 -
9 of
9
Alma-0: An Imperative Language that Supports Declarative Programming
, 1998
"... Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma-0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Al ..."
Abstract
-
Cited by 49 (10 self)
- Add to MetaCart
Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma-0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Alma-0 programs into AAA programs. In a second phase the AAA instructions are translated into C statements. As the Alma-0 language itself, the AAA aims to combine the best of both worlds; elements were taken from virtual machines used to compile imperative languages (in particular the RISC architecture described in Wirth [1996, pp. 55--59], and from the WAM machine used to compile a logical language (see Ait-Kaci [1991]). Still, the AAA resembles most the virtual machines used in the compilation of imperative languages. The additions made to provide for the extensions of the Alma-0 language are ---the failure handling instructions ONFAIL, FAIL, 40 \Delta Krzysztof R. Apt et al ---the log ...
Intelligent Backtracking On Constraint Satisfaction Problems: Experimental And Theoretical Results
, 1995
"... The Constraint Satisfaction Problem is a type of combinatorial search problem of much interest in Artificial Intelligence and Operations Research. The simplest algorithm for solving such a problem is chronological backtracking, but this method suffers from a malady known as "thrashing," in which ess ..."
Abstract
-
Cited by 44 (0 self)
- Add to MetaCart
The Constraint Satisfaction Problem is a type of combinatorial search problem of much interest in Artificial Intelligence and Operations Research. The simplest algorithm for solving such a problem is chronological backtracking, but this method suffers from a malady known as "thrashing," in which essentially the same subproblems end up being solved repeatedly. Intelligent backtracking algorithms, such as backjumping and dependency-directed backtracking, were designed to address this difficulty, but the exact utility and range of applicability of these techniques have not been fully explored. This dissertation describes an experimental and theoretical investigation into the power of these intelligent backtracking algorithms. We compare the empirical performance of several such algorithms on a range of problem distributions. We show that the more sophisticated algorithms are especially useful on those problems with a small number of constraints that happen to be difficult for chronologica...
Nonsystematic Backtracking Search
, 1995
"... Many practical problems in Artificial Intelligence have search trees that are too large to search exhaustively in the amount of time allowed. Systematic techniques such as chronological backtracking can be applied to these problems, but the order in which they examine nodes makes them unlikely to fi ..."
Abstract
-
Cited by 44 (1 self)
- Add to MetaCart
Many practical problems in Artificial Intelligence have search trees that are too large to search exhaustively in the amount of time allowed. Systematic techniques such as chronological backtracking can be applied to these problems, but the order in which they examine nodes makes them unlikely to find a solution in the explored fraction of the space. Nonsystematic techniques have been proposed to alleviate the problem by searching nodes in a random order. A technique known as iterative sampling follows random paths from the root of the tree to the fringe, stopping if a path ends at a goal node. Although the nonsystematic techniques do not suffer from the problem of exploring nodes in a bad order, they do reconsider nodes they have already ruled out, a problem that is serious when the density of solutions in the tree is low. Unfortunately, for many practical problems the order of examing nodes matters and the density of solutions is low. Consequently, neither chronological backtracking...
Deriving Filtering Algorithms from Constraint Checkers
- Principles and Practice of Constraint Programming (CP’2004), volume 3258 of LNCS
, 2004
"... Abstract. This reportdeals with global constraints for which the set of solutions can be recognized by an extended finite automaton whose size is bounded by a polynomial in ¦ , where ¦ is the number of variables of the corresponding global constraint. By reformulating the automaton as a conjunction ..."
Abstract
-
Cited by 31 (4 self)
- Add to MetaCart
Abstract. This reportdeals with global constraints for which the set of solutions can be recognized by an extended finite automaton whose size is bounded by a polynomial in ¦ , where ¦ is the number of variables of the corresponding global constraint. By reformulating the automaton as a conjunction of signature and transition constraints we show how to systematically obtain a filtering algorithm. Under some restrictions on the signature and transition constraints this filtering algorithm achieves arc-consistency. An implementation based on some constraints as well as on the metaprogramming facilities of SICStus Prolog is available. For a restricted class of automata we provide a filtering algorithm for the relaxed case, where the violation cost is the minimum number of variables to unassign in order to get back to a solution. Keywords: Constraint Programming,
NREVERSAL of Fortune -- The Thermodynamics of Garbage Collection
- In ACM Sigplan Notices
, 1977
"... The need to reverse a computation arises in many contexts---debugging, editor undoing, optimistic concurrency undoing, speculative computation undoing, trace scheduling, exception handling undoing, database recovery, optimistic discrete event simulations, subjunctive computing, etc. The need to anal ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
The need to reverse a computation arises in many contexts---debugging, editor undoing, optimistic concurrency undoing, speculative computation undoing, trace scheduling, exception handling undoing, database recovery, optimistic discrete event simulations, subjunctive computing, etc. The need to analyze a reversed computation arises in the context of static analysis---liveness analysis, strictness analysis, type inference, etc. Traditional means for restoring a computation to a previous state involve checkpoints; checkpoints require time to copy, as well as space to store, the copied material. Traditional reverse abstract interpretation produces relatively poor information due to its inability to guess the previous values of assigned-to variables. We propose an abstract computer model and a programming language---Y-Lisp---whose primitive operations are injective and hence reversible, thus allowing arbitrary undoing without the overheads of checkpointing. Such a computer can be built from reversible conservative logic circuits, with the serendipitous advantage of dissipating far less heat than traditional Boolean AND/OR/NOT circuits. Unlike functional languages, which have one "state " for all times, Y-Lisp has at all times one "state", with unique predecessor and successor states. Compiling into a reversible pseudocode can have benefits even when targeting a traditional computer. Certain optimizations, e.g., update-in-place, and compile-time garbage collection may be more easily performed, because the
Reformulation of Global Constraints Based on Constraints Checkers
"... Abstract. This article deals with global constraints for which the set of solutions can be recognized by an extended finite automaton whose size is bounded by a polynomial in n, where n is the number of variables of the corresponding global constraint. By reducing the automaton to a conjunction of s ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Abstract. This article deals with global constraints for which the set of solutions can be recognized by an extended finite automaton whose size is bounded by a polynomial in n, where n is the number of variables of the corresponding global constraint. By reducing the automaton to a conjunction of signature and transition constraints we show how to systematically obtain an automaton reformulation. Under some restrictions on the signature and transition constraints, this reformulation maintains arc-consistency. An implementation based on some constraints as well as on the metaprogramming facilities of SICStus Prolog is available. For a restricted class of automata we provide an automaton reformulation for the relaxed case, where the violation cost is the minimum number of variables to unassign in order to get back to a solution. 1
CBack: A Simple Tool for Backtrack Programming in C
, 1995
"... This paper describes CBack, a simple, but general tool for backtrack programming in the programming language C. The use of the tool is illustrated through examples of a tutorial nature. In addition to the usual depth-first search strategy, CBack provides for the more general heuristic best-first sea ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This paper describes CBack, a simple, but general tool for backtrack programming in the programming language C. The use of the tool is illustrated through examples of a tutorial nature. In addition to the usual depth-first search strategy, CBack provides for the more general heuristic best-first search strategy. The implementation of CBack is described in detail. The source code, shown in its full length, is entirely written in ANSI C and highly portable across diverse computer architectures and C compilers
Programming in Alma-0, or Imperative and Declarative Programming Reconciled
, 1998
"... In [ Apt et al., 1998 ] we introduced the imperative programming language Alma-0 that supports declarative programming. In this paper we illustrate the hybrid programming style of Alma-0 by means of various examples that complement those presented in [ Apt et al., 1998 ] . The presented Alma-0 progr ..."
Abstract
- Add to MetaCart
In [ Apt et al., 1998 ] we introduced the imperative programming language Alma-0 that supports declarative programming. In this paper we illustrate the hybrid programming style of Alma-0 by means of various examples that complement those presented in [ Apt et al., 1998 ] . The presented Alma-0 programs illustrate the versatility of the language and show that "don't know" nondeterminism can be naturally combined with assignment.
A Parallel Interval-Based Constraint Language: Implementation and Performance Analysis
, 1995
"... This paper presents the design and implementation of a non-deterministic constraint programming language based on interval variables (integer or floating point intervals) on shared-memory multiprocessing computers. The non-deterministic constructs in the language are the choice and split statements ..."
Abstract
- Add to MetaCart
This paper presents the design and implementation of a non-deterministic constraint programming language based on interval variables (integer or floating point intervals) on shared-memory multiprocessing computers. The non-deterministic constructs in the language are the choice and split statements. Each processor narrows the constraints encountered along the path of the execution tree. Whenever a solution is found, the processor is re-used in exploring other branches of the execution tree. Similarly, a failed narrowing frees the corresponding processor to be re-used with a subsequent split or choice statements. A meta-level interpreter is presented to describe the execution behavior of the language. The behavior of the meta-level interpreter is also approximated by considering strings generated by a context-free grammar and derivable from the interpreter rules. A novel approach presented here is an attempt to determine the average case speed up by generating uniform random strings us...

