Notasbit

Las mejores noticias de tecnología en un sólo lugar

Publicado por: Microsiervos

Publicado en: 15/11/2017 06:46

Escrito por: [email protected] (Alvy)

Los algoritmos recursivos de vuelta atrás (backtracking) explicados y con ejemplos

Andrea Iacono publicó un buen artículo sobre los algoritmos de «vuelta atrás»: Backtracking Explained. Se trata de una estrategia normalmente recursiva para resolver problemas como los de los laberintos, la colocación de piezas y similares, en los que mediante una búsqueda en profundidad se puede dar con la solución.

El nombre vuelta atrás (backtracking) viene del hecho de que en la búsqueda de la solución se va volviendo a un punto anterior para probar alternativas.

Imaginemos un laberinto: al llegar a una encrucijada (1, 2, 3) se prueba con una dirección. Si con eso se llega a la solución, problema resuelto. Si no, se vuelve atrás a la encrucijada anterior y se prueba con otra, repitiendo el proceso cuantas veces sea necesario. (Si se agotan todas las opciones y no se ha llegado, es que no existe solución: no hay salida)

Normalmente las combinaciones de este tipo de problemas son muchas, pero se aplican ciertas restricciones, lo que suele hacer el total de opciones a probar algo computable en un tiempo razonable. También se puede buscar revisar todas planteando obtener «una solución mejor»; de este modo se puede llegar a la solución óptima.

Algunos ejemplos típicos en los que se puede aplicar este método son los laberintos, el Sudoku (para uno normal de 9x9, entre 15.000 y 90.000 ciclos) o en ajedrez el problema del recorrido del caballo o el de las ocho damas. En terrenos más prácticos el problema de la mochila es uno de los ejemplos más clásicos: …

Top noticias del 15 de Noviembre de 2017