Escolar Documentos
Profissional Documentos
Cultura Documentos
‡
Rodrigo Carlos Silva de Lima
rodrigo.uff.math@gmail.com
‡
2
Sumário
1 Grafos 5
1.1 Definições básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Representação gráfica dos grafos . . . . . . . . . . . . . . . . . . . 6
∑
1.1.2 d(v) = 2m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
v∈V
1.1.3 Famı́lias especiais de grafos . . . . . . . . . . . . . . . . . . . . . . 31
1.1.4 Isomorfismo de grafos . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.2 Matriz de incidência e de adjacência . . . . . . . . . . . . . . . . . . . . . 42
1.3 Grafos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 43
1.4 Problemas de trajeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 Cadeias de Markov e grafos . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.6 Algoritmos de caminho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.6.1 Algoritmo de Fleury . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.6.2 O problema chinês do carteiro . . . . . . . . . . . . . . . . . . . . . 54
1.6.3 O problema das pontes de Königsberg . . . . . . . . . . . . . . . . 56
1.6.4 O problema de Count Von Diamond . . . . . . . . . . . . . . . . . 58
1.6.5 O Problema do Desenho da Casa . . . . . . . . . . . . . . . . . . . 59
1.7 Grafos e palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.7.1 Grafos e Doublets de Lewis Carrol . . . . . . . . . . . . . . . . . . 60
1.8 Exemplos de grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.8.1 WWW a rede mundial de internet . . . . . . . . . . . . . . . . . . 61
3
4 SUMÁRIO
Capı́tulo 1
Grafos
f : E → V ×N V
que a cada a ∈ V associa o par não ordenado (x, y) = (y, x), f(a) = (x, y).
• Se a é uma aresta e x, y vertices tais que f(a) = (x, y), então x e y são
chamados de extremos de a e diz-se que a conecta x e y ou é incide nesses
5
6 CAPÍTULO 1. GRAFOS
elementos.
a
Alguns autores usam o termo nó para vértices e arcos para arestas.
Figura 1.1: V1 e V2 são vértices adjacentes pois existe uma aresta incidente em ambos,
V2 e V3 não são adjacentes, pois não existe aresta que os liga.
1.1. DEFINIÇÕES BÁSICAS 7
m Definição 8 (Arestas paralelas). Duas arestas são paralelas, se são links com
mesmos extremos.
Z Exemplo 1. Pode existir um grupo de cinco pessoas, tais que quaisquer duas
delas tem exatamente um amigo em comum, como mostra a construção da tabela
abaixo.
1.1. DEFINIÇÕES BÁSICAS 11
− v1 v2 v3 v4 v5
v1 − (v2 , v1 ) (v3 , v1 ) (v4 , v1 ) (v5 , v1 )
v2 (v1 , v2 ) − (v3 , v2 ) − −
v3 (v1 , v3 ) (v2 , v3 ) − − −
v4 (v1 , v4 ) − − − (v5 , v4 )
v5 (v1 , v5 ) − − (v4 , v5 ) −
− v1 v2 v3 v4
v1 − (v3 , v1 )
B = v2 − (v3 , v2 ) −
v3 (v1 , v3 ) (v2 , v3 ) − −
v4 − − −
12 CAPÍTULO 1. GRAFOS
− v1 v2 v3 v4
v1 − (v3 , v1 ) (v4 , v1 )
B1 = v2 − (v3 , v2 ) −
v3 (v1 , v3 ) (v2 , v3 ) − (v4 , v3 )
v4 (v1 , v4 ) − (v3 , v4 ) −
− v1 v2 v3 v4
v1 − (v2 , v1 ) (v3 , v1 ) (v4 , v1 )
B11 = v2 (v1 , v2 ) − (v3 , v2 ) −
v3 (v1 , v3 ) (v2 , v3 ) − (v4 , v3 )
v4 (v1 , v4 ) − (v3 , v4 ) −
de onde segue v1 ∩v3 = {v2 , v4 } o que não pode acontecer, o grafo dessa configuração
segue abaixo
1.1. DEFINIÇÕES BÁSICAS 13
Figura 1.10:
que é semelhante a anterior , apenas por uma mudança do nome dos vértices,
logo essa configuração não fornece uma solução para o problema.
Figura 1.11: B3
em que também não temos problemas, agora olhamos as possibilidades para v3 ∩v4
que podem ser v1 ou v2 , suponha v1 ficamos com um grafo exatamente igual ao da
figura B11 o que não pode acontecer. Supondo ser v2 então v1 ∩ v4 = {v2 , v3 } como
podemos perceber na figura abaixo
Figura 1.12:
Figura 1.13: B3
1.1. DEFINIÇÕES BÁSICAS 15
Figura 1.14: Grafo regular de grau 3, pois todo vértice possui grau 3.
que ak = 0, então existe apenas uma outra upla com ak = 1, que difere na k-ésima
coordenada com a upla dada. Para cada uma das n coordenadas podemos aplicar o
mesmo argumento, chegando num total de n vértices adjacentes.
n2n
$ Corolário 2. O número de arestas em um n-cubo é de pois cada vértice
2
possui n arestas então com 2n vértices contamos n2n arestas, porém contamos
duas vezes o número total de arestas, então dividimos por 2 o resultado.
∑
m(k,et ) = 2
k∈V
onde et é uma aresta fixada do grafo , essa propriedade vale inclusive para grafos
com número infinito de elementos.
caso et seja um laço, existe vm tal que 2 = m(vm ,et ) e para todo outro k vale
m(vk ,et ) = 0, daı́
∑ ∑
m(k,et ) = m(k,et ) +m(vm ,et ) = 2.
k∈V k∈V\{vm }
| {z }
=0
∑
1.1.2 d(v) = 2m.
v∈V
∑
d(v) = 2m
v∈V
em qualquer grafo com número finito de arestas e vértices, tal identidade vale
inclusive em grafos com laços e arestas paralelas.
logo
∑ ∑
n
d(v) = d(vk )
v∈V k=1
∑
m
porém d(vk ) = m(vk ,et ) substituindo temos
t=1
∑ n ∑
∑ m ∑
m ∑
n ∑
m
d(v) = m(vk ,et ) = m(vk ,et ) = 2 = 2m.
v∈V k=1 t=1
|
t=1 k=1
{z } t=1
=2
∑ ∑ ∑
d(v) = d(v) + d(v) ≡ 1|Vi | ≡ 0 mod 2.
v∈V v∈Vp v∈Vi
m Definição 24 (Trilha fechada). Uma trilha fechada é uma trilha (vk )n1 onde
v1 = vn . Podemos definir vk para todo k inteiro, por meio de congruência mod p,
daı́ , por exemplo vp+2 = v2 pois p + 2 ≡ 2 mod p.
m Definição 25 (Ciclo). Um cicloa é uma trilha fechada (vk )1p+1 , isto é, v1 = vp+1
onde (vk )p1 é uma trilha simples. Isto é, em ciclos não temos arestas repetidas e o
único vértice repetido é v1 .
• Um ciclo com dois vértices consiste em dois vértices e duas arestas paralelas.
Figura 1.19: (V1 , V2 , V3 , V4 ) é um caminho simples, pois todos vértices são distintos,
também é um trajeto pois todas arestas são distintas, tal caminho tem comprimento
3.
1.1. DEFINIÇÕES BÁSICAS 23
m Definição 28 (Acı́clico). Um grafo G que não possui ciclo é dito ser acı́clico.
( )
n−1
b Propriedade 11. Se G é simples e m > 2 então G é conexo. m é o
número de arestas.
ê Demonstração. ( ) ( )
n−1 n−1
Primeiro notamos que se m > então m ≥ + 1. Se qualquer grafo
( ) 2 2( )
n−1 n−1
com m = + 1 é conexo, então grafos com m > + 1 são conexos.
2 ( ) 2
n−1
Tomemos um grafo qualquer G com m > + 1 , retirando arestas de G
2 ( )
n−1
até que o grafo resultante Gn tenha exatamente m = + 1, Gn é conexo,
2
agora recolocamos as arestas que retiramos , colocar arestas em um grafo não altera
conexidade, então G é conexo. ( )
n−1
Sabemos que se G é desconexo então G é conexo. Seja G com m = +1
2
então G possui
( ) ( )
n n−1
= − − 1 = n − 2 arestas
2 2
( )
Z Exemplo 3. Encontre um grafo desconexo simples com m =
n−1
2)
.
(
n−1
Dos n vértices podemos separar n − 1 vértices usando todas arestas
2
nesses n − 1 vértices separados, O n-ésimo vértice é então um vértice isolado e o
grafo é desconexo.
O resultado anterior podemos interpretar da seguinte maneira: Considerar os
(n − 1)(n − 2)
n vértices como ilhas e as m arestas como pontes, se m > e não
2
existe mais de uma ponte ligando duas ilhas quaisquer então é possı́vel passear
(n − 1)(n − 2)
por todas as ilhas. Se = m então pode haver ilha isolada.
2
26 CAPÍTULO 1. GRAFOS
ê Demonstração.
• Dado um vértice v1 num grafo com número finito de vértices, v1 deve incidir
em outro vértice v2 e assim por diante, como o número de vértices é finito,
deve haver t máximo tal que vt não pode incidir em nenhum outro vértice já
não usado no caminho até vt ( vt também não poderia incidir em vértice de
um outro ciclo presente no grafo, desconexo com o caminho percorrido até o
vértice vt , pois se não haveria grau de algum vértice maior que 2), vt não pode
incidir em nenhum dos vértices vk com 1 < k < t, pois estes já possuem grau
2 por pertencer ao caminho, a única possibilidade restante é vt incidir em v1
assim d(v1 ) = d(vt ) = 2 assim como para os outros vértices do grafo.
não vazios X e Y tais que nenhum vértice de X tem extremo em Y então o grafo
não é conexo.
ê Demonstração.
Figura 1.23: Exemplo de grafo totalmente desconexo, todos os vértices são isolados,
isto é, possuem grau zero.
Figura 1.24: No grafo acima, temos um subgrafo destacado, com arestas e vértices
vermelhos, seu conjunto de vértices {B, C, D, E}, seu conjunto de arestas {(C, E)}.
que H ⊂ H ′ propriamente.
( )
n(n − 1)
b Propriedade 17. Um grafo completo possui
2
=
n
2
arestas .
∑
n−1
aplicando em ambos lados, temos por soma telescópica
k=1
n(n − 1)
f(n) =
2
∑
n−1
n(n − 1)
pois k= .
2
k=1
( )
n
$ Corolário 9. Para todo grafo simples vale m ≤ , valendo a igualdade
2
quando o grafo é completo.
de partes de G. Podemos denotar o grafo bipartido como G[A, B]. Denotamos |A|
e |B| para o número de vértices de A e B respectivamente.
∑ ∑
ê Demonstração. Vale que d(v) + d(v) = 2m então mostrar que
∑ ∑ v∈X v∈Y
d(v) = d(v) é equivalente a demonstrar que cada uma das somas vale m.
v∈X v∈Y
Não existe arestas conectando vértices em X, toda aresta do grafo deve incidir em
∑
algum vértice de X por isso d(v) = m.
v∈X
d(x) = d(y) = k
$ Corolário 11. Para qualquer grafo bipartido simples G[x, y] vale m ≤ |X||Y|
pois o grafo deve possuir número de arestas menor do que do grafo bipartido
completo.
n2
b Propriedade 21. Em um grafo simples G[x, y] bipartido, vale que m ≤
4
.
ê Demonstração.
• Em BL3 temos oito vértices ∅, {1}, {1, 2}, {2}, {3}, {1, 3}, {1, 2, 3}, {2, 3}.
ê Demonstração.
b Propriedade 24. Para qualquer grafo G existe uma superfı́cie S tal que o
grafo pode ser desenhado na superfı́cie S sem que suas arestas se interceptem em
pontos que não sejam extremos.
ê Demonstração.
$ Corolário 12. Como f é uma bijeção entre V1 e V2 , se ambos são finitos, então
possuem o mesmo número de elementos n = |V1 | = |V2 |. Se os grafos F(V1 , E1 )
e G(V2 , E2 ) tem número de vértices distintos então não pode ser isomorfos e se
possuem mesmo número de vértices n, então é possı́vel verificar se existe um
isomorfismo entre eles, testando as n! funções que existem entre V1 e V2 . Ainda
não se sabe se existe ou não um algoritmo eficiente para testar se dois grafos são
isomorfos.
Figura 1.26: Exemplo de grafo e seu complementar, servindo como exemplo também
para o pior caso na demonstração, quando nenhum dos vértices v1 , v2 ou v3 são
adjacentes.
Z Exemplo 6. Não vale a recı́proca G pode ser conexo e G também ser conexo.
Basta tomar G como um grafo autocomplementar conexo.
ê Demonstração.
⇒). Supondo que o grafo é euleriano, então ele possui um ciclo euleriano (vk )n+
1
1
,
onde v1 = vn+1 , o ciclo contém todos os vértices do grafo G e cada aresta do grafo
aparece apenas uma vez no ciclo. Dado um vértice qualquer do grafo v, existe k
tal que v = vk , supondo que para s arbitrário tenhamos (vs , vs+1 ) então (vs+1 , vs+2 ),
|{z} |{z}
vk vk
se ( vs , vs+1 ) então (vs−1 , vs ), então contamos sempre um número par de arestas
|{z} |{z}
vk vk
ligadas à vk
⇐).
Suponha que todo vértice de G tenha grau par. Tomamos um vértice qualquer
do grafo v1 e começamos a percorrer o grafo a partir dele sem repetir arestas, tal
processo deve ter um fim e ao seu final voltamos ao vértice v1 (até não conseguir mais
prosseguir ou até voltar ao vértice v1 ), não podendo ser outro vértice do grafo, pois
cada vértice tem grau par, tendo pelo menos uma entrada e saı́da e não repetimos
arestas, se fosse um vértice qualquer diferente de v1 terı́amos duas opções, o vértice
já foi atravessado, então já foram contadas um número par de vezes de passagem por
ele (entrada e saı́da) então ao entrar nele mais uma vez terı́amos pelo menos uma
outra saı́da para completar o número par para o grau do vértice, o mesmo se o vértice
não foi ainda percorrido. Se o ciclo C1 construı́do por esse processo contém todas
arestas do grafo a construção termina. Se não, deletamos todas as arestas de C1 e
possı́veis vértices isolados. No novo grafo G1 obtido temos ainda todo grau par pois
1.4. PROBLEMAS DE TRAJETO 45
reduzimos um número par ao grau de cada vértice ( sempre uma entrada associado
associado a uma saı́da de um vértice). Nesse novo grafo podemos novamente achar
um ciclo C2 simples, que possui algum vértice em comum com C1 percorremos a partir
desse vértice o ciclo C2 depois o ciclo C1 , se o ciclo resultante conter todas arestas
do grafo G paramos, se não deletamos todas arestas de G1 comuns ao ciclo C2 e
possı́veis vértices isolados e aplicamos o processo novamente. Tal processo chega ao
fim, pois o número de aresta e vértices são finitos , no fim de tal processo podemos
construir um ciclo Euleriano no grafo G, ligando os ciclos1 encontrados.
Figura 1.28: Todos os vértices do Grafo acima tem grau par, podemos achar nele um
ciclo euleriano, por exemplo percorrendo inicialmente (P2 P1 (c1 )P4 (C2 )P3 P2 ) e depois
deletando as arestas e percorrendo (P1 P3 (C5 )P4 (C3 )P1 juntando ambos ciclos conse-
guimos um ciclo euleriano (P2 P1 P3 (C5 )P4 (C3 )P1 (c1 )P4 (C2 )P3 P2 ) .
m Definição 75 (Grafo Par). Um grafo Par é aquele que possui todos os seus
vértices com grau pau.
1
Perceba também que os ciclos não possuem arestas em comum por construção
46 CAPÍTULO 1. GRAFOS
$ Corolário 19. Todo grafo conexo par pode ser dividido em ciclos, tais que
quaisquer dois deles não possui aresta em comum.
ê Demonstração.
⇒). Se G é atravessável então G tem exatamente dois vértices de grau ı́mpar.
Sejam v1 e vf os vértices inicial e final do caminho euleriano, se adicionarmos
uma nova aresta ao grafo ligando v1 e vf o grau dos vértices v1 e vf aumentam em
uma unidade e conseguimos um ciclo euleriano, logo todos os outros vértices devem
ter grau par. O grau de v1 e v2 não podem ser pares, pois se não ao conectar a aresta
o grau se tornaria ı́mpar e não terı́amos grafo euleriano.
⇐). Se um grafo conexo G tem exatamente dois vértices de grau ı́mpar então G
é atravessável.
Sejam v1 e vf os vértices de grau ı́mpar, adicionamos uma nova aresta (v1 , vf ) os
conectando, assim conseguimos um ciclo euleriano C1 no grafo G + (v1 , vf ), pois o
grau de todos vértices passa a ser par, deletando tal aresta adicionada conseguimos
um caminho euleriano que começa em um dos vértices e termina no outro vértice de
grau ı́mpar.
1.4. PROBLEMAS DE TRAJETO 47
ı́mpar, daı́ o grafo não pode ser euleriano. Sendo n ı́mpar n − 1 é par, daı́ o grafo
é euleriano.
que cada ciclo direcionado de D possui pelo menos uma aresta de E ′ , isto é,
D(V, E \ E ′ ) é acı́clico.
Vamos supor que as duas lojas estejam há 50 metros de distância e a criança está
inicialmente há 20 metros de B. Vamos denotar os vários pontos em que ela pode
parar por {E1 , E2 , E3 , E4 , E5 , E6 }, onde E1 e E6 são as duas lojas. Sua posição inicial é
E4 e pode ser descrita por
x0 = [0, 0, 0, 1, 0, 0]
x1 = [ 0 0 0 1 0 0 ] P = x0 P
representamos essa situação por um digrafo cujos vértices correspondem aos estados
e cujos arcos nos dizem se podemos ou não ir de um estado para o outro em um
minuto.
Se cada Ek é representado por um vértice vk então o digrafo obtido por ligar vk e
vj se e somente se Pkj ̸= 0 é chamado de digrafo associado a cadeia de Markov.
O grafo do problema anterior é (entra desenho).
A matriz de adjacência do digrafo associado a cadeia de Markov é chamada de
matriz associada, ela pode ser facilmente obtida pela matriz de Transição P ao trocar
cada entrada não nula de P por 1, então a matriz do nosso problema é
1 0 0 0 0 0
0 1 1 1 0 0
0 0 1 1 1 0
A=
0 0 1 1 1 0
0 0 0 1 1 1
0 0 0 0 0 1
Como outro exemplo, suponha que seja dada uma cadeia de Markov cuja matriz
de transição é dada abaixo
1 1 1
0 0 0 0 1 1 0 0 1
4 2 4
0 1 0 0 0 0 0 1 0 0 0 0
1 1 1 1
0 0 1 1 0 1 0 1
P=
2 3 12 12 A=
0 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 0 1
0 0 0 0 0 1
0 0 0 1 0 0 0 0 0 1 0 0
Problemas similares a esse surgem em outros contextos, por exemplo, foi feito um
grande estudo com rotas de máquinas que retiram o gelo das ruas em Zurique alguns
anos atrás, tais máquinas são caras para se operar, então fez-se um estudo para
encontrar rotas que envolviam revisitar as ruas o mı́nimo possı́vel. Outras cidades
começaram investigações similares em termos de limpeza de ruas.
Achar um ciclo de peso total mı́nimo que inclua cada aresta pelo menos uma vez.
Esse problema foi resolvido em geral, usando um algoritmo que combina propri-
edades do algoritmo de Fleury e do caminho mais curto. Se o grafo é não euleriano
então existem vértices de grau ı́mpar. Porém segue do lema de "aperto de mãos"que
o número de tais vértices é par. então o número de vértices ı́mpares é 2k e podemos
fazer o grafo se tornar euleriano dobrando as arestas ao longo de k que conectam
esses vértices em pares. Garantimos que conseguimos um ciclo de peso mı́nimo
quando escolhemos os pares tais que a soma do comprimento dos k caminhos é o
menor possı́vel.
Os detalhes do algoritmo são muito complicados para serem dados aqui, mas
podemos ter uma ideia do que está envolvido ao considerar o caso particular de um
grafo com apenas dois vértices v e w de grau ı́mpar, como o grafo abaixo
56 CAPÍTULO 1. GRAFOS
Figura 1.32:
vdcvbcwbawcbv.
Figura 1.34: Desenho de como seria Königsberg nos dias de Euler. Königsberg e as
pontes sobre o Rio Pregel.
58 CAPÍTULO 1. GRAFOS
Por meio do grafo do problema, podemos perceber que em tal grafo não é eule-
riano, pois todos os vértices são de grau ı́mpar e também não é atravessável, pois
temos 4 vértices de grau ı́mpar. Então o grafo não possui ciclo euleriano nem trajeto
euleriano, não sendo possı́vel atravessar todas as pontes de Königsberg e voltar ao
ponto inicial.
poucos minutos declarou solucionado o caso. Quem poderia ser o suspeito indicado
por James Bomb? Qual o raciocı́nio utilizado pelo detetive para apontar o suspeito?
Uma criança diz ter posto a ponta do lápis numa das bolinhas do desenho da
figura abaixo, e com movimentos contı́nuos (sem levantar e sem retroceder o lápis)
traçou as linhas que formam o desenho da casa, traçando cada linha uma única
vez. A mãe da criança acha que ela trapaceou, pois não foi capaz de achar nenhuma
sequência que pudesse produzir tal resultado. Você concorda com esta mãe?
60 CAPÍTULO 1. GRAFOS