Améliorations

Accueil Remonter Détection du blocage Cases excentrées

Améliorations successives réalisées sur la première version développée en Visual Basic

  1. Suppression des indices lignes et colonnes. Dans la première version, les destinations possibles d'une cases étaient calculées dans la boucle de recherche. Il est nettement plus rapide d'initialiser, avant le début de la recherche, la liste des destinations possibles de chacune des cases, plutôt que de calculer à chaque itération la case destination (déplacement d'un saut de cavalier) puis de vérifier que cette case appartient bien à l'échiquier (ligne et colonne compris entre 0 et 7). De ce fait les indices lignes et colonnes ne sont plus nécessaires. Ils sont cependant conservés.

  2. Sauvegarde et restauration des solutions dans des fichiers. Cette fonctionnalité avait un sens lorsque l'algorithme n'était pas optimum, le temps de recherche étant alors  très élevé. La solution trouvée est mémorisée dans un fichier. 

  3. Avance aléatoire. Les cases destination sont essayées dans un ordre "vaguement aléatoire". Cette option permet de trouver une solution plus rapidement que l'algorithme de base mais a peu d'intérêt en comparaison des améliorations 4 et 5.

  4. Détection précoce des blocages. A chaque avancée, toutes les cases sont vérifiées pour détecter si chacune d'elle est encore atteignable. Si ce n'est pas le cas, un blocage est détecté et le cavalier recule. cette option permet de réduire le nombre de coups nécessaires pour trouver une solution.

  5. Tri des destinations possibles par ordre du nombre d'origines possibles. Les cases les plus excentrées qui sont atteignables par peu de cases (moins de 8) sont essayées avant les autres cases. Cette programmation donne des résultats spectaculaires. Pour la plupart des cases, une solution est trouvée en quelques secondes. La sauvegarde des solutions dans un fichier perd alors beaucoup d'intérêt.