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: