‹›Graphes et réseaux Le problème du chevalier
La version 11 ajoute la fonction FindHamiltonianPath, élargissant des capacités pour trouver des chemins, des cycles et des tours. Trouvez le problème d'un chevalier dans lequel un chevalier se déplace à chaque espace sur un échiquier en seulement onze heures.
Montrer l'entrée complète de Wolfram Language
(* draw a checker board *)
checkerboard =
ArrayPlot[Table[Mod[j + i, 2], {i, 8}, {j, 8}],
ColorRules -> {1 -> RGBColor[0, .55, .77],
0 -> RGBColor[.67, .9, .99]}, Frame -> False,
DataRange -> {{1, 8}, {1, 8}}];
(* compute knight's tour *)
g = KnightTourGraph[8, 8];
tour = FindHamiltonianPath[g];
(* show the tour *)
Manipulate[
Show[{checkerboard,
HighlightGraph[g, PathGraph[tour[[;; i]]],
PlotTheme -> "Marketing",
GraphHighlightStyle -> "DehighlightHide",
EdgeStyle -> Thickness[.01]]}], {i, 1, Length[tour], 1},
SaveDefinitions -> True]