Historicamente, os caminhos eulerianos estão associados à génese da teoria de grafos, essencialmente à custa das pontes de Königsberg (actual Kalingrado, no enclave russo entre a Polónia e a Lituânia). A questão era saber se seria possível passar exactamente uma vez em cada ponte, voltando ao ponto de partida.
Em 1736, Leonhard Euler mostrou que tal não é possível. O multi-grafo associado ao problema é
. Seja um circuito euleriano. Como passa por todas as arestas, então passa por todos os vértices. Para qualquer vértice , passa por , e como não repete arestas, então o número de arestas que incidem em é par.
. Suponhamos agora que é par. Como o grafo é conexo, então o grau de qualquer vértice é um par não nulo. Portanto, o grafo não é uma árvore, e portanto existe um ciclo em . Defina-se o grafo como o grafo obtido de removendo as arestas de . Note-se que os graus dos vértices de continuam a sere números pares. Se não tem arestas (o que correponde ao caso em que contém todas as arestas de ) então (3) está provado. Caso contrário, repete-se o algoritmo de remoção de arestas.
. Seja um ciclo da partição do conjunto das arestas. Se é o único ciclo, então é euleriano. Caso contrário, existe um outro ciclo com um vértice comum com (recorde que o grafo é conexo). Considere a concatenação . Este caminho, iniciado (e terminado) em é um circuito. Repetindo o algoritmo, obtemos um circuito que contém todas as arestas, e logo o grafo é euleriano.
Como aplicação, o teorema anterior mostra que um grafo cúbico (e em particular o cubo e o grafo de Petersen) não é euleriano. O grafo
A demonstração do teorema anterior, por outro lado, fornece-nos uma construção de um circuito euleriano, no caso de grafo dado ter os vértices de grau par. Considere, como exemplo, o grafo :
Atentando, em primeiro lugar, nos ciclos e , estes têm o vértice em comum. Seja , que é um circuito:
Um caminho hamiltoniano num grafo é um caminho elementar que contém todos os vértices do grafo. Um ciclo hamiltoniano é um ciclo que contém todos os vértices do grafo. Um grafos diz-se grafo hamiltoniano se contém um ciclo hamiltoniano.
É importante salientar que o problema de se saber se certo grafo hamiltoniano é NP-completo. Ou seja, e simplicando, é simples testar que um ciclo é hamiltoniano, mas o problema recíproco de se encontrar um ciclo hamiltoniano é difícil. Ou seja, não se encontrou, até à data, um algoritmo que resolva tal problema em tempo razoável (no tamanho do input). Existem, no entanto, condições necessárias e outras suficientes que permitem, em alguns casos, testar se o grafo é (ou não) hamiltoniano de uma forma fácil.
Se o grafo é hamiltoniano então
Com base nestas regras, vamos mostrar que o seguinte grafo não é hamiltoniano:
Suponha que o grafo é hamiltoniano. Como os vértices têm grau dois, as arestas
Com base nestes resultados, segue que são hamiltonianos. O grafo , apresentado em baixo, é também hamiltoniano: