1.4.2 Programación por vuelta atrás

La programación por vuelta atrás (backtracking) es un método que optimiza la exploración de soluciones al enfocarse solo en las ramas candidatas que tienen el potencial de conducir a una solución viable. A diferencia de la exploración exhaustiva, que evalúa todas las posibilidades, el backtracking "poda" aquellas ramas que no ofrecen oportunidades de éxito, es decir, que son estériles.

Este enfoque permite al algoritmo concentrarse en los caminos más prometedores, mejorando así su eficiencia. Por ejemplo, en un problema relacionado con subconjuntos, si la suma de los elementos considerados excede la suma objetivo, el algoritmo puede descartar inmediatamente esa rama. Luego, retrocede un nivel para explorar alternativas que aún no se han evaluado, aumentando la probabilidad de encontrar una solución.