MOA*
(1) Initialize Open with the start node. Initialize an empty set of nodes Solutions.
(2) Find a subset of Open, denoted ( 𝑂 𝑝 𝑒 𝑛 ) , of nodes with 𝑓 -values not dominated by an 𝑓 -value of any node in Open or
   Solutions.
(3) If | ( 𝑂 𝑝 𝑒 𝑛 ) | = 0 , then exit returning solutions found by following efficient back pointers from nodes in Solutions.
(4) Otherwise, select node 𝑛 from ( 𝑂 𝑝 𝑒 𝑛 ) , remove from Open, and add to Closed.
(5) If 𝑛 is a solution node, then add 𝑛 to Solutions and Goto 2.
(6) Otherwise, Expand 𝑛 , adding successors to Open (removing previously expanded successors from Closed) and computing
   successor 𝑓 -values. Goto 2.
Algorithm 1: MOA* algorithm.