This document proposes an optimized version of the AO* algorithm called OAO* that improves upon AO* in two ways:
1) It performs a depth-limited search on nodes before assigning heuristic values, allowing previously underestimated nodes to become promising.
2) It handles interacting subproblems, where the optimal solution to one subproblem depends on the solution to another. This provides a more realistic solution.
The OAO* algorithm is shown to always provide an optimal or better solution than AO* by re-evaluating nodes and accounting for interactions between subproblems. It also explores fewer nodes overall through the use of an explored list to avoid re-exploring known nodes.