私が最近遭遇した特定のプログラミング問題は、次のような長方形のグリッドでハミルトニアンパスを見つけることに帰着します。
A 0 0 0
0 0 0 0
0 0 C D
それらを見つけるために適用できる効果的なヒューリスティックは何ですか?特に、途中でパスをトリム/破棄するテクニックは?
編集:明確にするために、要素が水平および垂直に接続されているが、斜めには接続されていない場合、エッジが形成されます。この問題は、0とマークされた要素を使用してパスを形成できることも示していますが、0以外の要素は回避する必要がある「障害物」です。
A-0-0-0
|
0-0-0-0
|
0-0-C D
たとえば、1つのパスにすることができます。別の可能性があります、
A 0-0-0
| | |
0 0 0-0
| | |
0-0 C D