Tuesday, January 13, 2015

Definiciones

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