El backtracking es una estrategia para encontrar soluciones a problemas que satisfacen restricciones mediante la prueba sistemática de opciones y el retroceso cuando una opción no funciona. Se utiliza comúnmente para resolver problemas de ajedrez al encontrar todos los posibles movimientos de una pieza como el caballo o la reina en el tablero. También se aplica en lenguajes de programación y análisis sintácticos de compiladores.