Você está na página 1de 5

ESCOLA SECUNDÁRIA DE FORTE

Ano Letivo 2021/2022


Modelos de Grafos
Documento nº 4 - Circuitos Hamiltonianos. PCV.
Em qualquer circuito tem-se de começar e acabar no mesmo vértice.
Em vez de nos preocuparmos em não repetir arestas (circuitos eulerianos), vamo-nos preocupar
em não repetir vértices (circuitos hamiltonianos).
Um circuito hamiltoniano é um caminho que percorre todos os vértices de um grafo conexo
uma única vez, começando e terminando no mesmo vértice (único que se repete).
Um grafo diz-se hamiltoniano se nele se pode encontrar, pelo menos, um circuito
hamiltoniano.

Nota:
Claro que se não se repetem vértices também não se vão repetir arestas, mas, num circuito
hamiltoniano não temos de “apanhar” todas as arestas! O que interessa é que se apanhem todos
os vértices uma única vez e começar e acabar no mesmo vértice.
Exemplo 2, pág. 36
Não existe nenhum processo que nos permita, dado um grafo qualquer (exceto se for completo,
ou seja, se cada um dos vértices for adjacente a todos os outros), verificar se existe ou não um
circuito hamiltoniano. A única forma de saber se um grafo admite ou não um circuito
hamiltoniano é proceder a uma procura exaustiva.
Atividade 1, pág. 37
Exs 21, 23 pág 79/80
Opcional: ex 22, 24, 25 pág 79/80

O problema do caixeiro-viajante (PCV)


“Um caixeiro-viajante tem de visitar um certo número de cidades e conhece o custo para viajar
entre elas. Qual será a volta mais económica, visitando cada uma das cidades uma única vez e
regressando à cidade de onde partiu?”

Este é um problema de otimização inspirado na necessidade dos vendedores fazerem entregas


em diversos locais (as cidades) percorrendo o menor caminho possível, reduzindo o tempo
necessário para a viagem e os possíveis custos com transporte e combustível.

Nos problemas deste tipo, o que se pretende é encontrar o menor circuito de Hamilton.

1
Para representar as distâncias, os custos ou o tempo (entre outros), atribuímos valores às arestas
a que chamamos “pesos”.
Peso é um nº que se atribui a cada uma das arestas de um grafo. Pode
representar distâncias, custos, tempo, etc.

A um grafo com pesos atribuídos


chamamos grafo ponderado.

No fundo, no problema do
caixeiro viajante, procuramos um circuito hamiltoniano de “peso mínimo”.

Exemplo (exemplo 3, pág. 41/43) (“método das árvores”)


Uma delegada de informação médica tem na sua
agenda várias farmácias que deve visitar em diferentes
cidades. Os valores sobre as arestas indicam a
distância (em quilómetros) entre as cidades. Supondo
que saiu da cidade A, qual é o percurso mais curto que
lhe permite visitar todas as cidades uma única vez e
regressar a A?

Podemos analisar todas as hipóteses


possíveis:

Verifica-se a existência de percursos


com a mesma distância. São percursos
iguais 2 a 2, que no fundo representam o
mesmo percurso mas em sentido
contrário.

Vantagem e desvantagem desta forma


de proceder:

2
A vantagem desta forma de proceder é que garante que é obtida a solução ótima.
A desvantagem é que é simples com poucos vértices, mas que se pode tornar muito fastidioso e
rondaria o impossível quando o nº de vértices (cidades) aumentasse! É por esta razão que
vamos estudar mais dois métodos, a saber, “algoritmo dos mínimos sucessivos” e “algoritmo
por ordenação dos pesos das arestas”.

 Algoritmo dos mínimos sucessivos (ou algoritmo do vizinho mais próximo)


O objetivo é, começando numa cidade, seguir sempre para a cidade mais próxima ainda
não visitada.
 Algoritmo por ordenação dos pesos das arestas (ou algoritmo das arestas
classificadas)
Aqui é necessário começar por ordenar as arestas por ordem crescente de pesos. Depois
escolhe-se sucessivamente a aresta com o peso mais baixo tendo em conta alguns
aspetos...

Algoritmo dos mínimos sucessivos (ou algoritmo do vizinho mais próximo)

O objetivo é começar o percurso numa cidade e seguir sempre para a cidade mais próxima ainda
não visitada. (Se quisermos o melhor percurso temos de fazer isto para cada vértice possível de
partida)

Assim:
1º) Definimos a cidade (vértice) de partida. 
2º) Selecionamos a cidade mais próxima tal que: 
 Se houver duas à mesma distância escolhemos aleatoriamente; 
 Não podemos repetir nenhuma cidade exceto a última; depois de terem sido todas
visitadas, voltamos ao ponto de partida.

Exemplo:
O Gustavo precisa de visitar alguns clientes para entregar
encomendas. O grafo seguinte traduz os pontos da região
onde se encontram os clientes, bem como as distâncias
(em km) entre eles:

Determine qual é o melhor percurso (percurso mínimo),


que o Gustavo deve escolher.
Resolução:

3
Começa-se o percurso numa das cidades e segue-se sempre para a cidade mais próxima ainda
não visitada.

O menor percurso, com um total de 44 km, começa e acaba na cidade E.

Algoritmo por ordenação dos pesos das arestas (ou algoritmo das arestas classificadas)

1º) Ordenam-se as arestas pelos seus pesos; 


2º) Selecionam-se sucessivamente as arestas com menor peso, tendo em conta que:
- nunca escolhendo 3 arestas concorrentes no mesmo vértice*;
- nunca fechando um circuito quando ainda há vértices por visitar.
3º) Ordena-se a solução conforme o vértice de partida escolhido. 

* se um circuito hamiltoniano percorre todos os vértices de um grafo uma e uma só vez (exceto
o primeiro, que é também o último), então em cada vértice só podem concorrer duas e só duas
arestas.

Nota:
Pela aplicação do algoritmo por ordenação dos pesos das arestas, pode acontecer que as arestas,
à medida que vão sendo selecionadas, não fiquem logo unidas entre si. No entanto, o grafo final
terá sempre um circuito hamiltoniano.

Resolução (para o mesmo exemplo):

4
O percurso tem um comprimento de 4+7+8+10+20=49 km.

Em resumo:

Os algoritmos “dos
mínimos sucessivos” e “peso das arestas” não garantem encontrar o
circuito hamiltoniano mínimo (o ótimo), garantindo apenas encontrar um dos melhores. No
entanto, mesmo não garantindo a obtenção do circuito ótimo, a aplicabilidade destes dois
algoritmos é fácil, rápida e rentável.
Ex. 27 a 30 , pág. 80/81
Atividades 7 a 10 das págs. 48 a 50

Você também pode gostar