Backtracking
_________________________________________________
_________________________________________________
Definición
con ejemplo aplicado en la vida real
Backtracking
es una manera de recorrer un arbol de posibles soluciones. te voy a describir
el algoritmo de manera simple. imagina que quieres cruzar un laberinto, el
laberinto tiene una puerta de entrada y salida. estas frente a la puerta de
entrada y tienes tres caminos a seguir, escoges el de la derecha y marcas con
una raya en la pared antes de entrar en ese camino, caminas y te topas con
otras division, nuevamente tres caminos, escoges el de la derecha y lo marcas
(en la pared con una raya de tiza), te vas por el camino y te encuentras que
esta cerrado..¿Que haces? pues te devuelves (back) y vuelves a la ultima
division ahora tienes solo dos caminos para escoger, escoges el de mas a la
derecha y que no esta marcado, lo marcas, y avanzas, cerrado, te devuelves a la
division, escoges el de mas a la derecha que no este marcado (igual queda uno)
lo marcas, avanzas, cerrado, te devuelves, y.. no queda nada para escoger, todo
esta marcado, te devuelves y vuelves a la primera division, y escoges el camino
mas a la derecha que no este marcado...
Supongo
que ya entienes el algoritmo, ahora la gracia es implementarlo con
recursividad, la recursividad es que la misma funcion se use a si misma para
generar este algoritmo, recuerda que entre la primera division y la segunda
division no hay diferencias.
Enrique R.
No comments:
Post a Comment