This document discusses planning graphs and the GraphPlan algorithm for classical planning problems. It begins by describing how planning problems are propositionalized by grounding action schemas. It then explains how planning graphs are constructed with alternating levels of fluents and actions, and how mutex relationships are identified between actions and fluents. The document outlines how the GraphPlan algorithm uses a planning graph to search for a solution, expanding the graph if needed. It also discusses how planning graphs can be used to derive heuristics for estimating solution cost.