Ein besonderes Programmierproblem, auf das ich kürzlich gestoßen bin, reduziert sich darauf, Hamilton-Pfade in einem rechteckigen Raster zu finden, das ungefähr so aussehen würde:
A 0 0 0
0 0 0 0
0 0 C D
Welche effektiven Heuristiken könnten angewendet werden, um sie zu finden - und insbesondere Techniken zum Trimmen / Verwerfen von Pfaden auf dem Weg?
Bearbeiten: Zur Verdeutlichung werden die Kanten gebildet, wenn Elemente horizontal und vertikal, aber nicht diagonal verbunden werden. Das Problem besagt auch, dass jedes Element, das mit 0 markiert ist, verwendet werden kann, um einen Pfad zu bilden, aber Nicht-0-Elemente sind "Hindernisse", die vermieden werden müssen.
A-0-0-0
|
0-0-0-0
|
0-0-C D
könnte zum Beispiel ein Weg sein. Ein anderer kann sein,
A 0-0-0
| | |
0 0 0-0
| | |
0-0 C D