Sem perda de generalidade, podemos assumir que, se existe um circuito hamiltoniano, ele começa no vértice a. Conseqüentemente, tornamos o vértice a a raiz da árvore do espaço de estados. O primeiro componente de nossa solução futura, se existir, é um primeiro vértice intermediário de um circuito hamiltoniano a ser construído. Usando a ordem do alfabeto para quebrar o laço triplo entre os vértices adjacentes a a, selecionamos o vértice b. De b, o algoritmo avança para c, depois para d, depois para e e finalmente para f, o que prova ser um beco sem saída. Portanto, o algoritmo retrocede de f para e, depois para d e, em seguida, para c, o que fornece a primeira alternativa a ser seguida pelo algoritmo. Ir de c para e eventualmente se mostra inútil, e o algoritmo tem que retroceder de e para ce depois para b. A partir daí, ele vai para os vértices f, e, c e d, a partir dos quais pode legitimamente retornar a a, resultando no circuito hamiltoniano a, b, f, e, c, d, a. Se quiséssemos encontrar outro circuito hamiltoniano, poderíamos continuar esse processo retrocedendo a partir da folha da solução encontrada.
Mais sobre o texto origina