Tècnica de programació en la qual es manté un enregistrament de les decisions preses per a poder tornar enrere i, si no es pot arribar a la situació de destinació prevista, provar-ho de nou amb noves decisions, i d’aquesta manera explotar totes les possibilitats de forma sistemàtica.