Voltar ao inícioMatemática · 11.º ano MACS · Mudar de matéria
Começar grátis
MACS 11.º · Matemática
Modelos de grafos · Grafos de Hamilton

O caixeiro-viajante

A Rita faz as entregas de uma pastelaria de Aveiro: de manhã tem de levar encomendas de pastéis de nata a três cafés e voltar à pastelaria. A ordem dos cafés muda o número de quilómetros e, por isso, o gasóleo gasto. Como escolher o percurso mais curto? Vais ver que é um problema de grafos, mas muito diferente do de Euler. No fim voltamos à Rita.

Circuito hamiltoniano

Nos grafos de Euler queríamos percorrer todas as arestas (ruas) uma só vez. Agora o objetivo é outro: visitar todos os vértices (locais) uma só vez, como um entregador que tem de passar por todos os clientes.

Repara na diferença: num circuito de Euler podes passar várias vezes no mesmo vértice, mas nunca repetes uma aresta. Num circuito hamiltoniano, cada vértice aparece uma só vez (o de partida é o único que se repete, no fim), e não é obrigatório usar todas as arestas.

Grafo com cinco vértices R, S, T, U e V; o circuito hamiltoniano R, S, T, U, V, R está destacado e a aresta RT fica de fora. R S T U V RT (não usada)

O circuito destacado é $R \to S \to T \to U \to V \to R$. A aresta $RT$ existe no grafo, mas o circuito não precisa dela.

Pratica★☆☆Por começar
Um grafo tem vértices {A, B, C, D, E} e arestas AB, BC, CD, DE, EA, AC e BD. a) Explica, com as tuas palavras, o que é um ciclo de Hamilton (ciclo hamiltoniano). b) A…

Um grafo tem vértices {A, B, C, D, E} e arestas AB, BC, CD, DE, EA, AC e BD.

  1. a) Explica, com as tuas palavras, o que é um ciclo de Hamilton (ciclo hamiltoniano).
  2. b) A sequência A → C → D → E → B → A é um ciclo hamiltoniano deste grafo? Justifica.
  3. c) Indica um ciclo hamiltoniano do grafo, escrevendo a sequência de vértices percorridos.
Resolver

Quando existe um circuito hamiltoniano?

Para Euler há um critério simples (graus pares e grafo conexo). Para Hamilton não existe um critério simples que funcione sempre. O que temos são condições fáceis de verificar.

A razão é simples: num circuito, cada vértice é «entrado» por uma aresta e «saído» por outra. Um vértice com grau 1 (uma única aresta) não consegue ser atravessado e regressar ao início.

Os mapas de estradas entre cidades costumam ser quase completos, por isso o problema aparece sempre com muitas soluções possíveis.

Pratica★☆☆Por começar
Um grafo tem vértices {P, Q, R, S} e arestas PQ, PR, PS, QR e RS. a) O grafo admite um ciclo hamiltoniano? Em caso afirmativo, indica-o. b) Se for retirada a aresta QR,…

Um grafo tem vértices {P, Q, R, S} e arestas PQ, PR, PS, QR e RS.

  1. a) O grafo admite um ciclo hamiltoniano? Em caso afirmativo, indica-o.
  2. b) Se for retirada a aresta QR, continua a existir um ciclo hamiltoniano? Justifica, relacionando a tua resposta com o grau dos vértices.
Resolver

O problema do caixeiro-viajante

Voltemos à Rita. Os locais são vértices; as estradas entre eles são arestas com um peso, a distância em quilómetros. Num grafo ponderado como este, queremos um circuito hamiltoniano de peso total mínimo. Este é o problema do caixeiro-viajante: visitar todos os locais uma só vez, voltar ao início e gastar o menos possível (quilómetros, combustível, dinheiro).

Seja $A$ a pastelaria e $B$, $C$ e $D$ os três cafés. As distâncias, em km, estão na figura.

Grafo ponderado com vértices A, B, C e D: AB = 1, BC = 2, CD = 10, DA = 10, AC = 3 e BD = 4 quilómetros. A B C D 1 2 10 10 3 4

Com 3 cafés, partindo de $A$, há $3 \times 2 \times 1 = 6$ ordens possíveis: três escolhas para o primeiro café, duas para o segundo, uma para o último. Organizamo-las numa árvore (cada ramo é uma escolha) e somamos os pesos ao longo de cada caminho, sem esquecer a viagem de volta a $A$.

Percurso Soma dos pesos Total
$A \to B \to C \to D \to A$ $1+2+10+10$ 23 km
$A \to B \to D \to C \to A$ $1+4+10+3$ 18 km
$A \to C \to B \to D \to A$ $3+2+4+10$ 19 km
$A \to C \to D \to B \to A$ $3+10+4+1$ 18 km
$A \to D \to B \to C \to A$ $10+4+2+3$ 19 km
$A \to D \to C \to B \to A$ $10+10+2+1$ 23 km

O mínimo é 18 km, com $A \to B \to D \to C \to A$ (ou o mesmo percurso em sentido contrário, $A \to C \to D \to B \to A$). Repara que cada percurso aparece duas vezes, uma em cada sentido, com o mesmo total.

Pratica★★☆Por começar
A empresa de catering SaborLuso, sediada em Coimbra (C), tem de entregar refeições em três escolas, situadas em Aveiro (A), Leiria (L) e Viseu (V), regressando a Coimbra…

A empresa de catering SaborLuso, sediada em Coimbra (C), tem de entregar refeições em três escolas, situadas em Aveiro (A), Leiria (L) e Viseu (V), regressando a Coimbra no fim. A tabela indica as distâncias rodoviárias, em quilómetros, entre as cidades.

A C L V
A — 65 115 95
C 65 — 75 90
L 115 75 — 135
V 95 90 135 —
  1. a) Partindo de Coimbra, quantos percursos diferentes existem que visitam as três escolas exatamente uma vez e regressam a Coimbra? Lista todos esses percursos.
  2. b) Calcula a distância total de cada percurso.
  3. c) Indica o percurso mais curto e a respetiva distância.
  4. d) O que observas quanto aos comprimentos dos percursos percorridos em sentidos opostos?
Resolver

Um algoritmo: o vizinho mais próximo

Quando há muitos vértices, listar tudo é impraticável. Usamos um algoritmo: uma sequência de decisões passo a passo que dá sempre uma solução. O mais simples é o método do vizinho mais próximo.

O algoritmo é rápido, mas nem sempre dá o melhor percurso: escolher o mais barato em cada passo pode obrigar a uma viagem de regresso muito longa. Dá uma solução aceitável, que podes comparar com a ótima quando conseguires listar todas as possibilidades. Aqui o algoritmo dá 23 km e o ótimo é 18 km.

Pratica★★★Por começar
A empresa de painéis solares SolSul, sediada em Évora (E), tem de visitar clientes em Beja (B), Faro (F), Setúbal (S) e Portalegre (P), regressando a Évora no fim. A…

A empresa de painéis solares SolSul, sediada em Évora (E), tem de visitar clientes em Beja (B), Faro (F), Setúbal (S) e Portalegre (P), regressando a Évora no fim. A tabela indica as distâncias aproximadas, em quilómetros.

E B F S P
E — 80 220 105 110
B 80 — 145 150 155
F 220 145 — 200 300
S 105 150 200 — 200
P 110 155 300 200 —
  1. a) Aplica o método do vizinho mais próximo: parte de Évora e desloca-te sempre para a cidade ainda não visitada mais próxima; no fim, regressa a Évora. Escreve o percurso obtido e calcula a sua distância total.
  2. b) Um colega sugere o percurso E → S → F → B → P → E. Calcula a distância total deste percurso e compara-a com a do método do vizinho mais próximo.
  3. c) O que concluis sobre a fiabilidade do método do vizinho mais próximo? Como poderias garantir que encontras o percurso mais curto de todos?
Resolver

Voltando à Rita: com a árvore, ela descobre que o melhor percurso é $A \to B \to D \to C \to A$, com 18 km; o vizinho mais próximo daria 23 km, mais 5 km por dia.

Em resumo

  • Um circuito hamiltoniano passa por todos os vértices uma só vez e regressa ao início; não tem de usar todas as arestas (diferente de Euler).

  • Não há critério simples para a sua existência. Condição necessária: todos os vértices com grau ≥ 2. Um grafo completo com 3 ou mais vértices tem sempre circuito hamiltoniano.

  • No problema do caixeiro-viajante, num grafo ponderado procura-se o circuito hamiltoniano de menor peso total (não esquecer a aresta de regresso).

  • A árvore lista todos os percursos: partindo de um vértice, num grafo completo com $n$ vértices há $(n-1)!$. Soma-se o peso de cada um e compara-se.

  • O vizinho mais próximo é um algoritmo rápido: em cada passo vai-se para o vértice não visitado mais próximo e no fim regressa-se. Dá uma solução aceitável, nem sempre a ótima.

Ver todos os exercícios deste tema