You are on page 1of 59

Instituto de Computação

Universidade Federal Fluminense

Notas de Aula de Teoria dos Grafos

Prof. Fábio Protti


Niterói, agosto de 2015.
Conteúdo
1 Conceitos Básicos 5
1.1 Grafos, vértices, arestas . . . . . . . . . . . . . . . . . . . . . 5
1.2 Vizinhança e grau . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Subgrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 União, interseção, complemento . . . . . . . . . . . . . . . . . 8
1.5 Grafo completo, clique, conjunto independente . . . . . . . . . 9
1.6 Passeios, trilhas, caminhos, ciclos . . . . . . . . . . . . . . . . 9
1.7 Distância, excentricidade, diâmetro . . . . . . . . . . . . . . . 11
1.8 Isomorfismo de grafos . . . . . . . . . . . . . . . . . . . . . . . 11
1.9 Maximalidade e minimalidade . . . . . . . . . . . . . . . . . . 11
1.10 Grafos conexos e desconexos . . . . . . . . . . . . . . . . . . . 12
1.11 Grafos bipartidos . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.12 Propriedades hereditárias . . . . . . . . . . . . . . . . . . . . . 14
1.13 Grafos como estruturas de dados . . . . . . . . . . . . . . . . 14
1.14 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Árvores 18
2.1 Conceito de árvore . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Folhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Centro de uma árvore . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Pontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Árvores geradoras . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 Conectividade 24
3.1 Cortes de vértices . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Articulações e blocos . . . . . . . . . . . . . . . . . . . 24
3.1.2 Conectividade de vértices . . . . . . . . . . . . . . . . 25
3.1.3 Caminhos internamente disjuntos em vértices . . . . . 25
3.2 Cortes de arestas . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1 Ligações (ou co-ciclos) . . . . . . . . . . . . . . . . . . 27
3.2.2 Conectividade de arestas . . . . . . . . . . . . . . . . . 27
3.2.3 Caminhos disjuntos em arestas . . . . . . . . . . . . . 29
3.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 Grafos Eulerianos e Hamiltonianos 31


4.1 Grafos Eulerianos . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 Passeios Eulerianos abertos . . . . . . . . . . . . . . . 33
4.2 Grafos Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . . 33
4.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 Emparelhamentos 40
5.1 Definição de emparelhamento . . . . . . . . . . . . . . . . . . 40
5.2 Teorema de Berge . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 Teorema de Tutte . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4 Teorema de Hall . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.5 Teorema de König . . . . . . . . . . . . . . . . . . . . . . . . 43
5.6 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Coloração de Vértices 45
6.1 Grafos k-colorı́veis . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2 Grafos crı́ticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.3 Cotas para o número cromático . . . . . . . . . . . . . . . . . 46
6.3.1 Construção de Mycielski . . . . . . . . . . . . . . . . . 46
6.3.2 Teorema de Brooks . . . . . . . . . . . . . . . . . . . . 47
6.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7 Coloração de Arestas 49
7.1 Grafos k-colorı́veis em arestas . . . . . . . . . . . . . . . . . . 49
7.2 Teorema de Vizing . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

8 Planaridade 51
8.1 Definição de grafo planar . . . . . . . . . . . . . . . . . . . . . 51
8.2 Fórmula de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.3 Caracterizações de grafos planares . . . . . . . . . . . . . . . . 52
8.4 Mapas e o Teorema das Quatro Cores . . . . . . . . . . . . . . 53
8.5 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

9 Grafos Direcionados 55
9.1 Conceitos básicos sobre digrafos . . . . . . . . . . . . . . . . . 55
9.2 Teorema de Gallai-Hasse-Roy-Vitaver . . . . . . . . . . . . . . 56
9.2.1 Torneios . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1 Conceitos Básicos
Neste capı́tulo forneceremos todas as definições e resultados fundamentais
que serão utilizados ao longo de todo o texto.

1.1 Grafos, vértices, arestas


Um grafo (simples) G é formado por um conjunto de vértices, denotado por
V (G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par
(não ordenado) de vértices distintos. Se xy é uma aresta, então os vértices x e
y são os extremos desta aresta. Dizemos também que x e y estão conectados,
ou que são adjacentes ou vizinhos.
Um grafo pode ser representado geometricamente como um conjunto de
pontos no plano (representando os vértices) e linhas que ligam estes pontos
(representando as arestas). Observamos que o mesmo grafo pode ter várias
representações geométricas diferentes.

Exemplo 1.1. Seja G o grafo tal que V (G) = {a, u, v, w, x, y, z} e E(G) =


{uv, vw, wx, xy, yz, zu, av, ax, az}. Na Figura 1.1 temos duas representações
geométricas diferentes para G.

y x a
z
y
z a w x
u
v
u v w

Figura 1.1: Duas representações geométricas diferentes para o mesmo grafo.

A ordem de um grafo é G é o número de vértices de G. Utilizamos a


seguinte notação: n = |V (G)| e m = |E(G)|. O tamanho de um grafo G é a
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

soma n + m. Um grafo trivial é aquele com um único vértice (n = 1). Um


grafo nulo é aquele com V (G) = ∅ (isto é, n = 0).
Um multigrafo é uma generalização do conceito de grafo simples. Em
um multigrafo podem existir arestas paralelas (arestas que compartilham
os mesmos extremos) e laços (um laço é uma aresta da forma xx). Laços
também são chamados de loops.

1.2 Vizinhança e grau


A vizinhança aberta de um vértice v é o conjunto de seus vizinhos. Utilizamos
a notação N(v) para designar a vizinhança aberta de v. A vizinhança fechada
de um vértice v é definida como N[v] = N(v) ∪ {v}.
O grau de um vértice é o número de vezes em que ele ocorre como ex-
tremo de uma aresta. (Esta definição se aplica tanto para grafos como para
multigrafos.) Utilizamos a notação d(v) para designar o grau do vértice v.
Em um grafo simples, o grau de um vértice é igual ao número de vizinhos
que ele possui, isto é, d(v) = |N(v)|.
Um grafo é regular quando todos os seus vértices têm o mesmo grau. Um
grafo é k-regular quando todos os seus vértices têm grau igual a k.
O grau máximo de G é definido como ∆(G) = max{d(v) | v ∈ V (G)}. O
grau mı́nimo de G é definido como δ(G) = min{d(v) | v ∈ V (G)}.
Dado um grafo G tal que V (G) = {v1 , v2 , . . . , vn−1 , vn } e os graus dos
vértices satisfazem d(v1 ) ≤ d(v2 ) ≤ · · · ≤ d(vn−1 ) ≤ d(vn ), a sequência de
graus de G é precisamente a sequência

( d(v1), d(v2 ), . . . , d(vn−1 ), d(vn ) ).

Exemplo 1.2. A sequência de graus do grafo G definido anteriormente no


Exemplo 1.1 é (2, 2, 2, 3, 3, 3, 3). Temos que δ(G) = 2 e ∆(G) = 3.

Um vértice é isolado quando tem grau zero (não possui vizinhos). Um


vértice v é universal quando está conectado por arestas a todos os demais
vértices, isto é, N(v) = V (G) \ {v}. Se v é um vértice universal então
d(v) = n − 1.
O seguinte teorema é conhecido como Teorema do Aperto de Mãos:

6
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Teorema 1.1. Em qualquer grafo simples G,


X
d(v) = 2m.
v∈V (G)

Demonstração. Observe que cada aresta xy é contada duas vezes na soma


P
v∈V (G) d(v) – uma vez na parcela d(x) e outra na parcela d(y).

1.3 Subgrafos
Um subgrafo de um grafo G é um grafo H tal que V (H) ⊆ V (G) e E(H) ⊆
E(G). H é um subgrafo próprio de G quando H é um subgrafo de G que não
é o próprio G.
Um subgrafo gerador (“spanning subgraph”) de G é um subgrafo H de G
tal que V (H) = V (G). Em outras palavras, H tem os mesmos vértices de
G, mas não necessariamente todas as arestas de G.
Um subgrafo H de G é um subgrafo induzido por um conjunto de vértices
X ⊆ V (G) se V (H) = X e vale a seguinte propriedade: se xy ∈ E(G) e
x, y ∈ X então xy ∈ E(H). Neste caso, utilizamos a notação H = G[X].
Informalmente, um subgrafo induzido por um conjunto de vértices X mantém
todas as arestas originais de G que possuem seus dois extremos em X.
Um subgrafo H de G é um subgrafo induzido por um conjunto de arestas
E ′ ⊆ E(G) se:

• E(H) = E ′ ;

• V (H) = {x | x é extremo de alguma aresta de E ′ }.

Utilizamos a notação H = G[E ′ ] para designar que H é um subgrafo


induzido por um conjunto de arestas E ′ .
A seguinte notação é bastante útil. Se S é um subconjunto de vértices de
G, então G−S = G[V (G)\S]. Se v é um vértice de G então G−v = G−{v}.
Se E ′ é um subconjunto de arestas de G, então o grafo G − E ′ é definido
da seguinte forma: V (G − E ′ ) = V (G) e E(G − E ′ ) = E(G) \ E ′ . Se e é uma
aresta de G então G − e = G − {e}.

7
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

1.4 União, interseção, complemento


A união de dois grafos G e H é o grafo denotado por G ∪ H tal que:

V (G ∪ H) = V (G) ∪ V (H) e E(G ∪ H) = E(G) ∪ E(H).

A interseção de dois grafos G e H é o grafo denotado por G ∩ H tal que:

V (G ∩ H) = V (G) ∩ V (H) e E(G ∩ H) = E(G) ∩ E(H).

Dois grafos G e H são disjuntos em vértices se V (G) ∩ V (H) = ∅. Dois


grafos G e H são disjuntos em arestas se E(G) ∩ E(H) = ∅. Se G e H são
disjuntos em vértices, então é claro que são também disjuntos em arestas.
Porém, G e H podem ser disjuntos em arestas tendo alguns vértices em
comum.
O complemento de um grafo G é o grafo G tal que V (G) = V (G) e
E(G) = {xy | xy ∈ / E(G)}. Note que G e seu complemento são grafos
disjuntos em arestas. Portanto, G ∩ G é um grafo sem arestas. Além disso,
G ∪ G é um grafo completo.

Exemplo 1.3. Se G é o grafo do Exemplo 1.1, então G é o grafo representado


na Figura 1.2.

y x

a
z w

u v

Figura 1.2: Representação geométrica de G, onde G é o grafo do Exemplo 1.1.

8
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

1.5 Grafo completo, clique, conjunto independente


Um grafo G é um grafo completo se quaisquer dois vértices de G são vizinhos.
O número de arestas de um grafo completo é n(n − 1)/2. Denotamos por
Kn um grafo completo com n vértices. O grafo K1 é o grafo trivial, o grafo
K2 é formado por dois vértices e uma aresta, e o grafo K3 é o triângulo. A
Figura 1.3 exibe os grafos K3 , K4 e K5 .

Figura 1.3: Da esquerda para a direita: grafos K3 , K4 e K5 .

Uma clique em um grafo G é um conjunto de vértices K ⊆ V (G) tal que


G[K] é completo. Em outras palavras, quaisquer dois vértices distintos de
uma clique são adjacentes.
Um conjunto estável ou independente em um grafo G é um subconjunto de
vértices S ⊆ V (G) tal que G[S] é um grafo sem arestas. Em outras palavras,
qualquer par de vértices de um conjunto independente é formado por vértices
não adjacentes.
Um grafo com n vértices formando um conjunto independente é denotado
por In .

1.6 Passeios, trilhas, caminhos, ciclos


Um passeio (“walk”) é uma sequência de vértices v1 , v2 , . . . , vk−1 , vk tal que
vj−1 vj ∈ E(G) para j = 2, . . . , k. Note que em um passeio pode haver
repetição de vértices e arestas. Se v1 = vk , dizemos que o passeio é fechado;
caso contrário, o passeio é aberto. Um passeio fechado é também denominado
circuito por alguns autores.
Uma trilha (“trail”) é um passeio v1 , v2 , . . . , vk−1 , vk cujas arestas são
todas distintas. Em uma trilha pode haver repetição de vértices, mas não

9
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

de arestas. Assim como no caso dos passeios, as trilhas também podem ser
classificadas em fechadas e abertas.
Um caminho (“path”) é um passeio v1 , v2 , . . . , vk−1 , vk onde os vértices
são todos distintos. Note que em um caminho, como não pode haver re-
petição de vértices, não há repetição de arestas. Portanto, todo caminho é
uma trilha (mas nem toda trilha é um caminho). O comprimento de um
caminho é o número de arestas neste caminho. Observe que não pode haver
“caminho fechado”, pois em um caminho não há repetição de vértices. Se
P é um caminho e u, v são vértices deste caminho, denotamos por P [u, v] o
subcaminho de P que vai de u até v.
Um ciclo (“cycle”) é um passeio v1 , v2 , . . . , vk−1 , vk tal que v1 , v2 , . . . , vk−1
é um caminho e v1 = vk . Por definição, em um ciclo devemos ter k ≥ 3. O
comprimento de um ciclo é o número de vértices (ou arestas) presentes no
ciclo. Um ciclo de comprimento três é também chamado de triângulo. Um
ciclo de comprimento ı́mpar [par] é chamado simplesmente de ciclo ı́mpar
[ciclo par].
Uma corda é uma aresta que liga dois vértices não consecutivos de um
ciclo (ou caminho). Um ciclo (resp., caminho) induzido em um grafo G é um
ciclo (resp., caminho) sem cordas. Um ciclo induzido de comprimento pelo
menos quatro é chamado de buraco (“hole”). Utilizamos a notação Ck para
designar um ciclo induzido com k vértices, e a notação Pk para designar um
caminho induzido com k vértices.
De forma análoga, um caminho induzido é um caminho sem cordas. Uti-
lizamos a notação Pk para designar um caminho induzido com k vértices.
Exemplo 1.4. Considere novamente o grafo G do Exemplo 1.1. Então:
W1 = u, v, a, z, y, x, a, z é um passeio aberto;
W2 = u, v, a, z, y, x, a, z, u é um passeio fechado;
T = a, v, w, x, a, z, y é uma trilha aberta;
P1 = u, v, w, x, a, z, y é um caminho;
P2 = u, v, w, x, y é um caminho induzido;
C1 = u, v, w, x, y, z, u é um ciclo;
C2 = u, v, a, z, u é um ciclo induzido.
Observação 1.1. Muitas vezes, será útil considerar passeios, trilhas, cami-
nhos e ciclos como grafos (ou subgrafos), em vez de considerá-los simples-
mente como sequências de vértices. Assim, por exemplo, podemos nos referir

10
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

a um caminho P com k vértices como um grafo P tal que V (P ) = {v1 , . . . , vk }


e E(P ) = {vj−1 vj | 2 ≤ j ≤ k}.

1.7 Distância, excentricidade, diâmetro


A distância entre dois vértices x e y é o comprimento do menor caminho de
x a y no grafo. Utilizamos a notação dist(x, y) para representar a distância
entre x e y. Para qualquer vértice x, vale dist(x, x) = 0.
A excentricidade de um vértice v em um grafo G é definida como:

exc(v) = max{dist(v, x) | x ∈ V (G)}.

Já o diâmetro de um grafo G define-se do seguinte modo:

diam(G) = max{exc(v) | v ∈ V (G)}.

O centro de um grafo G é o conjunto de vértices de G com excentricidade


mı́nima.

1.8 Isomorfismo de grafos


Dois grafos G e H são isomorfos se existe uma bijeção f : V (G) → V (H)
tal que xy ∈ E(G) se e somente se f (x)f (y) ∈ E(H). Informalmente, G
e H são o “mesmo” grafo, a menos de rotulações distintas para os vértices.
Utilizamos a notação G ∼
= H para designar que G e H são isomorfos.
Sejam G e H grafos quaisquer. Se existir algum subgrafo G′ de G que seja
isomorfo a H, dizemos que G contém H. Se existir algum subgrafo induzido
G′ de G que seja isomorfo a H, dizemos que G contém H como subgrafo
induzido. Se nenhum subgrafo induzido de G é isomorfo a H, dizemos que
G é livre de H.

1.9 Maximalidade e minimalidade


Um conjunto S é maximal em relação a uma propriedade P se: (i) S satisfaz
P ; (ii) não existe conjunto S ′ que satisfaça P e que contenha S propriamente.

11
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Um conjunto S é máximo em relação a uma propriedade P se: (i) S


satisfaz P ; (ii) não existe conjunto S ′ que satisfaça P e que possua mais
elementos do que S.
Todo conjunto máximo é também maximal, mas nem todo conjunto ma-
ximal é máximo.

Exemplo 1.5. Considere o grafo G do Exemplo 1.1. Os conjuntos de vértices


S1 = {u, w, y} e S2 = {a, v, x, z} são ambos conjuntos independentes maxi-
mais de G, mas apenas S2 é um conjunto independente máximo de G.

De forma análoga, um conjunto S é minimal em relação a uma propri-


edade P se: (i) S satisfaz P ; (ii) não existe conjunto S ′ que satisfaça P e
que esteja propriamente contido em S. Um conjunto S é mı́nimo em relação
a uma propriedade P se: (i) S satisfaz P ; (ii) não existe conjunto S ′ que
satisfaça P e que possua menos elementos do que S. Todo conjunto mı́nimo
é também minimal, mas nem todo conjunto minimal é mı́nimo.

Exemplo 1.6. Seja G um grafo qualquer. Um subconjunto C ⊆ V (G) é


uma cobertura (por vértices) de G se toda aresta de G tem pelo menos um de
seus extremos em C. Considerando os mesmos conjuntos S1 e S2 do exemplo
anterior, temos que S1 e S2 são coberturas minimais de G, mas apenas S1 é
uma cobertura mı́nima de G.

Os conceitos maximal/máximo e minimal/mı́nimo também se aplicam a


grafos e subgrafos.

1.10 Grafos conexos e desconexos


Um grafo G é conexo se existe caminho entre qualquer par de vértices de G.
Caso contrário, G é desconexo.
Uma componente conexa de um grafo G é um subgrafo conexo maximal
de G. Denotamos por w(G) o número de componentes conexas de G. É claro
que G é conexo se e somente se w(G) = 1.

12
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

1.11 Grafos bipartidos


Um grafo G é bipartido se V (G) pode ser particionado em conjuntos X e Y
de modo que toda aresta de G tem um extremo em X e outro em Y . Como
consequência desta definição, X e Y são conjuntos independentes.
Exemplo 1.7. O grafo G do Exemplo 1.1 é um grafo bipartido, onde X =
{a, v, x, z} e Y = {u, w, y}.

Um grafo bipartido G será bipartido completo se, para qualquer par de


vértices x, y com x ∈ X e y ∈ Y , vale que xy ∈ E(G). Denotamos por
Kp,q um grafo bipartido completo com p vértices em X e q vértices em Y .
Obviamente, Kp,q tem pq arestas.
O seguinte teorema é uma caracterização de grafos bipartidos.
Teorema 1.2. Um grafo G é bipartido se e somente se G não contém ciclos
ı́mpares.

Demonstração. Suponha por absurdo que G é um grafo bipartido contendo


um ciclo ı́mpar C = v1 , v2 , . . . , v2k , v2k+1 , v1 , para algum inteiro k ≥ 1. Seja
X ∪ Y uma bipartição de V (G), e suponha sem perda de generalidade que
v1 ∈ X. Temos então que v2 ∈ Y , v3 ∈ X, . . ., v2k ∈ Y e v2k+1 ∈ X.
Mas isto implica que a aresta v1 v2k+1 possui seus dois extremos em X, uma
contradição. Isto completa a prova da necessidade.
Suponha agora que G não contenha ciclos ı́mpares. Vamos provar que G
é bipartido. É fácil ver que um grafo é bipartido se e somente se todas as
suas componentes conexas são grafos bipartidos. Assim, basta considerar o
caso em que G é conexo.
Considere um vértice v0 qualquer de G. Defina os seguintes conjuntos:

X = {v ∈ V (G) | dist(v0 , v) é par},

Y = {v ∈ V (G) | dist(v0 , v) é ı́mpar}.

Para completar a demonstração, vamos mostrar que X é um conjunto


independente. (A prova de que Y é um conjunto independente é similar.)
Observe inicialmente que dois vértices v1 , v2 ∈ X que estão a distâncias
distintas de v0 não podem ser adjacentes, caso contrário a distância entre eles

13
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

diferiria no máximo em uma unidade. Considere então que ambos estejam a


uma mesma distância d de v0 . Sejam P1 e P2 caminhos com comprimento d
de v0 a v1 e v2 , respectivamente. Seja z o vértice mais próximo de v1 tal que
z ∈ V (P1 ) ∩ V (P2 ). (Eventualmente, podemos ter z = v0 .) É fácil ver que
dist(z, v1 ) = dist(z, v2 ). Sejam P1 [z, v1 ] e P2 [z, v2 ] os subcaminhos de P1 e P2
que vão de z a v1 e v2 , respectivamente. Concluı́mos que estes subcaminhos
têm o mesmo comprimento. Assim, v1 e v2 não podem ser adjacentes, caso
contrário haveria um ciclo ı́mpar em G, a saber (P1 [z, v1 ] ∪ P2 [z, v2 ]) + v1 v2 .
Isto completa a prova da suficiência.
Observação 1.2. Uma generalização da definição de grafo bipartido com-
pleto é a definição de grafo k-partido completo, que é aquele cujo conjunto
de vértices está particionado em conjuntos independentes V1 , V2 , . . . , Vk , e
tal que existe uma aresta entre dois vértices u e w se e somente se u e w
pertencem a conjuntos distintos desta partição.

1.12 Propriedades hereditárias


Dado um grafo G, uma propriedade é hereditária por subgrafos [induzidos]
se, quando ela é válida para G, é válida também para todos os subgrafos
[induzidos] de G.
Exemplo 1.8. Se o grafo G é livre de triângulos, então “ser livre de triângu-
los” é uma propriedade hereditária por subgrafos e por subgrafos induzidos.
Exemplo 1.9. Se o grafo G possui um vértice universal, então “possuir um
vértice universal” não é uma propriedade hereditária por subgrafos, nem por
subgrafos induzidos.
Exemplo 1.10. Se o grafo G é completo, então “ser completo” não é uma
propriedade hereditária por subgrafos, mas é uma propriedade hereditária
por subgrafos induzidos.

Obviamente, toda propriedade hereditária por subgrafos quaisquer tam-


bém é hereditária por subgrafos induzidos.

1.13 Grafos como estruturas de dados


A matriz de adjacências de um grafo G é uma matriz An×n onde:

14
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF


 1, se ij ∈ E(G);
A[i, j] =
0, se ij ∈
/ E(G).

A matriz de adjacências é simétrica e possui zeros na sua diagonal prin-


cipal. Utilizando a matriz de adjacências como estrutura de dados, basta
armazenar o triângulo superior da matriz.
A matriz de adjacências gasta memória quadrática (O(n2 )), mas o tempo
de acesso é constante – gasta-se tempo O(1) para decidir se dois vértices são
vizinhos.
A lista de adjacências de um grafo G é um outro tipo de estrutura de
dados para armazenar G. Neste tipo de representação, utiliza-se um vetor
de ponteiros, onde cada ponteiro está associado a um vértice de G e aponta
para uma lista encadeada contendo os vizinhos deste vértice.
O número de células de memória em uma lista de adjacências é n + 2m.
Utilizando esta estrutura, gasta-se tempo O(n) no pior caso para decidir se
dois vértices são vizinhos.

1.14 Exercı́cios
1.1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis
pessoas, ou três se conhecem mutuamente, ou três não se conhecem
mutuamente.

1.2. Prove ou refute: se G é um grafo conexo, então dois caminhos de


comprimento máximo de G possuem necessariamente pelo menos um
vértice em comum.

1.3. Prove ou refute: se G é um grafo contendo exatamente dois vértices


de grau ı́mpar, então existe necessariamente um caminho ligando estes
dois vértices em G.

1.4. Prove ou refute: se δ(G) > 12 (n − 2) então G é conexo.

1.5. Mostre que em uma festa com n ≥ 2 pessoas, existem pelo menos duas
pessoas com o mesmo número de conhecidos.

15
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

1.6. Um grafo k-partido é tal que seus vértices podem ser particionados em
k conjuntos V1 , V2 , .., Vk , de tal maneira que dois vértices pertencentes
um mesmo subconjunto Vi são sempre não adjacentes. Um grafo k-
partido completo é aquele em que todo par de vértices pertencentes a
partes distintas é adjacente. Um grafo k-partido completo em que cada
parte possua ⌊n/k⌋ ou ⌈n/k⌉ vértices é denominado grafo de Turán e
denotado por Tk,n .

(a) Determinar o número de arestas de Tk,n


(b) Mostrar que se G é um grafo k-partido completo então |E(G)| ≤
|Tk,n |.

1.7. Prove que para todo grafo G vale δ(G) ≤ 2m/n ≤ ∆(G).
1.8. Resolva os itens abaixo.

(a) Existe um multigrafo com a seguinte seqüência de graus:


(3,3,3,3,5,6,6,6,6)?
(b) Existe um multigrafo com a seguinte seqüência de graus:
(1,1,3,3,3,3,5,6,8,9)?
(c) Existe um grafo (simples) com a seqüência de graus do item an-
terior?
(d) Demonstre que a seqüência (d1 , d2 , . . . , dn ) de inteiros não negati-
vosPé uma seqüência de graus de algum multigrafo se e somente
se ni=1 di é par.

1.9. Um grafo (simples) é auto-complementar se G ∼


= G.

(a) Dê dois exemplos de pares de grafos auto-complementares.


(b) Prove que um grafo auto-complementar tem 4k ou 4k + 1 vértices,
para k inteiro não negativo.

1.10. Sejam u e v dois vértices em um grafo G. Mostre que existe um passeio


entre u e v se e somente se existe um caminho entre u e v.
1.11. Seja G um grafo satisfazendo uma propriedade P . Classifique (se hou-
ver) o tipo de hereditariedade de P (por subgrafos quaisquer e/ou por
subgrafos induzidos), nos seguintes casos:

16
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

(a) G é bipartido.
(b) G é auto-complementar.
(c) G é conexo.
(d) G é k-regular.
(e) ∆(G) = k.
(f) G não contém ciclos.

17
2 Árvores
As árvores constituem uma das mais importantes famı́lias de grafos devido
a suas inúmeras aplicações em Ciência da Computação e outras áreas em
Ciências Exatas e Engenharias. Neste capı́tulo estudaremos os principais
resultados sobre a estrutura das árvores.

2.1 Conceito de árvore


Dizemos que um grafo é acı́clico se não possui ciclos. Uma árvore é um grafo
acı́clico e conexo.
Um grafo acı́clico não necessariamente conexo também é chamado de
floresta. Cada componente conexa de uma floresta é uma árvore.
O teorema a seguir é a primeira caracterização de árvores que estudare-
mos.

Teorema 2.1. Um grafo T é uma árvore se e somente se existe um único


caminho entre cada par de vértices de T .

Demonstração. Suponha inicialmente que exista um único caminho entre


cada par de vértices de T . Isto implica claramente que T é um grafo conexo.
Além do mais, se T contivesse um ciclo, haveria pelo menos dois caminhos
entre qualquer par de vértices distintos neste ciclo, contrariando a hipótese
assumida. Logo, além de conexo, T é acı́clico, isto é, T é uma árvore.
Suponha agora que T seja uma árvore. Como T é conexo, existe pelo
menos um caminho entre cada par de vértices de T . Suponha por absurdo
que existam dois caminhos diferentes P1 e P2 entre um certo par de vértices
u, v ∈ V (T ). Seja w o vértice de T com as seguintes propriedades: (a)
w ∈ V (P1 ) ∩ V (P2 ); (b) P1 [u, w] = P2 [u, w]; (c) P1 [u, w] e P2 [u, w] têm o
maior comprimento possı́vel. Seja agora x ∈ V (P1 ) ∩ V (P2 ) o vértice de T
tal que P1 [w, x] e P2 [w, x] são caminhos internamente disjuntos em vértices
(isto é, possuem apenas os extremos em comum). Observe que o subgrafo
P1 [w, x] ∪ P2 [w, x] é claramente um ciclo, e isto contradiz a hipótese de T ser
uma árvore. Portanto, existe necessariamente um único caminho entre cada
par de vértices de T .
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

2.2 Folhas
Uma folha é um vértice de grau um. As folhas desempenham um papel
importante nos teoremas a seguir.
Teorema 2.2. Toda árvore não trivial tem pelo menos duas folhas.

Demonstração. Seja T uma árvore não trivial e considere um caminho


P em T de comprimento máximo. Sejam u e v os vértices inicial e final de
P . É claro que u tem um vizinho x em P . Se u tiver outro vizinho y 6= x,
temos dois casos: y ∈ V (P ) e y ∈/ V (P ). O primeiro caso é impossı́vel, pois o
grafo P [u, y] + uy seria um ciclo. O segundo caso também é impossı́vel, pois
contradiz o fato de P ser um caminho de comprimento máximo. Logo x é o
único vizinho de u em T , isto é, u é uma folha. O raciocı́cio para mostrar
que v também é uma folha é idêntico.
Teorema 2.3. Se T é uma árvore então m = n − 1.

Demonstração. Faremos a demonstração por indução em n. Para a base


da indução, consideramos o caso n = 1. Nesta situação, T é um grafo trivial,
e portanto vale m = 0 = 1 − 1 = n − 1. Para o passo da indução, seja
T uma árvore com n > 1 vértices e m arestas, e suponha que qualquer
árvore T ′ com n′ < n vértices tem exatamente m′ = n′ − 1 arestas. Pelo
Teorema 2.2, T possui uma folha x. Observe que o grafo T − x é claramente
uma árvore com n′ = n − 1 < n vértices. Pela hipótese de indução, T − x tem
n′ − 1 = (n − 1) − 1 = n − 2 arestas. Como T tem exatamente uma aresta a
mais do que T − x, segue que T tem m = (n − 2) + 1 = n − 1 arestas.

2.3 Centro de uma árvore


Nesta seção veremos que o centro de uma árvore pode ser determinado algo-
ritmicamente de modo bastante simples.
Lema 2.4. Seja T uma árvore com pelo menos três vértices. Seja F o
conjunto das folhas de T . Seja T ′ = T − F . Então, T e T ′ têm o mesmo
centro.

Demonstração. Sejam T e T ′ como no enunciado. Denote por exc(u, G)


a excentricidade do vértice u no grafo G. A demonstração se baseia nos
seguintes fatos, de verificação simples:

19
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

(a) Nenhuma folha de T pertence ao seu centro;


(b) Se v ∈ V (T ′ ) então exc(v, T ′ ) = exc(v, T ) − 1.

Pelo item (a), os vértices do centro de T estão em T ′ . Pelo item (b), um


vértice de excentridade mı́nima em T também é um vértice de excentricidade
mı́nima em T ′ , e vice-versa. Logo, o lema segue.
Teorema 2.5. (Jordan 1869) O centro de uma árvore ou é formado por
apenas um vértice ou por dois vértices vizinhos.

Demonstração. Seja T uma árvore. O lema anterior sugere um algoritmo


para encontrar o centro de T :
Algoritmo 1: Algoritmo para encontrar o centro de uma árvore T
Entrada: Uma árvore T
Saı́da: O centro de T
T′ ← T
enquanto |V (T ′ )| ≥ 3 faça
F ← conjunto das folhas de T ′
T′ ← T′ − F
retornar V (T ′ )

Pelo Lema 2.4, as sucessivas árvores referenciadas pela variável T ′ , gera-


das ao longo das iterações do comando enquanto no Algoritmo 1, possuem
todas o mesmo centro. Ao final das iterações, é claro que T ′ possuirá um ou
dois vértices. Isto completa a demonstração.

2.4 Pontes
Uma ponte ou aresta de corte de um grafo G é uma aresta e tal que w(G−e) >
w(G). Uma caracterização alternativa de árvores pode ser formulada por
meio de pontes, como veremos a seguir.
Teorema 2.6. Uma aresta e é uma ponte de G se e somente se não existe
ciclo contendo e em G.

Demonstração. Suponha por absurdo que e é uma ponte de G e que


exista um ciclo C contendo e. Se existe um caminho P entre dois vértices u

20
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

e v contendo a aresta e, então P ∪ (C − e) é um passeio entre u e v. Pelo


Exercı́cio 1.10, existe um caminho P ′ entre u e v que não contém a aresta e.
Portanto, após a remoção de e, continua havendo caminho entre todo par de
vértices pertencentes à componente conexa de G que continha e. Isto implica
w(G − e) = w(G), o que contradiz a hipótese de e ser uma ponte.
Suponha agora que não exista ciclo contendo e em G. Escreva e = xy. Se
existisse algum caminho P entre x e y no grafo G − e, P + e seria um ciclo
em G contendo e, uma contradição. Logo, x e y pertencem a componentes
conexas distintas no grafo G − e, o que implica w(G − e) > w(G); em outras
palavras, e é uma ponte.

Teorema 2.7. Um grafo conexo T é uma árvore se e somente se toda aresta


de T é uma ponte.

Demonstração. Suponha que T é uma árvore. Como T é um grafo acı́clico,


é claro que nenhuma aresta de T pode pertencer a um ciclo. Logo, pelo
Teorema 2.6, toda aresta de T é uma ponte.
Reciprocamente, se toda aresta de um grafo T é uma ponte, pelo Te-
orema 2.6 nenhuma delas pertence a um ciclo. Logo o grafo T é acı́clico.
Como por hipótese T é conexo, segue que T é uma árvore.

2.5 Árvores geradoras


Uma árvore geradora de um grafo G é um subgrafo gerador conexo e acı́clico
de G.

Proposição 2.8. Todo grafo conexo possui uma árvore geradora.

Demonstração. Seja G um grafo conexo. O seguinte algoritmo constrói


uma árvore geradora de G.
Algoritmo 2: Algoritmo para determinar uma árvore geradora
Entrada: Um grafo conexo G
Saı́da: Uma árvore geradora T de G
T ←G
enquanto existe aresta e tal que T − e é conexo faça T ← T − e
retornar T

21
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Observe que o grafo T retornado pelo Algoritmo 2 satisfaz V (T ) = V (G),


isto é, T é um subgrafo gerador de G. Além do mais, as sucessivas remoções
de arestas no comando enquanto preservam a conexidade de T ; logo, ao
final das iterações, T será um subgrafo conexo. Finalmente, quando o teste
do comando enquanto falhar, todas as arestas remanescentes em T serão
pontes; pelo Teorema 2.7, o grafo T retornado é uma árvore. Isto conclui a
demonstração.

Teorema 2.9. Se G é conexo, então m ≥ n − 1.

Demonstração. Pela Proposição 2.8, G possui uma árvore geradora T .


Obviamente, |V (T )| = n e |E(T )| = n − 1. Como |E(G)| = m e E(T ) ⊆
E(G), segue o resultado.
Concluı́mos pelos Teoremas 2.3 e 2.9 que as árvores são os grafos conexos
que atingem o limite mı́nimo n − 1 para o número de arestas, no sentido de
que todo grafo com menos do que n − 1 arestas é necessariamente desconexo.
Pode-se mostrar (Exercı́cio 2.8) que toda floresta é um subgrafo gerador
de uma árvore. Este resultado, juntamente com o Teorema 2.3, permite
enunciar:

Teorema 2.10. Se G é acı́clico, então m ≤ n − 1.

Pelos Teoremas 2.3 e 2.10, as árvores são os grafos acı́clicos que atingem
o limite máximo n − 1 para o número de arestas, no sentido de que todo
grafo com mais do que n − 1 arestas contém pelo menos um ciclo.

Corolário 2.11. Seja G um grafo qualquer com n vértices e m arestas.


Então:
(a) Se m < n − 1 então G é desconexo;
(b) Se m = n − 1 e G é conexo ou acı́clico então G é uma árvore;
(c) Se m > n − 1 então G contém pelo menos um ciclo.

Encerramos esta seção com este importante teorema:

Teorema 2.12. Seja T uma árvore geradora de um grafo conexo G, e seja


e ∈ E(G)\E(T ). Então, T + e contém um único ciclo.

22
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Demonstração. Escreva e = xy. Pelo Teorema 2.1, em T existe um único


caminho P entre x e y. Logo, o subgrafo P + e é um ciclo em T + e. Se C é
um outro ciclo em T + e, é claro que C contém a aresta e. Assim, C − e é um
caminho entre x e y em T , donde concluı́mos que C − e é o próprio caminho
P , isto é, os ciclos C e P + e são na verdade o mesmo ciclo.

2.6 Exercı́cios
2.1. Mostre que se G é uma árvore com ∆(G) ≥ k, então G contém pelo
menos k folhas.

2.2. Desenhe todas as árvores não isomorfas com 7 vértices.

2.3. Prove que um grafo é uma floresta se e somente se o seu número de


arestas é igual ao seu número de vértices menos o seu número de com-
ponentes conexas.

2.4. Prove ou refute: Se G é acı́clico então G possui no mı́nimo 2(w(G) −


i(G)) vértices de grau um, onde w(G) é o número de componentes
conexas de G e i(G) é o número de vértices isolados de G.

2.5. Seja G um grafo conexo e e uma aresta de G. Mostre que e está em


toda árvore geradora de G se e somente se e é uma ponte de G.

2.6. Mostre que se G tem exatamente uma árvore geradora T então G = T .

2.7. Mostre que qualquer grafo G = (V, E) contém pelo menos m − n + w


ciclos distintos, onde |V | = n, |E| = m e w é o número de componentes
conexas de G.

2.8. Mostre que toda floresta é um subgrafo gerador de uma árvore.

2.9. A cintura de um grafo G é o comprimento de seu menor ciclo. Se G


for acı́clico, sua cintura é infinita. Mostre que um grafo k-regular de
cintura 4 possui pelo menos 2k vértices.

23
3 Conectividade
Neste capı́tulo estudaremos conjuntos especiais de vértices e arestas cuja
remoção desconecta o grafo, no sentido de que o número de componentes
conexas aumenta após a remoção.

3.1 Cortes de vértices


Dado um grafo G, um conjunto de vértices V ′ ⊆ V (G) é um separador ou
corte de vértices de G se w(G − V ′ ) > w(G).
Observe que um grafo completo não admite cortes de vértices.

3.1.1 Articulações e blocos

Um caso especial importante ocorre quando o corte de vértices é um con-


junto unitário. Um vértice v é chamado de articulação ou vértice de corte
quando w(G − v) > w(G). A seguir, vamos estudar algumas propriedades
relacionadas ao conceito de articulação.
Lema 3.1. Um vértice v é uma articulação de um grafo se e somente se
existem dois vértices distintos x, y tais que: (a) v ∈
/ {x, y}; (b) x, y e v estão
na mesma componente conexa; (c) todo caminho entre x e y contém v.
Teorema 3.2. Em uma árvore T não trivial, um vértice v é uma articulação
se e somente se v não é folha.
Corolário 3.3. Todo grafo conexo G não trivial possui pelo menos dois
vértices que não são articulações.

Passemos agora ao estudo dos blocos. Um bloco de um grafo G é um


subgrafo B de G tal que B é maximal conexo sem articulações.
Observação 3.1. Um bloco B sempre conterá uma ou mais articulações de
G, mas por definição elas não serão articulações em B.

Note que dois blocos distintos em um grafo têm no máximo um vértice


em comum; no caso de compartilharem um vértice, tal vértice será necessa-
riamente uma articulação.
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Note também que cada aresta de um grafo G está em um único bloco.


Portanto, os blocos determinam uma partição de E(G).
Um bloco B de um grafo G é chamado de bloco folha se B contém uma
única articulação de G.

3.1.2 Conectividade de vértices

A conectividade de vértices κ(G) de um grafo conexo G é a cardinalidade de


um corte de vértices mı́nimo de G, desde que G não seja completo.
Definimos κ(G) = n − 1 se G é um grafo completo com n vértices, e
κ(G) = 0 se G é desconexo. Observe que, se G é trivial, κ(G) = 0.
Dizemos que G é p-conexo em vértices para todo p ≤ κ(G). É claro que
todo grafo conexo e não trivial é 1-conexo em vértices. Além disso, se G é
conexo, é fácil ver que κ(G) = 1 se e somente se G contém pelo menos uma
articulação. Alternativamente, podemos enunciar:

Proposição 3.4. Um grafo G conexo com pelo menos três vértices é biconexo
se e somente se G não possui articulações.

3.1.3 Caminhos internamente disjuntos em vértices

Sejam u e v vértices distintos de um grafo G. Dois caminhos de u a v


são chamados de internamente disjuntos (em vértices) se eles têm apenas os
extremos u e v em comum.

Teorema 3.5. (Whitney, 1932) Seja G um grafo com pelo menos três vérti-
ces. Então, G é biconexo se e somente se para quaisquer dois vértices de G
existem dois caminhos internamente disjuntos entre eles.

Corolário 3.6. Um grafo G com pelo menos três vértices é biconexo se e


somente se existe um ciclo que passa por cada par de vértices arbitrários de
G.

O seguinte teorema é uma generalização do Teorema 3.5. Sua demons-


tração será omitida.

25
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Teorema 3.7. (Menger) Um grafo com pelo menos k + 1 vértices é k-conexo


em vértices se e somente se para quaisquer dois vértices de G existem k
caminhos internamente disjuntos entre eles.

3.2 Cortes de arestas


Um conjunto desconectante (de arestas) é um conjunto E ′ ⊆ E(G) tal que
w(G − E ′ ) > w(G).
Observe que toda ponte define um conjunto desconectante de arestas. É
fácil ver que se e é uma ponte de um grafo G então w(G − e) = w(G) + 1.
Iremos estudar agora conjuntos desconectantes especiais, os cortes de
arestas. Para isso, precisamos da seguinte definição: Se S e T são subcon-
juntos de vértices de um grafo, então [S, T ] é o conjunto de todas as arestas
de G que têm um extremo em S e outro em T .
Seja G um grafo. Um corte de arestas de G é qualquer conjunto não vazio
da forma [S, S], onde S é um subconjunto próprio e não vazio de vértices de
G e S = V (G)\S.
É fácil ver que todo corte de arestas é um conjunto desconectante, mas
nem todo conjunto desconectante é um corte de arestas. O teorema a seguir
nos aponta conjuntos desconectantes especiais que são cortes de arestas.
Teorema 3.8. Todo conjunto desconectante minimal em um grafo G é um
corte de arestas.

Demonstração. Assuma que G é conexo. Seja F um conjunto desconec-


tante minimal de G, e seja e ∈ F . Defina Fe = F \{e}. Pela minimalidade de
F , w(G−Fe ) = w(G). Logo, e é uma ponte de G−Fe . Escreva e = xy. Sejam
Gx e Gy as componentes conexas de (G − Fe ) − e contendo x e y, respectiva-
mente. Como a aresta e foi tomada genericamente e (G − Fe ) − e = G − F ,
segue que para qualquer aresta e ∈ F as componentes conexas de (G −Fe ) −e
são sempre as mesmas. Fazendo S = V (Gx ) e S = V (Gy ), segue que toda
aresta e ∈ F tem um extremo em S e outro em S. Logo, F = [S, S], isto é,
F é um corte. A demonstração se adapta facilmente para o caso em que G
é desconexo.
Note que toda ponte define um conjunto desconectante minimal de ares-
tas, e portanto um corte.

26
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

3.2.1 Ligações (ou co-ciclos)

Um corte de arestas minimal é também chamado de ligação (“bond”) ou


co-ciclo. Observe que toda ponte de um grafo G é um co-ciclo. A proposição
abaixo caracteriza co-ciclos em grafos conexos.
Proposição 3.9. Se G é conexo e S é um subconjunto próprio e não va-
zio de V (G), então F = [S, S] é co-ciclo se e somente se G − F tem dois
componentes conexos.
Observação 3.2. Seja G um grafo qualquer. Denotemos por D(G) a famı́lia
de todos os conjuntos desconectantes de G, D ′ (G) a famı́lia de todos os
conjuntos desconectantes minimais de G, C(G) a famı́lia de todos os cortes
de arestas de G, e C ′ (G) a famı́lia de todas os co-ciclos de G. Vale então que:
D ′ (G) = C ′ (G) ⊆ C(G) ⊆ D(G).

Para a sequência desta seção, necessitamos das definições a seguir.


Seja H um subgrafo de um grafo G. O complemento de H em relação a
G é o grafo G − E(H).
Seja T uma árvore geradora de um grafo conexo G. A co-árvore de T é
o complemento de T em relação a G. Denotamos por T a co-árvore de uma
árvore geradora T .
O teorema a seguir é o análogo do Teorema 2.12 aplicado a co-árvores e
co-ciclos:
Teorema 3.10. Seja T uma árvore geradora de um grafo conexo G. Então:
(a) T não contém co-ciclos de G;
(b) Se e é uma aresta de T então T + e contém um único co-ciclo de G.

3.2.2 Conectividade de arestas

A conectividade de arestas κ′ (G) de um grafo conexo e não trivial G é a


cardinalidade de um corte de arestas mı́nimo de G. Definimos κ′ (G) = 0 se
G é trivial ou desconexo.
Assim como para vértices, dizemos que um grafo G é p-conexo em arestas
para todo p ≤ κ′ (G). Obviamente, todo grafo conexo não trivial é 1-conexo
em arestas.

27
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Teorema 3.11. (Whitney, 1932) Seja G um grafo qualquer. Então,

κ(G) ≤ κ′ (G) ≤ δ(G).

Demonstração. Se G é desconexo ou trivial, κ(G) = κ′ (G) = 0, e portanto


o teorema é válido. Assuma então que G é conexo e não trivial.
Demonstremos inicialmente a desigualdade κ′ (G) ≤ δ(G). Observe que
as arestas incidentes a um vértice v de grau mı́nimo definem um corte de
arestas F = [S, S] onde S = {v} e |F | = δ(G). Logo, κ′ (G) ≤ |F | = δ(G).
Passemos agora à demonstração da desigualdade κ(G) ≤ κ′ (G). Seja
F = [S, S] um corte de arestas mı́nimo de G, isto é, |F | = κ′ (G). Como
F é um corte mı́nimo, F é um co-ciclo de G, e pela Proposição 3.9 o grafo
G−F tem exatamente duas componentes conexas, a saber, G[S] e G[S]. Seja
S1 = {x ∈ S | x é extremo de alguma aresta de F }. Analogamente, seja
S2 = {x ∈ S | x é extremo de alguma aresta de F }. A seguir, analisaremos
alguns casos.
Se S \ S1 contém algum vértice y1 , é fácil ver que no grafo G − S1 o
vértice y1 encontra-se num componente conexa diferente de G[S] (observe
que a remoção de S1 acarreta a remoção de todas as arestas de F ). Logo, S1 é
um corte de vértices. Como |S1 | ≤ |F |, segue que κ(G) ≤ |S1 | ≤ |F | = κ′ (G).
No caso em que S \ S2 contém algum vértice y2 , a desigualdade κ(G) ≤
κ (G) prova-se de maneira análoga.

Resta agora analisar o caso S = S1 e S = S2 . Se existem y1 ∈ S1 e y2 ∈ S2


não adjacentes, segue que o conjunto R = (S1 \ {y1 }) ∪ N(y1 , S2 ) é um corte
de vértices, pois sua remoção acarreta a remoção de todas as arestas de F
e deixa y1 e y2 em componentes conexas diferentes. Como |R| ≤ |F |, segue
que κ(G) ≤ |R| ≤ |F | = κ′ (G).
Finalmente, se todos os vértices de S1 são adjacentes a todos os vértices
de S2 , suponha |S1 | = n1 e |S2 | = n2 , e considere y1 ∈ S1 . Observe que
as arestas incidentes a y1 definem um corte de arestas F1 cujo tamanho é
d(y1) ≤ n1 − 1 + n2 . Como neste caso |S| = n1 n2 e S é um corte mı́nimo,
segue que n1 n2 ≤ n1 −1+n2 . Resolvendo esta desigualdade, segue que n1 = 1
ou n2 = 1. Assuma sem perda de generalidade n1 = 1, e considere y2 ∈ S2 .
Novamente, as arestas incidentes a y2 definem um corte de arestas, e segue
então que n2 = |S| ≤ d(y2). Concluı́mos assim que, neste caso, G é um grafo

28
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

completo. Para concluir a demonstração, basta recordar que a desigualdade


κ(G) ≤ κ′ (G) vale trivialmente em um grafo completo.

3.2.3 Caminhos disjuntos em arestas

A caracterização de grafos k-conexos em vértices por meio de caminhos in-


ternamente disjuntos em vértices (Teorema 3.7) admite uma versão análoga
para arestas:

Teorema 3.12. (Menger - versão arestas) Um grafo G é k-conexo em ares-


tas se e somente se para quaisquer dois vértices de G existem k caminhos
disjuntos em arestas entre eles.

3.3 Exercı́cios
3.1. Prove: qualquer conjunto de 7 arestas no grafo K3,3 é um conjunto
desconectante, mas não um corte.

3.2. Prove ou refute: O grafo K4,4 não possui corte com exatamente 10
arestas.

3.3. Mostre que se G é conexo e não trivial, qualquer árvore geradora T de


G e qualquer conjunto desconectante não vazio F ⊆ E(G) terão pelo
menos uma aresta em comum.

3.4. Determine κ(G) e κ′ (G) para os grafos abaixo. Para cada p, que grafos
são p-conexos em vértices? Que grafos são p-conexos em arestas?

3.5. Prove que se G é 3-regular, então κ(G) = κ′ (G).

3.6. Existe algum grafo G que é 3-regular, 3-conexo em arestas e não 3-


conexo em vértices?

29
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

3.7. Prove que o grafo de Petersen é 3-conexo em vértices.

3.8. Prove ou refute: Se G é conexo e possui exatamente dois vértices que


não são articulações, então G é um caminho.

3.9. Um cacto é um grafo conexo no qual todo bloco é uma aresta ou um


ciclo. Prove que o número máximo de arestas num cacto com n vértices
é ⌊3(n − 1)/2⌋. Dica: ⌊x⌋ + ⌊y⌋ ≤ ⌊x + y⌋.

30
4 Grafos Eulerianos e Hamiltonianos
Neste capı́tulo estudaremos dois tipos especiais de passeios em grafos. O
primeiro tipo é formado pelos passeios que visitam todas as arestas do grafo,
sem repetições, e o segundo pelos passeios fechados que visitam todos os
vértices, também sem repetições (a menos dos vértices inicial e final, claro).
Como nem todo grafo admitirá tais tipos de passeios, veremos sob quais
condições garante-se sua existência.

4.1 Grafos Eulerianos


Um passeio Euleriano ou passeio de Euler ou trilha Euleriana ou trilha de
Euler de um grafo G é uma trilha fechada que contém cada aresta de G
exatamente uma vez.
Um grafo é Euleriano se ele possui uma trilha de Euler.

Teorema 4.1. (Euler, 1736) Um grafo G conexo é Euleriano se e somente


se todo vértice de G possui grau par.

Demonstração. Assuma que G não é trivial. A demonstração da ne-


cessidade é simples: numa trilha Euleriana, cada ocorrência de um vértice v
interno à trilha acrescenta duas unidades ao grau de v. Além disso, é fácil ver
que o vértice inicial (e final) da trilha também tem grau par. A demonstração
da suficiência consiste em executar o Algoritmo de Tucker: particionar G em
ciclos e compor os ciclos até formar uma trilha Euleriana. Este algoritmo é
O(m). Estes são os passos do algoritmo:
(a) Se todos os vértices de G têm grau par, G não contém folhas. Logo, pelo
Teorema 2.2, G não pode ser uma árvore. Como G é conexo, G deve conter
um ciclo C1 . Note que todos os vértices do grafo G1 = G − E(C1 ) também
possuem grau par. Eventualmente, G1 poderá conter vértices isolados, e até
ser um grafo sem arestas; mas, se E(G1 ) 6= ∅, nenhuma das componentes
conexas não triviais de G1 será árvore, e nesse caso G1 conterá um ciclo
C2 . O raciocı́cio se aplica novamente ao grafo G2 = G1 − E(C2 ), e assim
sucessivamente. No final, para um certo valor de k, Gk será um grafo sem
arestas e a coleção C = {C1 , C2 , . . . , Ck } define uma partição das arestas de
G em ciclos.
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

(b) Como um ciclo é um caso particular de trilha fechada, a coleção C pode


ser vista agora como uma coleção de trilhas fechadas. Como G é conexo, se
k ≥ 2 é claro que existem duas trilhas desta coleção que compartilham um
vértice comum. Assuma sem perda de generalidade que Ck−1 e Ck possuam
um vértice em comum. Estas trilhas podem ser facilmente concatenadas, re-
sultando numa única trilha fechada Ck−1 ′
. Novamente, se k − 1 ≥ 2, deve ha-
ver duas trilhas na coleção {C1 , . . . , Ck−2, Ck−1

} compartilhando um vértice
comum, digamos Ck−2 e Ck−1. A concatenação destas duas trilhas numa

nova trilha fechada Ck−2



resulta numa nova coleção {C1 , . . . , Ck−3, Ck−2

}. O
processo continua até que haja uma única trilha fechada C1′ contendo todas
as arestas de G, exatamente uma vez cada.

Observação 4.1. O Teorema 4.1 vale também para multigrafos.

Enunciamos a seguir um problema de logı́stica bastante conhecido, que


pode ser resolvido por algoritmos de tempo polinomial no tamanho do grafo
de entrada.
Problema do Carteiro Chinês: Dado um grafo G com pesos não negativos
nas arestas, deseja-se um passeio fechado de comprimento mı́nimo que passe
por todas as arestas de G.
Um algoritmo para a solução do problema acima consiste em executar os
seguintes passos:

1. Localizar os vértices de grau ı́mpar em G. Sejam v1 , v2 , . . . , vk estes


vértices. Como o número de vértices de grau ı́mpar em qualquer grafo é par,
k é par.

2. Construir um grafo auxiliar completo G′ tal que V (G′ ) = {v1 , v2 , . . . , vk }


e o peso de uma aresta vi vj , i < j, é igual ao custo cij de um caminho de
custo mı́nimo Pij entre vi e vj em G.

3. Determinar um emparelhamento de custo mı́nimo M ′ em G′ . (Para mais


informações sobre emparelhamentos, consultar o próximo capı́tulo.)

4. Para cada aresta vi vj ∈ M ′ , acrescentar a G as arestas de Pij . É fácil


ver que o multigrafo resultante G+ é Euleriano. Uma trilha Euleriana de
G+ , que pode ser obtida utilizando oPalgoritmo de Tucker,
P é uma solução do
problema. O custo desta trilha será e∈E(G) custo(e) + vi vj ∈M ′ cij .

32
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Todas as estapas do algoritmo descrito acima podem ser executadas em


tempo polinomial. Portanto, o Problema do Carteiro Chinês pertence à classe
P.

4.1.1 Passeios Eulerianos abertos

Um passeio Euleriano aberto é um passeio aberto em G tal que toda aresta


de G ocorre exatamente uma vez no passeio.
Corolário 4.2. Um grafo conexo G admite um passeio Euleriano aberto se
e somente se existem exatamente dois vértices de grau ı́mpar em G.

Demonstração. A demonstração da necessidade é trivial. Para a de-


monstração da suficiência, sejam u e v os dois vértices de grau ı́mpar em G.
Considere um grafo auxiliar G′ construı́do a partir de G pelo acréscimo de
um novo vértice x e arestas ux, vx. É claro que G′ é Euleriano. Pelo Teo-
rema 4.1, seja T ′ uma trilha Euleriana de G′ . A remoção de x da trilha T ′
(juntamente com as arestas ux e vx) resulta em um passeio Euleriano aberto
em G.

4.2 Grafos Hamiltonianos


Um ciclo [caminho] Hamiltoniano em um grafo G é um ciclo [caminho] que
contém todos os vértices de G, uma vez cada. O grafo G é Hamiltoniano
quando possui um ciclo Hamiltoniano.
É fácil observar que todo grafo Hamiltoniano é biconexo.
O teorema a seguir fornece uma condição necessária para a Hamiltonici-
dade de um grafo.
Teorema 4.3. Se G é um grafo Hamiltoniano então todo subconjunto
S ⊆ V (G) próprio e não vazio satisfaz w(G − S) ≤ |S|.

Demonstração. Considere um ciclo Hamiltoniano C em G. Seja S um sub-


conjunto de vértices de G, próprio e não vazio. Denotemos por G1 , . . . , Gk as
componentes conexas de G − S, e sejam P1 , . . . , Pk subcaminhos maximais
de C onde V (Pi ) ⊆ V (Gi ), 1 ≤ i ≤ k. Observe que o vértice ui que imediata-
mente precede Pi em C não pode pertencer a nenhuma componente conexa

33
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Gj , j 6= i, caso contrário haveria uma aresta conectando estas componentes.


Logo, {u1 , . . . , uk } ⊆ S. Além disso, os ui ’s são mutuamente distintos. Logo
w(G − S) = k ≤ |S|.
Exemplo 4.1. Considere o grafo G na Figura 4.1. Este grafo é chamado
grafo de Petersen. Observe que para todo S ⊆ V (G), próprio e não vazio,
vale w(G − S) ≤ |S|. No entanto, G não é Hamiltoniano. Isto mostra que
a condição do Teorema 4.3, embora seja necessária, não é uma condição
suficiente para um grafo ser Hamiltoniano.

6
5 2
10 7

9 8
4 3

Figura 4.1: O grafo de Petersen não é Hamiltoniano.

Veremos agora algumas condições suficientes para a Hamiltonicidade de


um grafo.
Teorema 4.4. (Dirac, 1952) Todo grafo com n ≥ 3 e δ(G) ≥ n/2 tem um
ciclo Hamiltoniano.
Teorema 4.5. (Ore, 1960) Se G é um grafo com n ≥ 3 e tal que para todo
par de vértices distintos não adjacentes u e v vale d(u) + d(v) ≥ n, então G
é Hamiltoniano.

Observe que o Teorema de Ore é mais forte do que o de Dirac, no sentido


de que o Teorema de Dirac é um corolário do Teorema de Ore. Demonstra-
remos então o Teorema de Ore.
Demonstração do Teorema 4.5. Suponha o teorema falso. Seja G um
grafo com pelo menos três vértices e tal que d(u)+d(v) ≥ n para todo par u, v
de vértices não adjacentes, e suponha que G é não Hamiltoniano maximal.

34
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

É claro que G não é um grafo completo. Escolha um par u, v de vértices


não adjacentes de G, e considere o grafo G + uv. Pela maximalidade de G,
segue que G + uv é Hamiltoniano. Além do mais, todo ciclo Hamiltoniano
de G + uv contém uv.
Claramente, G contém um caminho Hamiltoniano v1 , v2 , . . . , vn com v1 =
u e vn = v. Sejam S = {vi | uvi+1 ∈ E(G)} e T = {vi | vi v ∈ E(G)}.
Observe que vn 6∈ S e vn 6∈ T . Logo, |S ∪ T | < n. Além disso, temos
que |S ∩ T | = 0, pois se existisse vi ∈ S ∩ T o grafo G conteria o ciclo
Hamiltoniano v1 v2 . . . vi vn vn−1 . . . vi+1 v1 . (Veja a Figura 4.2.) Assim,

d(u) + d(v) = |S| + |T | = |S ∪ T | + |S ∩ T | < n.

Mas isto contradiz a hipótese do teorema.

u = v1 v2 vi vi+1 vn−1 vn = v

Figura 4.2: Demonstração do Teorema 4.5.

Um raciocı́nio alternativo para a demonstração acima consiste em utilizar


o Princı́pio Combinatório da Casa de Pombo:

“Se existirem n pombos em m < n casas, então existe


pelo menos uma casa com no mı́nimo dois pombos.”

Observe que vn 6∈ S ∪ T , d(u) = |S|, d(v) = |T | e d(u) + d(v) ≥ n.


Temos assim n − 1 “casas” numeradas de 1 a n − 1 (ı́ndices), onde vamos
distribuir os elementos de S e T , em quantidade maior do que n − 1 (levando
em conta possı́veis elementos repetidos). Um certo ı́ndice i deverá estar
portanto associado a dois elementos idênticos, um de S e outro de T . Isto é,
deverá existir vi ∈ S ∩ T . Mas vimos que isto gera uma contradição.
Descreveremos agora uma condição necessária e suficiente para Hamil-
tonicidade. Antes, precisaremos de uma nova definição e dois lemas prepa-
ratórios.

35
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

O fecho de um grafo G é o grafo C(G) obtido de G por sucessivas adições


de arestas ligando pares de vértices não adjacentes cuja soma de graus seja
maior ou igual a n.
Exemplo 4.2. Se G é o grafo formado pelo ciclo a, b, c, d, e, f, a acrescido das
cordas ac e ae então C(G) é o grafo K6 . Uma possı́vel sequência de arestas
a serem acrescentadas na determinação do fecho é: ad, ec, eb, cf, bf, df, bd.
Lema 4.6. C(G) é bem definido (único).

Demonstração. Sejam G1 = G+{e1 , e2 , . . . , ek } e G2 = G+{f1 , f2 , . . . , fl }


dois grafos obtidos pela aplicação exaustiva de adições de arestas de acordo
com a regra de construção do fecho de um grafo. Suponha que exista alguma
aresta em G1 que não esteja em G2 . Seja ej a primeira aresta da sequência
e1 , e2 , . . . , ek que não pertence a G2 . Escreva ej = uv, e defina H = G +
{e1 , . . . , ej−1 }. É claro que dH (u)+dH (v) ≥ n, pois ej deverá ser acrescentada
a H. Observe também que H é um subgrafo de G2 , pois por definição todas
as arestas e1 , . . . , ej−1 estão em G2 . Logo, dG2 (u) + dG2 (v) ≥ n. Mas isto
implica que ej = uv deve ser acrescentada a G2 , uma contradição. Logo toda
aresta de G1 está em G2 , e de modo análogo pode-se provar que toda aresta
de G2 está em G1 .
Lema 4.7. Seja G um grafo e a, b dois vértices não adjacentes de G satis-
fazendo d(a) + d(b) ≥ n. Então, G é Hamiltoniano se e somente se G + ab
é Hamiltoniano.

Demonstração. A prova da necessidade é trivial. A prova da suficiência


segue diretamente da demonstração do Teorema de Ore: se G + ab é Hamil-
toniano então G possui um caminho Hamiltoniano iniciando no vértice a e
terminando no vértice b. A partir daı́ podemos construir dois conjuntos S
e T exatamente como na demonstração do Teorema 4.5, e concluir que G é
Hamiltoniano.
Finalmente, podemos enunciar:
Teorema 4.8. (Bondy e Chvátal, 1976) Um grafo G é Hamiltoniano se e
somente se C(G) é Hamiltoniano.

Demonstração. A prova da necessidade é trivial. Já a prova da su-


ficiência consiste em sucessivas aplicações do Lema 4.7. Escreva C(G) =

36
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

G + {u1v1 , u2v2 , . . . , uk vk }. Defina G0 = G e Gj = G + {u1 v1 , u2 v2 , . . . , uj vj },


1 ≤ j ≤ k. Como dGk−1 (uk ) + dGk−1 (vk ) ≥ n e Gk é um grafo Hamilto-
niano, segue pelo Lema 4.7 que Gk−1 é Hamiltoniano. Da mesma forma,
como dGk−2 (uk−1 ) + dGk−2 (vk−1 ) ≥ n e Gk−1 é Hamiltoniano, segue que Gk−2
é Hamiltoniano. Aplicando sucessivamente este raciocı́cio, concluı́mos que
G0 , G1 , . . . , Gk são todos Hamiltonianos.
O seguinte corolário será útil em muitos casos:
Corolário 4.9. Se C(G) é completo então G é Hamiltoniano.

Concluı́mos este capı́tulo enunciando um dos problemas mais importantes


da Ciência da Computação, devido a suas várias aplicações. “É um problema
de otimização NP-difı́cil inspirado na necessidade dos vendedores em realiza-
rem 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.” (Fonte: Wikipedia)
Problema do Caixeiro Viajante: Dado um grafo completo G com pesos
nas arestas, deseja-se obter um ciclo Hamiltoniano de G com peso mı́nimo.

4.3 Exercı́cios
4.1. Existe algum grafo euleriano com n par e m ı́mpar? Em caso positivo,
descreva-o. Em caso negativo, justificar a não existência.
4.2. Prove que se G é 4-regular então G não contém pontes.
4.3. Verdadeiro ou Falso? Se G é bipartido e 3-regular então G não contém
pontes.
4.4. Se G é um grafo euleriano com arestas e1 e e2 que têm um vértice em
comum, então G tem uma trilha Euleriana no qual e1 e e2 aparecem
consecutivamente? Prove, se for verdadeiro. Caso contrário justifique
convenientemente.
4.5. Verdadeiro ou Falso? Se G é Euleriano, então todo bloco de G é Eule-
riano.
4.6. Verdadeiro ou Falso? Todo bloco de um grafo G possui caminho Ha-
miltoniano.

37
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

4.7. Uma grade de dimensão p × q (onde p, q são inteiros tais que p, q ≥ 2) é


um grafo G em que V (G) é o subconjunto dos pontos de coordenadas
inteiras (x, y), 1 ≤ x ≤ p e 1 ≤ y ≤ q, e tal que se dois vértices são
adjacentes então a distância entre os pontos respectivos é um. Uma
grade completa contém todas as arestas possı́veis.
Mostre que uma grade completa é um grafo hamiltoniano se e somente
se p.q for par.

4.8. Um grafo G é hipo-hamiltoniano quando G − v é hamiltoniano para


todo vértice v, mas G não o é. Justificar porque o grafo de Petersen é
hipo-hamiltoniano.

4.9. O grafos abaixo são Hamiltonianos?

4.10. Proponha alterações mı́nimas no conjunto de arestas de cada grafo do


exercı́cio anterior de modo a converter sua Hamiltonicidade em não-
Hamiltonicidade, ou o contrário.

4.11. Um passeio fechado de cavalo é uma sequência de movimentos de cavalo


em um tabuleiro com m linhas e n colunas, onde, partindo de uma casa
inicial e sem passar duas vezes pela mesma casa, o cavalo retorna à casa
inicial após visitar todas as casas do tabuleiro. Pergunta-se: o tabuleiro
4 × 4 admite um passeio de cavalo fechado?

38
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

4.12. Estude o problema da questão anterior, verificando para quais valores


de m e n o tabuleiro m × n admite um passeio de cavalo fechado.

39
5 Emparelhamentos
O conceito de emparelhamento é muito útil para modelar problemas de
alocação em pares de objetos: operários/máquinas, turmas/salas-de-aula,
professores/disciplinas, processadores pareados etc. Em muitas aplicações, o
grafo subjacente é naturalmente bipartido. Porém, iniciaremos nosso estudo
em grafos gerais.

5.1 Definição de emparelhamento


Dado um grafo G, um emparelhamento de G é um subconjunto M ⊆ E(G)
que não contém arestas com extremos em comum. Em outras palavras, G[M]
é um grafo 1-regular se M 6= ∅.
Um emparelhamento M satura um vértice v se alguma aresta de M é
incidente a v. Neste caso, v é dito M-saturado, ou simplesmente emparelhado.
Caso contrário, v é M-insaturado.
Um emparelhamento M será maximal se não existir nenhum outro que
o contenha propriamente, e será máximo se não existir nenhum outro de
cardinalidade maior. É claro que todo emparelhamento máximo é maximal,
mas nem todo emparelhamento maximal é máximo.

5.2 Teorema de Berge


Nesta seção estudaremos um modo de caracterizar emparelhamentos máxi-
mos em grafos gerais.
Seja M um emparelhamento em um grafo G. Um caminho M-alternante
em G é um caminho tal que suas arestas alternadamente pertencem a M ou
não. Este caminho será dito M-aumentante se os seus extremos inicial e final
não são M-saturados.
O comprimento de um caminho M-aumentante é sempre ı́mpar. Além
disso, a existência de um caminho M-aumentante P indica uma forma de
construir um emparelhamento M ′ com |M ′ | > |M|. Basta remover de M as
arestas de E(P ) ∩ M, e a seguir acrescentar as arestas de E(P ) \ M. Esta
operação pode ser melhor formalizada utilizando a diferença simétrica de
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

conjuntos. A diferença simétrica entre dois conjuntos A e B, denotada por


A △ B, é definida da seguinte forma:

A △ B = (A \ B) ∪ (B \ A) = (A ∪ B) \ (A ∩ B).

Assim, utilizando a notação acima, o emparelhamento M ′ é definido pre-


cisamente como M ′ = M △ E(P ). Observe que |M ′ | = |M| + 1.
O teorema seguir relaciona o conceito de caminhos M-aumentantes com
emparelhamentos máximos.

Teorema 5.1. (Berge, 1957) Um emparelhamento M em um grafo G é


máximo se e somente se G não contém nenhum caminho M-aumentante.

5.3 Teorema de Tutte


Um emparelhamento é perfeito se satura todo vértice do grafo. Obviamente,
todo emparelhamento perfeito é máximo. Além disso nem todo grafo ad-
mite emparelhamento perfeito; por exemplo, um grafo com número ı́mpar de
vértices não admite emparelhamento perfeito. O grafo K1,3 , embora tenha
número par de vértices, também não admite emparelhamento perfeito.
O próximo teorema fornece uma condição necessária e suficiente para
a existência de um emparelhamento perfeito em um grafo. Mas antes é
necessário apresentar alguns conceitos.
Uma componente conexa H de um grafo G é uma componente ı́mpar
se o número de vértices de H é ı́mpar. Denotamos por o(G) o número de
componentes ı́mpares de um grafo G.
Sejam S um subconjunto próprio de V (G) e M um emparelhamento de
G, e considere uma componente ı́mpar H de G − S. Observe que, se M
satura todos os vértices de H, pelo menos um deles deve estar emparelhado
com algum vértice de S. Obviamente, no máximo |S| vértices podem estar
emparelhados com vértices de G − S. Logo, pelo menos o(G − S) − |S|
componentes ı́mpares contêm vértices M-insaturados. Se UM é o conjunto
de vértices M-insaturados, temos que

|UM | ≥ o(G − S) − |S|, para todo S ⊂ V (G).

41
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Note que |UM | = n − 2|M|. Se a igualdade for verificada na expressão


acima para algum subconjunto próprio S = B, isto é, |UM | = o(G −B) −|B|,
tal subconjunto B é precisamente um certificado de que o emparelhamento
M produz o menor número possı́vel de vértices insaturados. Em outras
palavras, B é um certificado de que M é máximo. Neste caso, dizemos que
B é uma barreira de G. Pode-se provar que qualquer grafo G possui uma
barreira. Este resultado é conhecido como Teorema de Tutte-Berge, e será
utilizado como ferramenta na prova do próximo teorema.
Teorema 5.2. (Tutte, 1947) Um grafo G admite um emparelhamento per-
feito se e somente se
o(G − S) ≤ |S|, para todo S ⊆ V (G).

Um corolário do teorema acima é o conhecido Teorema de Petersen, de


1891:
Teorema 5.3. (Petersen, 1891) Todo grafo 3-regular sem pontes contém um
emparelhamento perfeito.

5.4 Teorema de Hall


Passamos agora a estudar emparelhamentos em grafos bipartidos. Iniciamos
com o seguinte problema, conhecido como o Problema do Casamento:
“Dado um conjunto Y de rapazes e um conjunto X de moças com |Y | ≥ |X|,
qual é a condição necessária e suficiente para que cada moça se case com um
rapaz de que ela goste?”
A resposta para esta questão está no próximo teorema. Dado um sub-
conjunto S de vértices de um grafo G, denotamos por N(S) ao conjunto de
todos os vértices adjacentes a vértices de S.
Teorema 5.4. (Hall, 1935) Seja G um grafo bipartido com partição de
vértices V (G) = X ∪ Y . Então, G contém um emparelhamento que satura
todo vértice de X se e somente se
|N(S)| ≥ |S|, para todo S ⊆ X.
Corolário 5.5. Se G é um grafo bipartido k-regular, k > 0, então G admite
um emparelhamento perfeito.

42
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

5.5 Teorema de König


Vamos agora apresentar uma condição que permite confirmar que um dado
emparelhamento em um grafo bipartido é de fato máximo. Esta confirmação
se dará pela existência de um certificado baseado no conceito de cobertura.
Uma cobertura de um grafo G é um conjunto K ⊆ V (G) tal que toda
aresta de G tem pelo menos um de seus extremos em K. A cobertura será
mı́nima se não houver nenhuma outra de cardinalidade menor.

Proposição 5.6. Para qualquer emparelhamento M e para qualquer cober-


tura K de um grafo G vale |M| ≤ |K|.

O seguinte lema será útil, e decorre imediatamente da proposição anterior.

Lema 5.7. Sejam M um emparelhamento e K uma cobertura de um grafo


G tais que |M| = |K|. Então, M é máximo e K é mı́nima.

O próximo teorema diz que, para os grafos bipartidos, a igualdade do


lema anterior é sempre atingida.

Teorema 5.8. (König, 1931) Em um grafo bipartido, o número de arestas em


um emparelhamento máximo é igual ao número de vértices em uma cobertura
mı́nima.

O problema de determinar um emparelhamento máximo em um grafo


bipartido pode ser resolvido pelo Algoritmo de Egerváry, também conhe-
cido como Algoritmo Húngaro. Este algoritmo é de tempo polinomial e de-
volve, juntamente com o emparelhamento máximo, uma cobertura mı́nima
de mesmo tamanho, que serve como um certificado de sua corretude.

5.6 Exercı́cios
5.1. Determine condições necessárias e suficientes para que uma árvore pos-
sua um emparelhamento perfeito.

5.2. Mostre que se G é Hamiltoniano e 3-regular então G tem emparelha-


mento perfeito.

43
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

5.3. Duas pessoas disputam um jogo sobre um grafo G escolhendo alter-


nadamente vértices distintos v1 , v2 , . . . formando um caminho. Ganha
quem for a última pessoa a conseguir escolher um vértice.
(a) Mostre que quem começa o jogo tem um estratégia vencedora caso
G não tenha emparelhamento perfeito.
(b) Mostre que a segunda a jogar tem uma estratégia vencedora caso
G tenha um emparelhamento perfeito.

5.4. Um k-fator de G é um subgrafo gerador k-regular de G. Um grafo é


k-fatorável se existirem k-fatores disjuntos em arestas H1 , H2 , ..., Hp ,
tal que G = H1 ∪ H2 ∪ ... ∪ Hp . Responda, justificando:

(i) Kn,n é 1-fatorável?


(ii) K4,4 é 2-fatorável?

5.5. Seja um tabuleiro de xadrez de dimensão 8 × 8, em que dois cantos


opostos (isto é, os extremos 1 × 1 de uma mesma diagonal) foram
retirados. Moste que é impossı́vel cobrir este tabuleiro com retângulos
de dimensão 1 × 2.

44
6 Coloração de Vértices

6.1 Grafos k-colorı́veis


Uma k-coloração de vértices é uma atribuição de k cores aos vértices de um
grafo. Esta coloração é própria quando vértices adjacentes recebem cores
distintas.
Uma k-coloração própria particiona o conjunto de vértices do grafo em k
conjuntos independentes.
Um grafo G é k-colorı́vel se G admite uma k-coloração própria de vértices.
O número cromático de G, denotado por χ(G), é o menor inteiro k para o
qual G é k-colorı́vel. Obviamente, χ(G) ≤ n. Teremos χ(G) = n se e somente
se G = Kn .

6.2 Grafos crı́ticos


Um grafo G é crı́tico se χ(H) < χ(G) para todo subgrafo próprio H de G.
Um grafo G é k-crı́tico quando for crı́tico e k-cromático.
Observe que todo grafo crı́tico é conexo, e todo grafo k-cromático tem
um subgrafo k-crı́tico.
Teorema 6.1. Se G é k-crı́tico então δ(G) ≥ k − 1.

Demonstração. Seja v um vértice de grau mı́nimo em G, isto é, d(v) =


δ(G). Como G é k-crı́tico, χ(G − v) ≤ k − 1. Considere uma (k − 1)-
coloração de G − v que define uma partição de V (G − v) em k − 1 conjuntos
independentes V1 , V2 , . . . , Vk−1. Claramente, devemos ter Vi 6= ∅ para todo
i ∈ {1, . . . , k − 1}, caso contrário G não teria número cromático igual a k.
Observe que, para todo i ∈ {1, . . . , k − 1}, deve existir em G uma aresta
de v para algum vértice em Vi , pois se v não fosse conectado a nenhum vértice
de Vi terı́amos que Vi ∪{v} seria um conjunto independente em G, e portanto
G seria (k − 1)-colorı́vel, o que é uma contradição. Logo, d(v) ≥ k − 1, e o
teorema vale.
Corolário 6.2. Todo grafo k-cromático possui pelo menos k vértices de grau
maior ou igual a k − 1.
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Demonstração. Todo grafo k-cromático G contém um subgrafo k-crı́tico


H. (Para provar este fato, basta remover sucessivamente arestas ou vértices
isolados enquanto o grafo não é crı́tico.) Como χ(H) = k, o subgrafo H
contém pelo menos k vértices. Como H é k-crı́tico, pelo Teorema 6.1 todos
estes vértices têm grau pelo menos k − 1.

6.3 Cotas para o número cromático


Iniciamos esta seção exibindo cotas inferiores para o número cromático.

Proposição 6.3. Para qualquer grafo G, vale que:


(a) χ(G) ≥ ω(G), onde ω(G) é o número de vértices da maior clique de G.
n
(b) χ(G) ≥ α(G) , onde α(G) é o numero de vértices do maior conjunto
independente de G.

A próxima proposição exibe um limite superior simples para o número


cromático.

Proposição 6.4. Para qualquer grafo G, vale que χ(G) ≤ ∆(G) + 1.

6.3.1 Construção de Mycielski

Seja G um grafo com n vértices v1 , v2 , . . . , vn . O grafo de Mycielski de G,


denotado por µ(G), é formado por uma cópia de G mais n + 1 vértices novos
w, u1, u2 , . . . , un conectados da seguinte forma: cada ui é conectado a w e a
todos os vizinhos de vi em G.
A construção de Mycielski, concebida pelo matemático Jan Mycielski em
1955, consiste numa sequência de grafos M2 , M3 , M4 , . . . tal que M2 = K2 e
Mk = µ(Mk−1 ) para k ≥ 3. Assim, teremos: M2 = K2 , M3 = C5 , e M4 é o
grafo de Grötzsch, representado na Figura 6.1.
A construção de Mycielski é importante porque mostra que o número
cromático pode se afastar arbitrariamente do tamanho da maior clique (veja
Proposição 6.3(a)). Pode-se provar que ω(Mk ) = 2 e χ(Mk ) = k, para todo
k ≥ 2 (veja Exercı́cio 6.5).

46
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

v2

u2
v3 v1
u3 u1
w

u4 u5

v4 v5

Figura 6.1: Grafo de Grötzsch.

6.3.2 Teorema de Brooks

O seguinte teorema fornece um limite superior mais justo do que aquele na


Proposição 6.4:

Teorema 6.5. (Brooks, 1941) Se G é conexo e não é completo nem um


ciclo ı́mpar então χ(G) ≤ ∆(G).

6.4 Exercı́cios
6.1. Suponha que quaisquer dois ciclos ı́mpares de um grafo G possuem pelo
menos um vértice em comum. Mostre que χ(G) ≤ 5.

6.2. Prove: se toda aresta de G ocorre no máximo em um ciclo, então


χ(G) ≤ 3.

6.3. Prove ou refute: Se |E(G)| > 1 e y é uma ponte de G então χ(G) =


χ(G − y).

47
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

6.4. Mostre que existe uma ordenação dos vértices de G tal que o método
guloso de coloração aplicado a esta ordenação usa χ(G) cores.

6.5. Sejam M2 , M3 , M4 , . . . os grafos da construção de Mycielski, onde M2 =


K2 . Mostre que:

(a) Todo Mk é k-crı́tico.


(b) Todo Mk é livre de triângulos.

6.6. Um grafo G é unicamente k-colorı́vel se quaisquer duas k-colorações


de G induzem a mesma partição de V (isto é, coincidem a menos de
uma permutação de cores). Mostre que nenhum corte de vértices de
um grafo k-crı́tico induz um subgrafo unicamente (k − 1)-colorı́vel.

48
7 Coloração de Arestas

7.1 Grafos k-colorı́veis em arestas


Uma k-coloração de arestas de um grafo G é uma atribuição de k cores
1, 2, . . . , k às suas arestas. Esta coloração será própria se arestas adjacentes
tiverem cores diferentes; neste caso, cada conjunto de arestas de mesma cor
é um emparelhamento.
Um grafo é k-colorı́vel em arestas se admitir uma k-coloração própria de
arestas. Obviamente, todo grafo é m-colorı́vel em arestas, onde m = |E(G)|.
Além disso, se G é k-colorı́vel em arestas, então G é r-colorı́vel em arestas
para todo r ≥ k.
O ı́ndice cromático χ′ (G) de um grafo G é o menor k para o qual G é
k-colorı́vel. Obviamente, χ′ (G) ≥ ∆(G).

Exemplo 7.1. O ı́ndice cromático do grafo de Petersen é 4. Para provar


este fato, é necessário mostrar que: (a) o grafo de Petersen é 4-colorı́vel em
arestas; (b) o grafo de Petersen não é 3-colorı́vel em arestas. A demonstração
de (a) e (b) fica como exercı́cio para o leitor.

7.2 Teorema de Vizing


Dada uma coloração de arestas de um grafo, dizemos que uma certa cor j
está representada no vértice v quando alguma aresta incidente a v possui a
cor j.

Lema 7.1. Seja G um grafo conexo que não é um ciclo ı́mpar. Então existe
uma 2-coloração de arestas de G tal que, em todo vértice de grau maior que
um, as duas cores estão representadas.

Denotemos por c(v) o número de cores representadas no vértice v em


uma k-coloração de arestas C de um grafo G. Observe que C é própria se e
somente se c(v) = d(v).
Uma k-coloração C ′ é uma melhoria de uma k-coloração C se a soma
dos valores c′ (v) é estritamente maior que a soma dos valores c(v). Uma
k-coloração é plena quando não admite melhoria.
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Para o lema a seguir, utilizamos a seguinte notação: dada uma coloração


de arestas de um grafo, Ej é o conjunto de arestas com a cor j.

Lema 7.2. Seja G um grafo com uma k-coloração plena tal que existe um
vértice u onde uma certa cor 0 não está representada em u e uma certa cor 1
está representada pelo menos duas vezes em u. Então, a componente conexa
H de G[E0 ∪ E1 ] que contém u é um ciclo ı́mpar.

Teorema 7.3. Se G é bipartido então χ′ (G) = ∆(G).

Teorema 7.4. (Vizing - 1964, Gupta - 1966, Fournier - 1973)


Para qualquer grafo G, χ′ (G) ≤ ∆(G) + 1.

Pelo teorema acima, concluı́mos que o ı́ndice cromático de um grafo G


vale ∆(G) ou ∆(G) + 1. Grafos que têm ı́ndice cromático ∆ são chamados
grafos Classe 1, enquanto que os demais são grafos Classe 2. O grafo de
Petersen, por exemplo, é um grafo Classe 2. O problema de decidir se um
dado grafo é Classe 1 ou Classe 2 é NP-difı́cil.

7.3 Exercı́cios
7.1. Pinte as arestas de Km,n com ∆ cores.

7.2. Prove que se um grafo G tem 2k + 1 vértices e mais do que k.∆ arestas,
então χ′ (G) = ∆ + 1.

7.3. Seja G um grafo cúbico hamiltoniano. Mostre que χ′ (G) = 3.

7.4. Mostre que se G é um grafo não vazio, regular e tal que |V (G)| é ı́mpar
então χ′ (G) = ∆ + 1.

7.5. Descrever um método algorı́tmico para colorir as arestas de um grafo


bipartido com ∆ cores.

50
8 Planaridade

8.1 Definição de grafo planar


Um grafo G é planar se existe uma representação (ou desenho, ou imersão)
de G no plano de modo que as arestas se encontrem somente nos vértices,
isto é, de modo que as arestas não se cruzem. Uma tal representação de G é
dita plana ou planar.
Uma representação planar divide o plano em regiões chamadas faces.
Existe sempre uma única face que não está limitada (isto é, tem área in-
finita); tal face é chamada externa ou infinita.
Qualquer representação planar de G possui sempre o mesmo número de
faces; portanto, o número de faces de um grafo planar é uma invariante do
mesmo.
Note que se G é planar então todo subgrafo de G também é planar. Além
disso, G é planar se e somente se todas as suas componentes conexas são
planares.

8.2 Fórmula de Euler


A fronteira de uma face f de um grafo planar conexo é um passeio fechado
que limita e determina a face. Neste passeio, cada ponte é atravessada duas
vezes. Notação: b(f ) denota a fronteira da face f .
O grau de uma face f é o comprimento do passeio fechado que determina
sua fronteira. Notação: d(f ) denota o grau da face f .
Seja F (G) = {f1 , f2 , . . .} o conjunto de faces de um grafo planar conexo
G, e seja F = |F (G)|.

Proposição 8.1. Se G é conexo e planar então Fi=1 d(fi ) = 2m.


P

Teorema 8.2. (Fórmula de Euler) Para todo grafo conexo e planar vale:

F = m − n + 2.

Corolário 8.3. Se G é um grafo planar simples com n ≥ 3 então m ≤ 3n−6.


Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

Corolário 8.4. Se G é um grafo planar simples livre de triângulos com


n ≥ 3 então m ≤ 2n − 4.
Corolário 8.5. Os grafos K5 e K3,3 não são planares.
Exemplo 8.1. O grafo de Petersen (Figura 4.1) tem n = 10 e m = 15.
Portanto, satisfaz às desigualdades apresentadas nos Corolários 8.3 e 8.4.
Em outras palavras, não podemos utilizar estas desigualdades para provar a
não-planaridade do grafo de Petersen.
Corolário 8.6. Se G é um grafo planar simples então existe um vértice
v ∈ V (G) tal que d(v) ≤ 5.

A espessura (thickness) t(G) de um grafo G é o menor número de grafos


planares cuja união é G. Claramente, G é planar se e só se t(G) = 1. A
proposição a seguir fornece um limite inferior para t(G):
m
Proposição 8.7. Para qualquer grafo G vale que t(G) ≥ ⌈ 3n−6 ⌉.

8.3 Caracterizações de grafos planares


Uma subdivisão de um grafo G é um grafo obtido de G pelo acréscimo de
vértices de grau 2 ao longo das arestas de G. É fácil ver que se G é planar
então toda subdivisão de G também é planar.
Teorema 8.8. (Kuratowski, 1930) Um grafo G é planar se e somente se
nenhum subgrafo de G é uma subdivisão de K5 ou K3,3 .

Uma contração de G é um grafo obtido de G pela identificação de dois


vértices adjacentes. A vizinhança do novo vértice é igual à união das vizi-
nhanças dos vértices originais.
Um grafo H é um menor de um grafo G se H pode ser obtido a partir de
G através das seguintes operações: remoção de um aresta; remoção de um
vértice; contração de dois vértices adjacentes.
Teorema 8.9. (Wagner, 1937) Um grafo G é planar se e somente se G não
admite K5 ou K3,3 como menor.
Exemplo 8.2. O grafo de Petersen (Figura 4.1) contém uma subdivisão de
K3,3 . Além disso, K5 e K3,3 são menores do grafo de Petersen. Logo, ele não
é planar. (Veja Exercı́cio 8.5.)

52
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

8.4 Mapas e o Teorema das Quatro Cores


Dado um grafo planar G, definimos o grafo dual G∗ de G da seguinte forma:
a cada face f de G corresponde um vértice f ∗ de G∗ , e a cada aresta e de G
corresponde uma aresta e∗ de G∗ ; além disso, dois vértices f ∗ e g ∗ de G∗ são
ligados por uma aresta e∗ se e somente se as faces f e g em G são separadas
pela aresta e.
Proposição 8.10. Se G é planar então G∗ é planar.

Observe que se G é planar e conexo então (G∗ )∗ é isomorfo a G.


Apresentamos a seguir um dos mais famosos teoremas da Teoria dos Gra-
fos, cuja demonstração transcende o nı́vel destas notas:
Teorema 8.11. (Teorema das Quatro Cores - Appel e Haken, 1976)
Todo grafo planar é 4-colorı́vel.

Dualizando, temos:
Teorema 8.12. (Teorema das Quatro Cores - versão mapas) Em qualquer
mapa, as regiões podem ser coloridas com até 4 cores, de modo que regiões
adjacentes recebam cores distintas.

8.5 Exercı́cios
8.1. Mostre que todo grafo planar é 6-colorı́vel em vértices.
8.2. Falso ou verdadeiro? Se G é planar e tem 11 vértices então G não é
planar.
8.3. Mostre que se G é um grafo conexo planar com cintura k ≥ 3, então
m ≤ k(n−2)
k−2
. (Obs: A cintura de um grafo G é o comprimento de seu
menor ciclo.) Use este fato para mostrar que o Grafo de Petersen não
é planar.
8.4. Construa um grafo planar auto-complementar com oito vértices.
8.5. Mostre que:
(a) O grafo de Petersen contém uma subdivisão de K3,3 .

53
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

(b) K5 e K3,3 são menores do grafo de Petersen.

8.6. O grafo de Grötzsch (Figura 6.1) é planar?

8.7. Seja T uma árvore geradora de uma representação plana G de um grafo


planar conexo, G∗ seu grafo dual, e seja E ∗ = {e∗ ∈ E(G∗ )|e 6∈ E(T )}.
Mostre que T ∗ = G∗ [E ∗ ] é uma árvore geradora de G∗ .

54
9 Grafos Direcionados

9.1 Conceitos básicos sobre digrafos


Um digrafo D é formado por um conjunto de vértices, denotado por V (D), e
um conjunto de arcos, denotado por A(D). Cada arco é um par ordenado de
vértices distintos. Se xy é uma arco, então os vértices x e y são os extremos
deste arco, onde x é o extremo inicial e y é o extremo final. Dizemos também
que x é vizinho de entrada de y, e que y é vizinho de saı́da de x. O arco xy
é divergente de x, e convergente a y.
Observe que podem coexistir em um digrafo os arcos xy e yx, que são
distintos por definição.
O conjunto de vizinhos de saı́da de um vértice v é denotado por N + (v),
e é denominado vizinhança de saı́da de v. Da mesma forma, denotamos a
vizinhança de entrada de v por N − (v). O grau de saı́da de v é definido como
d+ (v) = |N + (v)|, e o grau de entrada como d− (v) = |N − (v)|. Uma fonte é
um vértice com grau de entrada zero, e um sumidouro é um vértice com grau
de saı́da zero.
Assim como para grafos, definimos analogamente para digrafos: passeios
direcionados, caminhos direcionados e ciclos direcionados. Basta tomar as
mesmas definições da Seção 1.6 e substituir arestas por arcos. Por exemplo,
um passeio direcionado é uma sequência de vértices v1 , v2 , . . . , vk−1 , vk tal
que vj−1 vj ∈ A(D) para j = 2, . . . , k. Observe, portanto, que as direções dos
arcos são fundamentais nestas definições.
Uma diferença importante entre ciclos em grafos e ciclos direcionados em
digrafos é que um ciclo possui no mı́nimo três vértices distintos, ao passo que
um ciclo direcionado pode possuir apenas dois vértices distintos x e y (basta
que coexistam os arcos xy e yx).
Se existe um caminho direcionado iniciando em um vértice v e terminando
em um vértice w, dizemos que v alcança w, e que w é alcançado por v. Se v
alcança w, dizemos que w é um sucessor de v, e que v é um predecessor de
w. Consideramos que todo vértice é sucessor e predecessor de si mesmo. A
alcançabilidade R(D) de um digrafo é o conjunto de pares ordenados xy tais
que xy ∈ R(D) se e somente se x alcança y em D.
Um digrafo D ′ é um subdigrafo de um digrafo D se V (D ′ ) ⊆ V (D) e
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

A(D ′ ) ⊆ A(D). Se D ′ é um subdigrafo de D, dizemos que D é um su-


perdigrafo de D ′ . Se D ′ é um subdigrafo (resp., superdigrafo) de D com
V (D ′ ) = V (D), dizemos que D ′ é um subdigrafo gerador (resp., superdigrafo
gerador) de D.
Um digrafo D é fortemente conexo se, para todo par v, w de vértices de
D, v alcança w e w alcança v. Uma componente fortemente conexa de um
digrafo D é um subdigrafo fortemente conexo maximal de D. Obviamente, D
é fortemente conexo se e somente se possui uma única componente fortemente
conexa.
Um digrafo D é acı́clico se não contém ciclos direcionados.
Dado um grafo (simples) G, uma orientação de G é um digrafo D obtido
pela atribuição de uma direção a cada aresta xy de G. Isto é, A(D) é obtido
determinando-se, para cada aresta xy ∈ E(G), qual dos dois arcos possı́veis
(xy ou yx) será incluı́do em A(D). Aqui, é importante frisar que em qualquer
orientação D não existem ciclos direcionados com apenas dois vértices, pois
se xy ∈ A(D) então yx ∈ / A(D).
Se D é uma orientação de um grafo G, dizemos que G é o grafo subjacente
de D.
Uma orientação D de um grafo G é denominada orientação acı́clica se D
não contém ciclos direcionados.
O fecho transitivo de um digrafo D, denotado por C(D), é o superdigrafo
gerador de D tal que existe um arco xy em C(D) se e somente se existe um
caminho direcionado de x a y em D.
A redução transitiva de um digrafo D é um subdigrafo gerador de D que
possui a mesma alcançabilidade de D e o menor número posı́vel de arestas.
Um digrafo D pode possuir várias reduções transitivas diferentes.

9.2 Teorema de Gallai-Hasse-Roy-Vitaver


O seguinte teorema relaciona as orientações de um grafo com o seu número
cromático:

Teorema 9.1. (Vitaver - 1962, Hasse - 1965, Roy - 1967, Gallai - 1968)
Para qualquer grafo G, valem as seguintes afirmações:

56
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

(a) Toda orientação de G possui um caminho direcionado com pelo menos


χ(G) vértices.

(b) Existe uma orientação acı́clica de G que possui um caminho direcionado


com exatamente χ(G) vértices.

Demonstração. A demonstração de (a) consiste em, dada uma orientação


D de G, considerar um caminho direcionado P em D cujo comprimento em
vértices seja máximo. Digamos que este comprimento seja igual a k. Basta
então mostrar que G é k-colorı́vel, donde concluı́mos que χ(G) ≤ k.
Para mostrar que G é k-colorı́vel, seja D ′ um subdigrafo gerador acı́clico
maximal de D. (O digrafo D ′ pode ser obtido removendo-se sucessivamente
arcos pertencentes a ciclos direcionados, até que não haja mais nenhum ciclo
direcionado no digrafo.) Denote por l(v) o número de vértices no maior
caminho direcionado de D ′ que termina em v. Observe que l(v) ≤ k para
todo v ∈ v(D ′), uma vez que D ′ é subdigrafo de D e k é o comprimento
em vértices do caminho direcionado mais longo de D. Além do mais, se
existe um arco de v para w em D ′ , é claro que l(w) ≥ l(v) + 1, isto é,
l(w) 6= l(v). Seja agora xy um arco em A(D) \ A(D ′ ). Por construção, existe
um ciclo direcionado em D do qual xy faz parte. Logo, existe um caminho
direcionado em D ′ iniciando em y e terminando em x. Como neste caminho
os rótulos l(v) são estritamente crescentes, segue que l(y) 6= l(x). Como D ′
é gerador, concluı́mos que os rótulos l(v) determinam uma k-coloração do
grafo subjacente a D, isto é, o grafo G.
A demonstração de (b) é feita da seguinte forma: suponha que χ(G) = k,
e considere uma k-coloração dos vértices de G. Seja D a orientação de G
obtida direcionando cada aresta do extremo de menor cor para o extremo de
maior cor. Note que D é uma orientação acı́clica. Além do mais, teremos que
ao longo de qualquer caminho direcionado de D as cores serão estritamente
crescentes. Logo, nenhum caminho direcionado de D poderá ter mais do que
k vértices. Porém, pela parte (a), D possui um caminho direcionado com
pelo menos k vértices. Logo, (b) vale.
O teorema acima possui uma formulação equivalente que explicita uma
forma de dualidade entre as colorações dos vértices e as orientações das ares-
tas de um grafo. Esta formulação se enuncia do seguinte modo: k é o menor
número de cores entre todas as colorações de um grafo G se e somente se k é
o maior número para o qual toda orientação de G possui um caminho dire-

57
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

cionado com k vértices. Em outras palavras, dada uma orientação D de um


grafo G, seja λ(D) o comprimento em vértices do caminho direcionado mais
longo de D, e seja λ(G) = min{λ(D) | D é uma orientação de G}. Então o
Teorema 9.1 diz que χ(G) = λ(G). Além disso, entre as orientações D que
satisfazem λ(D) = λ(G), pelo menos uma delas é acı́clica.

9.2.1 Torneios

Um torneio é uma orientação de um grafo completo. Como corolário do


teorema de Gallai-Hasse-Roy-Vitaver, temos:

Teorema 9.2. Todo torneio possui um caminho Hamiltoniano.

Demonstração. O grafo G subjacente ao torneio satisfaz χ(G) = n. Pelo


Teorema 9.1(a), existe um caminho direcionado neste torneio contendo todos
os n vértices de G. Logo, este caminho é Hamiltoniano.
Um rei é um vértice que alcança qualquer outro vértice do grafo com no
máximo dois arcos.

Teorema 9.3. Todo torneio tem um rei.

Demonstração. Seja v um vértice do torneio cujo grau de saı́da seja


máximo. Se d+ (v) = n − 1, v alcança qualquer vértice do torneio com um
arco, e portanto é rei. Se d+ (v) < n−1, seja W 6= ∅ o conjunto de vértices que
não são vizinhos de saı́da de v. Se todo w ∈ W é vizinho de saı́da de algum
vértice em N + (v) então v alcança qualquer vértice do torneio com no máximo
dois arcos, e portanto é rei. Caso contrário, se existe w ∈ W que não é vizinho
de saı́da de nenhum vértice em N + (v), temos que N + (v)∪{v} ⊆ N + (w), isto
é, d+ (w) > d+ (v). Mas isto é uma contradição. Logo, o teorema vale.

9.3 Exercı́cios
9.1. Mostre que se um digrafo é acı́clico então ele possui pelo menos uma
fonte e pelo menos um sumidouro.

9.2. Falso ou verdadeiro? As componentes fortemente conexas de um di-


grafo definem uma partição do seu conjunto de arcos.

58
Prof. Fábio Protti Notas de Aula de Teoria dos Grafos - IC/UFF

9.3. Falso ou verdadeiro? Um digrafo é fortemente conexo se e somente se


existe um passeio fechado que visita todos os vértices do digrafo.

9.4. Seja G um grafo conexo. Mostre que é possı́vel orientar as arestas de


G de modo a obter um digrafo fortemente conexo se e somente se G
não contém nenhuma ponte.

9.5. Falso ou verdadeiro? Todo torneio contém no máximo uma fonte e no


máximo um sumidouro.

9.6. Mostre que todo torneio que não possui fontes tem pelo menos dois
reis.

9.7. Mostre que se D é uma orientação de um grafo G então D contém um


caminho direcionado de comprimento pelo menos max{δ + (D), δ − (D)},
onde δ + (D) e δ − (D) são, respectivamente, os graus de saı́da e entrada
mı́nimos em D.

59

You might also like