This paper describes a form of learning in the context of problem solving by searching for macro-operators. A macro-operator is a kind of super-operator which is composed of more elementary or primitive operators. The composition process by which a macro is formed abstracts the defining sequence so that the new macro-operator looks like just another operator to the problem solving system.
The discovery of macro-operators is a very powerful problem solving technique, especially when used for solving problems with nonserializable subgoals, such as Rubik’s Cube, for which other weak methods fail. Macros derive their power from their ability to shorten the search process. By using macros, it is possible to make “larger” strides through the search space since applying a single macro is often equivalent to a large number of steps.
Having done an excellent job of defining both previous research as well as the concept of how macros are used to solve the 8-puzzle, 15-puzzle, and Rubik’s Cube, the author describes the learning process. After explaining how macros can be correctly placed within a macro table, the author examines the various methods of generating macros. He proposes using a simple depth-first, iterative deepening search or a slightly more complicated bidirectional search technique. Although it appears to be a simple technique, the author is not quite clear in describing how this portion of the programs works. Nor is he clear in explaining why the algorithm fails to find the last seven macros for the Rubik’s Cube. However, the work, in general, is highly significant and presents a powerful technique in problem solving.