Este documento resume as respostas de Michel Alves dos Santos para cinco exercícios de Teoria dos Grafos do Capítulo 2. Ele fornece soluções detalhadas para as questões 1, 2, 3, 6 e 8, incluindo listas de adjacência, matrizes de adjacência e codificações numéricas de sequências de arestas.
Capacity-Constrained Point Distributions :: Density Function Catalog
Graph Theory - Exercises - Chapter 2
1. Lista de Exercícios - Teoria dos Grafos
Exercícios do Capítulo 2 - Questões 1, 2, 3, 6 e 8
Michel Alves dos Santos ∗
Março de 2011
∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi-
chel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Teoria dos Grafos. Docente Responsável: Leo-
nardo Viana Pereira.
1
3. 6 Exemplo de grafo para cálculo do grau. Segundo Passo da Demonstração. . . . . . 9
7 Exemplo de grafos não isomorfos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1 Questão 1
Figura 1: Grafo apresentado para primeira questão. A primeira figura indica apenas as ligações
entre os vértices, a segunda apresenta uma numeração para as arestas.
1.1 a)
A seguir, duas condificações de duas soluções diferentes:
• abcdebdae;
• abcdaebde.
1.2 b)
Vértice Vértice(s) adjacente(s)
a b, d, e
b a, c, d, e
c b, d
d a, b, c, e
e a, b, d
1.3 c)
a b c d e
a 0 1 0 1 1
b 1 0 1 1 1
c 0 1 0 1 0
d 1 1 1 0 1
e 1 1 0 1 0
3
4. 1.4 d)
1 2 3 4 5 6 7 8
a 1 1 1 0 0 0 0 0
b 1 0 0 0 1 1 0 0
c 0 0 0 1 0 0 1 0
d 0 1 0 0 1 0 0 1
e 0 0 1 0 0 1 0 1
1.5 e)
Verificando se cbdeadeab é uma solução (sem usar o desenho).
Usando a lista de adjacência temos os seguintes passos:
c → d
d → b
b → e
e → a
d → e
e → a
O passo em destaque já foi um passo realizado antes, isso que dizer que uma aresta foi repetida,
portanto essa codificação não é uma solução para o problema tratado.
Acho também que um computador, convenientente programado, poderia realizar esta verifica-
ção. Basta apenas criar um algoritmo onde para cada percurso, o mesmo deve ser armazenado
e verificado para cada outro percurso realizado, ou seja, deve-se ter uma implementação de um
percurso simples.
1.6 f)
A solução abcdeadbe pode ser codificada como 14783256.
Eu codificaria a solução numérica, pois como a mesma faz referência as arestas, fica mais fácil
identificar se uma codificação dada é válida para esse problema, basta verificar se existe um número
repetido na sequência.
A seguir as codificações das sequências do item (e):
adcbedbae → 27468513
eabdebcda → 31586472
cbdeadeab → 75632831
4
5. 1.7 g)
• 12345678 não é solução, pois não é possível sair diretamente da aresta 2 para 3;
• 12345687 também não é solução pelo mesmo motivo do item anterior;
• 35742861 também não é solução pelo mesmo motivo do item anterior.
Usando a lista de incidência e procurando por outros vértices que também incidam na mesma
aresta e que possuam uma ligação para a próxima aresta da sequência fornecida.
1.8 h)
É possível formar 88
= 16.777.216 sequências.
1.9 i)
Um computador que examinasse 1.000.000 sequências por segundo, levaria pelo menos
Tempo =
88
1.000.000
=
16.777.216
1.000.000
= 16, 777216
ou seja,
16.777.216seq
106seq/s
= 16, 777216s, para descobrir todas as soluções.
1.10 j)
Para um grafo com 20 arestas, seria possível formar o seguinte número de sequências:
2020
= 104.857.600.000.000.000.000.000.000
1.11 k)
Um computador que examinasse 1.000.000 seq/s, levaria pelo menos:
Tempo =
202
0
1.000.000
=
104.857.600.000.000.000.000.000.000
1.000.000
= 104.857.600.000.000.000.000s
2 Questão 2
Figura 2: Grafo orientado fornecido para a segunda questão.
5
6. 2.1 a)
A seguir, duas condificações de duas soluções diferentes:
• acbcdabd;
• abcbdacd.
2.2 b)
Vértice Vértice(s) adjacente(s)
a b, c
b c, d
c b, d
d a
2.3 c)
a b c d
a 0 1 1 0
b 0 0 1 1
c 0 1 0 1
d 1 0 0 0
2.4 d)
1 2 3 4 5 6 7
a 1 1 0 0 0 0 -1
b -1 0 1 1 -1 0 0
c 0 -1 -1 0 1 1 0
d 0 0 0 -1 0 -1 1
2.5 e)
Verificando se acdabcbd é uma solução (sem usar o desenho). Usando a lista de adjacência
temos os seguintes passos:
a → c
c → d
d → a
a → b
b → c
c → b
b → d
Logo, todas as arestas foram percorridas, e não houve repetições, logo a sequência acdabcbd
é uma solução. Verificando se abdacbda é uma solução (sem usar o desenho). Usando a lista de
adjacência temos os seguintes passos:
a → b
b → d
d → a
a → c
c → b
b → d
O passo em destaque já foi um passo realizado antes, isso quer dizer que uma aresta foi repetida,
portanto essa codificação não é uma solução para o problema tratado.
6
7. 2.6 f)
Figura 3: Grafo orientado fornecido para a segunda questão com arestas numeradas.
Através da figura podemos observar que a sequência 1354726 é uma solução válida. A seguir
as codificações das sequências do item (e):
acdabcbd → 2671354
abdacbda → 1472547
2.7 g)
• 1234567 não é solução, pois não é possível sair diretamente da aresta 1 para 2;
• 1234567 não é solução pelo mesmo motivo do item anterior;
• 3574261 não é solução, pois não é possível sair diretamente da aresta 5 para 7.
2.8 h)
É possível formar 77
= 823.543 sequências.
2.9 i)
Um computador que examinasse 1.000.000 seq/s, levaria pelo menos
823.543seq
106seq/s
= 0.823543s,
para descobrir todas as soluções.
3 Questão 3
3.1 a)
Logo abaixo a lista de adjacência do grafo da figura acima:
Vértice Vértice(s) adjacente(s)
A B, C
B A, C, D
C A, B, D
D B, C
7
8. Figura 4: Grafo fornecido para a terceira questão.
3.2 b)
Logo abaixo a matriz de adjacência:
A =
A B C D
A 0 1 1 0
B 1 0 1 1
C 1 1 0 1
D 0 1 1 0
3.3 c)
B =
1 2 3 4 5
A 1 1 0 0 0
B 1 0 1 1 0
C 0 1 1 0 1
D 0 0 0 1 1
3.4 d)
Calculando o produto A2
:
0 1 1 0
1 0 1 1
1 1 0 1
0 1 1 0
∗
0 1 1 0
1 0 1 1
1 1 0 1
0 1 1 0
=
2 1 1 2
1 3 2 1
1 2 3 1
2 1 1 2
O tamanho (comprimento) de um caminho é o número de arestas do mesmo, ou seja, número de
vértices menos um. Quantos caminhos distintos de tamanho n existem conectando dois vértices de
um dado grafo G? Este valor pode ser computado multiplicando a matriz de adjancência do grafo
G por ela mesma n vezes. Se A é a matriz de adjacência de um grafo G, a entrada aij da matriz
A2
indica a quantidade de caminhos de tamanho 2 conectando vi a vj no grafo G. Este resultado
é válido para caminhos de tamanho n calculando An
. Logo os números na diagonal significam o
número de caminhos de tamanho 2 que existem de um vértice para ele mesmo.
3.5 e)
Calculando o produto B · Bt
:
1 1 0 0 0
1 0 1 1 0
0 1 1 0 1
0 0 0 1 1
∗
1 1 0 0
1 0 1 0
0 1 1 0
0 1 0 1
0 0 1 1
=
2 1 1 0
1 3 1 1
1 1 3 1
0 1 1 2
8
9. Os valores da diagonal principal represetam o número de conexões ou caminhos que o respectivo
vértice possui a partir dele. Fora da diagonal o número de conexões que o respectivo vértice possui
com os demais.
3.6 f)
Calculando o produto Bt
· B:
1 1 0 0
1 0 1 0
0 1 1 0
0 1 0 1
0 0 1 1
∗
1 1 0 0 0
1 0 1 1 0
0 1 1 0 1
0 0 0 1 1
=
2 1 1 1 0
1 2 1 0 1
1 1 2 1 1
1 0 1 2 1
0 1 1 1 2
4 Questão 6
Se para cada ligação entre vértices inserimos/aumentamos um grau para cada vértice partici-
pante da ligação então, teremos para o seguinte grafo visto abaixo um número de vértices |V | = 2
e número de arestas |E| = 1.
Figura 5: Exemplo de grafo para cálculo do grau. Primeiro Passo da Demonstração.
Para o próximo grafo teríamos o mesmo, um número de vértices |V | = 3 e número de arestas
|E| = 2
Figura 6: Exemplo de grafo para cálculo do grau. Segundo Passo da Demonstração.
E por indução nós podemos contruir uma forma de chegar até
v∈V
d(v) = 2m
Onde d(v) é a função que retorna o grau de um determinado vértice v ∈ V , V o conjunto de
vértices do grafo e m o número de arestas. Observando a matriz de incidência notamos que
cada linha determina o grau de um vértice. Como para cada aresta aparecem dois 1s na matriz
de incidência, a soma de todos os graus equivale a contar duas vezes cada aresta. Uma outra
observação interessante é que o número de vértices de grau impar em um grafo orientado sempre
é par:
Nv(d(v)impar) = 2k
Sendo Nv a função que classifica e retorna o número de vértices que possuem grau ímpar, e esse
número sempre será da forma 2k. Como a soma dos graus de todos os vértices é um número par
(2n) é impossível que só um tenha grau ímpar. Os dois fatos relacionados nessa questão a priori
podem parecer coincidência mas são fortes consequências de leis encontradas na Álgebra Linear.
Não faremos uso dessas ferramentas de caráter mais avançado, iremos apenas formalizar esses
9
10. fatos de maneira bem simples. Para isso denotaremos um grafo pela letra G e representaremos
por V (G) e A(G) respectivamente, os conjuntos de vértices e das arestas de G.
Teorema 1 (Relação Entre a Soma dos Graus e a Quantidade de Arestas). Para todo grafo G
v∈V (G)
d(v) = 2 · m
Isto é: “A soma dos graus dos vértices de um grafo é sempre o dobro do número de arestas.”
Demonstração. Quando contamos os graus dos vértices estamos contando as extremidades das
arestas uma vez. Como cada aresta tem duas extremidades, no processo de contagem cada aresta
foi computada duas vezes.
Corolário 1 (Ou Lema do Aperto de Mãos). Todo grafo G possui um número par de vértices de
grau ímpar.
Nv(d(v)impar) = 2k
Demonstração. Se tivéssemos um número ímpar de vértices de grau ímpar a soma dos graus seria
ímpar. Mas a soma dos graus é o dobro do número de arestas e, portanto é um número par.
5 Questão 8
5.1 a)
Suponha que exista um grafo G bipartido. Se G não contém ciclos, então não há o que
provar. Suponha que G tem um ciclo Cn = v0v1, v1v2, ..., vs−1vs. Supondo que v0 ∈ V1, então
v1 ∈ V1, v2 ∈ V1, etc. Ou seja, vi ∈ V1 se e somente se i é par. Como v0 = vs, s deve ser par.
Desta forma, utilizamos um número par de arestas.
5.2 b)
Sim. Seja v0 ∈ V (G). Vamos separar os vértices de G em dois subconjuntos V1 e V2 de tal
modo que v0 ∈ V2 e v ∈ V1 se e somente se existe um caminho de comprimento ímpar de v0 a v.
Então V1 e V2 são disjuntos. De fato, suponha que exista w ∈ V1 ∩ V2. Podemos supor que w é o
vétice “mais próximo” de v0 tal que isso acontece. Então existiria um caminho C1 de comprimento
par de v0 a w e um caminho C2 de v0 a w de comprimento ímpar, que não se cruzam. Então
C1 ∪ C2 seria um ciclo de comprimento ímpar, o que por absurdo não é válido.
5.3 c)
Observa-se na figura abaixo que no grafo G1 existe um ciclo fechado ímpar no vértice A. Já
no grafo G2, todo ciclo fechado em A é par.
Figura 7: Exemplo de grafos não isomorfos.
10