Renato Melo
14 de setembro de 2016
1 e-mail:
prof.renatomelo@gmail.com
Sum
ario
1 Introduc
ao a Teoria dos Grafos
1.1 Breve Historico . . . . . . . .
1.2 Para que serve? . . . . . . . .
1.3 Exemplos . . . . . . . . . . .
1.4 O Caixeiro Viajante . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 T
ecnicas de Demonstrac
ao
2.1 O Que Provar: Teoremas . . . . . . . . . . . .
2.2 Tipos de Demonstracao . . . . . . . . . . . . .
2.2.1 Exemplo e Contra-exemplo . . . . . . .
2.2.2 Demonstracao Exaustiva (Forca Bruta)
2.2.3 Demonstracao Direta . . . . . . . . . .
2.2.4 Contraposicao . . . . . . . . . . . . . .
2.2.5 Por Absurdo . . . . . . . . . . . . . . .
2.3 Acidentes Felizes . . . . . . . . . . . . . . . .
2.4 Exerccios . . . . . . . . . . . . . . . . . . . .
3 Noc
oes B
asicas
3.1 Definicoes . . . . . . . .
3.1.1 Grau de Vertices
3.2 Isomorfismo . . . . . . .
3.3 Mais Definicoes . . . . .
3.4 Famlias de Grafos . . .
3.5 Vizinhanca Direcionada
3.6 Exerccios . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Representac
ao e Implementac
ao
4.1 Matriz de Adjacencia . . . . . .
4.2 Matriz de Incidencia . . . . . .
4.3 Lista de Adjacencia . . . . . . .
4.3.1 Lista x Matriz . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
5
5
6
.
.
.
.
.
.
.
.
.
8
8
9
9
10
10
11
11
12
12
.
.
.
.
.
.
.
14
15
15
17
19
21
23
24
.
.
.
.
26
26
27
28
29
4.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5 Busca em Grafos
31
5.1 Busca em Largura . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 Trabalho
34
6.1 Organizacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.1 Entrega . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.2 Parte I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Captulo 1
Introduc
ao a Teoria dos Grafos
Problema 1. Tente desenhar a figura abaixo sem tirar o lapis do papel de
ponto a ponto sem passar pela mesma linha duas vezes.
Problema 2. Tente ligar Luz, Gas e Telefone a tres casas sem que as linhas
se cruzem.
Considere uma fabrica de placas de circuito integrado. Encontrar esquemas de ligacao que evitem cruzamento e crucial para baratear os custos
de manufatura; quanto menos camadas, mais rapido e rentavel se torna o
servico.
Nos dois casos so nos interessou considerar um conjunto de pontos e um
a essa estrutura que chamamos grafo.
conjunto de ligacoes entre eles. E
Definic
ao 1. Grafo e um conjunto de pontos, chamados vertices, conectados
por linhas, chamadas de arestas.
1.1
Breve Hist
orico
1.2
1.3
Exemplos
Transporte a
ereo: os vertices sao as cidades e os relacionamentos
(arestas) podem ser um voo entre duas cidades.
Atores e filmes: os vertices sao os atores e os relacionamentos (arestas) podem ser um filme em que dois atores trabalharam juntos.
WWW: os vertices sao paginas e as arestas um link de uma pagina
para outra.
1.4
O Caixeiro Viajante
ABCDA
ABDCA
ACBDA
ACDBA
ADBCA
ADCBA
Raciocnio combinatorio, para n = 4:
a primeira e u
ltima posicao sao fixas;
na segunda podemos colocar qualquer uma das 3 cidades (B, C ou D),
uma vez escolhida uma delas, podemos colocar qualquer uma das 2
restantes na terceira;
na quarta, nao teramos nenhuma escolha, pois sobrou apenas uma
cidade;
consequentemente, o n
umero de rotas e 3 x 2 x 1 = 6.
http://www.claymath.org/millennium-problems
Captulo 2
T
ecnicas de Demonstrac
ao
Suponha que em uma pesquisa observamos que diversos casos nos quais
sempre que uma proposic
ao P e verdade, Q tambem e. Baseado nessas
evidencias, formulamos uma conjectura que e: P implica em Q.
Exemplo 2. Para um inteiro positivo n. Prove ou encontre um contra exemplo para a conjectura Para todo inteiro positivo n, n! n2 .
Demonstracao. Vamos comecar testando alguns casos: Ate agora essa conn
n!
n2
n! n2
1
2
3
1
2
6
1
4
9
sim
sim
sim
n!
24 16
n! n2
nao
2.1
O primeiro passo para a resolucao de um problema e defini-lo correta e precisamente. A definicao do problema envolve as seguintes questoes:
8
Um teorema nada mais e do que uma afirmacao que apresenta essas tres
caractersticas.
Tradicionalmente, um teorema e dividido em duas partes: a hipotese
apresenta as informacoes conhecidas sobre o problema; a tese representa o
que de fato se deseja provar.
Teorema: Se hipotese, entao tese.
Em algumas situacoes, teoremas recebem denominacoes especiais:
Axioma: Afirmacoes que sao aceitas como verdadeiras.
Lema: Afirmacao que deve ser provada e que normalmente e usada na
prova de um teorema.
Corol
ario: Um teorema que pode ser derivado de forma natural, imediata ou obvia de um outro teorema. Considere o seguinte exemplo:
Como a prova de um corolario ?e por definicao muito simples, ela e frequentemente omitida.
2.2
Tipos de Demonstrac
ao
2.2.1
Exemplo e Contra-exemplo
Demonstracao. Os n
umeros x = 3, y = 4 e z = 5 sao inteiros que satisfazem
a` restricao (32 + 42 = 52 ).
Contra-exemplos sao usados de forma semelhante aos exemplos, mas para
provar que uma determinada conjectura esta errada.
Exemplo 4 (Conjectura). Nenhum n
umero primo e par.
Demonstracao. A conjectura esta incorreta, pois o n
umero 2 e primo e e
par.
Problema 4. De contra exemplos para as seguintes conjecturas:
1. Todos os animais vivendo no oceano sao peixes.
2. Todo inteiro menor que 10 e maior que 5.
Observacao: Nem sempre uma prova por contra-exemplo e tao simples.
Como e o caso do n
umero de Fermat, cuja conjectura e: todos os n
umeros da
n
forma 22 + 1 sao primos. Onde apenas 70 anos depois da morte de Fermat,
o matematico Leonard Euler encontrou um contra-exemplo.
2.2.2
Demonstrac
ao Exaustiva (For
ca Bruta)
2.2.3
Demonstrac
ao Direta
uma prova um
Suponha uma hipotese P e deduza uma conclusao Q. (E
pouco mais informal)
Exemplo 6. Para todo x e para todo y, tal que x e y sao inteiros pares. O
produto xy e um inteiro par.
10
2.2.4
Contraposi
c
ao
2.2.5
Por Absurdo
11
2.3
Acidentes Felizes
Algumas demonstracoes muito interessantes sao obtidas por observacoes engenhosas. Podemos considerar um exemplo dessas demonstracoes.
Exemplo 9. Um torneio de tenis com 342 jogadores. A cada dois jogadores
apenas o que vence a partida progride para as proximas rodadas. Prove que
ao todo serao jogadas 341 partidas.
Demonstracao. Jeito trabalhoso: Para obter o n
umero de partidas na primeira rodada: 342/2 = 171. Para obter o n
umero de partidas na segunda
rodada: 171/2 = 85 mais 1 que sobra. Para obter o n
umero de partidas na
terceira rodada: 86/2 = 43. E assim por diante.
Observa
c
ao engenhosa: cada partida resulta em exatamente 1 perdedor, entao o n
umero de partida e igual ao n
umero de perdedores no torneio.
Como existe apenas 1 ganhador, sao 341 perdedores e, portanto, 341 partidas
sao jogadas.
Tecnica
Exaustiva
2.4
Exerccios
Definicoes u
teis na resolucao exerccios: Um quadrado perfeito e um inteiro
n tal que n = k 2 para algum inteiro k; Um n
umero primo e um inteiro
n > 1 tal que n nao e divisvel por nenhum inteiro alem de 1 e n; Para dois
n
umeros x e y, x < y significa y x > 0.
1. Encontre contra-exemplos para cada uma das seguintes afirmacoes:
a) Toda figura geometrica com quatro angulos retos e um quadrado.
12
b) Se um n
umero real nao e positivo, entao ele deve ser negativo.
2. Prove que se n e um inteiro par, tal que 4 n 12, entao n e a soma
de dois n
umeros primos.
3. Prove que a soma de dois inteiros mpares e par.
4. Prove que o quadrado de um n
umero par e divisvel por 4.
5. Prove por contradicao que se qualquer n
umero x e positivo, entao x + 1
tambem e positivo.
6. Prove que o produto de quaisquer dois inteiros consecutivos e par. Dica:
Dividir em dois casos.
7. Prove que o quadrado de um inteiro mpar pode ser escrito como 8k + 1
para algum inteiro k.
8. Prove ou apresente um contra-exemplo: O produto de quaisquer tres
inteiros consecutivos e par.
13
Captulo 3
Noc
oes B
asicas
Suponha um torneio de volei em uma escola de ensino fundamental no qual
as turma participantes sao: 6A, 6B, 7A, 7B, 8A, 8B. Os seguintes jogos ja
forma realizados:
Tabela 3.1: Tabela de jogos
Turma Jogou com
6A
7A, 7B, 8B
6B
7A, 8A, 8B
7A
6A, 6B
7B
6A, 8A, 8B
8A
6B, 7B, 8B
8B
6A,6B, 7B, 8A
Nao e difcil notar que esta estrutura e um grafo. Podemos usar outra
representacao como a figura que segue.
14
Tanto a lista que apresenta quem joga com quem como a representacao
grafica, sao formas corretas de representar um grafo. O que interessa num
grafo e:
quem sao os vertices
quais pares de vertices estao ligados por arestas.
3.1
Definico
es
3.1.1
Grau de V
ertices
15
Tabela 3.2: N
umero de jogos
Turma # de jogos
6A
3 jogos
6B
3 jogos
7A
2 jogos
7B
3 jogos
8A
3 jogos
8B
4 jogos
Grau mnimo de um grafo G e o n
umero (G) := min{(v) : v
V (G)}.
Corol
ario 2. Todo grafo G possui um n
umero par de vertices de grau mpar.
Demonstracao. Se tivessemos um n
umero mpar de vertices de grau mpar a
soma dos graus seria mpar. Mas a soma dos graus e o dobro do n
umero de
arestas e, portanto e um n
umero par.
Observacao: Grafos que possuem lacos tambem respeitam o teorema.
Contamos os lacos duas vezes, uma para cada extremidade. Por exemplo a
Figura 3.1.1.
O grau m
edio de um grafo G e dado pela seguinte equacao:
X
1
(v)
(3.1)
(G)
=
|V (G)|
vV (G)
3.2
Isomorfismo
Quando dois grafos podem representar a mesma situacao dizemos que eles
sao grafos isomorfos.
17
18
(3.2)
3.3
(3.3)
Mais Definico
es
19
A vizinhan
ca fechada de v e denotada e definida por N[v] = N(v)
{v}, isto e, inclui a vizinhanca e o proprio vertice.
Podemos estender esta definicao para conjuntos de vertices (N(S)
N[S]).
20
3.4
Famlias de Grafos
*
*
*
*
*
o
o
o
o
o
22
1
3
-1
b
-2
3.5
Vizinhan
ca Direcionada
23
de forma que
(v) = (v)+ + (v)
Uma fonte (source) num grafo direcionado G e um vertice com grau
de chegada 0.
Um sorvedouro ou sumidouro (sink) num grafo direcionado G e
um vertice com grau de sada 0.
Distinguimos tambems os graus maximo/mnimo de entrada/sada de um
grafo direcionado:
(G)+ = max{(v)+ : v V (G)}
(G) = max{(v) : v V (G)}
(G)+ = max{(v)+ : v V (G)}
(G) = max{(v) : v V (G)}
Teorema 3. Em todo grafo direcionado G = (V, A), vale
X
X
|A(G)| =
(v)+ =
(v)
vV (G)
vV (G)
Demonstracao. Exerccio.
3.6
Exerccios
(a)
(b)
(c)
(d)
5. Existe algum grafo nao trivial em que todos os vertices tem graus distintos? Justifique.
6. Para k = 0, 1, 2 caracterize os grafos k-regulares.
7. Quantas arestas tem K7 ? e K12 ? e Kn ?
8. Quantas arestas tem um grafo k-regular de n vertices? Justifique.
9. * Uma sequencia (d1 , d2 , ..., dn ) e grafica se existe um grafo de n vertices
cujos graus sejam (v1 ), (v2 ), ..., (vn ), respectivamente.
a) A sequencia (2,3,3,4,4,5) e grafica? Justifique.
b) A sequencia (2,2,3,4,2,3,2) e grafica? Justifique.
c) A sequencia (2,3,4,4,5) e grafica? Justifique.
10. Quantas arestas tem um grafo com vertices de graus 5,2,2,2,2,1? Desenhe um possvel grafo.
25
Captulo 4
Representac
ao e
Implementac
ao
4.1
Matriz de Adjac
encia
Uma das formas mais utilizadas para representar grafos e via a matriz de
adjacencia.
Seja A uma matriz n n, onde n e o numero de vertices de um grafo
G = (V, E) qualquer.
A matriz de adjacencia A e construda como:
(
1 se (i, j) E(G)
A(i, j) =
0 caso contrario
26
1
3
-1
b
-2
4.2
Matriz de Incid
encia
27
4.3
Lista de Adjac
encia
vV (G)
Ocupa uma posicao para cada vertice. Portanto, espaco total ocupado
e (|V (G)| + |E(G)|) enquanto na matriz e (|V (G)|2 )
28
4.3.1
Lista x Matriz
((v)) na lista
(|V (G)|) na matriz
Percorrer todas as arestas
(|E(G)|) na lista
(|V (G)|2 ) na matriz
Determinar o grau do vertice v
((v)) na lista
(|V (G)|) na matriz
Acrescentar aresta {u, v}
O(1) em ambos
29
4.4
Exerccios
30
vV (G)
Captulo 5
Busca em Grafos
A busca visa resolver uma questao basica: como explorar um grafo? Ou seja,
deseja se obter um processo de como caminhar pelos nos e arestas de um
grafo.
5.1
Busca em Largura
Arvore
geradora mnima
Caminhos mnimos (ideias semelhantes as de busca em largura)
A ideia da busca em largura consiste em processar todos os nos em um
dado nvel antes de caminhar para um nvel mais alto.
O algoritmo descobre todos os vertices a uma distancia k do vertice de
origem antes de descobrir qualquer vertice a uma distancia k + 1.
O grafo G(V, E) pode ser direcionado ou nao direcionado.
Dado um grafo G(V, E) e um vertice fonte s V (G)
31
Dizemos que um vertice e descoberto a primeira vez que ele e encontrado (cinza).
Se {u, v} E(G) e u e preto, v e cinza ou preto.
5.2
Exerccios
33
Captulo 6
Trabalho
O objetivo deste trabalho e desenvolver uma biblioteca para manipular grafos. Esta devera ser capaz de representar grafos de diferentes tipos e conter
um conjunto de algoritmos em grafos, de modo que possa ser utilizada em outros programas (possivelmente no projeto integrador). Para isso, a biblioteca
pode ser uma classe em Java (ou conjunto de funcoes em C).
6.1
Organiza
c
ao
34
6.1.1
Entrega
6.2
Parte I
4
0
1
1
3
1
2
3
N
umero de v
ertices: 4
Numero de arestas: 3
Grau m
edio: 1.5
#Distribui
ca
~o de graus
0 vertices de grau 0
35
3 vertices de grau 1
0 vertices de grau 2
1 vertices de grau 3
Por fim, gerar um arquivo texto com a extensao .dot, de acordo com o
exemplo:
graph
1
2
3
}
g {
-- 0;
-- 1;
-- 1;
36