Systematic ordered search
Goal: specify refinement operator such that each hypothesis is generated only once.

Approach:

 
Optimal refinement operator ropt 
ropt:={h' Π r(h)|o(h') > o(h)}.
   
N.B. This ordering just ensures we generate each node only once - it does not necessarily have to be ordering in which we explore nodes (i.e., we do not have to do depth-first along this ordering).