Jeffrey Van Baalen, Randall Davis
It has long been acknowledged that having a good representation is key in effective problem solving. But what is a "good" representation? We describe an approach to representation design for problem solving that answers this question for a class of problems called analytical reasoning problems. These problems are typically very difficult for general problem solvers, like theorem provers, to solve. Yet people solve them quite easily by designing a specialized representation for each problem and using it to aid the solution process. Our approach is motivated, in large part, by observations of the problem solving behavior of people. The implementation based on this approach takes as input a straightforward predicate calculus translation of the problem, tries to gather any necessary additional information, decides what to represent and how, designs the representations, then creates and runs a LISP program that uses those representations to produce a solution. The specialized representation created is a structure whose syntax captures the semantics of the problem domain and whose behavior enforces those semantics.