A formal specification and rigorous implementation of an AI planner

Abstract

This is an abridged version of chapters 6 and 7 in [Turner and McCluskey 94], which were originally derived from [McCluskey 88]. It introduces the reader to Planning as viewed from an Artificial Intelligence perspective. It also shows how a planning algorithm can be formally specified and then transformed into executable code. Note that the specification was developed without the use of any tools, hence it may contain some syntactic bugs. The planner implementation (and its derivatives) have been used frequently for nearly ten years: in that time no semantic bugs have been found. Hence the application could also be viewed as case study evidence supporting the power of formal techniques. After introducing the reader to planning in Sections 1 and 2, in Section 3 we describe an abstract specification of a planner, In Section 4 we introduce a design level solution to planning in the form of a goal directed algorithm whose basic operation is to achieve goals within a developing, partially ordered plan. We then progress to modelling the plan as a VDM state, and then specify the `achieve ' operations on this state. In Sections 5,6 and 7 we show how the design specification may be implemented faithfully using Logic Programming