8,731 research outputs found
On Backtracking in Real-time Heuristic Search
Real-time heuristic search algorithms are suitable for situated agents that
need to make their decisions in constant time. Since the original work by Korf
nearly two decades ago, numerous extensions have been suggested. One of the
most intriguing extensions is the idea of backtracking wherein the agent
decides to return to a previously visited state as opposed to moving forward
greedily. This idea has been empirically shown to have a significant impact on
various performance measures. The studies have been carried out in particular
empirical testbeds with specific real-time search algorithms that use
backtracking. Consequently, the extent to which the trends observed are
characteristic of backtracking in general is unclear. In this paper, we present
the first entirely theoretical study of backtracking in real-time heuristic
search. In particular, we present upper bounds on the solution cost exponential
and linear in a parameter regulating the amount of backtracking. The results
hold for a wide class of real-time heuristic search algorithms that includes
many existing algorithms as a small subclass
Efficient Matching with Memoization for Regexes with Look-around and Atomic Grouping (Extended Version)
Regular expression (regex) matching is fundamental in many applications,
especially in web services. However, matching by backtracking -- preferred by
most real-world implementations for its practical performance and backward
compatibility -- can suffer from so-called catastrophic backtracking, which
makes the number of backtracking super-linear and leads to the well-known ReDoS
vulnerability. Inspired by a recent algorithm by Davis et al. that runs in
linear time for (non-extended) regexes, we study efficient backtracking
matching for regexes with two common extensions, namely look-around and atomic
grouping. We present linear-time backtracking matching algorithms for these
extended regexes. Their efficiency relies on memoization, much like the one by
Davis et al.; we also strive for smaller memoization tables by carefully
trimming their range. Our experiments -- we used some real-world regexes with
the aforementioned extensions -- confirm the performance advantage of our
algorithms.Comment: To appear in ESOP 202
Proof Generation from Delta-Decisions
We show how to generate and validate logical proofs of unsatisfiability from
delta-complete decision procedures that rely on error-prone numerical
algorithms. Solving this problem is important for ensuring correctness of the
decision procedures. At the same time, it is a new approach for automated
theorem proving over real numbers. We design a first-order calculus, and
transform the computational steps of constraint solving into logic proofs,
which are then validated using proof-checking algorithms. As an application, we
demonstrate how proofs generated from our solver can establish many nonlinear
lemmas in the the formal proof of the Kepler Conjecture.Comment: Appeared in SYNASC'1
Logic Programming Applications: What Are the Abstractions and Implementations?
This article presents an overview of applications of logic programming,
classifying them based on the abstractions and implementations of logic
languages that support the applications. The three key abstractions are join,
recursion, and constraint. Their essential implementations are for-loops, fixed
points, and backtracking, respectively. The corresponding kinds of applications
are database queries, inductive analysis, and combinatorial search,
respectively. We also discuss language extensions and programming paradigms,
summarize example application problems by application areas, and touch on
example systems that support variants of the abstractions with different
implementations
- …