Teoria dos grafos: exercícios com soluções passo a passo

Exercícios grátis de Teoria dos grafos com diagramas, dicas e soluções completas resolvidas. Valores novos a cada vez, em três níveis: graus e arestas, caminhos eulerianos e árvores, caminhos mínimos e árvores geradoras.

Exercício gratuitoFácil

Uma árvore tem 12 vértices. Quantas arestas |E| ela tem?

|V| = 12

Resposta exata: um número inteiro, sem arredondar.

Próximo exercício →
Pratique Teoria dos grafos de graçaPratique Teoria dos grafos agora5 exercícios grátis todos os dias. Sem cartão.

O que você pratica

  1. Fácilgraus e arestas
  2. Médiacaminhos eulerianos e árvores
  3. Difícilcaminhos mínimos e árvores geradoras

Como resolver exercícios de Teoria dos grafos

  1. Anote o grau de cada vértice; a soma dos graus é igual ao dobro do número de arestas.
  2. Em questões de Euler, verifique se o grafo é conexo e conte os vértices de grau ímpar.
  3. Para árvores, use n − 1 arestas e o lema do aperto de mãos.
  4. Em Dijkstra, mantenha uma tabela de distâncias provisórias e fixe a cada rodada o vértice não fixado de menor distância.
  5. Para uma árvore geradora mínima, ordene as arestas por peso e pule toda aresta que feche um ciclo (Kruskal), ou faça crescer uma árvore a partir de um vértice inicial (Prim).

Erros comuns

  • Esquecer de dividir a soma dos graus por 2.
  • Chamar um grafo de euleriano sem verificar a conexidade.
  • Fixar um vértice em Dijkstra antes que sua distância seja a menor.
  • Pegar as arestas mais leves sem verificar se há ciclos.
  • Contar os circuitos hamiltonianos de Kn como n! em vez de (n − 1)!/2.

Fórmulas principais

Lema do aperto de mãos
Σ deg(v) = 2|E|
Grafos completos
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Grafo regular
|E| = n·k/2
Árvore e floresta
|E| = n − 1, |E| = n − c
Folhas de uma árvore
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuito: todos os graus pares; caminho: exatamente 2 graus ímpares
Circuitos hamiltonianos em Kn
(n − 1)!/2
Atualização de Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Passeios de comprimento L
(Mᴸ)ij

Aprenda Teoria dos grafos do zero

Antes disso: Conjuntos, relações e funções

1Vértices, arestas e graus

Um grafo consiste em vértices (pontos) e arestas (linhas entre dois vértices). Num grafo simples não há laços nem arestas duplas.

O grau de um vértice é o número de arestas que o tocam. Cada aresta tem duas pontas, então soma 1 ao grau de cada uma. Isso dá o lema do aperto de mãos:

Σ deg(v) = 2·|E|

Duas consequências: a soma dos graus é sempre par, e o número de vértices de grau ímpar também é par.

  • O grafo completo Kn liga todos os pares: n(n − 1)/2 arestas.
  • O grafo bipartido completo Km,n liga cada vértice de um lado a cada vértice do outro: m·n arestas.
  • Um grafo k-regular com n vértices tem n·k/2 arestas.

A matriz de adjacência tem um 1 em (i, j) quando i e j estão ligados. Para um grafo não direcionado ela é simétrica, a soma de uma linha é um grau, e a entrada (i, j) de Mᴸ conta os passeios de comprimento L de i a j.

Autoavaliação Um grafo tem graus 3, 3, 2, 2, 2. Quantas arestas ele tem?
  1. 10
  2. 12
  3. 5
  4. 6

Resposta: 6. Os graus somam 12, e cada aresta é contada duas vezes, então há 12/2 = 6 arestas. O 5 é o número de vértices.

2Euler e Hamilton

Um circuito euleriano usa cada aresta exatamente uma vez e volta ao ponto de partida. Um caminho euleriano usa cada aresta uma vez, mas pode terminar em outro lugar. Para um grafo conexo:

  • todos os graus pares: existe um circuito euleriano;
  • exatamente dois graus ímpares: existe um caminho euleriano, de um vértice ímpar ao outro;
  • mais de dois graus ímpares: nenhum dos dois.

Um circuito hamiltoniano visita cada vértice exatamente uma vez. Não existe um teste simples de graus para ele. Em Kn há (n − 1)!/2 circuitos hamiltonianos diferentes: fixe o início, ordene os outros n − 1 vértices e divida por 2 pelos dois sentidos.

Autoavaliação Um grafo conexo tem graus 2, 3, 4, 3, 2. O que ele tem?
  1. Nenhum dos dois
  2. Tanto um circuito euleriano quanto um caminho euleriano que não é circuito
  3. Um caminho euleriano, mas nenhum circuito euleriano
  4. Um circuito euleriano

Resposta: Um caminho euleriano, mas nenhum circuito euleriano. Exatamente dois vértices têm grau ímpar (os dois 3), então existe um caminho euleriano entre eles, mas não um circuito.

3Árvores

Uma árvore é um grafo conexo sem ciclos. Toda árvore com n vértices tem exatamente n − 1 arestas. Acrescentar qualquer aresta cria um ciclo; remover qualquer aresta a desconecta.

Uma floresta de c árvores com n vértices tem n − c arestas. Um grafo conexo com m arestas mantém uma árvore geradora depois de remover m − n + 1 arestas.

O lema do aperto de mãos conta as folhas: Σ deg = 2(n − 1). Uma forma curta é L = 2 + Σ (d − 2) sobre os vértices de grau d ≥ 3. Uma árvore com dois vértices de grau 3 e o resto folhas tem 2 + 1 + 1 = 4 folhas.

4Dijkstra e árvores geradoras mínimas

O algoritmo de Dijkstra encontra as menores distâncias a partir de um vértice inicial num grafo com pesos não negativos.

  1. Dê ao início a distância 0 e a todos os outros vértices ∞.
  2. Fixe o vértice não fixado de menor distância; sua distância agora é definitiva.
  3. Para cada vizinho v, atualize d(v) = min(d(v), d(u) + w(u, v)).
  4. Repita até que o destino seja fixado.

Uma árvore geradora mínima conecta todos os vértices com o menor peso total. Kruskal ordena as arestas da mais leve para a mais pesada e pega cada uma, a menos que feche um ciclo. Prim faz crescer uma árvore a partir de um vértice inicial, sempre acrescentando a aresta mais leve que sai dela. Ambos param após n − 1 arestas.

Exemplo resolvido

Encontre a menor distância de A a E no grafo abaixo.

1

Início

412581ABCDE

d(A) = 0. Seus vizinhos recebem d(B) = 4 e d(C) = 1.

2

Fixe C (1)

Passando por C: d(B) = min(4, 1 + 2) = 3 e d(E) = 1 + 8 = 9.

3

Fixe B (3)

Passando por B: d(D) = 3 + 5 = 8.

4

Fixe D (8)

Passando por D: d(E) = min(9, 8 + 1) = 9. Nenhuma melhora, um empate.

5

Fixe E (9)

E está fixado: sua distância é definitiva.

Resposta

A menor distância é d(E) = 9, pelo caminho A → C → E. A rota A → C → B → D → E tem o mesmo comprimento, 1 + 2 + 5 + 1 = 9.

Autoavaliação O algoritmo de Kruskal pegou as arestas de peso 1, 2 e 3. A próxima aresta mais leve, de peso 4, liga dois vértices que já estão conectados. O que acontece?
  1. A aresta de peso 3 é removida no lugar dela
  2. Ela é descartada porque fecharia um ciclo
  3. Ela é escolhida porque é a mais leve que sobrou
  4. O algoritmo para

Resposta: Ela é descartada porque fecharia um ciclo. Kruskal nunca fecha um ciclo: uma aresta entre dois vértices da mesma componente é descartada, e o algoritmo passa para a próxima aresta.

5Erros comuns

  • Esquecer de dividir a soma dos graus por 2 para obter o número de arestas.
  • Testar a existência de um circuito euleriano sem verificar se o grafo é conexo.
  • Fixar um vértice em Dijkstra antes que ele tenha a menor distância provisória.
  • Pegar as n − 1 arestas mais leves sem verificar a existência de ciclos.
  • Contar os circuitos hamiltonianos de Kn como n! em vez de (n − 1)!/2.

6Como são as questões de prova

  • Fácil: graus e arestas. Você usa o lema do aperto de mãos, conta as arestas de Kn, Km,n, grafos regulares e árvores, lê uma matriz de adjacência ou clica no vértice com um dado grau.
  • Médio: caminhos eulerianos e árvores. Você decide se um grafo tem circuito ou caminho euleriano, conta as folhas de uma árvore, conta as arestas a remover para obter uma árvore geradora ou conta os circuitos hamiltonianos em Kn.
  • Difícil: caminhos mínimos e árvores geradoras. Você executa o algoritmo de Dijkstra, encontra o vértice fixado em uma dada rodada, encontra o peso de uma árvore geradora mínima, clica na aresta que Kruskal ou Prim acrescenta em seguida ou conta passeios com a matriz de adjacência.

Aprenda passo a passo no aplicativoAprenda passo a passo no aplicativo

Exemplos resolvidos

Exemplo 1Fácil
AABBCCDDEE0010000001100010000101110

A matriz de adjacência de um grafo simples não direcionado é mostrada. Quantas arestas |E| o grafo tem?

Calcule |E|

Mostrar dicas
  1. A entrada (i, j) vale 1 quando os vértices i e j estão ligados por uma aresta.
  2. Cada aresta {i, j} dá dois 1s: um em (i, j) e outro em (j, i).
  3. A matriz contém 8 uns.
Mostrar a resposta e a solução passo a passo

Graus: o grau de um vértice é o número de arestas que o tocam. Cada aresta tem duas pontas, então os graus somam o dobro do número de arestas: Σ deg(v) = 2|E| (o lema do aperto de mãos). Portanto o número de vértices de grau ímpar é par. Kn tem n(n − 1)/2 arestas, um grafo k-regular com n vértices tem nk/2, e uma árvore com n vértices tem n − 1 arestas.

Conte os uns

somas das linhas: 1 + 1 + 2 + 1 + 3 = 8
|E| = 8/2 = 4

Resposta

|E| = 4
Exemplo 2Média
ABCDEFGCircuito eulerianoCaminho euleriano, sem circuitonenhuma das duas

O grafo conexo tem um circuito euleriano, um caminho euleriano que não é circuito, ou nenhum dos dois? Clique na sua resposta.

|V| = 7|E| = 10
  1. 1Circuito euleriano
  2. 2Caminho euleriano, sem circuito
  3. 3nenhuma das duas
Mostrar dicas
  1. O teorema de Euler só precisa dos graus dos vértices (o grafo é conexo).
  2. Todos os graus pares: circuito euleriano. Exatamente dois graus ímpares: caminho euleriano entre eles. Mais do que isso: nenhum dos dois.
  3. Conte os vértices de grau ímpar.
Mostrar a resposta e a explicação

Euler, Hamilton e árvores: um grafo conexo tem um circuito euleriano (cada aresta uma vez, de volta ao início) quando todo vértice tem grau par, e um caminho euleriano que não é circuito quando exatamente dois vértices têm grau ímpar; o caminho vai então de um vértice ímpar ao outro. Um circuito hamiltoniano visita cada vértice uma vez; Kn tem (n − 1)!/2 deles. Uma árvore com n vértices tem n − 1 arestas, e um grafo conexo com m arestas mantém uma árvore geradora depois de remover m − n + 1 arestas.

Graus

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 4, deg(E) = 4, deg(F) = 2, deg(G) = 3

Vértices ímpares

A, G → 2
Caminho euleriano, sem circuito

Resposta

Caminho euleriano, sem circuito

O caminho euleriano começa em um vértice ímpar e termina no outro.

Exemplo 3Difícil
ABCDEF

Quantos passeios fechados de comprimento 3 começam e terminam em E? Um passeio pode repetir vértices e arestas. Chame o número de N.

M = matriz de adjacênciaL = 3

Calcule N

Mostrar dicas
  1. Com a matriz de adjacência M, o número de passeios de comprimento L de i a j é a entrada (i, j) de Mᴸ.
  2. Conte primeiro os passeios de comprimento 2 de E a cada vértice e depois dê mais um passo.
  3. Passeios de comprimento 2 a partir de E: A: 2, B: 1, C: 0, D: 2, E: 4, F: 1.
Mostrar a resposta e a solução passo a passo

Graus: o grau de um vértice é o número de arestas que o tocam. Cada aresta tem duas pontas, então os graus somam o dobro do número de arestas: Σ deg(v) = 2|E| (o lema do aperto de mãos). Portanto o número de vértices de grau ímpar é par. Kn tem n(n − 1)/2 arestas, um grafo k-regular com n vértices tem nk/2, e uma árvore com n vértices tem n − 1 arestas.

Matriz de adjacência

A: 0 1 1 0 0 0
B: 1 0 0 1 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

Mais um passo

(M³)EE = 2·0 + 1·1 + 0·1 + 2·1 + 4·0 + 1·1 = 4

Resposta

N = 4

Perguntas e respostas

Teoria dos grafos: o que é?

Um grafo consiste em vértices (pontos) e arestas (linhas entre dois vértices). Num grafo simples não há laços nem arestas duplas.

O grau de um vértice é o número de arestas que o tocam. Cada aresta tem duas pontas, então soma 1 ao grau de cada uma. Isso dá o lema do aperto de mãos:

Teoria dos grafos: como resolver os exercícios passo a passo?
  1. Anote o grau de cada vértice; a soma dos graus é igual ao dobro do número de arestas.
  2. Em questões de Euler, verifique se o grafo é conexo e conte os vértices de grau ímpar.
  3. Para árvores, use n − 1 arestas e o lema do aperto de mãos.
  4. Em Dijkstra, mantenha uma tabela de distâncias provisórias e fixe a cada rodada o vértice não fixado de menor distância.
  5. Para uma árvore geradora mínima, ordene as arestas por peso e pule toda aresta que feche um ciclo (Kruskal), ou faça crescer uma árvore a partir de um vértice inicial (Prim).
Teoria dos grafos: quais são os erros mais comuns?
  • Esquecer de dividir a soma dos graus por 2.
  • Chamar um grafo de euleriano sem verificar a conexidade.
  • Fixar um vértice em Dijkstra antes que sua distância seja a menor.
  • Pegar as arestas mais leves sem verificar se há ciclos.
  • Contar os circuitos hamiltonianos de Kn como n! em vez de (n − 1)!/2.
Teoria dos grafos: o que se pratica?
  • Fácil: graus e arestas
  • Média: caminhos eulerianos e árvores
  • Difícil: caminhos mínimos e árvores geradoras

Cada exercício tem valores novos, então você aprende o método em vez de decorar uma resposta. Travou? Abra primeiro uma dica pequena, e a explicação completa só quando precisar.

Como a prática funciona

  • Cada exercício tem valores novos, então você aprende o método em vez de decorar uma resposta.
  • Travou? Abra primeiro uma dica pequena, e a explicação completa só quando precisar.
  • Seu progresso, seus erros e seus exercícios salvos ficam guardados, para você revisar antes da prova.

Temas antes e depois deste

Estude antes

Disciplinas com este tópico

Mais temas de Matemática e estatística

Lista de exercícios para imprimir

Pratique Teoria dos grafos de graçaPratique Teoria dos grafos agora5 exercícios grátis todos os dias. Sem cartão.