Sestroj strukturu G pro reprezentaci AND/OR stromu a umísti do ní počáteční uzel s označením INIT s jeho ohodnocením. Urči hodnotu FUTILITY, která určuje maximální povolenou cenu řešení.
Je-li uzel UNIT označen jako SOLVED, ukonči řešení jako úspěšné (řešení je dáno nejnadějnějším podstromem stromu G). Je-li hodnota uzlu INIT větší nebo rovna hodnotě FUTILITY, ukonči prohledávání jako neúspěšné. Jinak pokračuj.
Procházej nejnadějnějším podstromem až narazíš na neexpandovaný uzel. Tento uzel označ NODE.
Expanduj uzel NODE. Jestliže NODE nemá žádného následníka, přiřaď mu hodnotu FUTILITY (je ekvivalentní sdělení, že uzel není řešitelný) a přejdi na bod 7. Jinak pokračuj.
Představují-li někteří bezprostřední následníci elementární úlohy, označ je jako SOLVED (tj. přiřaď jim nulové ohodnocení), u zbývajících ohodnocení odhadni (vypočítej).
Připoj bezprostřední následníky uzlu NODE ke stromu G a přenes informace o jejich ohodnocení směrem nahoru k uzlu INIT takto:
V uzlech OR označ nejnadějnější podstromy (vždy hranu k nejlépe ohodnocenému bezprostřednímu následníku).
Vrať se na bod 2.