This document summarizes AND-OR graphs and the AO* algorithm. It defines AND-OR graphs as being useful for representing problems that can be solved by decomposing them into smaller subproblems. It then outlines the basic AND-OR graph algorithm involving initializing a graph, expanding nodes, and computing f' values for successor nodes. Finally, it describes the key aspects of the AO* algorithm, which uses AND-OR graphs to represent problems that can be divided into parts that can be combined. The AO* algorithm involves initializing a graph with the initial node, expanding nodes, generating successors, computing h' values, and propagating decision information back through the graph.