Results 1  10
of
12
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 55 (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...
Alma0: 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 Alma0 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 54 (11 self)
 Add to MetaCart
Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Alma0 programs into AAA programs. In a second phase the AAA instructions are translated into C statements. As the Alma0 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. 5559], and from the WAM machine used to compile a logical language (see AitKaci [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 Alma0 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 47 (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 dependencydirected 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...
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 39 (6 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 arcconsistency. 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 contextsdebugging, 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 14 (0 self)
 Add to MetaCart
The need to reverse a computation arises in many contextsdebugging, 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 analysisliveness 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 assignedto variables. We propose an abstract computer model and a programming languageYLispwhose 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, YLisp 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., updateinplace, and compiletime 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 7 (2 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 arcconsistency. 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 depthfirst search strategy, CBack provides for the more general heuristic bestfirst sea ..."
Abstract

Cited by 2 (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 depthfirst search strategy, CBack provides for the more general heuristic bestfirst 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 Alma0, or Imperative and Declarative Programming Reconciled
, 1998
"... In [ Apt et al., 1998 ] we introduced the imperative programming language Alma0 that supports declarative programming. In this paper we illustrate the hybrid programming style of Alma0 by means of various examples that complement those presented in [ Apt et al., 1998 ] . The presented Alma0 progr ..."
Abstract
 Add to MetaCart
In [ Apt et al., 1998 ] we introduced the imperative programming language Alma0 that supports declarative programming. In this paper we illustrate the hybrid programming style of Alma0 by means of various examples that complement those presented in [ Apt et al., 1998 ] . The presented Alma0 programs illustrate the versatility of the language and show that "don't know" nondeterminism can be naturally combined with assignment.
A Parallel IntervalBased Constraint Language: Implementation and Performance Analysis
, 1995
"... This paper presents the design and implementation of a nondeterministic constraint programming language based on interval variables (integer or floating point intervals) on sharedmemory multiprocessing computers. The nondeterministic constructs in the language are the choice and split statements ..."
Abstract
 Add to MetaCart
This paper presents the design and implementation of a nondeterministic constraint programming language based on interval variables (integer or floating point intervals) on sharedmemory multiprocessing computers. The nondeterministic 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 reused in exploring other branches of the execution tree. Similarly, a failed narrowing frees the corresponding processor to be reused with a subsequent split or choice statements. A metalevel interpreter is presented to describe the execution behavior of the language. The behavior of the metalevel interpreter is also approximated by considering strings generated by a contextfree 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...