2. Que es ?
• Es una técnica algorítmica que consiste en la resolución de
problemas mediante la búsqueda sistemática de soluciones
exhaustivas. Comúnmente, esta técnica hace uso de la
recursividad, y es importante que domines la implementación de
las llamadas recursivas con destreza antes de continuar
3. ¿Cómo trabaja?
• El procedimiento general se basa en la descomposición de la tarea a
realizar en su tareas o soluciones parciales. El método proporciona una
manera sistemática de generar todas las posibles soluciones, La
descripción natural del proceso se representa mediante un árbol de
búsqueda en el que se muestra como cada tarea se descompone o se
ramifica en su tareas
4. EJEMPLO
• Considerando el conjunto {1, 2, 3}, encontrar todos los subconjuntos que
entre sus elementos sumen 4. Tomando en cuenta el orden de los
elementos; es decir, el subconjunto {1, 3} será distinto de {3, 1}.
Alternativas: 1, 2 y 3
Subtarea: suma
acumulativa
Solución: suma
igual a 4
5. El recorrido se construye eligiendo una alternativa del conjunto de
opciones disponibles de cada subtarea del proceso, por cada subtarea
se verifica si cumple con la solución del problema; si se encuentra una
alternativa incorrecta, la búsqueda retrocede hasta el paso anterior y
toma la siguiente alternativa. Cuando se han terminado las
posibilidades, se vuelve a la elección anterior y se toma la siguiente
opción. Si no hay más alternativas la búsqueda falla.
6. BACKTRACKING RECURSIVO E
ITERATIVO
• La resolución de cada subtarea es similar a la resolución de la tarea
padre, por ello, es común que para implementar algoritmos con
BACKTRACKING se hace uso de las funciones recursivas, en cada llamada
a la función se asigna diferentes valores, probando todos los valores
posibles, y manteniendo aquella que haya tenido éxito en las anteriores
llamadas recursivas.
7. TIPOS DE BACKTRACKING
• En el esquema general el backtracking encuentra una única
solución, independientemente de que hubiesen más, pero existen
variantes del esquema que ofrecen más posibilidades a la hora de buscar
soluciones.
8. LA PRIMERA SOLUCIÓN
• Este es el esquema general, donde el algoritmo se detiene y se devuelve
al momento de encontrar la primera solución, sin considerar el resto de
las ramas del árbol de exploración, ni siquiera que la que ha conseguido
no sea la mejor. El siguiente “pseudocódigo” muestra una plantilla del
esquema general.
9.
10. TODAS LAS SOLUCIONES
• Explora todo el espacio de búsqueda para obtener el conjunto de todas las
soluciones que satisfacen el problema. Cada vez que se encuentre con una
solución completa, la guarda en una estructura de datos y continúa el
recorrido hasta que no queden más posibilidades por explorar. El esquema
general se puede modificar para que adopte esta variante.
11.
12. LA MEJOR SOLUCIÓN
• Procesa todo el espacio de búsqueda, similar a la anterior, a diferencia en
que a medida que se van obteniendo nuevas soluciones se compararan
con la mejor que se tenía hasta los momentos, y de ser mejor se queda
con la nueva