Recovering Beam Search: enhancing the beam search approach for combinatorial optimization problems