Standard Article

Backtracking

  1. Inês Lynce1,
  2. Vasco Manquinho1,
  3. João Marques-Silva2

Published Online: 16 MAR 2009

DOI: 10.1002/9780470050118.ecse033

Wiley Encyclopedia of Computer Science and Engineering

Wiley Encyclopedia of Computer Science and Engineering

How to Cite

Lynce, I., Manquinho, V. and Marques-Silva, J. 2009. Backtracking. Wiley Encyclopedia of Computer Science and Engineering. 283–289.

Author Information

  1. 1

    Technical University of Lisbon, Lisbon, Portugal

  2. 2

    University of Southampton, Southampton, United Kingdom

Publication History

  1. Published Online: 16 MAR 2009

Abstract

Backtracking search algorithms are commonly used to solve a wide range of decision and optimization problems. Backtracking has the advantage of potentially requiring a search tree with less nodes, when compared with a brute force algorithm. For further reducing the search tree size, constraint propagation can be used to remove inconsistent assignments. In addition, when solving optimization problems, backtracking may be adapted to take into account the value of the objective function. As soon as a partial assignment cannot be extended to a solution that is better than the best solution found so far, the algorithm backtracks. Another technique used to improve backtracking performance is learning. Learning is performed whenever a conflict is found, and it serves to prevent similar conflicts in the future. Learning may also be used to backtrack nonchronologically, thus not exploring irrelevant parts of the search tree.

Keywords:

  • backtracking;
  • search;
  • constraint propagation;
  • optimization;
  • objective function;
  • branch and bound;
  • learning;
  • nonchronological backtracking