Um problema específico de programação que encontrei recentemente reduz a localização de caminhos hamiltonianos em uma grade retangular que seria algo como,
A 0 0 0
0 0 0 0
0 0 C D
Quais são algumas heurísticas eficazes que podem ser aplicadas para encontrá-las - e particularmente técnicas para aparar / descartar caminhos ao longo do caminho?
Editar: Apenas para esclarecer, as arestas são formadas quando os elementos são conectados horizontal e verticalmente, mas não na diagonal. O problema também afirma que qualquer elemento marcado como 0 pode ser usado para formar um caminho, mas os elementos que não são 0 são "obstáculos" que precisam ser evitados.
A-0-0-0
|
0-0-0-0
|
0-0-C D
poderia ser um caminho, por exemplo. Outro pode ser,
A 0-0-0
| | |
0 0 0-0
| | |
0-0 C D