This is an old revision of the document!
Learning problem solving knowledge is a technique often used to improve efficiency of problem solvers in several areas, such as in behavior cloning, planning, or reinforcement learning. In this paper, we focus on learning problem solving knowledge that can be understood by a human. Such knowledge explains computer problem solving and can be used by a human to solve the same problems without a computer. We describe an algorithm for learning strategies, where a strategy is a sequence of subgoals. Each subgoal is a prerequisite for the next goal in the sequence, such that achieving one goal enables us to achieve the next goal with a limited amount of search. The sequence of subgoals concludes with the main goal. The strategies are learned from a state-space representation of the domain and a set of attributes used to define subgoals. We demonstrate the algorithm on three domains. In the simplest one, that is learning strategies for mathematical equation solving, we learn strategies from a complete state-space representation, where each state corresponds to a learning example. In the other two examples, the 8-puzzle and Prolog programming, the complete state-space is too large to be used in learning, and we introduce an extension of the algorithm that can learn from particular solution paths, can exploit implicit conditions and uses active learning to select states that are expected to have the most influence on the learned strategies.
Paper submitted to journal.