This paper considers the power system restoration planning problem (PSRPP) for disaster recovery, a fundamental problem faced by all populated areas. PSRPPs are complex stochastic optimization problems that combine resource allocation, warehouse location, and vehicle routing considerations. Furthermore, electrical power systems are complex systems whose behavior can only be determined by physics simulations. Moreover, these problems must be solved under tight runtime constraints to be practical in real-world disaster situations. This work is threefold; It formalizes the specification of PSRPPs, introduces a simple optimization-simulation hybridization necessary for solving PSRPPs, and presents a complete restoration algorithm that utilizes the strengths of mixed integer programming, constraint programming, and large neighborhood search.