The purpose of our research is to enhance the efficiency of AI problem
solvers by automating representation changes. We have developed a
system that improves description of input problems and selects an
appropriate search algorithm for each given problem.

MOTIVATION Researchers have accumulated much evidence of the
importance of
appropriate representations for the efficiency of AI systems. The same
problem may be easy or difficult, depending on the way we describe it
and on the search algorithm we use. Previous work on automatic
improvement of problem description has mostly been limited to the
design of individual learning algorithms. The user has traditionally
been responsible for the choice of algorithms appropriate for a given
problem.

We present a system that integrates multiple description-changing and
problem-solving algorithms. The purpose of our work is to formalize
the concept of representation, explore its role in problem solving,
and confirm the following general hypothesis:

An effective representation-changing system can be constructed out of
three parts:

a library of problem-solving algorithms;
a library of algorithms that improve problem description by static
analysis and learning;
a top-level control module that selects appropriate algorithms for
each given problem.

REPRESENTATION-CHANGING SYSTEM
We have supported this hypothesis by building a system that improves
representations in the Prodigy problem-solving architecture. The
library of problem solvers consists of several search engines
available in the Prodigy architecture. The library of description
changers comprises novel algorithms for selecting primary effects,
generating abstractions, and discarding irrelevant elements of a
problem encoding. The control module chooses and applies appropriate
description changers, stores and reuses new descriptions, and selects
problem solvers.

IMPROVING PROBLEM DESCRIPTION
The implemented system includes seven static-analysis and learning
algorithms for improving description of a given problem. First, we
formalize the notion of primary effects of operators, and give two
algorithms for identifying primary effects. Second, we extend the
theory of abstraction search to the Prodigy domain language, and
describe two techniques for abstracting preconditions and effects of
operators. Third, we present auxiliary algorithms that enhance the
power of abstraction, by identifying relevant features of a problem
and generating partial instantiations of operators.

TOP-LEVEL CONTROL
We define a space of possible representations of a given problem, and
view the task of changing representation as search in this space. The
top-level control mechanism guides the search, using statistical
analysis of previous results, user-coded control rules, and general
heuristics. First, we formalize the statistical problem involved in
finding an effective representation and derive a solution to this
problem. Then, we describe control rules for selecting
representations, and present a mechanism for the synergetic use of
statistical techniques, control rules, and heuristics.