Kang Soo Tae and Diane J. Cook
As planning systems begin to solve more realistic problems, one of the most important and time-consuming tasks in developing a planning system is knowledge engineering (desJardins 1994). To autonomously learn planning knowledge, we propose novel approaches to solve some incompleteness problems arising in knowledge acquisition. We use an incremental learning method. We first introduce the naive domain assumption that every object of a certain type is functionally homogeneous. Using this assumption, an example is quickly generalized. This method drastically reduces the size of the search space required to acquire an operator definition. We conjecture that this assumption is currently adopted in most planning domains. The assumption, however, causes overly-general operator definitions in a realistic domain. To cope with this incompleteness problem, we make use of the ID3 machine learning system, to specify the incomplete definition by adding a literal that can classify nonhomogeneous objects of a type into their own homogeneous subtypes. We show how to learn a unobservable predicate by this technique. A human tends to prefer positive predicates to negative literals. This tendency causes the problem of missing negative preconditions. We induce the negative literals by utilizing the relationship between the two-valued and the three-valued logic systems in planning. The learned negative literal helps prevent an inconsistent planning problem in a noisy state. The expert possesses knowledge not captured in a planning system (desJardins 1994). We developed a method to learn some implicit human knowledge such as opposite concepts by studying structural regularity among operators. This knowledge simplifies the operator definition. A multipurpose intelligent robot should be able to adapt to a unknown task. When an operator is applied in a similar new domain and becomes overly-general, thus not fitting the domain, we introduce an operator splitting method. We first learn missing literais to specialize the operator to the new domain and if the operator is overly-specialized, we split the original operator into two operators.