¿Cómo funciona el algoritmo de Warnsdorff?

El algoritmo de Warnsdorff es un método heurístico muy simple para resolver el recorrido del caballero.
Desde este algoritmo puedes comenzar desde cualquier posición inicial del caballero en el tablero.
Regla de Warnsdorff: siempre muévete a un cuadrado adyacente no visitado con un grado mínimo.

ALGORITMO PARA IMPLEMENTAR LA REGLA WARNSDORFF:
• Se puede acceder a una posición Q desde una posición P si P puede moverse a Q mediante un solo movimiento de Caballero, y Q aún no ha sido visitado.
• La accesibilidad de una posición P es el número de posiciones accesibles desde P.

• Algoritmo:
1. establecer P para ser una posición inicial aleatoria en el tablero
2. marque el tablero en P con el número de movimiento “1”
3. para cada número de movimiento del 2 al número de casillas en el tablero:

—1. deje que S sea el conjunto de posiciones accesibles desde la posición de entrada
—2. establecer P para ser la posición en S con accesibilidad mínima
—3. marque el tablero en P con el número de movimiento actual
—4. devuelva el tablero marcado: cada casilla se marcará con el número de movimiento en el que se visita.

Si está interesado en ver el programa C para generar Knight’s Tour en un tablero de ajedrez 8 × 8 utilizando Warnsdorff Heuristics, consulte mi repositorio de Github:

bhaduriu / misc_progs_in_C-and-Cplusplus

🙂

More Interesting

¿Cuáles son algunas situaciones en las que conceptos algorítmicos como la complejidad del código y la programación dinámica dieron como resultado un mejor código en un proyecto de desarrollo real?

¿Cuáles son los beneficios del ordenamiento dinámico y sus desventajas en comparación con otros algoritmos de ordenamiento?

¿Qué es la técnica Hashing?

Cómo agregar dos elementos de matriz usando punteros

¿Cuáles son algunos algoritmos interesantes que se han encontrado en la naturaleza?

Con los algoritmos de cifrado modernos, ¿es factible que alguien sepa qué algoritmo se utilizó al mirar el texto cifrado?

¿Qué es un árbol en el estudio de estructuras de datos y algoritmos?

¿Cuáles son los diferentes usos de la estructura de datos Trie?

¿Por qué las variables de matriz no tienen una dirección?

En el algoritmo de búsqueda A * deberíamos tener una lista abierta y otra cerrada. ¿Cómo los implementa utilizando tanto el hashmap como una cola prioritaria en Java?

¿Cómo debo definir el orden de mi cromosoma en mi algoritmo genético?

¿Qué libro (s) y otros recursos recomendaría para que un principiante entienda las estructuras de datos y los algoritmos en C ++?

¿Cómo predicen las señales de tráfico en las autopistas cuánto tiempo llevará llegar desde su posición actual a un destino más adelante?

Dada una lista de cadenas, ¿cómo puedo determinar si existe un orden de caracteres para el cual las cadenas están ordenadas en orden lexicográfico?

¿Por qué debería vivir si mis problemas nunca se resuelven?