You are on page 1of 126

Exercícios de

Teoria dos Grafos


http://www.ime.usp.br/~pf/grafos-exercicios

Paulo Feofiloff

janeiro de 2007
Prefácio

A teoria dos grafos estuda objetos combinatórios — os grafos — que são um


bom modelo para muitos problemas em vários ramos da matemática, da in-
formática, da engenharia e da indústria. Muitos dos problemas sobre grafos1
tornaram-se célebres porque constituem um interessante desafio intelectual
e porque têm importantes aplicações práticas.
A presente coleção de exercícios de teoria dos grafos foi usada em várias
edições de disciplinas de Teoria dos Grafos no curso de pós-graduação em
Ciência da Computação do Instituto de Matemática e Estatística da Univer-
sidade de São Paulo. Os exercícios foram extraídos dos livros de Bondy e
Murty [BM07, BM76], Wilson [Wil79], Diestel [Die00], Bollobás [Bol98], Mel-
nikov et alii [MST + 98], Lucchesi [Luc79] e Lovász e Plummer [LP86]. O sítio
WWW

http://www.ime.usp.br/~pf/grafos-exercicios

tem mais informações, além de uma versão atualizada do texto.

Seqüência ideal

Sugiro estudar as seções na seguinte ordem:

1.1 Grafos
1.2 Lista de problemas clássicos
2.1 Vizinhanças e graus de vértices

1
O problema do caminho mínimo, do circuito hamiltoniano, do ciclo euleriano, do iso-
morfismo, da coloração de vértices, do emparelhamento, da coloração de arestas, da conexi-
dade, da planaridade, etc.

1
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 2

3.1 Isomorfismo
3.2 Síntese de grafos a partir dos graus
2.3 Caminhos e circuitos
2.4 Subgrafos
2.5 Cortes e pontes
2.6 Grafos conexos
2.7 Componentes
3.3 Grafos bipartidos
3.4 Conjuntos estáveis
3.5 Cliques
3.6 Coberturas por vértices
3.7 Coloração de vértices
3.8 Emparelhamentos
3.9 Emparelhamentos em grafos bipartidos
3.10 Emparelhamentos em grafos bipartidos II
3.11 Emparelhamentos em grafos arbitrários
3.12 Coloração de arestas
3.13 Coloração de vértices II
3.14 Circuitos hamiltonianos
3.15 Ciclos eulerianos
2.8 Florestas e árvores
3.16 Subárvores
2.9 Pontes e grafos aresta-biconexos
?? Articulações e grafos vértice-biconexos
3.18 Distâncias e caminhos mínimos
3.19 Mapas planos e grafos planares

Classificação dos exercícios

A maioria dos exercícios tem prefixo E. Outros prefixos têm o seguinte signi-
ficado:
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 3

EF ... exercício particularmente fácil


ED ... exercício difícil
EDD ... exercício muito difícil
EI ... exercício importante
EID ... exercício importante e difícil
EU ... exercício útil como ferramenta técnica
D ... desafio (problema em aberto)

Terminologia técnica em inglês

Boa parte da literatura da teoria dos grafos está escrita em inglês. Por isso,
a definição de cada termo técnico em português é acompanhada (entre pa-
rênteses) do correspondente termo em inglês. O termo em inglês também é
listado no índice remissivo.
O inglês também decidiu a escolha de muitos símbolos: o conjunto das ares-
tas (= edges) de um grafo é denotado por “E ” e não por “A”.

Agradecimentos

O autor agradece a Rogério Brito pela solução de vários problemas tipográfi-


cos.

IME–USP, São Paulo, julho de 2005


P. F.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 4
Sumário

1 Introdução 7
1.1 Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Lista de problemas clássicos . . . . . . . . . . . . . . . . . . 15

2 Conceitos básicos 17
2.1 Vizinhanças e graus de vértices . . . . . . . . . . . . . . . . 17
2.2 União e interseção . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Caminhos e circuitos . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Subgrafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5 Cortes e pontes . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Grafos conexos . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7 Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.8 Florestas e árvores . . . . . . . . . . . . . . . . . . . . . . . . 38
2.9 Pontes e grafos aresta-biconexos . . . . . . . . . . . . . . . 41
2.10 Grafos aleatórios . . . . . . . . . . . . . . . . . . . . . . . . 42

3 Alguns problemas clássicos 43


3.1 Isomorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Síntese de grafos a partir dos graus . . . . . . . . . . . . . . 48
3.3 Bipartições e grafos bipartidos . . . . . . . . . . . . . . . . . 50
3.4 Conjuntos estáveis . . . . . . . . . . . . . . . . . . . . . . . 54
3.5 Cliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6 Cobertura por vértices . . . . . . . . . . . . . . . . . . . . . 61
3.7 Coloração de vértices . . . . . . . . . . . . . . . . . . . . . . 62

5
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 6

3.8 Emparelhamentos . . . . . . . . . . . . . . . . . . . . . . . . 70
3.9 Emparelhamentos em grafos bipartidos . . . . . . . . . . . 75
3.10 Emparelhamentos em grafos bipartidos II . . . . . . . . . . 78
3.11 Emparelhamentos em grafos arbitrários . . . . . . . . . . . 80
3.12 Coloração de arestas . . . . . . . . . . . . . . . . . . . . . . 83
3.13 Coloração de vértices II . . . . . . . . . . . . . . . . . . . . . 88
3.14 Circuitos e caminhos hamiltonianos . . . . . . . . . . . . . 91
3.15 Ciclos e trilhas eulerianas . . . . . . . . . . . . . . . . . . . 96
3.16 Conectores mínimos . . . . . . . . . . . . . . . . . . . . . . 100
3.17 Subflorestas máximas . . . . . . . . . . . . . . . . . . . . . . 102
3.18 Caminhos e circuitos mínimos . . . . . . . . . . . . . . . . . 104
3.19 Mapas planos e grafos planares . . . . . . . . . . . . . . . . 107

A O alfabeto grego 117

Bibliografia 119

Índice Remissivo 120


Capítulo 1

Introdução

Este capítulo formaliza o conceito de grafo e examina vários exemplos. Tam-


bém faz uma breve lista de problemas célebres sobre grafos, alguns dos quais
serão estudados no capítulo 3.

1.1 Grafos
Um grafo (= graph)1 é uma estrutura formada por dois tipos de objetos: vér-
tices (= vertices) e arestas (= edges). Cada aresta é um par não-ordenado de
vértices, ou seja, um conjunto com exatamente dois vértices. Uma aresta
como {v, w} será denota simplesmente por vw ou wv; diremos que a aresta vw
incide em v e em w; diremos também que v e w são as pontas da aresta; di-
remos, ainda, que os vértices v e w são vizinhos (= neighbors), ou adjacentes
(= adjacent).

E XEMPLO : os vértices do grafo são t, u, v, w, x, y, z e as arestas


são vw, uv, xw, xu, yz e xy. A figura abaixo é uma representação
gráfica desse grafo.

u
r
P rt
PP x
r r y  r z

v P
 P
Pr r
PP w  PPP

1
O termo foi usado pela primeira vez (no sentido que nos interessa aqui) pelo matemá-
tico inglês James Joseph Sylvester ( − ).

7
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 8

De acordo com nossa definição, um grafo não pode ter duas arestas diferen-
tes com o mesmo par de pontas (ou seja, não pode ter arestas “paralelas”).
Ademais, as duas pontas de qualquer aresta são diferentes (ou seja, não há
“laços”). Alguns livros gostam de enfatizar esse aspecto da definição dizendo
que o grafo é “simples”. simples

Neste texto, suporemos sempre que os conjuntos de vértices e de arestas de


qualquer grafo são finitos e mutuamente disjuntos. Suporemos também, em
geral, que o conjunto de vértices não é vazio.
Um grafo com conjunto de vértices V e conjunto das arestas E é denotado
por (V, E). Muitas vezes é conveniente dar um nome ao grafo como um todo. (V, E)
Se o nome do grafo é G, o conjunto dos seus vértices é denotado por VG e o
conjunto das suas arestas por EG . O número de vértices de G é denotado por V G , EG
n(G) e o número de arestas por m(G); portanto, n(G)

n(G) ≡ |VG | e m(G) ≡ |EG | . m(G)

O complemento de um grafo (V, E) é o grafo (V, V (2) r E), onde V (2) é o con- V (2)
junto de todos os pares não-ordenados de elementos de V . O complemento
de G é usualmente denotado por G. G
(2)
Um grafo G é completo se EG = VG . A expressão “G é um Kn ” é uma Kn
abreviatura de “G é um grafo completo com n vértices”. Um grafo G é vazio
se EG = ∅. A expressão “G é um Kn ” é uma abreviatura de “G é um grafo Kn
vazio com n vértices”.

E 1.1.1 Faça uma lista de todos os grafos que tenham {a, b, c} por conjunto
de vértices.2 Faça a lista de modo que cada grafo apareça ao lado do seu
complemento.

E 1.1.2 Faça uma figura de um K5 e outra de um K5 . Quantas arestas tem


um Kn ? E um Kn ?
E 1.1.3 Os hidrocarbonetos conhecidos como alcanos têm fórmula química alcanos
Cp H2p+2 , onde C e H representam moléculas de carbono e hidrogênio res-
pectivamente. As moléculas de alcanos podem ser representadas por grafos
como os da figura 1.1.
Faça uma figura de uma molécula de metano C1 H4 . Quantas moléculas
“diferentes” de C3 H8 existem?

2
Num conjunto, a ordem em que os elementos são apresentados é irrelevante. Assim,
{a, b, c} = {b, c, a} = {c, b, a}.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 9

r
r r r r r r r r r
r r
r r r r r r r r r r r r r r r
r r r r r r r r r

Figura 1.1: Etano (C2 H6 ), butano (C4 H10 ) e isobutano (C4 H10 ). Os
vértices em que incide uma só aresta representam átomos de hidrogê-
nio (H ); os demais representam átomos de carbono (C ). Veja o exercí-
cio 1.1.3.

E 1.1.4 Seja V o produto cartesiano {1, 2, . . . , p} × {1, 2, . . . , q}, isto é, o


conjunto de todos os pares ordenados3 (i, j) com i em {1, . . . , p} e j em
{1, . . . , q}. Digamos que dois elementos (i, j) e (i0 , j 0 ) de V são adjacentes
se
i = i0 e |j − j 0 | = 1 ou j = j 0 e |i − i0 | = 1 .
Essa relação de adjacência define um grafo sobre o conjunto V de vértices.
Esse grafo é conhecido como grade (= grid) p-por-q. grade
Faça uma figura da grade 3-por-4. Quantas arestas tem essa grade?
Quantas arestas tem a grade p-por-q?

r r r r
r r r r
r r r r

Figura 1.2: Uma grade 3-por-4 (veja exercício 1.1.4).

E 1.1.5 Dados números inteiros p e q, seja V o conjunto {1, 2, 3, . . . , pq−2, pq−


1, pq}. Digamos que dois elementos k e k 0 de V , com k < k 0 , são adjacentes
se k 0 = k + q ou4
k mod q 6= 0 e k 0 = k + 1.
Essa relação de adjacência define um grafo com conjunto de vértices V . Faça
uma figura do grafo com parâmetros p = 3 e q = 4. Faça uma figura do grafo
com parâmetros p = 4 e q = 3. Qual a relação entre esses grafos e a grade
definida no exercício 1.1.4?

E 1.1.6 O grafo dos movimentos da dama, ou simplesmente grafo da dama, dama

3
Um par ordenado é uma seqüência de comprimento 2. Numa seqüência, a ordem dos
elementos é essencial. Assim, (1, 2) 6= (2, 1) e (1, 2, 1) 6= (1, 1, 2).
4
A expressão “k mod q” denota o resto da divisão de k por q.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 10

é definido assim: os vértices do grafo são as casas de um tabuleiro de xadrez


com t linhas e t colunas;5 dois vértices são adjacentes se uma dama (= queen)
do jogo de xadrez pode saltar de um deles para o outro em um só movimento.
Para deixar claro o número de linhas e colunas do tabuleiro, podemos dizer
que esse é o grafo da dama t-por-t. (Veja figura 1.3.)
Faça uma figura do grafo da dama 4-por-4. Quantas arestas tem o grafo
da dama 8-por-8? Quantas arestas tem o grafo da dama t-por-t?

E 1.1.7 O grafo do cavalo t-por-t é definido assim: os vértices do grafo são cavalo
as casas de um tabuleiro de xadrez com t linhas e t colunas; dois vértices são
adjacentes se um cavalo (= knight) do jogo de xadrez pode saltar de um deles
para o outro em um só movimento. (Veja figura 1.3.)
Faça uma figura do grafo do cavalo 3-por-3. Quantas arestas tem o grafo
do cavalo 8-por-8? Quantas arestas tem o grafo do cavalo t-por-t?

Figura 1.3: Tabuleiros de xadrez 8-por-8. A figura esquerda indica todos


os vizinhos do vértice • no grafo da dama (veja exercício 1.1.6). A da direita
indica todos os vizinhos do vértice • no grafo do cavalo (veja exercício 1.1.7).

E 1.1.8 O grafo do bispo t-por-t é definido assim: os vértices do grafo são as bispo
casas de um tabuleiro de xadrez com t linhas e t colunas; dois vértices são
adjacentes se um bispo (= bishop) do jogo de xadrez pode saltar de um deles
para o outro em um só movimento.
Faça uma figura do grafo do bispo 4-por-4. Quantas arestas tem o grafo
do bispo 8-por-8? Quantas arestas tem o grafo do bispo t-por-t?

E 1.1.9 O grafo da torre t-por-t é definido assim: os vértices do grafo são as torre
casas de um tabuleiro de xadrez com t linhas e t colunas; dois vértices são
adjacentes se um torre (= rook) do jogo de xadrez pode saltar de um deles
para o outro em um só movimento.
Faça uma figura do grafo da torre 4-por-4. Quantas arestas tem o grafo
da torre 8-por-8? Quantas arestas tem o grafo da torre t-por-t?

5
O tabuleiro usual tem 8 linhas e 8 colunas.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 11

E 1.1.10 O grafo do rei t-por-t é definido assim: os vértices do grafo são as rei
casas de um tabuleiro de xadrez com t linhas e t colunas; dois vértices são
adjacentes se um rei (= king) do jogo de xadrez pode saltar de um deles para
o outro em um só movimento.
Faça uma figura do grafo do rei 4-por-4. Quantas arestas tem o grafo do
rei 8-por-8? Quantas arestas tem o grafo do rei t-por-t?

E 1.1.11 O grafo das palavras é definido assim: cada vértices é uma palavra palavras
da língua portuguesa e duas palavras são adjacentes se diferem em exata-
mente uma posição.6 Por exemplo, rato e ralo são adjacentes, enquanto
ralo e rota não são. Faça uma figura da parte do grafo definida pelas pala-
vras abaixo:
caiado cavado cavalo girafa girava ralo ramo rata rato
remo reta reto rota vaiado varado virada virado virava

E 1.1.12 Para qualquer inteiro positivo k, um cubo de dimensão k (ou k- cubo


cubo) é o grafo definido da seguinte maneira: os vértices do grafo são todas
as seqüências7 b1 b2 · · · bk de bits8 ; dois vértices são adjacentes se e somente
se diferem em exatamente uma posição. Por exemplo, os vértices do cubo de
dimensão 3 são 000, 001, 010, 011, 100, 101, 110, 111; o vértice 000 é adjacente
aos vértices 001, 010, 100 e a nenhum outro; e assim por diante.
Faça uma figura do 1-cubo, do 2-cubo e do 3-cubo. Quantos vértices tem
o k-cubo? Quantas arestas tem o k-cubo?
E 1.1.13 Seja X o conjunto {1, 2, 3, 4, 5} e V o conjunto X (2) (portanto, V é o
conjunto de todos os subconjuntos de X que têm exatamente 2 elementos).
Digamos que dois elementos v e w de V são adjacentes se v ∩ w = ∅. Essa
relação de adjacência sobre V define o grafo de Petersen.9 Faça uma figura Petersen
do grafo. Quantos vértices e quantas arestas tem o grafo?
E 1.1.14 Seja V o conjunto de todos os subconjuntos de {1, 2, . . . , n} que têm
exatamente k elementos, sendo k ≤ n/2. Digamos que dois elementos v e w
de V são adjacentes se v ∩ w = ∅. Essa relação de adjacência sobre V define o
grafo de Kneser K(n, k).10 Em particular, K(5, 2) é o grafo de Petersen. Faça Kneser
figuras de K(n, 1), K(n, n), K(n, n−1), K(4, 2), K(5, 3), K(6, 2) e K(6, 3).

6
Esse grafo é uma adaptação do ladders do Stanford GraphBase [Knu93].)
7
A expressão “b1 b2 · · · bk ” é uma abreviatura de “(b1 , b2 , . . . , bk )”.
8
Portanto, cada bi pertence ao conjunto {0, 1}.
9
Julius Petersen ( − ), matemático dinamarquês.
10
Lásló Lovász usou esse grafo em 1978 para provar uma conjetura proposta por M. Kne-
ser em 1955.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 12

E 1.1.15 O grafo dos estados do Brasil é definido assim: cada vértice é um estados
dos estados da República Federativa do Brasil; dois estados são adjacentes se
têm uma fronteira comum. Faça um desenho do grafo. Quantos vértices tem
o grafo? Quantas arestas?

E 1.1.16 Considere as grandes cidades e as grandes estradas do estado de São


Paulo. Digamos que uma cidade é grande se tem pelo menos 300 mil habitan-
tes. Digamos que uma estrada é grande se tiver pista dupla (como a SP300,
por exemplo). Digamos que duas grandes cidades são adjacentes se uma
grande estrada ou uma concatenação de grandes estradas liga as duas cida-
des diretamente (ou seja, sem passar por uma terceira grande cidade). Faça cidades
uma figura do grafo das grandes cidades definido pela relação de adjacência
que acabamos de descrever.

E 1.1.17 Sejam U e W dois conjuntos mutuamente disjuntos e seja A o con-


junto de todos os pares não-ordenados da forma uw com u ∈ U e w ∈ W .
Dizemos que (U ∪ W, A) é um grafo bipartido completo. (Veja uma generali-
zação desse conceito na seção 3.3.) Se U tem p elementos e W tem q elemen-
tos, dizemos que esse grafo é um Kp,q . Em particular, uma estrela (= star) é Kp,q
um K1,q .
Faça uma figura de um K3,4 . Quantas arestas tem o grafo? Quantas
arestas tem o complemento de K3,4 ? Faça uma figura de uma estrela com 6
vértices.

E 1.1.18 Seja V um conjunto de pontos no plano. Digamos que dois desses


pontos são adjacentes se a distância entre eles é menor que 2. Essa relação
de adjacência define o grafo dos pontos no plano (sobre o conjunto V ). Faça pontos no
uma figura do grafo definido pelos pontos abaixo. plano

(0, 2) (1, 2) (2, 2)


(0, 1) (1, 1) (2, 1)
(0, 0) (1, 0) (2, 0)

E 1.1.19 Seja V o conjunto {1, . . . , 6} e E o conjunto definido da seguinte ma-


neira: para cada par não-ordenado de elementos de V , jogue uma moeda; se
o resultado for cara, acrescente o par a E . O grafo (V, E) assim definido é
aleatório (= random). Pegue sua moeda favorita e faça uma figura de (V, E). aleatório
Agora repita o exercício com uma moeda viciada que dá cada com probabili-
dade 1/3 e coroa com probabilidade 2/3.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 13

E 1.1.20 Seja M uma matriz de números inteiros. Suponha que as linhas de


M são indexadas por um conjunto V e que as colunas são indexadas pelo
mesmo conjunto V . O grafo da matriz M é definido da seguinte maneira: matriz
o conjunto de vértices do grafo é V e dois vértices i e j são adjacentes se
M [i, j] 6= 0.
O grafo de M está bem definido? Que condições é preciso impor sobre
a matriz para que o grafo esteja bem definido? Exiba uma matriz cujo grafo
seja a grade 3-por-2 (veja exercício 1.1.4).

E 1.1.21 A matriz de adjacências de um grafo G é a matriz M definida da


seguinte maneira: para quaisquer dois vértices u e v, matriz de
adjacências
1 se uv ∈ EG ,
M [u, v] =
0 em caso contrário.

É claro que a matriz é indexada por VG × VG . Qual a matriz de adjacências do


grafo definido no exemplo que aparece no início dessa seção? Que aparência
tem a matriz de adjacências de um K4 ? Como é a matriz de adjacências de
um K2,3 ? Como é a matriz de adjacências de uma grade 3-por-4? Como é a
matriz de adjacências de um 3-cubo?

E 1.1.22 Suponha dados k intervalos de comprimento finito, digamos


I1 , . . . , Ik , na reta real. Digamos que dois intervalos Ii e Ij são adjacentes
se Ii ∩ Ij 6= ∅. Essa relação de adjacência define um grafo com conjunto de
vértices {I1 , . . . , Ik }. Esse é um grafo de intervalos.. Faça uma figura do intervalos
grafo definido pelos intervalos [0, 2], [1, 4], [3, 6], [5, 6] e [1, 6].

E 1.1.23 Seja  uma relação de ordem parcial sobre um conjunto finito V .


Portanto, a relação é transitiva (se x  y e y  z então x  z), anti-simétrica
(se x  y e y  x então x = y) e reflexiva (x  x para todo x). Digamos que
dois elementos distintos x e y de V são adjacentes se forem comparáveis,
ou seja, se x  y ou y  x. Essa relação de adjacência define o grafo de
comparabilidade da relação . comparabili-
Faça uma figura do grafo de comparabilidade da relação usual de inclu- dade
são ⊆ entre a coleção de todos os subconjuntos de {1, 2, 3}.

E 1.1.24 Um grafo é planar se pode ser desenhado no plano sem que as cur-
vas que representam arestas se cruzem. (Veja uma definição mais precisa na
seção 3.19.) para fazer uma definição mais precisa do conceito.) Mostre que o
grafo dos estados do Brasil (veja exemplo 1.1.15) é planar. Mostre que o grafo
do 3-cubo (veja exemplo 1.1.12) é planar.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 14

u
r
P rt vu
s ux
sH xy
PP x
r r y  r z

v P
 P Hs
H s yz
r
P r
PP w  PPP vw
s wx 
s

Figura 1.4: Um grafo (esquerda) e o seu grafo das arestas (direita).

E 1.1.25 Duas arestas de um grafo G são adjacentes se têm uma ponta co-
mum. Essa relação de adjacência define o grafo das arestas de G. De modo
mais formal, o grafo das arestas (= line graph) de um grafo G é o grafo (EG , A) das arestas
em que A é o conjunto de todos os pares de arestas adjacentes de G. O grafo
das arestas de G será denotado por L(G). (Veja a figura 1.4.) L(G)
Faça uma figura de L(K3 ). Faça uma figura de L(K4 ). Quantos vértices e
quantas arestas tem L(Kn )? Faça uma figura do grafo L(P ), sendo P o grafo
de Petersen (veja exercício 1.1.13).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 15

1.2 Lista de problemas clássicos


A Teoria dos Grafos é mais uma coleção de problemas que uma teoria. Os pro-
blemas, muitos de caráter algorítmico, tornaram-se célebres porque ocorrem
em diversas áreas da computação e em muitas aplicações industriais.
Segue uma lista de problemas clássicos da teoria dos grafos. Alguns são
fáceis, outros são difíceis; alguns já foram resolvidos, outros não.11
O enunciado de alguns dos problemas envolve termos técnicos que serão
definidos nas próximas seções; mas o significado de muitos desses termos
não é difícil de adivinhar.

• Construir um grafo cujos vértices tenham determinados graus.

• Decidir se dois grafos dados são isomorfos.

• Encontrar um conjunto estável máximo num grafo dado.

• Encontrar um emparelhamento máximo num grafo dado.

• Encontrar uma coloração dos vértices de um grafo dado que use número
mínimo de cores.

• Encontrar uma coloração das arestas de um grafo dado que use número
mínimo de cores.

• Encontrar um caminho de comprimento mínimo que passe por todas as


arestas de um grafo dado.

• Encontrar um circuito de comprimento máximo em um grafo dado.

• Encontrar um caminho máximo que ligue dois vértices de um grafo.

• Encontrar um caminho mínimo que ligue dois dados vértices dados de


um grafo.

• Encontrar uma coleção máxima de caminhos sem arestas em comum que


ligue dois vértices dados em um grafo.

11
Para vários desses problemas não se conhece (ainda?) um algoritmo rápido, ou seja,
não se conhece um algoritmo substancialmente melhor que examinar todos os candidatos a
solução. Em termos técnicos, um problema desse tipo é NP-completo ou NP-difícil. Veja os
livros de Garey–Johnson [GJ79], Harel [Har92] e Sipser [Sip97].
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 16

• Encontrar um corte mínimo dentre os que separam dois vértices dados


em um grafo.

• Encontrar um subgrafo gerador (ou seja, um subgrafo que contenha todos


os vértices) conexo mínimo de um grafo dado.

• Encontrar um mapa plano (ou seja, um desenho no plano, sem cruza-


mento de arestas) de um grafo dado.

No que segue, vamos aprender um pouco de terminologia técnica e preparar


algumas ferramentas que vão nos ajudar a investigar esses problemas.
Começaremos por estudar alguns tipos (ou classes) de grafos: os caminhos,
os circuitos, os grafos conexos, as florestas, as árvores.
Capítulo 2

Conceitos básicos

Este capítulo introduz alguns conceitos básicos da teoria dos grafos. (grau
de vértice, caminho, circuito, corte, subgrafo, conexão, componente, árvore
e grafo aleatório). Esses conceitos são necessários para estudar os grandes
problemas de que trataremos no capítulo 3.
Sugiro que o leitor faça uma primeira leitura superficial deste capítulo e
avance imediatamente para o capítulo 3. Mais tarde, quando houver neces-
sidade, o leitor poderá voltar a este capítulo para rever conceitos e examinar
as sutilezas de algumas definições.

2.1 Vizinhanças e graus de vértices


A vizinhança (= neighborhood) de um vértice v em um grafo G é o conjunto
de todos os vizinhos de v; este conjunto será denotado por

NG (v)

ou simplesmente por N(v).1 N(v)

O grau (= degree) de um vértice v em um grafo G é o número de arestas que


incidem em v. O grau de v será denotado por

dG (v)

ou simplesmente por d(v). É evidente que d(v) = |N(v)| para todo vértice v. d(v)

1
Alguns livros dizem “Adj (v)” em lugar de “N(v)”. Outros dizem “Γ(v)”.

17
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 18

Um vértice v é isolado se d(v) = 0.


O grau mínimo de um grafo2 G é o número δ(G) ≡ min{dG (v) : v ∈ VG }. δ(G)
O grau máximo do grafo é o número ∆(G) ≡ max{dG (v) : v ∈ VG }. ∆(G)
A densidade de um grafo G é o número m(G)/n(G).3 Como veremos no
exercício 2.1.8, a densidade de um grafo é igual à metade do seu “grau mé-
dio”.
Um grafo é regular se todos os seus vértices têm o mesmo grau, ou seja, se
δ = ∆. Um grafo é r-regular se d(v) = r para todo vértice v. Um grafo
cúbico é o mesmo que um grafo 3-regular.

E 2.1.1 Quais são os graus dos vértices de uma estrela (veja exercício 1.1.17)?

E 2.1.2 Se G é um Kn , quanto valem δ(G) e ∆(G)?

E 2.1.3 Quais são os graus dos vértices de uma molécula de alcano (veja exer-
cício 1.1.3)?

E 2.1.4 Calcule os valores dos parâmetros δ e ∆ no k-cubo (veja exercí-


cio 1.1.12) e no grafo de Petersen (veja exercício 1.1.13 ou figura 2.1).

r
 r Z
Z

rXXr CC rZ r


 Z

A Q C  
 
r
 QCr 
A Q 
A

Ar
JJr

Figura 2.1: Grafo de Petersen. Veja exercícios 1.1.13 e 2.1.4.

E 2.1.5 Calcule os valores dos parâmetros δ e ∆ no grafo dos estados do Bra-


sil (veja exercício 1.1.15).

2
A expressão “grau mínimo de um grafo” não é muito gramatical, uma vez que “grau
de um grafo” não faz sentido.
3
Esse uso do termo “densidade” é um tanto forçado: a densidade de um grafo G é
usualmente definida como m(G)/ n(G)

2 .
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 19

E 2.1.6 É verdade que todo grafo com pelo menos dois vértices tem dois vér-
tices com o mesmo número de vizinhos? Em outras palavras, se um grafo
tem mais de um vértice, é verdade que tem dois vértices distintos v e w tais
que |N(v)| = |N(w)|? (Uma maneira mais informal de dizer isso: é verdade
que em toda cidade com pelo menos dois habitantes residem duas pessoas
que têm exatamente o mesmo número de amigos na cidade?)

EI 2.1.7 Mostre4 que, em todo grafo, a soma dos graus dos vértices é igual ao
dobro do número de arestas. Ou seja, todo grafo (V, E) satisfaz a identidade
P
v∈V d(v) = 2|E| .

EF 2.1.8 O grau médio de um grafo (V, E) é o número |V1 | v∈V d(v). Mostre
P
grau médio
que o grau médio de qualquer grafo G é igual a 2ρ, sendo ρ a densidade
de G.

E 2.1.9 Mostre que todo grafo G tem um vértice v tal que d(v) ≤ 2m(G)/n(G)
e um vértice w tal que d(w) ≥ 2m(G)/n(G). É verdade que todo grafo G tem
um vértice x tal que d(x) < 2m(G)/n(G)?

E 2.1.10 Mostre que em qualquer grafo tem-se δ ≤ 2m/n ≤ ∆. Mostre tam-


bém que δ ≤ 2ρ ≤ ∆, sendo ρ a densidade do grafo.

E 2.1.11 Mostre que todo grafo com n vértices tem no máximo n(n − 1)/2
arestas.

E 2.1.12 Mostre que em qualquer grafo o número de vértices de grau ímpar


é necessariamente par.

E 2.1.13 Calcule os valores dos parâmetros δ e ∆ no grafo da dama (veja


exercício 1.1.6) e no grafo do cavalo (veja exercício 1.1.7).

E 2.1.14 Quantas arestas tem o grafo da dama 8-por-8 (veja exercício 1.1.6)?
Quantas arestas tem o grafo da dama t-por-t?

E 2.1.15 Quantas arestas tem o grafo do cavalo 4-por-4 (veja exercício 1.1.7)?
Quantas arestas tem o grafo do cavalo t-por-t?

4
Mostre = prove.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 20

E 2.1.16 Quantas arestas tem um grafo r-regular com n vértices?

E 2.1.17 Quantas arestas tem o cubo de dimensão k (veja exercício 1.1.12)?

E 2.1.18 Quantas arestas tem o grafo das arestas (veja exercício 1.1.25) de um
grafo G?

E 2.1.19 Seja G o complemento de um grafo G. Calcule δ(G) e ∆(G) em


função de δ(G) e ∆(G).

E 2.1.20 Seja G um grafo tal que m(G) > n(G). Mostre que d(v) ≥ 3 para
algum vértice v.

E 2.1.21 Suponha que um grafo G tem menos arestas que vértices, ou seja,
que m(G) < n(G). Mostre que G tem (pelo menos) um vértice de grau 0 ou
(pelo menos) dois vértices de grau 1.

E 2.1.22 Seja M a matriz de adjacências (veja exercício 1.1.21) de um grafo G.


Quanto vale a soma dos elementos da linha u de M ? Quanto vale a soma
dos elementos da coluna v de M ?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 21

2.2 União e interseção

A união de dois grafos G e H é o grafo (VG ∪ VH , EG ∪ EH ). É natural denotar


esse grafo por G ∪ H . G∪H

A interseção de dois grafos G e H é o grafo (VG ∩ VH , EG ∩ EH ). É natural


denotar esse grafo por G ∩ H . G∩H

Dois grafos G e H são disjuntos se os conjuntos VG e VH são disjuntos, ou


seja, se VG ∩ VH = ∅. É evidente que EG e EH também são disjuntos nesse
caso.

EF 2.2.1 Seja G um grafo completo com conjunto de vértices {1, 2, 3, 4, 5} e H


um grafo completo com conjunto de vértices {4, 5, 6, 7, 8}. Faça figuras dos
grafos G ∪ H e G ∩ H .

EF 2.2.2 Seja G o circuito 1 2 3 4 5 6 1 e H o caminho 4 7 8 5. Faça figuras dos


grafos G ∪ H e G ∩ H .

EF 2.2.3 Seja G o grafo do bispo e H o grafo da torre (veja exercícios 1.1.8


e 1.1.9). Mostre que G ∪ H é o grafo da dama.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 22

2.3 Caminhos e circuitos


Esta seção introduz dois tipos muito simples mas muito importantes de gra-
fos: os caminhos e os circuitos. Para qualquer seqüência (v1 , v2 , v3 . . . , vn ) de
objetos distintos dois a dois, o grafo

{v1 , v2 , v3 . . . , vn } , {v1 v2 , v2 v3 , . . . , vn−1 vn }
é um caminho (= path). Por exemplo, o grafo ({x, y, w, z}, {xy, yw, wz}) é um
caminho.5
Portanto, um grafo é um caminho se seus vértices podem ser ordenados de
tal maneira que o primeiro seja adjacente ao segundo, o segundo adjacente
ao terceiro, etc., o penúltimo adjacente ao último e que não haja outras adja-
cências entre os vértices além dessas. Em outras palavras, um grafo G é um
caminho se VG admite uma permutação6 (v1 , v2 , . . . , vn ) tal que
{vi vi+1 : 1 ≤ i < n} = EG .
Os vértices v1 e vn são os extremos do caminho. Diremos que esse caminho
liga v1 a vn .
O caminho que acabamos de descrever pode ser denotado simples-
mente por v1 v2 · · · vn (ou, equivalentemente, por vn · · · v2 v1 ). Por exem- v1 v2 · · · vn
plo, se dissermos “o caminho xywz” estaremos nos referindo ao grafo
({x, y, w, z}, {xy, yw, wz}).
Para qualquer seqüência (v1 , v2 , v3 . . . , vn ) de objetos distintos dois a dois,
com n ≥ 3, o grafo

{v1 , v2 , v3 , . . . , vn } , {v1 v2 , v2 v3 , . . . , vn−1 vn , vn v1 }
é um circuito (= circuit = polygon)7 .
Em outras palavras, um grafo G é um circuito8 se VG tem 3 ou mais elementos
e admite uma permutação (v1 , v2 , . . . , vn ) tal que
{vi vi+1 : 1 ≤ i < n} ∪ {vn v1 } = EG .
Esse circuito pode ser denotado simplesmente por v1 v2 · · · vn v1 . As- v1 v2 · · · vn v1

5
Convém insistir que, para nós, caminhos são grafos. Em alguns livros, caminhos não
são tratados como grafos mas sim como seqüências de vértices de um certo tipo.
6
Ou seja, uma seqüência em que cada vértice aparece uma e uma só vez.
7
Cuidado: alguns livros dizem “ciclo” (= cycle) no lugar de “circuito”.
8
Observe que, para nós, um circuito é um grafo. Em alguns livros, circuitos não são
tratados como grafos mas sim como seqüências de um certo tipo.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 23

sim, se dissermos “o circuito xyzx”, estaremos nos referindo ao grafo


({x, y, z}, {xy, yz, zx}).
r r
r r
r
 Sr
S
r #ccr
r##cc#
Sr
S r


Figura 2.2: Um caminho e um circuito.

O comprimento de um caminho ou circuito G é o número m(G). É claro que


um caminho de comprimento k tem k +1 vértices e um circuito comprimento
k tem k vértices. Um triângulo, quadrado, pentágono e hexágono é o mesmo
que um circuito de comprimento 3, 4, 5 e 6 respectivamente.

EF 2.3.1 Faça uma figura de um caminho de comprimento 0, de um caminho


de comprimento 1 e de um caminho de comprimento 2. Faça uma figura de
um circuito de comprimento 3 e de um circuito de comprimento 4. Por que
a definição de circuito tem a restrição “n ≥ 3”?

EF 2.3.2 Seja V o conjunto {a, b, c, d, e} e E o conjunto {de, bc, ca, be}. Verifi-
que que o grafo (V, E) é um caminho. Agora suponha que F é o conjunto
{bc, bd, ea, ed, ac} e verifique que o grafo (V, F ) é um circuito.

EF 2.3.3 Faça um figura do caminho 1 2 4 3 5. Faça um figura do circuito


1 2 4 3 5 1.

EF 2.3.4 Exiba a matriz de adjacências de um caminho de comprimento 4.


Exiba a matriz de adjacências de um circuito de comprimento 5.

EF 2.3.5 É verdade que o grafo do cavalo 3-por-3 é um circuito?

EF 2.3.6 Suponha que P é um caminho de comprimento n−1 e O um circuito


de comprimento n. Quanto valem δ(P ), ∆(P ), δ(O) e ∆(O)?

EF 2.3.7 Verifique que a grade 1-por-n é um caminho de comprimento n − 1.


Verifique que a grade 2-por-2 é um circuito de comprimento 4.

EF 2.3.8 Faça uma figura do complemento de um caminho de compri-


mento 3. Faça uma figura do complemento de um caminho de compri-
mento 4. Faça uma figura do complemento de um circuito de comprimento 5.
Faça uma figura do complemento de um circuito de comprimento 6.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 24

E 2.3.9 Quantos caminhos diferentes existem com conjunto de vértices


{1, 2, 3}? Quantos circuitos diferentes existem com conjunto de vértices
{1, 2, 3}? Quantos circuitos diferentes existem com conjunto de vértices
{1, 2, 3, 4}?

EF 2.3.10 Verifique que o caminho u v w x y z também pode ser denotado por


z y x w v u. Verifique que essas duas expressões representam o mesmo cami-
nho.

EF 2.3.11 Considere o circuito u v w x y z u. Mostre que z y x w v u z também


é um circuito. Mostre que qualquer permutação cíclica — como w x y z u v w
— também é um circuito. Mostre que todas essas expressões representam o
mesmo circuito.

EF 2.3.12 Seja P um caminho com extremos u a v e Q um caminho com ex-


tremos v e w. Mostre que se VP ∩VQ = {v} então o grafo P ∪Q (veja seção 2.2)
é um caminho.

EF 2.3.13 Suponha que os caminhos P e Q têm os mesmos extremos, diga-


mos u e v. Suponha ainda que VP ∩ VQ = {u, v}. Em que condições o grafo
P ∪ Q (veja seção 2.2) é um circuito?

E 2.3.14 É verdade que todo grafo 2-regular é um circuito? É verdade que


todo grafo com pelo menos dois vértices, com δ(G) = 2 e com exatamente
dois vértices de grau 2 é um caminho?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 25

2.4 Subgrafos
Um subgrafo de um grafo G é qualquer grafo H tal que VH ⊆ VG e EH ⊆ EG .
É conveniente escrever “H ⊆ G” para dizer que H é subgrafo de G. H⊆G

Um subgrafo H de G é gerador (= spanning) se VH = VG . Um subgrafo H


de G é próprio se VH 6= VG ou EH 6= EG . Às vezes é conveniente escrever
“H ⊂ G” para dizer que H é subgrafo próprio de G.9 H⊂G

O subgrafo de G induzido por uma parte10 X de VG é o grafo (X, F ), sendo


F o conjunto EG ∩ X (2) . Esse subgrafo é denotado por G[X]

G[X] .

Para qualquer subconjunto X de VG , denotaremos por G − X o subgrafo G−X


G[VG r X]. Se v é um vértice de G então G − v é uma abreviatura de G − {v}. G−v

Se e é uma aresta de G então G − e é o grafo (VG , EG r {e}). De modo mais G−e


geral, se A é um subconjunto de EG então G − A é o grafo (VG , EG r A). G−A
É claro que G − A é um subgrafo gerador de G.
Se um caminho v1 · · · vp é subgrafo de G, dizemos simplesmente que v1 · · · vp
é um caminho em G ou que G contém o caminho v1 · · · vp . Por exem-
plo, se dissermos que uvwz é um caminho em G, devemos entender que
({u, v, w, z}, {uv, vw, wz}) é um subgrafo de G. Convenção análoga vale para
circuitos que são subgrafos de G.11
Um caminho P em um grafo G é máximo se G não contém um caminho de máximo
comprimento maior que o de P . Um caminho v1 v2 · · · vp em G é maximal se maximal
não faz parte de um caminho maior, ou seja, se não existe vértice u em G tal
que u v1 v2 · · · vp é um caminho e não existe vértice w tal que v1 v2 · · · vp w é
um caminho em G.

EF 2.4.1 Seja G um grafo, V 0 uma parte de VG e E 0 uma parte EG . É verdade


que (V 0 , E 0 ) é um subgrafo de G?

9
De modo geral, escreveremos “X ⊂ Y ” ou “Y ⊃ X ” para dizer que o conjunto X é
subconjunto próprio de Y , ou seja, que X ⊆ Y mas X 6= Y .
10
Uma parte de um conjunto é o mesmo que um subconjunto do conjunto.
11
Eu gostaria de dizer “subcaminho de G” e “subcircuito de G”. Infelizmente, essas
expressões não são usadas na literatura.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 26

E 2.4.2 Repita o exercício 2.1.7: Use indução12 no número de arestas do grafo


para provar que todo grafo (V, E) satisfaz a identidade
P
v∈V d(v) = 2|E| .

EF 2.4.3 Mostre que todo subgrafo induzido de um grafo completo é com-


pleto. É verdade que todo subgrafo induzido de um caminho é um caminho?
É verdade que todo subgrafo induzido de um circuito é um caminho?

EF 2.4.4 Sejam v e w dois vértices de um grafo G. Suponha que d(v) = δ(G) e


d(w) = ∆(G). É verdade que δ(G − v) = δ(G) − 1? É verdade que ∆(G − w) =
∆(G) − 1?

EF 2.4.5 Verifique que o grafo do cavalo 3-por-3 contém um circuito. Encon-


tre o circuito mais longo que puder no grafo do cavalo 4-por-4.

EF 2.4.6 Verifique que o grafo do bispo t-por-t é um subgrafo do grafo da


dama t-por-t. Verifique que o grafo da torre t-por-t é um subgrafo do grafo
da dama t-por-t.

EF 2.4.7 Seja G o grafo representado na figura 2.3. É verdade que e a b f g k é


um caminho em G? É verdade que e a b f c d é um caminho em G? É verdade
que e a b f g k j i e é um circuito em G?

EF 2.4.8 Seja G o grafo representado na figura 2.3 e X o conjunto


{a, b, f, e, g, l}. Faça uma figura de G[X].

ra rb rc rd

re rf rg rh

ri rj rk rl

Figura 2.3: Veja exercícios 2.4.7, 2.4.8 e 2.4.9.

E 2.4.9 Seja G o grafo da figura 2.3. É verdade que G contém um circuito


de comprimento 6? É verdade que G contém um circuito induzido de com-
primento 6? (Ou seja, é verdade que existe um subconjunto X de VG tal que

12
Indução é a arte de reduzir um problema a uma versão menor dele mesmo.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 27

G[X] é um circuito de comprimento 6?) Exiba um caminho induzido de com-


primento 3 em G. (Ou seja, exiba um conjunto X de vértices tal que G[X] é
um caminho de comprimento 3.) Exiba um caminho de comprimento 3 em
G que não seja induzido.

E 2.4.10 (B OM) Seja H o grafo das arestas (veja exercício 1.1.25) de um


grafo G (portanto, H = L(G)). Mostre que H não contém K1,3 como sub-
grafo induzido, ou seja, mostre que não existe subconjunto X de VH tal que
H[X] é um K1,3 . Mostre que a recíproca não é verdadeira.

E 2.4.11 Seja H o grafo das arestas (veja exercício 1.1.25) de um grafo G (por-
tanto, H = L(G)). Seja H 0 um subgrafo induzido de H . Mostre que H 0 é o
grafo das arestas de algum grafo.

E 2.4.12 Seja v um vértice e e uma aresta de um circuito O. Mostre que o


grafo O − v é um caminho. Mostre que o grafo O − e é um caminho.

EU 2.4.13 Sejam P um caminho com extremos x e x0 e seja Q um caminho


com extremos y e y 0 . Suponha que VP ∩ VQ 6= ∅. Mostre existe um caminho
com extremos x e y no grafo P ∪ Q (veja seção 2.2).
Pergunta adicional: Se z é um vértice em VP ∩ VQ , é verdade que existe,
no grafo P ∪ Q, um caminho de x a y que passa por z?

E 2.4.14 Encontre um circuito de comprimento mínimo no grafo de Petersen


(veja exercício 1.1.13 ou figura 2.1). Encontre um circuito de comprimento
máximo no grafo de Petersen. Encontre um caminho de comprimento má-
ximo no grafo de Petersen.

E 2.4.15 Encontre o mais longo caminho que puder no grafo da dama. En-
contre o mais longo circuito que puder no grafo da dama.

E 2.4.16 O grafo de Heawood13 , tem conjunto de vértices {0, 1, 2, . . . , 13}. Heawood


Cada vértice i é vizinho de (i + 1) mod 14 e de (i + 13) mod 14.14 Além disso,
cada i é vizinho de um terceiro vértice, que depende da paridade de i: se
i é par então ele é vizinho de (i + 5) mod 14 e se i é ímpar então ele é vizi-
nho de (i + 9) mod 14. Faça uma figura do grafo. Encontre um circuito de
comprimento mínimo no grafo de Heawood.

13
Percy John Heawood ( − ), matemático inglês.
14
A expressão “i mod j ” denota o resto da divisão de i por j .
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 28

E 2.4.17 Suponha que um grafo G tem um circuito ímpar. Mostre que G


também tem um circuito ímpar induzido, ou seja, que existe um conjunto X
de vértices tal que G[X] é um circuito ímpar. Algo análogo vale para circuitos
pares?

E 2.4.18 Dê um exemplo de um grafo G e um caminho em G que seja maxi-


mal mas não seja máximo.
E 2.4.19 (B OM) Suponha que d(v) ≥ k para todo vértice v de um grafo. Mos-
tre que o grafo tem um caminho de comprimento pelo menos k. (Sugestão:
Tome um caminho maximal.)
O problema poderia ter sido formulado assim: mostre que todo grafo G
contém um caminho de comprimento pelo menos δ(G).

EU 2.4.20 Seja G um grafo tal que δ(G) ≥ 2. Prove que G tem um circuito.

E 2.4.21 Seja G um grafo tal que δ(G) ≥ 3. Prove que G tem um circuito de
comprimento par.

E 2.4.22 Seja k um número natural maior que 1. Suponha que d(v) ≥ k para
todo vértice v de um grafo G. Mostre que G tem um circuito de comprimento
pelo menos k + 1. Em outras palavras, mostre que G tem um circuito de
comprimento não-inferior a δ(G) + 1, desde que δ(G) > 1. (Sugestão: Veja
exercício 2.4.19.)

E 2.4.23 Seja G um grafo tal que n(G) > 1 e ρ(G) ≥ δ(G), onde ρ(G) é a
densidade de G. Mostre que G tem um vértice x tal que
ρ(G − x) ≥ ρ(G) .
Em outras palavras, mostre que é possível retirar um vértice sem com isso
reduzir a densidade do grafo.

E 2.4.24 Mostre que todo grafo G com pelo menos uma aresta tem um sub-
grafo H tal que
ρ(H) < δ(H) mas ρ(H) ≥ ρ(G) ,
onde ρ(G) é a densidade de G.

E 2.4.25 Mostre que todo grafo G com pelo menos kn(G) arestas contém
um caminho de comprimento k. (Sugestão: Combine os exercícios 2.4.24
e 2.4.19.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 29

Passeios
EU 2.4.26 Um passeio (= walk) em um grafo é qualquer seqüência finita
(v0 , v1 , v2 , . . . , vk−1 , vk ) de vértices tal que vi é adjacente a vi−1 para todo i
entre 1 e k. Dizemos que o vértice v0 é a origem do passeio e que vk é o
término do passeio.
Seja (v0 , v1 , v2 , . . . , vk ) um passeio com origem r e término s em um
grafo G. Mostre que G tem um caminho com extremos r e s. Mais es-
pecificamente, mostre há um caminho com extremos r e s no subgrafo
({v0 , v1 , v2 , . . . , vk } , {v0 v1 , v1 v2 , . . . , vk−1 vk }) de G.

E 2.4.27 Um passeio (v0 , . . . , vk ) (veja exercício 2.4.26) é fechado (= closed) se


sua origem coincide com o término, ou seja, se v0 = vk .
Suponha que F é uma passeio fechado em um grafo G. É verdade que
G tem um circuito?

EU 2.4.28 Uma trilha (= trail) é um passeio (veja exercício 2.4.26) sem arestas
repetidas, isto é, um passeio cujas arestas são distintas duas a duas. Um ciclo
(= cycle) é uma trilha fechada de comprimento não-nulo.
Seja (v0 , v1 , v2 , . . . , vk ) um ciclo em um grafo G. Mostre que há um cir-
cuito no subgrafo ({v1 , v2 , . . . , vk }, {v0 v1 , v1 v2 , . . . , vk−1 vk }) de G.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 30

2.5 Cortes e pontes


Suponha que X é um conjunto de vértices de um grafo G. O corte associado
a X é o conjunto de todas as arestas que têm uma ponta em X e outra em
VG r X . O corte associado a X será denotado por

∇G (X)

ou simplesmente por ∇(X).15 (Alguns livros escrevem δ(X) no lugar de ∇(X)


∇(X).)
É evidente que ∇(∅) = ∇(VG ) = ∅. É claro que |∇({v})| = d(v) para todo
vértice v. Para qualquer conjunto X de vértices, diremos que |∇(X)| é o
grau e denotaremos esse número por d(X): d(X)

d(X) ≡ |∇(X)| .

Um corte (= cut = coboundary) em um grafo G é qualquer conjunto da forma


∇(X), onde X é uma parte16 de VG . (Um corte é, portanto, um conjunto de
arestas.)
Uma ponte (= bridge) ou istmo (= isthmus) ou aresta de corte (= cut edge) em
um grafo é qualquer aresta a tal que {a} é um corte.
Dizemos que um corte ∇(X) separa um vértice x de um vértice y se x ∈ X e
y∈
/ X.

E 2.5.1 Seja G o grafo representado na figura 2.3. É verdade que o conjunto


{ae, ef, f j, jk, cd, dh} é um corte?

E 2.5.2 Encontre o menor corte que puder no grafo da dama 8-por-8. Encon-
tre o maior corte que puder no grafo da dama.

E 2.5.3 Encontre o menor corte que puder no grafo de Petersen. Encontre o


maior corte que puder no grafo de Petersen.

EF 2.5.4 É verdade que d(v) = |N(v)| para todo vértice v? É verdade que
d(X) = |N(X)| para todo conjunto X de vértices?

15
O nome do símbolo ∇ é nabla. Dizem que a palavra designa uma harpa egípcia. Não
confunda ∇ com ∆.
16
Uma parte de um conjunto é o mesmo que um subconjunto do conjunto.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 31

EI 2.5.5 Mostre que para qualquer grafo G e qualquer parte X de VG tem-se


P
x∈X dG (x) = 2m(G[X]) + dG (X) . (2.1)

(Isso é uma generalização do exercício 2.1.7.)

E 2.5.6 Suponha que todos os vértices de um grafo G têm grau par. É ver-
dade d(X) é par para todo subconjunto X de VG ?
Suponha que todos os vértices de um grafo G têm grau ímpar. É verdade
d(X) é ímpar para todo subconjunto próprio e não-vazio X de VG ?

E 2.5.7 Suponha que todos os vértices de um grafo G têm grau par. Mostre
que G não tem pontes.

E 2.5.8 (B OM) Mostre que em todo grafo existe um corte que contém pelo
menos a metade das arestas. Em outras palavras, mostre que todo grafo G
tem um corte ∇(X) tal que d(X) ≥ 12 m(G).

E 2.5.9 (B OM) Mostre que ∇(X ⊕Y ) = ∇(X)⊕∇(Y ) para quaisquer conjun-


tos X e Y de vértices de um grafo. Aqui, A ⊕ B denota a diferença simétrica A⊕B
17
dos conjuntos A e B.

Interação de cortes com caminhos e circuitos

E 2.5.10 Seja P um caminho num grafo G. Seja X um conjunto de vértices


que contém um e apenas um dos extremos de P . Mostre que EP ∩ ∇(X) 6= ∅.

E 2.5.11 Seja D um corte e O um circuito em um grafo G. Mostre que |D∩EO |


é par.

E 2.5.12 Seja D um conjunto de arestas de um grafo G. Suponha que |D∩EO |


é par para todo circuito O em G. Mostre que D é um corte.

E 2.5.13 Seja D um corte e P um caminho em um grafo G. O que se pode


dizer sobre a paridade de |D ∩ EP |?

17
A diferença simétrica de dois conjuntos A e B é o conjunto (A r B) ∪ (B r A). É fácil
verificar que A ⊕ B = (A ∪ B) r (A ∩ B).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 32

EI 2.5.14 Prove que, para qualquer par (x, y) de vértices de qualquer grafo,
vale uma e apenas uma das seguintes afirmações: (1) um caminho liga x a y;
(2) um corte vazio separa x de y. (Outra maneira de dizer a mesma coisa:
prove que existe um caminho de x a y se e somente se nenhum corte vazio
que separa x de y.)

E 2.5.15 (A LGORITMO) Construa um algoritmo eficiente que receba vértices


x e y de um grafo G e encontre um caminho com extremos x e y ou mostre
que tal caminho não existe.

E 2.5.16 Seja G o grafo que tem vértices a, b, . . . , g e arestas ab, bc, cd, de, ec,
bf , gb, ag. Quais das arestas pertencem a circuitos de G? Quais das arestas
são pontes?

EI 2.5.17 Prove que, em qualquer grafo, toda aresta é de um e apenas um de


dois tipos: ou ela pertence a um circuito do grafo ou é uma ponte. (Outra ponte vs
maneira de propor a questão: prove que uma aresta é ponte se e somente se circuito
não pertence a um circuito.)

E 2.5.18 Suponha que toda aresta de um grafo G é uma ponte. Que aparência
tem G? (Veja antes o exercício 2.5.17.) Suponha agora que toda aresta de G
pertence a um circuito. Que aparência tem G? (Veja seções 2.8 e 2.9.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 33

2.6 Grafos conexos


Esta seção introduz uma classe importante de grafos: a classe dos grafos co-
nexos.
Em qualquer grafo G, dizemos um vértice v está ligado a um vértice w se G
contém um caminho com extremos v e w. É evidente que a relação é simé-
trica: se v está ligado a w então também w está ligado a v.
Um grafo é conexo (= connected) se seus vértices são ligados dois a dois. Em
outras palavras, um grafo é conexo se v é ligado a w para cada par {v, w} de
seus vértices.

E 2.6.1 Mostre que todo grafo completo é conexo. Mostre que todo caminho
é um grafo conexo. Mostre que todo circuito é um grafo conexo.

E 2.6.2 O grafo do cavalo 3-por-3 é conexo? O grafo do bispo t-por-t é co-


nexo?

E 2.6.3 Mostre que o k-cubo é conexo (qualquer que seja k).

EF 2.6.4 Suponha que um subgrafo gerador H de um grafo G é conexo. Mos-


tre que G é conexo.

E 2.6.5 Seja G um grafo e X uma parte própria e não-vazia de VG . Mostre


que o grafo G − ∇(X) não é conexo. (Em particular, se e é uma ponte então
G − e não é conexo.)

EI 2.6.6 Mostre que um grafo G é conexo se e somente se ∇(X) 6= ∅ para


todo subconjunto próprio e não vazio X de VG (ou seja, para todo X tal que
∅ ⊂ X ⊂ VG ).

E 2.6.7 (A LGORITMO) Construa um algoritmo eficiente que decida se um


grafo é conexo. O que o seu algoritmo devolve (ou seja, qual a “saída” do
algoritmo)?

E 2.6.8 Sejam x, y e z três vértices de um grafo conexo G. É verdade que G


tem um caminho que passa por x, y e z?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 34

E 2.6.9 Mostre que dois vértices v e w de um grafo estão ligados se e somente


se existe um passeio de v a w. (Veja exercício 2.4.26.)

EU 2.6.10 Sejam P e Q dois caminhos tais que VP ∩ VQ 6= ∅. Mostre que o


grafo P ∪ Q (veja seção 2.2) é conexo.

E 2.6.11 (B OM) Seja G e H dois grafo conexos tais que VG ∩ VH 6= ∅. Mostre


que o grafo G ∪ H (veja seção 2.2) é conexo.

E 2.6.12 (B OM) Suponha que um certo vértice x de um grafo G é ligado a


cada um dos demais vértice. Mostre que G é conexo.

E 2.6.13 Seja v um vértice de grau 1 num grafo conexo G. Mostre que o grafo
G − v é conexo.

EU 2.6.14 Seja O um circuito em um grafo conexo G. Mostre que G − e é


conexo para toda aresta e de O.

E 2.6.15 Suponha que G é um grafo conexo com pelo menos uma aresta. É
verdade que existe uma aresta a tal que G − a é conexo?

EF 2.6.16 Seja G um grafo conexo e seja v um dos extremos de um caminho


maximal em G. É verdade que G[N(v)] é conexo?

E 2.6.17 (B OM) Mostre que todo grafo conexo G com dois ou mais vértices
tem um vértice v tal que G − v é conexo.

EI 2.6.18 Prove que todo grafo conexo com n vértices tem pelo menos n − 1
arestas. Em outras palavras, mostre que em todo grafo conexo G tem-se

m(G) ≥ n(G) − 1 .

E 2.6.19 Seja G um grafo tal que δ(G) ≥ 12 n(G). Mostre que G é conexo.

E 2.6.20 Seja G um grafo tal que δ(G) ≥ bn(G)/2c.18 Mostre que G é conexo.

18
Por definição, bxc é o único inteiro i tal que i ≤ x < i + 1.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 35

E 2.6.21 Mostre que todo grafo com n vértices e mais que 21 (n − 1)(n − 2)
arestas é conexo.

E 2.6.22 Prove que se um grafo G não é conexo então seu complemento G é


conexo.

E 2.6.23 Prove que se um grafo G é conexo então o grafo das arestas L(G)
também é conexo.

E 2.6.24 Construa um algoritmo que receba um grafo e diga se o grafo é ou


não um circuito. (Sugestão: Mostre que um grafo G é um circuito se e so-
mente se G é conexo e 2-regular.)

E 2.6.25 Construa um algoritmo que receba um grafo e diga se o grafo é ou


não um caminho. (Sugestão: Mostre que um grafo G é um caminho se e
somente se (1) G tem exatamente um vértice ou (2) G é conexo, ∆(G) ≤ 2 e
G tem exatamente dois vértices de grau 1.)

E 2.6.26 Prove que todo grafo conexo G tem pelo menos m(G) − n(G) + 1
circuitos.

E 2.6.27 Sejam P ∗ e Q∗ dois caminhos de comprimento máximo em um grafo


conexo G. Mostre que P ∗ e Q∗ têm um vértice em comum.

E 2.6.28 Prove que quase todo grafo G em G(n) é conexo. (Veja a seção 2.10.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 36

2.7 Componentes
Um subgrafo conexo H de um grafo G é maximal (com relação à propriedade
de ser conexo) se não faz parte de um subgrafo conexo maior, ou seja, se H
não é subgrafo próprio de algum subgrafo conexo de G, ou seja, se não existe
grafo conexo H 0 tal que H ⊂ H 0 ⊆ G.
Um componente de um grafo G é qualquer subgrafo conexo maximal de G.
O número de componentes de um grafo G será denotado por c(G)

c(G) .

É claro que um grafo é conexo se e somente se tem um só componente.

E 2.7.1 Quantos componentes tem o grafo do cavalo 3-por-3? Quantos com-


ponentes tem o grafo do bispo t-por-t?

E 2.7.2 Seja a uma aresta e v um vértice de um caminho P . Mostre que P −


a tem exatamente dois componentes. Mostre que P − v tem um ou dois
componentes.

E 2.7.3 Seja a uma aresta e v um vértice de um circuito O. Mostre que O − a


tem um só componente. Mostre que O − v tem um só componente.

E 2.7.4 Seja G um grafo tal que ∆(G) ≤ 2. Descreva os componentes de G.

E 2.7.5 Seja G um grafo 2-regular. Mostre que cada componente de G é um


circuito.

E 2.7.6 Mostre que, em qualquer grafo, todo vértice pertence a um e apenas


um componente. Em outras palavras, mostre que em qualquer grafo G os
conjuntos de vértices de todos os componentes formam uma partição19 de
VG .

E 2.7.7 Seja H um componente de um grafo G. Mostre que ∇G (VH ) = ∅.

19
Uma partição de um conjunto V é uma coleção {V1 , . . . , Vk } de subconjuntos de V tal
que V1 ∪ · · · ∪ Vk = V e Vi ∩ Vj = ∅ sempre que i 6= j . Não faz sentido dizer “V1 é uma das
partições de V ”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 37

E 2.7.8 Prove ou desprove a seguinte afirmação: se X é um conjunto de vér-


tices de G tal que ∇G (X) = ∅ então G[X] é um componente de G.

EI 2.7.9 Seja x um vértice de um grafo G. Seja X o conjunto de todos os


vértices ligados a x. Mostre que G[X] é um componente de G.

E 2.7.10 (A LGORITMO) Construa um algoritmo eficiente que resolva o se-


guinte problema: dado um vértice x de um grafo, encontrar o (conjunto de
vértices do) componente que contém x.

E 2.7.11 (A LGORITMO) Construa um algoritmo eficiente que calcule o nú-


mero de componentes de qualquer grafo dado.

E 2.7.12 Mostre que uma aresta a é uma ponte se e somente se c(G − a) =


c(G) + 1. Mostre que c(G) ≤ c(G − a) ≤ c(G) + 1 para qualquer aresta a de G.

EI 2.7.13 Mostre que em todo grafo G tem-se

m(G) ≥ n(G) − c(G) .

E 2.7.14 Sejam n, m e c os números de vértices, de arestas e de componentes,


respectivamente, de um grafo G. Mostre que

n − c ≤ m ≤ 12 (n − c)(n − c + 1) .

E 2.7.15 Seja v um vértice de um grafo conexo G. Mostre que o número de


componentes de G − v não passa de d(v).

E 2.7.16 Seja G um grafo conexo e suponha que d(v) é par para todo vértice v
de G. Mostre que, para qualquer vértice v, o número de componentes de
G − v não passa de 21 d(v).

E 2.7.17 Seja P um caminho e S uma parte própria de VP . Prove que

c(P − S) ≤ |S| + 1 .

E 2.7.18 Seja O um circuito e S uma parte de VO tal que 0 < |S| < n(O).
Prove que
c(O − S) ≤ |S| .
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 38

2.8 Florestas e árvores


Esta seção trata de duas espécies importantes de grafos: as florestas e as ár-
vores. Árvores podem ser entendidas como uma generalização de caminhos
(veja exercício 2.8.3).
Uma floresta (= forest), ou grafo acíclico, é um grafo sem circuitos. Essa de-
finição pode ser reformulada assim: um grafo é uma floresta se cada uma de
suas arestas é uma ponte (veja exercício 2.8.4).
Uma árvore (= tree) é uma floresta conexa. É claro que cada componente de
uma floresta é uma árvore.20
Uma folha (= leaf ) de uma floresta é qualquer vértice da floresta que tenha
grau 1.

EF 2.8.1 Mostre que todo caminho é uma árvore.

EF 2.8.2 Mostre que toda estrela (veja exercício 1.1.17) é uma árvore.

E 2.8.3 A. Seja (v1 , v2 , v3 , . . . , vn ) uma seqüência de objetos distintos dois a


dois. Para cada j, seja i(j) um índice em {1, . . . , j−1}. Mostre que o grafo

{v1 , v2 , v3 , . . . , vn } , {v2 vi(2) , v3 vi(3) , . . . , vn vi(n) }

é uma árvore. (Compare essa definição com a definição de caminho na se-


ção 2.3.)
B. Seja T uma árvore. Mostre que existe uma permutação (v1 , v2 , . . . , vn )
de VT e, para cada j, existe um índice i(j) em {1, . . . , j−1} tais que ET =
{v2 vi(2) , v3 vi(3) , . . . , vn vi(n) }.

EI 2.8.4 Mostre que um grafo é uma floresta se e somente se cada uma de


suas arestas é uma ponte. (Veja o exercício 2.5.17.)

20
Em algumas disciplinas, a palavra “árvore” traz imediatamente à mente as idéias de
pai e filho. No presente contexto, entretanto, as expressões “pai de um vértice” e “filho de
um vértice” não fazem sentido. Eles só adquirem sentido se um dos vértices da árvore for
escolhido para fazer o papel de “raiz”. (Se r é a raiz da árvore então o pai de qualquer outro
vértice v é o vértice adjacente a v no único caminho (veja exercício 2.8.7, parte A) que liga v
a r. Todo vizinho de v que não seja o pai de v é filho de v.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 39

EI 2.8.5 Uma grafo G é conexo minimal (ou minimamente conexo) se G é


conexo mas, para toda aresta e, o grafo G − e não é conexo. Mostre que
toda árvore é um grafo conexo minimal. Mostre a recíproca: que todo grafo
conexo minimal é uma árvore.

E 2.8.6 Seja e uma das arestas de uma floresta F . Mostre que F − e tem pelo
menos dois componentes. Mostre que c(F − e) = c(F ) + 1.

EI 2.8.7 A. Seja F uma floresta. Mostre que para todo par x,y de vértices de
F existe no máximo um caminho com extremos x e y.
B. Seja G um grafo tal que para todo par x,y de seus vértices existe no
máximo um caminho com extremos x e y. Mostre que G é uma floresta.

E 2.8.8 (A LGORITMO) Construa um algoritmo eficiente que decida se um


grafo dado é uma árvore.

EI 2.8.9 A. Prove que em toda árvore T tem-se

m(T ) = n(T ) − 1 .

B. Prove que todo grafo conexo G tal que m(G) = n(G) − 1 é uma árvore.
(Compare com o exercício 2.6.18.)

EI 2.8.10 Mostre que um grafo F é uma floresta se e somente se

m(F ) = n(F ) − c(F ) .

(Compare com o exercício 2.7.13.)

E 2.8.11 Seja v uma folha de uma árvore T . Mostre que T − v é uma árvore.

EU 2.8.12 Mostre que toda árvore com pelo menos uma aresta tem pelo me-
nos duas folhas.

E 2.8.13 Mostre que toda floresta F tem pelo menos ∆(F ) folhas.

E 2.8.14 Seja T uma árvore com dois ou mais vértices. Seja XPo conjunto dos
vértices de T cujo grau é maior que 2. Mostre que T tem 2 + x∈X (d(x) − 2)
folhas.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 40

E 2.8.15 Seja T uma árvore com vértices 1, . . . , n. Suponha que os graus


dos vértices 1, 2, 3, 4, 5, 6 são 7, 6, 5, 4, 3, 2 respectivamente e que os vértices
7, . . . , n são folhas. Determine n (e portanto o número de folhas da árvore).

E 2.8.16 Seja T uma árvore com p + q vértices. Suponha que p dos vértices
têm grau 4 e q são folhas. Mostre que q = 2p + 2.21

E 2.8.17 Seja T uma árvore com pelo menos três vértices. É verdade que o
complemento T de T é conexo a menos que T seja um estrela (veja exercí-
cio 1.1.17)?

E 2.8.18 Seja T uma árvore e P, Q, R três caminhos em T . Suponha que VP ∩


VQ 6= ∅, VQ ∩ VR 6= ∅ e VP ∩ VR 6= ∅. Prove que VP ∩ VQ ∩ VR 6= ∅.

21
Imagine que os vértices de grau 4 são átomos de carbono e os de grau 1 são átomos
de hidrogênio. O grafo representa então a molécula do hidrocarboneto Cp Hq . Veja o exercí-
cio 1.1.3.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 41

2.9 Pontes e grafos aresta-biconexos


Um grafo é aresta-biconexo (= edge-biconnected) se, para cada par {v, w} de
seus vértices, existem dois caminhos, sem arestas em comum, com extre-
mos v e w. Grafos aresta-biconexos também são conhecidos como 2-aresta-
conexos (= 2-edge-connected).
Grafos aresta-biconexos não têm pontes. Por outro lado, grafos conexos sem
pontes são aresta-biconexos (veja exercício 2.9.5 abaixo).
Como vimos no exercício 2.5.17, cada aresta de um grafo é uma ponte ou
pertence a um circuito. Portanto, um grafo conexo é aresta-biconexo se e
somente se cada uma de suas arestas pertence a um circuito.

EF 2.9.1 Mostre que grafos aresta-biconexos não têm pontes.

EF 2.9.2 Sejam v e w dois vértices de um grafo aresta-biconexo G. Seja P um


caminho em G com extremos v e w. É verdade que G − EP tem um caminho
com extremos v e w?

EI 2.9.3 Mostre que todo grafo conexo sem pontes é aresta-biconexo.

EF 2.9.4 Mostre que um grafo G é aresta-biconexo se e somente se o grafo


G − e é conexo qualquer que seja a aresta e.

EI 2.9.5 Deduza dos exercícios 2.9.1 e 2.9.3 que um grafo G é aresta-biconexo


se e somente se G é conexo e não tem pontes. Em outras palavras, mostre
que G é aresta-biconexo se e somente se |∇(X)| ≥ 2 para toda parte própria
e não-vazia X de VG .

E 2.9.6 (A LGORITMO) Construa um algoritmo que receba dois vértices r e s


de um grafo G e devolva (1) dois caminhos de r a s sem arestas em comum
ou (2) um conjunto X de vértices tal que r ∈ X , s ∈
/ X e |∇(X)| ≤ 1.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 42

2.10 Grafos aleatórios


Seja G(n) a coleção de todos os grafos com conjunto de vértices V ≡ G(n)
{1, . . . , n}.22 É claro que V

|G(n)| = 2N , com N ≡ n2 .


Qualquer propriedade de grafos (como, por exemplo, a propriedade de ser N


conexo)23 define uma subcoleção de G(n). Assim, convém confundir os con-
ceitos de “propriedade” e “subcoleção” de G(n). Diremos que quase todo
grafo tem determinada propriedade P(n) se

|P(n)|
lim = 1.
n→∞ |G(n)|

Uma maneira de estudar o conjunto G(n) é baseada na introdução de uma


medida de probabilidade nesse conjunto. Seja p um número no intervalo
(0, 1) e escolha cada elemento de V (2) , independentemente, com probabili-
dade p. (Veja exercício 1.1.19.) Se A é o conjunto dos pares escolhidos, então
(V, A) é um grafo aleatório em G(n). A probabilidade de que o grafo (V, A)
assim construído seja idêntico a um determinado elemento de G(n) que tenha
m arestas é
pm (1 − p)N −m .
Se p = 12 então todos os 2N grafos em G(n) são equiprováveis: a probabili-
dade de obter qualquer um deles é 1/2N .

EF 2.10.1 Mostre que quase todo grafo em G(n) tem mais que 10000 arestas.

22
Qualquer outro conjunto de cardinalidade n poderia ser usado no lugar de {1, . . . , n}.
23
Naturalmente, só estamos interessados em propriedades invariantes sob isomorfismo
(veja seção 3.1).
Capítulo 3

Alguns problemas clássicos

Este capítulo discute alguns problemas clássicos da teoria dos grafos: iso-
morfismo, seqüências gráficas, caracterização de grafos bipartidos, conjuntos
estáveis e cliques, coloração de vértices, circuitos hamiltonianos, ciclos eule-
rianos, árvores de grafos, distâncias, emparelhamentos, coloração de arestas,
grafos planares.

3.1 Isomorfismo
Dois grafos são isomorfos têm a mesma “estrutura”. A definição precisa do
conceito é um pouco trabalhosa, como veremos a seguir.
Um isomorfismo (= isomorphism) entre dois grafos G e H é uma uma bijeção1
f de VG em VH tal que, para todo par (v, w) de elementos de VG , v e w são
adjacentes em G se e somente se f (v) e f (w) são adjacentes em H .
Dois grafos G e H são isomorfos (= isomorphic) se existe um isomorfismo
entre eles. Em outras palavras, dois grafos são isomorfos se é possível alterar
os nomes dos vértices de um deles de tal modo que os dois grafos fiquem
iguais.

P ROBLEMA DO I SOMORFISMO: Decidir se dois grafos dados são iso-


morfos.

1
Uma bijeção é uma função f de um conjunto A em um conjunto B tal que (1) f (a) 6=
f (a0 ) sempre que a 6= a0 e (2) para todo b em B existe a em A tal que b = f (a).

43
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 44

E 3.1.1 Os grafos G e H descritos a seguir são iguais?

VG = {a, b, c, d} EG = {ab, bc, cd, da}


VH = {a, b, c, d} EH = {ab, bd, dc, ca}

E 3.1.2 Os grafos G e H descritos a seguir são isomorfos?

VG = {a, b, c, d, e, f, g} EG = {ab, bc, cd, cf, f e, gf, ga, gb}


VH = {h, i, j, k, l, m, n} EH = {hk, nj, jk, lk, lm, li, ij, in}

E se trocarmos hk por hn em EH ?

E 3.1.3 Seja G a grade 3-por-4 e H a grade 4-por-3. Os grafos G e H são


iguais? são isomorfos?

E 3.1.4 Mostre que a grade p-por-q e o grafo definido no exercício 1.1.5 são
isomorfos.

E 3.1.5 Mostre que o 3-cubo é isomorfo a algum subgrafo do 4-cubo.

E 3.1.6 Os grafos da figura 3.1 são isomorfos?

Figura 3.1: Os grafos da figura são isomorfos? Veja exercício 3.1.6.

E 3.1.7 Suponha que os grafos G e H são isomorfos. Mostre que n(G) =


n(H) e m(G) = m(H). Mostre que para qualquer isomorfismo f de G em H
tem-se dG (v) = dH (f (v)) para todo v em VG . Mostre que se G tem um circuito
de comprimento k então H também tem um circuito de comprimento k.

E 3.1.8 Mostre que dois caminhos são isomorfos se e somente se têm o


mesmo comprimento. Mostre que dois circuitos são isomorfos se e somente
se têm o mesmo comprimento.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 45

E 3.1.9 (A LGORITMO) O seguinte algoritmo se propõe a decidir se dois gra-


fos, G e H , são isomorfos:

examine todas as bijeções de VG em VH ;


se alguma delas for um isomorfismo, então G e H são isomorfos;
caso contrário, G e H não são isomorfos.

Discuta o algoritmo.

E 3.1.10 (A LGORITMO) O seguinte algoritmo se propõe a decidir se dois


grafos, G e H , são isomorfos:

se n(G) 6= n(H) então G e H não são isomorfos;


se m(G) 6= m(H) então G e H não são isomorfos;
se os conjuntos {v ∈ VG : dG (v) = i} e {v ∈ VH : dH (v) = i} têm cardinali-
dades diferentes para algum i então G e H não são isomorfos;
caso contrário, G e H são isomorfos.

Discuta o algoritmo.

E 3.1.11 Sejam G e H dois grafos e f uma bijeção de VG em VH tal que


dG (v) = dH (f (v)) para todo v em VG . É verdade que G e H são isomorfos?

EF 3.1.12 Certo ou errado? Para mostrar que dois grafos G e H com mesmo
número de vértices não são isomorfos basta exibir uma bijeção f de VG em
VH e um par de vértices u e v em VG tal que (1) uv ∈ EG mas f (u)f (v) ∈
/ EH
ou (2) uv ∈/ EG mas f (u)f (v) ∈ EH .

E 3.1.13 Faça uma lista de todos os grafos sobre o conjunto de vértices


{1, 2, 3, 4} que sejam dois a dois não-isomorfos.

E 3.1.14 Os grafos da figura 3.2 são isomorfos dois a dois?

E 3.1.15 Os grafos da figura 3.3 são isomorfos? Justifique.

E 3.1.16 Os grafos da figura 3.4 são isomorfos? Justifique.

E 3.1.17 Seja C o conjunto de todos grafos que representam os alcanos que


têm fórmula C4 H10 . (Veja exercício 1.1.3.) Cada um desses alcanos tem 4
vértices de grau 4 e 10 vértices de grau 1. Quantos grafos dois-a-dois não-
isomorfos há em C?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 46

r !raa
Z r!! ar r r
 r Z
A J @ T
 Z

A  J 
r
Jr
C Z @ T
r Zr

A"rb
Z
XXXr r  ra @r
 C A   @ T
A Q  C 

 E  rP
 a r
!! Tr
E "A b T PPP  CC 
 Pr C
A Q  C   
A r
 QC r
Q 
 EEr" " A
b
b r T


A
J  Z  A  T  C 
A r
Jr Zr A r Tr Cr
Z

Figura 3.2: Os grafos são dois a dois isomorfos? Veja exercício 3.1.14.
r r
Z Z
 r Z  r Z
 Z  Z
C @
rX Zr r r
 Z  Z
r r r r
  C  
X @ Z
XX   XX @  
A Q  C  A 
A Q Q C  A A  
r QCr A AAr r 

A  
A
J  A
J 
r
A
Jr r
A
Jr

Figura 3.3: Veja exercício 3.1.15.

E 3.1.18 Mostre que o grafo das arestas (veja o exercício 1.1.25) de um K5 é


isomorfo ao complemento do grafo de Petersen.

E 3.1.19 É verdade que todo grafo é isomorfo ao grafo das arestas (veja exer-
cício 1.1.25) de algum outro grafo?

E 3.1.20 Seja X um conjunto de vértices de um grafo G. Suponha que o


subgrafo induzido G[X] é uma estrela (veja exercício 1.1.17) com 4 vértices.
Mostre que G não é isomorfo ao grafo das arestas (veja exercício 1.1.25) de
outro grafo, ou seja, que não existe grafo H tal que G é isomorfo a L(H).

E 3.1.21 Um grafo é auto-complementar se for isomorfo ao seu comple-


mento. Mostre que se G é um grafo auto-complementar então n(G) ≡ 0
(mod 4) ou n(G) ≡ 1 (mod 4).2

D 3.1.22 Caracterize os grafos que sejam isomorfos a um subgrafo do k-cubo.

2
A expressão “x ≡ i (mod 4)” significa que o resto da divisão de x por 4 e o resto da
divisão de i por 4 são iguais, ou seja, que x mod 4 = i mod 4. Em outras palavras, x − i é
divisível por 4.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 47

r r r r
@ @r r @ @r r
r
. r r
. r
r @ @r r r

Figura 3.4: Os grafos são isomorfos? Veja exercício 3.1.16.

D 3.1.23 Encontre uma caracterização eficiente de grafos não-isomorfos. Em


outras palavras, encontre uma propriedade X que seja fácil de verificar e que
torne verdadeira a seguinte afirmação: “Dois grafos G e H não são isomorfos
se e somente se X ”.

D 3.1.24 (A LGORITMO) Esboce um algoritmo rápido que resolva o pro-


blema do isomorfismo (isto é, decida se dois grafos dados são isomorfos).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 48

3.2 Síntese de grafos a partir dos graus


Um grafo G realiza uma seqüência (g1 , g2 , . . . , gn ) de números naturais3 se os
vértices do grafo são 1, 2, . . . , n e d(i) = gi para todo i.
Uma seqüência (g1 , g2 , . . . , gn ) de números naturais é gráfica se existe um seqüência
grafo que a realize. gráfica

P ROBLEMA DA S ÍNTESE: Dada uma seqüência de números naturais,


decidir se ela é ou não gráfica.

Esse problema é às vezes chamado de graph design problem.

E 3.2.1 Considere as seqüências (2, 2, 0), (1, 1, 2, 2), (0, 3, 1, 0), (0, 1, 2, 2, 3),
(3, 3, 2, 2, 1), (6, 6, 5, 4, 3, 3, 1) e (7, 6, 5, 4, 3, 3, 2). Quais delas são gráficas?

E 3.2.2 Suponha que (g1P, g2 , . . . , gn ) é uma seqüência gráfica. Mostre que gi ≤


n − 1 para todo i e que gi é par. Formule a recíproca; ela é verdadeira?

E 3.2.3 Mostre que uma seqüência (g1 , g2 , . . . , gn ) é gráfica se e somente se


a seqüência (n−g1 −1, n−g2 −1, . . . , n−gn −1) é gráfica. (Este fato pode ser
usado como base de um algoritmo que reconhece seqüências gráficas.)

E 3.2.4 Prove que para cada n ≥ 5 existe um grafo 4-regular com n vértices.

E 3.2.5 É verdade que para cada número r existe um grafo r-regular? É ver-
dade que para cada par (r, n) de números tal que r < n existe um grafo
r-regular com n vértices?

E 3.2.6 Suponha que (g1 , g2 , . . . , gn ) é uma seqüência gráfica e k é um número


natural ≤ n. Mostre que a seqüência

(k, g1 +1, g2 +1, . . . , gk +1, gk+1 , . . . , gn )

também é gráfica. Formule a recíproca deste fato; ela é verdadeira?

3
O conjunto dos números naturais é {0, 1, 2, . . .}.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 49

EI 3.2.7 (T EOREMA DE H AVEL E H AKIMI4 ) Seja (k, g1 , g2 , . . . , gn ) uma


seqüência de números naturais tal que k ≥ g1 ≥ g2 ≥ . . . ≥ gn . Suponha que
a seqüência
(g1 − 1, g2 − 1, . . . , gk − 1, gk+1 , . . . , gn )
é gráfica. Mostre que a primeira seqüência também é gráfica.

EI 3.2.8 (T EOREMA DE E RD ŐS5 E G ALLAI6 ) Mostre que P uma seqüência


(g1 , g2 , . . . , gn ) de números naturais é gráfica se e somente se i gi é par e
k
X n
X
gi ≤ k(k − 1) + min (k, gi )
i=1 i=k+1

para cada k tal que 1 ≤ k ≤ n.

E 3.2.9 (A LGORITMO) Esboce um algoritmo eficiente que resolva o pro-


blema de síntese enunciado acima, ou seja, decida se uma dada seqüência
de números naturais é gráfica. Busque inspiração nos exercícios 3.2.6 e 3.2.7
ou no exercício 3.2.8.

E 3.2.10 Sejam g1 , . . . , gn números inteiros positivos. Suponha que ni=1 gi =


P
2(n−1). Mostre que existe uma árvore (veja seção 2.8) T com vértices 1, . . . , n
tal que d(i) = gi para cada i.

4
Publicado em 1955 por Václav Havel e em 1962 por S. Louis Hakimi.
5
Paul Erdős ( − ).
6
Tibor Gallai ( − ).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 50

3.3 Bipartições e grafos bipartidos


Uma bipartição (= bipartition) de um conjunto V é um par {U, W } de conjun-
tos tal que U ∪ W = V e U ∩ W = ∅.7 Uma bipartição de um grafo G é uma
bipartição {U, W } de VG tal que
toda aresta de G tem uma ponta em U e outra em W .
Um dos objetivos desse capítulo é resolver o seguinte problema da bipartição:

P ROBLEMA DA B IPARTIÇÃO: Encontrar uma bipartição de um grafo


dado.

É fácil verificar que nem todo grafo admite uma bipartição.8 Faz parte do
problema, portanto, decidir se o grafo dado admite ou não uma bipartição.9
Como veremos adiante (exercício 3.3.23), um grafo admite bipartição se e
somente se não contém circuito ímpar. Dizemos que um circuito é ímpar se
seu comprimento é um número ímpar.

Um grafo é bipartido (= bipartite) se estiver munido de uma bipartição.10


Note a sutil distinção entre as expressões “G é bipartido” e “G admite uma
bipartição”: um grafo que admite uma bipartição só se torna bipartido de-
pois que uma de suas bipartições for explicitamente dada. (Mas veja o exer-
cício 3.3.16.) Se um grafo estiver munido de uma bipartição {U, W }, dizemos
que ele é (U, W )-bipartido.11
Um grafo (U, W )-bipartido G é completo se, para todo u em U e todo w em
W , o par uw é uma aresta. Se |U | = p e |W | = q, diremos que G é um Kp,q . Kp,q

EI 3.3.1 Mostre que um grafo G admite bipartição se e somente se EG é um


corte.

7
A bipartição é o par {U, W }. Não faz sentido dizer “U é uma das bipartições de V ”. Diga
“U é uma das partes da bipartição”.
8
A expressão “admite uma bipartição” significa o mesmo que “tem uma bipartição”.
9
Muitos problemas na teoria dos grafos envolvem a seguinte questão: “Como é possível
mostrar que um grafo não tem uma certa propriedade?”. No presente caso, a questão é
“Como é possível mostrar que um dado grafo não admite bipartição?”. A resposta “Tente
todas as possíveis bipartições de VG ” não é satisfatória. De fato, se G tem n vértices então
há 2n−1 diferentes bipartições de VG e esse número cresce explosivamente com n.
10
A rigor, portanto, um grafo bipartido é um objeto da forma (G, U, W ), em que G é um
grafo e {U, W } é uma bipartição de G.
11
Ainda que isso agrida a sintaxe da língua portuguesa. . .
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 51

EF 3.3.2 Uma pequena fábrica tem cinco máquinas — 1, 2, 3, 4 e 5 — e seis


operários — A, B, C , D, E e F . A tabela especifica as máquinas que cada
operário sabe operar:

A 2, 3 B 1, 2, 3, 4, 5
C 3 D
E 2, 4, 5 F 2, 5

Faça uma figura do grafo bipartido que representa essa relação entre operá-
rios e máquinas.

E 3.3.3 Que aparência tem a matriz de adjacências de um grafo que admite


bipartição?

E 3.3.4 Seja {U, W } uma bipartição de um grafo G. A matriz da bipartição


é definida assim: cada linha da matriz é um elemento de U , cada coluna da
matriz é um elementos de W e no cruzamento da linha u com a coluna w
temos um 1 se uw ∈ EG e temos um 0 em caso contrário.
Escreva a matriz da bipartição do grafo do exercício 3.3.2. Adote a bipar-
tição óbvia: U = {A, . . . , F } e W = {1, . . . , 5}.

E 3.3.5 Mostre que o grafo do cavalo t-por-t admite bipartição.

E 3.3.6 Mostre que todo k-cubo admite uma bipartição.

E 3.3.7 Mostre que toda grade admite uma bipartição.

EF 3.3.8 Mostre que todo caminho admite bipartição. Mostre que todo cir-
cuito de comprimento par admite bipartição.

EF 3.3.9 Quantas arestas tem um Kp,q ? Quantas arestas tem um Kp,q ?


Quanto valem os parâmetros δ e ∆ de um Kp,q ?

EF 3.3.10 Quantas arestas um grafo (U, W )-bipartido pode ter?

EF 3.3.11 Seja G um grafo (U, W )-bipartido. Mostre que os subgrafos G[U ] e


G[W ] são vazios.

EF 3.3.12 Seja X um conjunto de vértices de um grafo G. Mostre que


(VG , ∇(X)) é um subgrafo gerador bipartido de G.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 52

E 3.3.13 Seja G um grafo (U, W )-bipartido r-regular, com r > 0. Mostre que
|U | = |W |.

E 3.3.14 Seja G um grafo bipartido r-regular, com r ≥ 2. Prove que G não


tem pontes.

E 3.3.15 Seja G um grafo (U, W )-bipartido tal que |U | ≤ k e |W | ≤ k. Mostre


que se δ(G) > k/2 então G é conexo.

E 3.3.16 Mostre que um grafo pode ter duas ou mais bipartições diferentes.
Mostre que grafos conexos têm no máximo uma bipartição.

EU 3.3.17 Mostre que toda floresta admite bipartição.

EF 3.3.18 Suponha que um grafo G admite bipartição. É verdade que todo


subgrafo induzido de G admite bipartição?

E 3.3.19 (B OM !) Mostre que todo grafo G tem um subgrafo gerador H que


admite bipartição e satisfaz a condição dH (v) ≥ dG (v)/2 para todo vértice v.

E 3.3.20 Os grafos da figura 3.5 admitem bipartição?

r r r r r r r
HH  Z
H  r Z  
 HH  Z Z 
rH  r H Hr r Z Z r
Z Z
Zr
H
 H   Z
 Z
 HH   Z
r r H
Hr r 
 r r ZZr

Figura 3.5: Exercício 3.3.20. Esses grafos admitem bipartição?

E 3.3.21 (B OM !) Quantas arestas pode ter um grafo com n vértices que


admite bipartição?

EF 3.3.22 Mostre que grafos que têm circuitos ímpares não admitem biparti-
ção.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 53

EI 3.3.23 (C ARACTERIZAÇÃO) Mostre que um grafo admite bipartição se e


somente se não tem circuitos ímpares.12

E 3.3.24 Dizemos que um grafo G tem um circuito induzido se existe X ⊆


VG tal que G[X] é um circuito. Mostre que um grafo admite bipartição se e
somente se não tem circuitos ímpares induzidos.

E 3.3.25 (A LGORITMO) Construa um algoritmo eficiente que decida se qual-


quer grafo dado admite bipartição. O algoritmo deve devolver uma biparti-
ção do grafo ou um circuito ímpar.

Caracterização de cortes

E 3.3.26 Caracterize os conjuntos de arestas que são cortes, ou seja, estabeleça


as condições em que um conjunto de arestas de um grafo é um corte.

E 3.3.27 (A LGORITMO) Esboce um algoritmo eficiente que execute a se-


guinte tarefa: Dado um grafo G e uma parte13 C de EG , o algoritmo decide
se C é ou não um corte. Em caso afirmativo, o algoritmo deve devolver um
conjunto X de vértices tal que ∇(X) = C . Que coisa o seu algoritmo deve
devolver em caso negativo?

12
Portanto, um circuito ímpar é um certificado da inexistência de bipartição do grafo.
Reciprocamente, uma bipartição do grafo é um certificado da ausência de circuitos ímpares.
13
Uma parte de um conjunto é o mesmo que um subconjunto do conjunto.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 54

3.4 Conjuntos estáveis


Um conjunto X de vértices é estável (= stable = independent) se seus elementos
são dois a dois não-adjacentes. Em outras palavras X é estável se nenhuma
aresta tem ambas as pontas em X , ou seja, se o grafo induzido G[X] é vazio.
Por exemplo, se G é um grafo (U, W )-bipartido então os conjuntos U e W
são estáveis.
Um conjunto estável X ∗ é máximo se não existe conjunto estável X tal que máximo
|X| > |X ∗ |. Em outras palavras, X ∗ é máximo se |X ∗ | ≥ |X| para todo
conjunto estável X .

P ROBLEMA DO C ONJUNTO E STÁVEL M ÁXIMO: Encontrar um con-


junto estável máximo num grafo dado.

É importante não confundir máximo com maximal. Um conjunto estável X 0


é maximal se não faz parte14 de um conjunto estável maior, ou seja, se não maximal
existe conjunto estável X tal que X ⊃ X 0 .15
Eis uma variante do problema: Dado um grafo e um número natural k, en-
contrar um conjunto estável com k ou mais vértices. (É claro que essa vari-
ante nem sempre tem solução.)
Denota-se por denotado por α(G) o tamanho de um conjunto estável má- α(G)
ximo de G. Em inglês, esse parâmetro é conhecido como stability number ou
independence number. Quem sabe deveríamos chamar α de índice de estabi-
lidade do grafo.

E 3.4.1 Mostre que o índice de estabilidade é invariante sob isomorfismo. Em


outras palavras, se G e H são grafos isomorfos então α(G) = α(H).

EF 3.4.2 Encontre um conjunto estável máximo em um Kn . Encontre um


conjunto estável máximo em um Kn .

EF 3.4.3 Exiba um grafo e um conjunto estável maximal que não seja má-
ximo.

14
Uma parte de um conjunto é o mesmo que um subconjunto do conjunto.
15
A expressão “A ⊃ B ” significa “B é subconjunto próprio de A”, ou seja, B ⊆ A mas
6 A.
B=
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 55

EF 3.4.4 Suponha que X e Y são conjuntos estáveis maximais de um grafo.


É verdade que X e Y são disjuntos (ou seja, que X ∩ Y = ∅)?

E 3.4.5 Seja G um grafo (U, W )-bipartido e suponha que |U | ≥ |W |. É ver-


dade que U é um conjunto estável máximo?

EF 3.4.6 Calcule um conjunto estável máximo em um caminho. Calcule um


conjunto estável máximo em um circuito.

E 3.4.7 Encontre um conjunto estável máximo na grade p-por-q.

E 3.4.8 Encontre um conjunto estável máximo no grafo da dama. (Em outras


palavras, disponha o maior número possível de damas no tabuleiro de modo
que elas não se ataquem mutuamente.)

E 3.4.9 Encontre um conjunto estável máximo no grafo do cavalo.

E 3.4.10 Encontre um conjunto estável máximo no grafo do bispo.

E 3.4.11 Exiba um conjunto estável máximo num k-cubo.

E 3.4.12 Encontre um conjunto estável máximo no grafo de Petersen.

E 3.4.13 Encontre um conjunto estável máximo no grafo de Kneser K(n, k)


(veja exercício 1.1.14).

E 3.4.14 Encontre um conjunto estável máximo no grafo dos estados do Bra-


sil (veja exercício 1.1.15).

EF 3.4.15 Seja H um subgrafo de um grafo G. Qual a relação entre α(H)


e α(G)?

EF 3.4.16 Sejam G e H dois grafos tais que VG ∩ VH = ∅. Mostre que α(G ∪


H) = α(G) + α(H). (Veja a seção 2.2.)

EF 3.4.17 Seja M a matriz de adjacências de um grafo G. (Veja exercí-


cio 1.1.21.) Seja X um conjunto estável de G. Que aparência tem a restrição
de M a X × X ?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 56

E 3.4.18 (A LGORITMO) Discuta o seguinte algoritmo para o problema do


conjunto estável máximo:

dado um grafo G, examine cada um dos subconjuntos de VG ;


descarte os subconjuntos que não forem estáveis;
escolha o maior dos que sobrarem.

D 3.4.19 (A LGORITMO) Invente um algoritmo rápido que resolva o pro-


blema do conjunto estável máximo. Invente, pelo menos, um algoritmo que
produza um conjunto estável grande.16

E 3.4.20 No grafo da figura 3.6, exiba um conjunto estável maximal que não
seja máximo.

r r r r
S S S S
r
SS r
SS r
SS SSr

Figura 3.6: Veja exercício 3.4.20.

E 3.4.21 Suponha que G é um grafo que admite bipartição. É verdade que


todo conjunto estável maximal de G é máximo? E se G for uma árvore?

EF 3.4.22 (A LGORITMO) Construa um algoritmo que encontre um conjunto


estável maximal em qualquer grafo dado. (Sugestão: use uma estratégia
“gulosa” (= greedy): em cada iteração, escolha qualquer vértice que seja ra-
zoável.17 )

E 3.4.23 (A LGORITMO) O seguinte algoritmo guloso (= greedy) recebe um


grafo G e devolve um conjunto estável X .
X←∅
H←G
enquanto VH 6= ∅ faça
escolha v em VH de modo que |NH (v)| seja mínimo

16
Não se conhece um algoritmo rápido para encontrar um conjunto estável máximo em
qualquer grafo. Em termos técnicos, esse problema é NP-difícil. Veja observação na pá-
gina 15.
17
De um modo geral, algoritmos gulosos abocanham o objeto que lhes parece mais sabo-
roso na iteração corrente, sem medir as conseqüências “de longo prazo”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 57

X ← X ∪ {v}
Z ← {v} ∪ NH (v)
H ←H −Z
devolva X
É verdade que esse algoritmo devolve um conjunto estável máximo para
qualquer grafo G dado? E se G for bipartido? E se G for uma árvore?

E 3.4.24 (B OM) Prove que todo conjunto estável maximal de qualquer grafo
tem pelo menos l n m
∆+1
n(G)
vértices.18 Deduza daí que α(G) ≥ ∆(G)+1
para todo grafo G.

E 3.4.25 (B OM) Prove que todo grafo G satisfaz a desigualdade


X 1
α(G) ≥ .
v∈V
d(v) + 1
G

1
P 
Ou seja, prove que G tem um conjunto estável com d(v)+1
vértices.

E 3.4.26 Seja X o conjunto Pestável produzido pelo algoritmo do exercí-


cio 3.4.23. Mostre que |X| ≥ v∈VG 1/(d(v) + 1).

E 3.4.27 Prove que todo grafo G satisfaz a desigualdade


n2
α(G) ≥ ,
2m + n
sendo n ≡ n(G) e m ≡ m(G).

E 3.4.28 Seja Gt o grafo da dama t-por-t. Use o exercício 3.4.25 para esti-
mar α(Gt ).

E 3.4.29 Digamos que uma cobertura-por-caminhos de um grafo G é uma


coleção {P1 , . . . , Pk } de caminhos em G tal que VP1 ∪ · · · ∪ VPk = VG .
Seja {P1 , . . . , Pk } uma cobertura-por-caminhos e suponha que não existe
cobertura-por-caminhos com menos que k caminhos. Mostre que α(G) ≥ k.
Em outras palavras, mostre que G tem um conjunto estável com pelo menos
k vértices.

18
Por definição, dxe é o único inteiro j tal que j − 1 < x ≤ j .
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 58

E 3.4.30 (A LGORITMO) Esboce um algoritmo eficiente que receba um grafo


bipartido e devolva um conjunto estável máximo.19

E 3.4.31 Seja G um grafo sem vértices isolados. Mostre que

α(G) ≤ m(G)/δ(G) .

Em outras palavras, mostre que G não tem conjuntos estáveis com mais que α≤
bm(G)/δ(G)c vértices.20

E 3.4.32 Sejam n e a dois inteiros positivos. Seja k ≡ bn/ac e r ≡ n − ka.


Seja H o grafo que resulta da união de r cópias do Kk+1 e a − r cópias do Kk
(os conjuntos de vértices das cópias são dois a dois disjuntos). Observe que

n(H) = n, m(H) = r k+1 k


 
2
+ (a − r) 2
e α(H) = a .

Mostre que α(G) > α(H) para qualquer grafo G tal que n(G) = n e m(G) <
m(H).21

E 3.4.33 Mostre que o índice de estabilidade da maioria dos grafos não passa
de pouco mais que 2 log2 n(G). Mais precisamente, mostre que para qualquer
número real positivo ε tem-se

α(G) < (2 + ε) log2 n

para quase todo grafo G em G(n). (Veja a seção 2.10.)

E 3.4.34 Prove que, por menor que seja o número positivo η, temos α(G) <
n/(2 log2 n + 1 + η) para quase todo grafo G em G(n). (Veja o exercício 3.4.33,
com ε = (1 + η)/ log2 n.)

19
Discutiremos esse algoritmo em detalhe na seção 3.9.
20
Por definição, bxc é o único inteiro i tal que i ≤ x < i + 1.
21
Pode-se provar que H é o único grafo (a menos de isomorfismo) com n vértices,
m(H) arestas e índice de estabilidade a. Este fato é um conhecido teorema de Paul Turán
( − ). O complemento de H é conhecido como grafo de Turán.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 59

3.5 Cliques
Uma clique22 (= clique) ou conjunto completo num grafo é qualquer conjunto
de vértices dois a dois adjacentes. Em outras palavras X é uma clique se o
grafo induzido G[X] é completo.

P ROBLEMA DA C LIQUE M ÁXIMA: Encontrar uma clique máxima


num grafo dado.

Eis uma variante do problema: dado um grafo e um número natural k, en-


contrar uma clique com k ou mais vértices.
O tamanho de uma clique máxima de um grafo G é denotado por

ω(G) .

Em inglês, esse parâmetro é conhecido como clique number.

EF 3.5.1 Encontre uma clique máxima em um Kn . Encontre uma clique má-


xima em um Kn .

EF 3.5.2 Encontre uma clique máxima em um caminho. Encontre uma clique


máxima em um circuito.

E 3.5.3 Encontre uma clique máxima no grafo da dama.

E 3.5.4 Encontre uma clique máxima no grafo do cavalo.

E 3.5.5 Encontre uma clique máxima no grafo do bispo.

E 3.5.6 Exiba uma clique máxima num k-cubo.

E 3.5.7 Mostre que toda clique maximal do grafo de Kneser K(n, k) (veja
exercício 1.1.14) tem bn/kc vértices. Exiba uma clique máxima em K(n, k).

22
A palavra clique é um neologismo emprestado do inglês. A palavra denota uma “pa-
nelinha” ou pequeno clube que não aceita novos membros facilmente. Nesse contexto, a
palavra não tem qualquer relação com “estalido” e com expressões como “dê um clique com
o botão esquerdo do mouse”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 60

E 3.5.8 Prove a seguinte relação, válida para qualquer conjunto X de vértices


de um grafo G: X é uma clique em G se e somente se X é um conjunto
estável em G. Deduza daí que ω(G) = α(G).

E 3.5.9 Qual a relação entre o problema da clique máxima e o problema do


conjunto estável máximo (veja seção 3.4)? Como é possível usar um algo-
ritmo que resolve um dos problemas para resolver o outro?

E 3.5.10 Suponha que um grafo G admite uma bipartição. Quantos vértices


tem uma clique máxima em G?

E 3.5.11 Mostre que ω(G) ≥ 3 para todo grafo G com mais que n(G)2 /4 ares-
tas. (Veja exercício 3.3.21.)

E 3.5.12 Exiba um grafo e uma clique que seja maximal mas não máxima.

E 3.5.13 É verdade que toda clique maximal em uma árvore é máxima?

EF 3.5.14 (A LGORITMO) Construa um algoritmo que encontre uma clique


maximal em qualquer grafo dado.

E 3.5.15 Seja L(G) o grafo das arestas (veja exercício 1.1.25) de um grafo G.
Mostre que para cada vértice v de G, o conjunto ∇G (v) é uma clique em L(G).
Mostre que o conjunto das arestas de qualquer triângulo em G é uma clique
em L(G). Mostre que qualquer clique de cardinalidade diferente de 3 em
L(G) é parte de algum conjunto da forma ∇G (v).

E 3.5.16 Dado um grafo G, calcule uma clique máxima no grafo das ares-
tas L(G). (Veja exercício 3.5.15.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 61

3.6 Cobertura por vértices


Uma cobertura por vértices23 (= vertex cover), ou simplesmente cobertura, de
um grafo é qualquer conjunto de vértices que contenha pelo menos uma das
pontas de cada aresta. Em outras palavras, um conjunto X de vértices é uma
cobertura se toda aresta tem pelo menos uma de suas pontas em X .

P ROBLEMA DA C OBERTURA M ÍNIMA: Encontrar uma cobertura mí-


nima num grafo dado.

A cardinalidade de uma cobertura mínima de um grafo G é denotada por


β(G) .
Há uma relação simples e íntima entre coberturas por vértices e conjuntos
estáveis (veja o exercício 3.6.3). Essa relação torna o problema da cobertura
mínima equivalente ao problema do conjunto estável máximo.

E 3.6.1 Encontre uma cobertura mínima no grafo do cavalo. Encontre uma


cobertura mínima no grafo do bispo.

E 3.6.2 Encontre uma cobertura mínima no k-cubo.

E 3.6.3 Prove a seguinte relação entre coberturas e conjuntos estáveis: em


qualquer grafo G, um conjunto X de vértices é uma cobertura se e somente
se VG r X é estável. Deduza daí que β(G) = n(G) − α(G).

E 3.6.4 Mostre que o problema da cobertura mínima é equivalente ao pro-


blema do conjunto estável máximo. No grafo da figura 3.6, indique uma
cobertura minimal que não seja mínima.

E 3.6.5 Uma galeria de arte consiste em um grande número de corredores re-


tos que interligam pequenas praças. Um guarda postado numa praça é capaz
de vigiar todos os corredores que saem da praça. Qual o número mínimo de
guardas necessário para vigiar a galeria toda?

E 3.6.6 Suponha que T é uma árvore. É verdade que toda cobertura minimal
de T é mínima?

23
Quem sabe seria melhor dizer “cobertura das arestas por vértices”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 62

3.7 Coloração de vértices


Uma coloração dos vértices de um grafo é uma coleção de conjuntos estáveis
que cobre o conjunto de vértices. Mais precisamente, uma coloração dos vér-
tices de um grafo G é uma coleção {X1 , X2 , . . . , Xk } de conjuntos estáveis tal
que X1 ∪ X2 ∪ · · · ∪ Xk = VG .
Embora isso não seja essencial, é cômodo supor que os conjuntos X1 , . . . , Xk
são disjuntos dois a dois. Podemos dizer então que uma coloração dos vérti-
ces de G é uma partição de VG em conjuntos estáveis. Cada vértice do grafo
estará em um e apenas um desses conjuntos.
Se imaginarmos que cada conjunto estável Xi corresponde a uma cor, po-
demos dizer que uma coloração de vértices é uma atribuição de cores aos
vértices tal que vértices adjacentes recebem cores diferentes.
Dizemos que uma coloração {X1 , X2 , . . . , Xk } usa k cores.24 Dizemos tam-
bém que esta é uma k-coloração. Se um grafo tem uma k-coloração então
também tem uma k 0 -coloração para todo k 0 > k. Uma bicoloração é o mesmo
que uma 2-coloração.
O conceito de coloração de vértices é uma generalização do conceito de bi-
partição (veja seção 3.3): toda bipartição de um grafo é uma coloração dos
seus vértices, e toda bicoloração é uma bipartição.
Uma coloração de vértices é mínima se o seu número de cores é o menor
possível, ou seja, se não existe outra que use menos cores.

P ROBLEMA DA C OLORAÇÃO DE V ÉRTICES: Encontrar uma colora-


ção mínima dos vértices de um grafo dado.

O número cromático (= chromatic number) de um grafo G é o número de cores


em qualquer coloração mínima dos vértices de G. Esse número é denotado
por χ(G). Um grafo G é k-colorível (= k-colorable) se χ(G) ≤ k. Em particu- χ(G)
lar, G é bicolorível se χ(G) ≤ 2.
Veja o sítio WWW Graph Coloring Page de Joseph Culberson na Universidade
de Alberta, Canadá.
A propósito, é preciso mencionar o problema da cobertura por cliques: en-
contrar a menor partição {X1 , . . . , Xk } de VG tal que cada Xi é uma clique.
É claro que isso equivale a uma coloração dos vértices do grafo complemen-

24
Mesmo que algum Xi seja vazio.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 63

tar G.

E 3.7.1 Mostre que o número cromático é invariante sob isomorfismo. Em


outras palavras, se G e H são grafos isomorfos então χ(G) = χ(H).

EF 3.7.2 Seja {X1 , . . . , Xk } uma coloração dos vértices de um grafo G. Mostre


que existe uma coloração {X10 , . . . , Xk0 } tal que os conjuntos X10 , . . . , Xk0 são
disjuntos dois a dois.

EF 3.7.3 É verdade que, para todo grafo G, toda coloração dos vértices de
G usa pelo menos ∆(G) cores? Em outras palavras, é verdade que χ(G) ≥
∆(G)?

EF 3.7.4 Encontre uma coloração mínima dos vértices de um caminho. Re-


pita com um circuito no lugar do caminho. Repita com uma grade no lugar
do caminho.

E 3.7.5 Encontre uma coloração mínima dos vértices do grafo do cavalo t-


por-t.

E 3.7.6 Seja G o grafo da torre t-por-t. Encontre uma coloração mínima dos
vértices de G.

E 3.7.7 Seja G o grafo do bispo t-por-t. Encontre uma coloração mínima dos
vértices de G.

E 3.7.8 Encontre uma cobertura por cliques mínima do grafo do bispo t-por-
t. (Isso é o mesmo que uma coloração mínima dos vértices do complemento
do grafo do bispo.)

E 3.7.9 Encontre uma cobertura por cliques mínima do grafo do cavalo t-por-
t. (Considere inicialmente os casos t = 2, . . . , 6.)

E 3.7.10 Encontre uma coloração mínima dos vértices do grafo da dama t-


por-t. Trate inicialmente dos casos t = 2, . . . , 6.

E 3.7.11 Seja G o grafo do rei t-por-t. Encontre uma coloração mínima dos
vértices de G.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 64

E 3.7.12 Encontre uma coloração mínima do grafo dos estados do Brasil (veja
exercício 1.1.15).

E 3.7.13 Encontre uma coloração mínima de um k-cubo.

E 3.7.14 Encontre uma cobertura por cliques mínima de um k-cubo.

E 3.7.15 Encontre uma coloração mínima dos vértices do grafo de Petersen.

E 3.7.16 Encontre uma coloração mínima dos vértices do grafo G definido da


seguinte maneira: comece com cinco cópias mutuamente disjuntas, digamos
B1 , . . . , B5 , de um grafo completo com 3 vértices; para cada i, acrescente ares-
tas ligando todos os elementos de Bi a todos os de Bi+1 ; finalmente, acres-
cente arestas ligando todos os elementos de B5 a todos os de B1 . (Este grafo grafo
foi usado por Catlin25 como contra-exemplo para a conjetura de Hajós. Veja de Catlin
exercício 3.13.10.)

E 3.7.17 Uma indústria precisa armazenar um certo conjunto de reagentes


químicos. Por razões de segurança, certos pares de reagentes não devem
ficar num mesmo compartimento do armazém. Quantos compartimentos o
armazém deve ter no mínimo?

E 3.7.18 São dadas máquinas 1, . . . , n e intervalos de tempo I1 , . . . , In . Para


cada i, um operador deve cuidar da máquina i durante o intervalo Ii . Se Ii ∩
Ij 6= ∅, um mesmo operador não pode cuidar de i e j. Qual o número mínimo
de operadores suficiente para operar as máquinas? (Veja o exercício 1.1.22.)

E 3.7.19 Exiba um grafo com duas colorações mínimas diferentes.

EF 3.7.20 Sejam G e H dois grafos tais que VG ∩ VH = ∅. Mostre que χ(G ∪


H) = max{χ(G), χ(H)}. (Veja a seção 2.2.)

E 3.7.21 Seja e uma ponte de um grafo G com duas ou mais arestas. Mostre
que χ(G) = χ(G − e).

E 3.7.22 Seja v um vértice um grafo G tal que G − v tem mais componentes


que G. Mostre que χ(G) = χ(G − v).

25
P. A. Catlin, 1979.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 65

EF 3.7.23 Seja H um subgrafo de um grafo G. Qual a relação entre χ(H)


e χ(G)?

E 3.7.24 Seja α a cardinalidade de um conjunto estável máximo de um


grafo G. Mostre que toda coloração dos vértices usa pelo menos dn(G)/αe
cores. Em outras palavras, mostre que χ(G) ≥ n(G)/α(G). χ≥

E 3.7.25 Para cada vértice v de um grafo G, seja αv a cardinalidade de um


conjunto
P estável máximo dentre os que contêm v. Mostre que χ(G) ≥
v 1/α v . (Isso generaliza o exercício 3.7.24.) χ≥

E 3.7.26 Mostre que todo grafo com n vértices e número cromático k tem no
máximo 12 (n2 − n2 /k) arestas. Deduza daí que χ(G) ≥ n2 /(n2 − 2m), para χ≥
todo grafo G com n vértices e m arestas.26 Deduza daí que χ(G) ≥ n/(n − r)
se G é r-regular.27

D 3.7.27 (A LGORITMO) Invente um algoritmo rápido que resolva o pro-


blema da coloração de vértices.28

E 3.7.28 (A LGORITMO) O algoritmo que descreveremos a seguir resolve o


problema da coloração de vértices? Ao receber um grafo G, o algoritmo faz
o seguinte:

Escolhe um conjunto estável máximo29 , digamos X1 , em G. Em seguida,


escolhe um conjunto estável máximo X2 em G − X1 . Depois, escolhe um
conjunto estável máximo X3 em (G − X1 ) − X2 . E assim por diante, até
que não haja mais vértices a escolher.

q
1 1
E 3.7.29 Mostre que χ(G) ≤ 2
+ 2m(G) + 4
para todo grafo G.

E 3.7.30 (A LGORITMO) O seguinte algoritmo guloso (= greedy) recebe um


grafo G e devolve uma coloração dos vértices X1 , . . . , Xk . Cada iteração
começa com um coleção X1 , . . . , Xk de conjuntos estáveis; a primeira pode

26
Alguns exemplos: se m > 0 então χ > 1, se m > n2 /4 então χ > 2, se m > 4n2 /9 então
χ > 9.
27
Exemplos: se r > 0 então χ > 0, se r > n/2 então χ > 2, se r > 2n/3 então χ > 3.
28
Não se conhece um algoritmo rápido para o problema da coloração de vértices. Em
termos técnicos, esse problema é NP-difícil. Veja observação na página 15.
29
Não me pergunte como se faz isso!
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 66

começar com a coleção vazia, isto é, com k = 0. Cada iteração consiste no


seguinte:
C ASO 1: X1 ∪ . . . ∪ Xk = VG .
Devolva X1 , . . . , Xk e pare.
C ASO 2: X1 ∪ . . . ∪ Xk 6= VG .
Escolha um vértice v em VG r (X1 ∪ . . . ∪ Xk ).
Se Xi ∪ {v} é estável para algum i entre 1 e k
então comece nova iteração com Xi ∪ {v} no papel de Xi .
Caso contrário, faça Xk+1 = {v} e
comece nova iteração com k + 1 no papel de k.

Este algoritmo resolve o problema da coloração de vértices?

E 3.7.31 Seja v um vértice um grafo G. Suponha que d(v) < χ(G) − 1. Mostre
que χ(G) = χ(G − v).
E 3.7.32 (B OM) Prove que todo grafo G admite uma coloração de vértices
com apenas ∆(G) + 1 cores. Em outras palavras, prove que χ(G) ≤ ∆(G) + 1
para todo grafo G.

E 3.7.33 Mostre que a diferença ∆(G) − χ(G) pode ser arbitrariamente


grande. (Compare com o exercício 3.7.32.)

E 3.7.34 Seja v1 , v2 , . . . , vn os vértices de um grafo G e suponha que d(v1 ) ≥


d(v2 ) ≥ · · · ≥ d(vn ). Mostre que χ(G) ≤ max1≤i≤n min{i, d(vi ) + 1}. (Isso
generaliza 3.7.32.) Sugestão: o lado direito da desigualdade é igual a max{i :
d(vi ) + 1 ≥ i}.

E 3.7.35 Seja P um caminho de comprimento máximo em um grafo G. Mos-


tre que χ(G) ≤ n(P ).

E 3.7.36 Seja G um grafo dotado da seguinte propriedade: todo par de cir-


cuitos ímpares tem (pelo menos) um vértice em comum. Prove que G admite
uma 5-coloração dos vértices.

EI 3.7.37 Suponha que um grafo G tem uma clique com k vértices. Mos-
tre que toda coloração de vértices de G usa pelo menos k cores. Em outras
palavras, mostre que χ≥
χ(G) ≥ ω(G)
para todo grafo G.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 67

E 3.7.38 Suponha que um grafo G tem uma clique com k vértices e uma colo-
ração dos vértices em k cores. Prove que a clique é máxima e que a coloração
é mínima.30

E 3.7.39 Mostre que, para todo k, existe um grafo sem cliques de tamanho
k que não admite coloração com k (ou menos) cores. Em outras palavras,
mostre que existem grafos G tais que χ(G) > ω(G). Mostre que para cada k
existe um grafo G tal que χ(G) = k e ω(G) = 2.

E 3.7.40 Prove que χ(G) = ω(G) para todo grafo bicolorível G.

E 3.7.41 Seja G um grafo (não necessariamente bicolorível) e seja {R, S} uma


partição de VG . Suponha ainda que d(R) < k (ou seja, há menos que k arestas
com uma ponta em R e outra em S ). Suponha que os grafos G[R] e G[S]
admitem colorações de vértices com k cores apenas. Mostre que G admite
uma coloração de vértices com k cores.

E 3.7.42 Suponha que um grafo G tem um conjunto estável com k vértices.


Mostre que toda cobertura de VG por cliques usa pelo menos k cliques. De-
duza daí que χ(G) ≥ α(G).

E 3.7.43 Prove que todo grafo G admite uma cobertura por cliques de tama-
nho ≤ n(G) − δ(G).

E 3.7.44 Mostre que um grafo H é isomorfo ao grafo das arestas (veja exercí-
cio 1.1.25) de um outro grafo G se e somente se existe uma coleção de cliques
de H tal que cada aresta de H tem ambas as pontas em uma e apenas uma
das cliques e todo vértice de H pertence a no máximo duas das cliques.

E 3.7.45 Seja ε um número real positivo (por exemplo, 0.1). Mostre que

1 n
χ(G) >
2 + ε log2 n

para quase todo grafo G em G(n). (Veja a seção 2.10.)

30
Uma tal clique pode ser usada como certificado da minimalidade de uma coloração.
Reciprocamente, uma tal coloração pode ser usada como certificado da maximalidade da
clique.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 68

ED 3.7.46 Mostre que por menor que seja o número ε no intervalo aberto
(0, 2), tem-se
1 n
χ(G) <
2 − ε log2 n
para quase todo grafo G em G(n). (Compare com o exercício 3.7.45.)

Coloração com número fixo de cores

Se o número de cores disponíveis estiver fixo, temos a seguinte variante do


problema da coloração:

P ROBLEMA DA k -C OLORAÇÃO: Dado um número natural k e um


grafo G, encontrar uma k-coloração de G.

É evidente que o problema nem sempre tem solução. O problema da 2-


coloração, por exemplo, equivale ao problema de decidir se um dado grafo
admite bipartição. Veja exercício 3.3.23.

E 3.7.47 O seguinte algoritmo recebe um grafo G e (pelo menos aparente-


mente) devolve uma bicoloração de G. Cada iteração começa com um par
(X1 , X2 ) de conjuntos estáveis; a primeira pode começar com X1 = X2 = ∅.
Cada iteração consiste no seguinte:
C ASO 1: X1 ∪ X2 = VG .
Devolva X1 , X2 e pare.
C ASO 2: X1 ∪ X2 6= VG .
Escolha um vértice v em VG r (X1 ∪ X2 ).
Escolha i em {1, 2} tal que Xi ∪ {v} é estável.
Comece nova iteração com Xi ∪ {v} no papel de Xi .

Este algoritmo produz uma 2-coloração dos vértices do grafo?

E 3.7.48 O seguinte algoritmo guloso recebe um grafo G e (pelo menos apa-


rentemente) devolve uma 3-coloração de G. Cada iteração começa com con-
juntos estáveis X1 , X2 e X3 ; a primeira pode começar com X1 = X2 = X3 =
∅. Cada iteração consiste no seguinte:
C ASO 1: X1 ∪ X2 ∪ X3 = VG .
Devolva X1 , X2 , X3 e pare.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 69

C ASO 2: X1 ∪ X2 ∪ X3 6= VG .
Escolha um vértice v em VG r (X1 ∪ X2 ∪ X3 ).
Escolha i em {1, 2, 3} tal que e Xi ∪ {v} é estável.
Comece nova iteração com Xi ∪ {v} no papel de Xi .

Este algoritmo produz uma 3-coloração?

E 3.7.49 Considere o seguinte algoritmo guloso, que recebe um grafo G e


(pelo menos aparentemente) produz uma 3-coloração:
W ← VG
enquanto W 6= ∅ faça
escolha w em W
i←1
enquanto N(w) ∩ Xi 6= ∅ faça i ← i + 1
Xi ← Xi ∪ {w}
W ← W r Xi
devolva X1 , X2 , X3
Este algoritmo produz uma 3-coloração?

E 3.7.50 Mostre que o grafo de Petersen (figura 2.1) não admite 3-coloração.

E 3.7.51 Quantas arestas no máximo pode ter um grafo com n vértices que
admite uma 3-coloração dos vértices?

D 3.7.52 (A LGORITMO) Invente um algoritmo rápido que resolva o pro-


blema da 3-coloração de vértices. 31

D 3.7.53 (A LGORITMO) Invente um algoritmo rápido que resolva o pro-


blema da k-coloração de vértices.

31
Não se conhece um algoritmo rápido que decida se um grafo é 3-colorível. Em termos
técnicos, esse problema de decisão é NP-completo. Veja observação na página 15.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 70

3.8 Emparelhamentos
Duas arestas de um grafo são adjacentes se têm uma ponta comum.32 Um
emparelhamento (= matching) é um conjunto de arestas duas a duas não-
adjacentes.
Em outras palavras, um emparelhamento num grafo é um conjunto M de
arestas tal que |M ∩ ∇(v)| ≤ 1 para cada vértice v.

P ROBLEMA DO E MPARELHAMENTO M ÁXIMO: Encontrar um empa-


relhamento máximo num grafo dado.

Um emparelhamento M ∗ é máximo se não existe um emparelhamento M


tal que |M | > |M ∗ |. A cardinalidade de um emparelhamento máximo num
grafo G é denotada por
α 0 (G) .
A propósito, um emparelhamento M 0 é maximal se não faz parte de um em-
parelhamento maior, ou seja, se não existe um emparelhamento M tal que
M ⊃ M0.
De acordo com o exercício 3.8.12, o problema do emparelhamento é um caso
particular do problema do conjunto estável. Mas ao contrário do que ocorre
com esse último, sabemos muito bem como resolver o primeiro.
Eis um pouco de terminologia útil. Diz-se que um emparelhamento M satura
um vértice v se ∇(v) ∩ M 6= ∅, ou seja, se alguma aresta de M incide em v.
Um emparelhamento M satura um conjunto X de vértices se M satura cada
vértice de X .
Um emparelhamento M é perfeito (= perfect matching) se satura VG . Eis uma
especialização interessante do problema acima:

P ROBLEMA DO E MPARELHAMENTO P ERFEITO: Encontrar um empa-


relhamento perfeito num grafo dado.

É claro que nem todo grafo tem um emparelhamento perfeito; a dificuldade


do problema está em decidir se o grafo dado tem ou não tem um emparelha-
mento perfeito.
Eis mais alguns conceitos úteis. Um caminho é alternante (= alternating) em

32
Alguns livros preferem dizer que duas tais arestas são independentes.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 71

relação a um emparelhamento M se suas arestas estão alternadamente em M


e fora de M . (Às vezes é cômodo dizer “M -alternante” no lugar de “alter-
nante em relação a M ”.) Um caminho de aumento (= augmenting path) para
um emparelhamento M é um caminho alternante de comprimento não-nulo
cujos extremos não estão saturados por M .

EF 3.8.1 Quantas arestas tem um emparelhamento máximo num grafo com-


pleto com n vértices?

EF 3.8.2 Calcule um emparelhamento máximo em um caminho. Calcule um


emparelhamento máximo em um circuito.

E 3.8.3 Calcule um emparelhamento máximo em um grafo hamiltoniano 3-


regular.

EF 3.8.4 É verdade que todo grafo regular tem um emparelhamento perfeito?

EF 3.8.5 Quantas arestas tem um emparelhamento máximo em um grafo bi-


partido completo?

EF 3.8.6 Encontre um emparelhamento máximo no grafo da dama t-por-t.

E 3.8.7 Encontre um emparelhamento máximo no grafo do bispo t-por-t.

E 3.8.8 Encontre um emparelhamento máximo no grafo do cavalo t-por-t.

E 3.8.9 Quantas arestas tem um emparelhamento máximo num cubo de di-


mensão k?

E 3.8.10 (B OM) Exiba um grafo e um emparelhamento maximal que não seja


máximo.

E 3.8.11 É verdade que em qualquer árvore todo emparelhamento maximal


é máximo?

E 3.8.12 Mostre que o problema do emparelhamento máximo é um caso par-


ticular do problema do conjunto estável máximo.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 72

E 3.8.13 É verdade que, em qualquer grafo, todo vértice não-isolado é satu-


rado por algum emparelhamento máximo?

E 3.8.14 (B OM) Sejam M e M 0 dois emparelhamentos num grafo G. Des-


creva o grafo (VG , M ∪ M 0 ). Descreva o grafo (VG , M ⊕ M 0 ). Que acontece se
os emparelhamentos M e M 0 são perfeitos?

E 3.8.15 Suponha que um grafo G tem uma ponte a. Mostre que ou todos
os emparelhamentos perfeitos de G contêm a ou nenhum emparelhamento
perfeito de G contém a.

E 3.8.16 Prove que toda floresta tem no máximo um emparelhamento per-


feito.

EF 3.8.17 Seja M um emparelhamento em um grafo e seja P um caminho M -


alternante. Mostre que qualquer segmento de P é um caminho M -alternante.

E 3.8.18 Seja M um emparelhamento em um grafo e seja P um caminho M -


alternante maximal. Suponha que as duas arestas extremas de P não estão
em M . É verdade que P é um caminho de aumento?

EI 3.8.19 Suponha que P é um caminho de aumento para um emparelha-


mento M . Prove que
M ⊕ EP
é um emparelhamento.33 Prove que |M ⊕ EP | > |M |.

EI 3.8.20 (T EOREMA DE B ERGE34 ) Prove que um emparelhamento M é


máximo se e somente se não existe um caminho de aumento para M . teorema
de Berge
E 3.8.21 (B OM) Um passeio (= walk) em um grafo é qualquer seqüência finita
(v0 , v1 , v2 , . . . , vk−1 , vk ) de vértices tal que vi é adjacente a vi−1 para todo i
entre 1 e k.
Seja M um emparelhamento. Seja (v0 , v1 , . . . , vk ) um passeio cujas arestas
estão alternadamente em M e fora de M e suponha que v0 e vk não estão
saturados por M . Seja A o conjunto das arestas do passeio. Mostre que o
conjunto M ⊕ A não é necessariamente um emparelhamento. (Compare com
o exercício 3.8.19.)

33
Por definição, K ⊕ L é o conjunto (K ∪ L) − (K ∩ L). Esse conjunto é idêntico a
(K − L) ∪ (L − K).
34
Publicado em 1957 por Claude Berge ( − ).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 73

E 3.8.22 Dois jogadores, digamos A e B, se alternam escolhendo vértices


num grafo G. Primeiro, A escolhe um vértice v0 . Em seguida, B escolhe
um vértice v1 adjacente a v0 . Depois, A escolhe um vértice adjacente a v1
mas diferente de v0 e de v1 . E assim por diante. (Esse jogo é conhecido como
slink ou slither.) slink
Eis uma maneira mais limpa de descrever o jogo: Os vértices escolhidos slither
formam um caminho v0 v1 v2 · · · vk . Se k é ímpar, A escolhe um vértice vk+1
distinto dos demais mas adjacente a vk . Se k é par, B faz um jogada análoga.
O último jogador que puder fazer um movimento vence o jogo.
Prove que B tem uma estratégia vencedora se G tem um emparelha-
mento perfeito. Prove que A tem uma estratégia vencedora em caso contrá-
rio.

E 3.8.23 Seja M um emparelhamento e X um conjunto de vértices de um


grafo. Mostre que se X é saturado por M então X também é saturado por
algum emparelhamento máximo.

E 3.8.24 Suponha que uma árvore T tem um emparelhamento perfeito. Mos-


tre que, para todo vértice v, a floresta T − v tem exatamente um componente
com número ímpar de vértices.

EI 3.8.25 Mostre que, em qualquer grafo, para qualquer emparelhamento M


e qualquer cobertura K (veja seção 3.6), emparelha-
mentos
|M | ≤ |K| . versus
coberturas
(Isso poderia ter sido formulado assim: α 0 (G) ≤ β(G) para todo grafo G.)
Deduza daí que se |M | = |K| então M é um emparelhamento máximo e
K é uma cobertura mínima.35 Dê um exemplo de um grafo que não possui
um par (M, K) tal que |M | = |K|. (Veja também o exercício 3.8.27.)

EF 3.8.26 Seja K uma cobertura minimal de um grafo. É verdade que toda


aresta de qualquer emparelhamento tem apenas uma pontas em K ?

E 3.8.27 Seja M um emparelhamento e K uma cobertura tais que |M | = |K|.


Mostre que M satura K e que cada elemento de M tem apenas uma das
pontas em K . (Veja o exercício 3.8.25.)

35
Assim, se uma cobertura tem o mesmo tamanho que um emparelhamento, ela serve de
certificado da maximalidade do emparelhamento.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 74

E 3.8.28 Suponha que M é um emparelhamento maximal num grafo. Seja


V (M ) o conjunto dos vértices saturados por M . Mostre que V (M ) é uma
cobertura.
Escolha uma das pontas de cada aresta em M . Seja W o conjunto resul-
tante. É verdade que W é uma cobertura?

E 3.8.29 (B OM) Seja M um emparelhamento maximal e M ∗ um empare- emparelha-


lhamento máximo em um grafo. É evidente que |M | ≤ |M ∗ |. Mostre que mento
maximal
|M | ≥ 21 |M ∗ |. É verdade que |M | > 12 |M ∗ |?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 75

3.9 Emparelhamentos em grafos bipartidos


O problema do emparelhamento máximo (veja seção 3.8) é relativamente fá-
cil quando restrito a grafos bipartidos.
Dado um conjunto X de vértices de um grafo G, denotaremos por NG (X), N(X)
ou simplesmente N(X), o conjunto dos vértices em VG r X que têm um ou
mais vizinhos em X .

E 3.9.1 Exiba um emparelhamento máximo no grafo da figura 3.7.

r r r r r r
A @ A @ A  
A  @ A  A@  
A @  
 A  A @ 
 A  @A  A @
r
 r 
A r @Ar Ar @r

Figura 3.7: Exercício 3.9.1. Encontre um em-


parelhamento máximo.

E 3.9.2 Encontre um emparelhamento máximo num k-cubo.

E 3.9.3 Exiba um emparelhamento máximo no grafo da figura 3.8.

r r r r r
B
@ B  @B B
B @ B    B @  B
B @B   B @ B
r @
B r
@B  r B r @ @B r

Figura 3.8: Exercício 3.9.3. Encontre empare-


lhamento máximo.

E 3.9.4 (B OM) Seja G um grafo (U, W )-bipartido e M um emparelhamento


em G. Seja V (M ) o conjunto dos vértices que M satura. Seja X o conjunto
dos vértices de todos os caminhos M -alternantes que têm um dos extremos
em U r V (M ). Prove que (W ∩ X) ∪ (U r X) é uma cobertura de G.

EF 3.9.5 Seja G um grafo (U, W )-bipartido, {X, X 0 } uma partição de U e


{Y, Y 0 } uma partição de W . Mostre que se N(X) ⊆ Y então N(Y 0 ) ⊆ X 0 .
Mostre que se N(X) ⊆ Y então Y ∪ X 0 é uma cobertura.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 76

Figura 3.9: Um grafo (U, W )-bipartido. A área cinza indica uma co-
bertura. As linhas coloridas indicam um emparelhamento.

E 3.9.6 (A LGORITMO) Construa um algoritmo eficiente que receba um grafo


bipartido G, uma bipartição {U, W } do grafo, e um emparelhamento M e de-
volva
(1) um emparelhamento M 0 tal que |M 0 | > |M | ou
(2) uma cobertura K tal que |K| = |M |.
(No caso (2), de acordo com o exercício 3.8.25, o emparelhamento M é má-
ximo.) (Veja o exercício 3.9.4.)

E 3.9.7 (A LGORITMO) Construa um algoritmo eficiente que receba um grafo


bipartido G e uma bipartição {U, W } de G e devolva um emparelhamento algoritmo
máximo em G.36 (O famoso Algoritmo Húngaro37 faz exatamente isso.) húngaro

E 3.9.8 Mostre que todo grafo bipartido tem um emparelhamento M e uma


cobertura K tais que |M | = |K|. (Compare com o exercício 3.8.25.)

EI 3.9.9 (T EOREMA DE K ÖNIG –E GERVÁRY38 ) Mostre que, em todo grafo bi-


partido, um emparelhamento M ∗ é máximo se e somente se existe uma co-
bertura K∗ tal que
|M ∗ | = |K∗ | .
(Veja o exercício 3.9.8.) Outra maneira de formular isso: se M ∗ é um um em-
parelhamento máximo e K∗ é uma cobertura mínima em um grafo bipartido
então |M ∗ | = |K∗ |.

E 3.9.10 Seja G um grafo que admite uma bipartição. Mostre que α 0 (G) =
β(G).

36
Sugestão: Use o resultado do exercício 3.9.6.
37
Referência aos matemáticos húngaros König, Egerváry e outros.
38
Publicado em 1931 por Dénes König ( − ). O teorema também é atribuído a
Eugene Egerváry (1931).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 77

E 3.9.11 Seja G um grafo que admite uma bipartição. Prove que χ(G) =
ω(G).

E 3.9.12 Encontre um emparelhamento máximo e uma cobertura mínima no


grafo da figura 3.7.

E 3.9.13 Dê uma condição necessária e suficiente para que um grafo bipar-


tido tenha um emparelhamento com k arestas.

E 3.9.14 Seja G um grafo (U, W )-bipartido. Suponha que |U | = |W | e


m(G) > (k − 1) |U | para algum k inteiro positivo. Prove que G tem um
emparelhamento de cardinalidade k.

E 3.9.15 Seja H um grafo (não necessariamente bipartido) e seja {R, S} uma


partição de VH . Suponha ainda que há menos que k arestas com uma ponta
em R e outra em S (ou seja, d(R) < k). Suponha que os grafos H[R] e H[S]
admitem colorações de vértices (veja seção 3.7) com k cores. Mostre que H
admite uma coloração de vértices com k cores.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 78

3.10 Emparelhamentos em grafos bipartidos II


Em que condições um grafo (U, W )-bipartido possui um emparelhamento
perfeito? Uma condição necessária óbvia: |U | = |W |. Outro condição neces-
sária óbvia: o grafo deve admitir um emparelhamento que satura U . Essas
observações sugerem o seguinte

P ROBLEMA: Dado um grafo (U, W )-bipartido, encontrar um empa-


relhamento que sature o conjunto U .

E 3.10.1 Seja G um grafo (U, W )-bipartido. Suponha que |N(Z)| < |Z| para
alguma parte Z de U . Mostre que G não tem um emparelhamento que sa-
tura U .
Outra maneira de formular a questão: se algum emparelhamento sa-
tura U então |N(Z)| ≥ |Z| para toda parte Z de U .

EI 3.10.2 (T EOREMA DE H ALL39 ) Mostre que um grafo (U, W )-bipartido tem


um emparelhamento que satura U se e somente se teorema
de Hall
|N(Z)| ≥ |Z|
para toda parte Z de U . (Veja o exercício 3.10.1.)

E 3.10.3 Deduza o teorema de König–Egerváry (exercício 3.9.9) do teorema


de Hall (exercício 3.10.2).

E 3.10.4 Seja H um conjunto de homens, M um conjunto de mulheres e k um


inteiro positivo. Suponha que cada homem conhece no máximo k mulheres e
cada mulher conhece no mínimo k homens. Prove que é possível casar cada
mulher com um homem que ela conhece.

E 3.10.5 Seja G um grafo bipartido r-regular com r > 0. Mostre que o grafo
tem um emparelhamento perfeito.

E 3.10.6 Prove que um grafo bicolorível G tem um emparelhamento perfeito


se e somente se |N(Z)| ≥ |Z| para todo subconjunto Z de VG . Dê um exemplo
de um grafo (não-bicolorível) que não tem um emparelhamento perfeito mas
satisfaz a desigualdade |N(Z)| ≥ |Z| para todo conjunto Z de vértices.

39
Publicado em 1935 pelo matemático inglês Philip Hall ( − ).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 79

E 3.10.7 Seja G um grafo (U, W )-bipartido. Seja X uma parte de U e Y uma


parte de W . Seja M um emparelhamento que satura X e N um empare-
lhamento que satura Y . Mostre que existe um emparelhamento que satura
X ∪Y.

E 3.10.8 Seja G um grafo (U, W )-bipartido com pelo menos uma aresta. Seja
X o conjuntos dos vértices em U que têm grau ∆(G). Mostre que o G tem
um emparelhamento que satura X .

E 3.10.9 (B OM) Seja G um grafo bipartido com pelo menos uma aresta. Mos-
tre que existe um emparelhamento que satura todos os vértices de grau ∆(G).

E 3.10.10 Seja K um grafo (U, W )-bipartido completo. Suponha que |U | =


|W |. Seja G um subgrafo de K e r o número ∆(G). Mostre que existe um
grafo r-regular H tal que G ⊆ H ⊆ K .

E 3.10.11 Seja G um grafo bipartido e seja r o número ∆(G). Mostre que G é


subgrafo de algum grafo bipartido r-regular.

EI 3.10.12 Seja G um grafo (U, W )-bipartido. Prove que todo emparelha-


mento máximo em G tem cardinalidade

minZ⊆U |U | − |Z| + |N(Z)|

(Isso é uma generalização do exercício 3.10.2.)


FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 80

3.11 Emparelhamentos em grafos arbitrários


Um componente de um grafo é ímpar (= odd component) se tem um número
ímpar de vértices. O número de componentes ímpares de um grafo G será
denotado nesta seção por o(G). o(G)

E 3.11.1 Seja T uma árvore e suponha que o(T − v) = 1 para cada vértice
v de T . Mostre que T tem emparelhamento perfeito. (Veja antes exercí-
cio 3.8.24.)

E 3.11.2 Suponha que um grafo G tem um emparelhamento perfeito. Mostre


que o(G − S) ≤ |S| para todo conjunto S de vértices.

EF 3.11.3 Suponha que um grafo G satisfaz a condição o(G − S) ≤ |S| para


todo conjunto S de vértices. Prove que n(G) é par.

EID 3.11.4 (T EOREMA DE T UTTE40 ) Mostre que um grafo G tem um empa-


relhamento perfeito se e somente se

o(G − S) ≤ |S|

para todo conjunto S de vértices. (Veja exercício 3.11.2.)

ED 3.11.5 (A LGORITMO) Esboce um algoritmo eficiente que decida se um


grafo tem ou não tem um emparelhamento perfeito.

E 3.11.6 Deduza o teorema de Hall (exercício 3.10.2) do teorema de Tutte


(exercício 3.11.4).

EI 3.11.7 Seja M um emparelhamento e S um conjunto de vértices de um


grafo G. Prove que o número de vértices não-saturados por M é pelo menos
o(G − S) − |S|. Deduza daí que

|M | ≤ γ(G, S) ,
1 1

sendo γ(G, S) o número 2
n(G) − 2
o(G − S) − |S| . γ( , )

40
O teorema foi publicado em 1947 por William T. Tutte ( − ).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 81

E 3.11.8 Seja M um emparelhamento e S um conjunto de vértices de um


grafo G. Suponha que |M | = γ(G, S), sendo γ(G, S) o número definido no
exercício 3.11.7. Mostre que o emparelhamento M é máximo.41

EID 3.11.9 Mostre que em qualquer grafo G existe um emparelhamento M e


uma parte S de VG tais que M deixa de saturar apenas o(G−S)−|S| vértices,
ou seja, tais que
|M | ≥ γ(G, S) ,
sendo γ(G, S) o número definido no exercício 3.11.7.

EID 3.11.10 (T EOREMA DE T UTTE –B ERGE42 ) Prove que, em qualquer


grafo G,
α 0 (G) = γ(G) ,
sendo γ(G) o valor mínimo de γ(G, S) para todas as partes S de VG , onde
γ(G, S) é a expressão definida no exercício 3.11.7. (Veja os exercícios 3.11.7
e 3.11.9.)

E 3.11.11 Deduza o exercício 3.8.25 do exercício 3.11.7. Deduza o teo-


rema de König–Egerváry (exercício 3.9.9) do teorema de Tutte–Berge (exer-
cício 3.11.10).

E 3.11.12 Seja G um grafo 3-regular sem pontes. Mostre que G tem um em-
parelhamento perfeito. Mostre que nem todo grafo 3-regular tem um empa-
relhamento perfeito.

EID 3.11.13 (D ECOMPOSIÇÃO DE G ALLAI –E DMONDS43 ) Seja G um grafo e


D o conjunto dos vértices de G que não são saturados por algum empare-
lhamento máximo. Seja A o conjunto N(D). Seja C o conjunto VG r (D ∪ A).
Mostre que para todo emparelhamento máximo M ∗ em G tem-se

|M ∗ | = 21 n(G) − 12 c(G[D]) + |A| ,




onde c(H) é o número de componentes do grafo H .

41
O conjunto S serve de certificado da maximalidade do emparelhamento.
42
Trata-se de uma combinação do teorema de Tutte (exercício 3.11.4) com um teorema de
Claude Berge ( − ) publicado em 1958.
43
Publicada em 1963 e 1964 por Tibor Gallai ( − ) e em 1965 por Jack Edmonds.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 82

ED 3.11.14 (A LGORITMO) Esboce um algoritmo eficiente que encontre um


emparelhamento máximo em qualquer grafo dado. (O Algoritmo de Ed-
monds44 faz exatamente isso.)

ED 3.11.15 Uma cobertura por arestas (= edge cover)45 de um grafo é um con-


junto F de arestas tal que todo vértice do grafo é ponta de algum elemento
de F . (Não confunda com o conceito de cobertura por vértices.) Invente um
algoritmo eficiente que produza uma cobertura por arestas mínima.

ED 3.11.16 (A LGORITMO DO E MPARELHAMENTO DE P ESO M ÁXIMO) Seja


K um grafo completo e π uma função de EK em N ≡ {0, 1, 2, 3, . . .}. Para
Pdiremos que π(e) é o peso de e. O peso de um sub-
cada aresta e do grafo, emparelha-
conjunto F de EK é e∈F π(e). Esboce um algoritmo para encontrar um mento de
emparelhamento de peso máximo em K . peso máximo

44
Jack Edmonds.
45
Quem sabe eu deveria dizer “cobertura de vértices por arestas”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 83

3.12 Coloração de arestas


Uma coloração das arestas de um grafo é uma coleção de emparelhamen-
tos que cobre o conjunto de arestas. Mais precisamente, uma coloração das
arestas de um grafo G é uma coleção M1 , M2 , . . . , Mk de emparelhamentos
tal que M1 ∪ M2 ∪ · · · ∪ Mk = EG . (Podemos exigir que os emparelhamentos
sejam disjuntos dois a dois; essa disjunção é cômoda mas não é essencial.)
Se imaginarmos que cada emparelhamento Mi corresponde a uma cor, po-
deremos dizer que uma coloração das arestas de um grafo é uma atribuição
de cores às arestas que satisfaz a seguinte propriedade: arestas adjacentes
recebem cores diferentes.
Se M1 , . . . , Mk é uma coloração de arestas, dizemos que k é o número de
cores da coloração. Dizemos também que esta é uma k-coloração. Uma co-
loração de arestas é mínima se o seu número de cores é o menor possível, ou
seja, se não existe outra que use menos cores.

P ROBLEMA DA C OLORAÇÃO DE A RESTAS: Encontrar uma coloração


mínima das arestas de um grafo dado.

O índice cromático (= chromatic index) de um grafo G, denotado por χ 0 (G), é χ 0 (G)


o número mínimo de cores necessário para colorir as arestas de G.

EF 3.12.1 Seja M1 , . . . , Mk uma coloração das arestas de um grafo. Mostre


que existe uma coloração M10 , . . . , Mk0 tal que os emparelhamentos M10 , . . . , Mk0
são disjuntos dois a dois.

E 3.12.2 Um processo industrial consiste em um certo conjunto de tarefas.


Cada tarefa é executada por um operário em uma máquina e cada tarefa tem
duração de 1 dia. Cada operário está qualificado para operar apenas algumas
das máquinas. Quantos dias são necessários para completar o processo?46

E 3.12.3 Uma escola pode ser representada por um grafo (U, W )-bipartido:
cada vértice em U é um professor, cada vértice em W é uma turma de alu-
nos e um professor é adjacente às turmas para as quais deve dar aulas. Uma

46
Sugestão: Cada operário é um vértice do meu grafo; cada máquina também é um vér-
tice; cada aresta é uma tarefa, que associa um operário com uma máquina; cada cor é um dia
de trabalho.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 84

semana letiva é dividida em períodos (segunda-feira das 8h às 10h, segunda-


feira das 10h às 12h, etc.) e cada período é representado por uma cor. Uma
coloração das arestas do grafo é uma programação das aulas da semana.
Quantos períodos são necessários e suficientes para cumprir o programa de
aulas?47

E 3.12.4 Mostre que o problema da coloração mínima das arestas é um caso


particular do problema da coloração de vértices mínima.

EF 3.12.5 Calcule uma coloração mínima das arestas de um grafo completo.


Calcule uma coloração mínima das arestas de um grafo bipartido completo.

E 3.12.6 Calcule o índice cromático do grafo de Petersen.

E 3.12.7 Exiba um grafo com duas colorações mínimas diferentes.

E 3.12.8 Mostre que χ 0 (G) ≥ m(G)/α 0 (G) para todo grafo G.

EI 3.12.9 Mostre que qualquer coloração das arestas de um grafo G usa pelo
menos ∆(G) cores. Em outras palavras, mostre que χ0 ≥

χ 0 (G) ≥ ∆(G)

para todo grafo G. Mostre que essa desigualdade é um caso particular da


desigualdade χ ≥ ω do exercício 3.7.37.

E 3.12.10 (A LGORITMO) Construa um algoritmo que produza uma colora-


ção mínima das arestas de qualquer árvore.

E 3.12.11 Considere o seguinte algoritmo guloso de coloração das arestas


de um grafo G. Cada iteração do algoritmo começa com uma coleção
M1 , . . . , Mj de emparelhamentos. Em cada iteração,

escolha uma aresta e que não esteja em M1 ∪ · · · ∪ Mj ; se existe i tal


que Mi ∪{e} é um emparelhamento então comece nova iteração com
M1 , . . . , Mi−1 , Mi ∪ {e}, Mi+1 . . . , Mj ; senão, comece nova iteração
com a coleção M1 , . . . , Mj , {e}.

47
Este é o “problema da grade de horários” (timetabling problem).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 85

Mostre que o algoritmo usa no máximo 2∆(G) − 1 emparelhamentos. Mostre


que o algoritmo usa no máximo 2χ 0 (G) − 1 emparelhamentos. O algoritmo
produz uma coloração mínima?

E 3.12.12 Considere o seguinte algoritmo guloso de coloração das arestas de


um grafo G:

a j-ésima iteração começa com uma coleção M1 , M2 , . . . , Mj−1 de


emparelhamentos e calcula um emparelhamento maximal Mj no
grafo G − (M1 ∪ M2 ∪ · · · ∪ Mj−1 ).

Mostre que o algoritmo usa no máximo 2∆(G) − 1 cores. Mostre que o algo-
ritmo usa no máximo 2χ 0 (G) − 1 cores. O algoritmo produz uma coloração
mínima?

E 3.12.13 Considere o seguinte algoritmo de coloração das arestas de um


grafo G:

a j-ésima iteração começa com uma coleção M1 , M2 , . . . , Mj−1 de


emparelhamentos e calcula um emparelhamento máximo Mj no
grafo G − (M1 ∪ M2 ∪ · · · ∪ Mj−1 ).

O algoritmo produz uma coloração mínima?

E 3.12.14 Considere a seguinte “heurística da troca de cores em caminhos


alternantes”, que tenta resolver o problema da coloração de arestas:

No começo de cada iteração tem-se uma coloração parcial, ou seja,


uma coleção M1 , M2 , . . . , Mk de emparelhamentos disjuntos dois a
dois. Seja vw uma aresta ainda não colorida, isto é, uma aresta que heurística da
não está em M1 ∪· · ·∪Mk . Seja Mi uma cor “ausente” em v e Mj uma troca de cores
cor “ausente” em w. Seja P o componente do grafo (VG , Mi ∪ Mj )
que contém v. Troque Mi por Mi ⊕ EP . Em seguida, troque Mi por
Mi ∪ {vw} e comece nova iteração.

Complete os detalhes e discuta a heurística. Ela resolve o problema da colo-


ração de arestas?

E 3.12.15 Mostre que todo grafo bipartido r-regular admite uma coloração
das arestas com apenas r cores.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 86

EI 3.12.16 (T EOREMA DE K ÖNIG48 ) Seja G um grafo bicolorível, ou seja, um


grafo que admite uma bipartição. Mostre que grafos
bipartidos
χ 0 (G) = ∆(G) .

(Sugestão: Veja a heurística 3.12.14 ou o exercício 3.10.9.)

E 3.12.17 Exiba colorações mínimas das arestas dos grafos das figuras 3.7
e 3.8.

E 3.12.18 Prove que χ 0 (G) = ∆(G) para todo grafo hamiltoniano 3-


regular G.

E 3.12.19 Suponha que n(G) é ímpar e m(G) > 12 ∆(G) n(G) − 1 . Calcule


χ 0 (G).

E 3.12.20 Seja H um grafo r-regular, r ≥ 1, com um número ímpar de vér-


tices. Seja G um grafo obtido de H pela remoção de no máximo (r − 1)/2
arestas. Mostre que χ 0 (G) = ∆(G) + 1.

E 3.12.21 Seja G um grafo r-regular. Suponha que G tem uma ponte. Mostre
que χ 0 (G) ≥ r + 1.

E 3.12.22 Seja G um grafo r-regular, r ≥ 1. Suponha que G tem um vértice


de corte (= cut vertex), ou seja, um vértice v tal que G − v tem mais compo-
nentes que G. Mostre que χ 0 (G) ≥ r + 1.

3.12.23 Sejam
E M e N dois emparelhamentos de um grafo G. Suponha que
|M | − |N | ≥ 2. Mostre que existem emparelhamentos M 0 e N 0 tais que

M ∪ N = M 0 ∪ N 0 e |M 0 | − |N 0 | < |M | − |N | .

E 3.12.24 Seja G um grafo e k ≡ χ 0 (G). Mostre que existe uma k-coloração


das arestas M1 , M2 , . . . , Mk tal que |Mi |−|Mj | ≤ 1 para todo par i,j de cores.
Escreva uma “fórmula” para |Mi | em termos de m(G).49

48
Dénes König ( − ).
49
Sugestão: Veja exercício 3.12.23.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 87

EI 3.12.25 (T EOREMA DE V IZING50 ) Mostre que

χ 0 (G) ≤ ∆(G) + 1

para todo grafo G.51 Se combinarmos isso com o exercício 3.12.9, poderemos
dizer que ∆ ≤ χ 0 ≤ ∆ + 1 para todo grafo.

E 3.12.26 Mostre que a heurística de troca de pares de cores sugerido no exer-


cício 3.12.14 não é suficiente para demonstrar o teorema de Vizing (exercí-
cio 3.12.25).

D 3.12.27 (A LGORITMO) Invente um algoritmo rápido que calcule χ 0 (G)


para qualquer grafo G dado.

D 3.12.28 (A LGORITMO) Invente um algoritmo rápido que resolva o pro-


blema da coloração de arestas.

D 3.12.29 Um grafo G é t-duro (= t-tough) se, para todo conjunto S de


vértices, c(G − S) ≤ |S|/t, sendo c(G − S) o número de componentes de
G − S . Prove a seguinte conjetura:52 Se G tem um número par de vértices e
χ 0 (G) = ∆(G) + 1 então χ 0 (G − v) = χ 0 (G) para algum vértice v.

D 3.12.30 Uma coloração total (= total coloring) de um grafo G é uma parti-


ção de VG ∪ EG (estamos supondo que VG e EG são disjuntos) tal que, dois
quaisquer elementos de um mesmo bloco da partição não são adjacentes nem
mutuamente incidentes. O número de blocos da partição é o número de co-
res da coloração. Prove a seguinte conjetura53 : Todo grafo G admite um
coloração total com ∆(G) + 2 ou menos cores.

50
Publicado em 1964–1965 por Vadim G. Vizing (−), um matemático russo. O fato
também foi descoberto, independentemente, por Ram Prakash Gupta em 1966.
51
É tentador comparar essa desigualdade com a desigualdade χ ≤ ∆ + 1 do exercí-
cio 3.7.32. Mas as razões para as duas desigualdades são muito diferentes.
52
A conjetura foi proposta por I. T. Jakobsen, L. W. Beineke e R. J. Wilson em 1973.
53
A conjetura foi proposta por M. Behzad em 1965.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 88

3.13 Coloração de vértices II


Voltamos a considerar o problema da coloração de vértices, já discutido na
seção 3.7:

P ROBLEMA DA C OLORAÇÃO DE V ÉRTICES: Encontrar uma colora-


ção mínima dos vértices de um grafo dado.

O seguinte conceito é útil para discutir algumas questões de coloração. Uma


contração (= contraction) de um grafo H é qualquer grafo J que tenha a se-
guinte forma: (1) VJ é uma partição de VH (em partes não-vazias), (2) para
cada X em VJ , o grafo induzido H[X] é conexo, (1) dois elementos distintos
de VJ são adjacentes em J se existe uma aresta em H com uma ponta em um
e outra no outro.

Figura 3.10: Um grafo H e uma contração de H .

A seguinte generalização do conceito de subgrafo é importante no estudo de


vários tópicos da teoria dos grafos: Um menor (= minor54 ) de um grafo G é
qualquer contração de um subgrafo de G.

E 3.13.1 Seja G um grafo conexo não-regular. Mostre que χ(G) ≤ ∆(G).


(Compare com o exercício 3.7.32; mas não confunda com o exercício 3.12.25.)

E 3.13.2 (T EOREMA DE B ROOKS55 ) Seja G um grafo conexo não-completo


diferente de um circuito ímpar. Mostre que χ(G) ≤ ∆(G).Compare com o
exercício 3.13.1.)

54
Diga “máinor”.
55
Publicado por R. L. Brooks em 1941.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 89

E 3.13.3 Imagine uma grade em que todos os vértices exceto um estão co-
loridos. Cada vértices colorido tem uma de 3 possíveis cores. Invente uma
“heurística da troca de cores em componentes bicoloridas” (compare com o
exercício 3.12.14) para obter, a partir da coloração parcial dada, uma colora-
ção (total) com apenas 3 cores.

E 3.13.4 Sejam I e J conjuntos estáveis num grafo G e suponha I ∩ J = ∅.


Seja X o conjunto dos vértices de um componente do grafo bipartido G[I ∪J].
Mostre que o conjunto I ⊕ X é estável no grafo G.

E 3.13.5 (A LGORITMO) Descreva uma heurística de coloração de vértices


baseada no exercício 3.13.4. (No início de cada iteração temos uma coloração
parcial dos vértices; cada iteração escolhe um vértice não-colorido e procura
atribuir a ele uma das cores já usadas.)

EI 3.13.6 Sejam v1 , . . . , vn os vértices de um grafo e suponha que, para i =


2, . . . , n, o conjunto perfect
{v1 , . . . , vi−1 } ∩ N(vi ) elimination
scheme
é uma clique. Escreva formalmente um algoritmo que calcule uma colora-
ção de vértices mínima e uma clique máxima no grafo.56 (Esse algoritmo é
conhecido como perfect elimination scheme.)

EDD 3.13.7 (T EOREMA DE L OVÁSZ57 ) 58 Um grafo é perfeito (= perfect) se grafo


χ(G[X]) = ω(G[X]) para todo subconjunto X de VG . Mostre que o comple- perfeito
mento de todo grafo perfeito é perfeito.

E 3.13.8 Suponha que P é um caminho de comprimento máximo num grafo


G. Digamos que P tem k vértices. Mostre que G admite uma coloração de
vértices com não mais que k cores.

EI 3.13.9 (T EOREMA DE G ALLAI E R OY59 ) Para qualquer orientação ací-

56
Sugestão: No início de cada iteração os vértices v1 , . . . , vj já foram coloridos com k
cores e G[{v1 , . . . , vj }] tem uma clique com k vértices.
57
Publicado por Lásló Lovász em 1972.
58
Em 2002, Maria Chudnovsky e Paul D. Seymour provaram, como base em trabalho
prévio de Neil Robertson e Robin Thomas, o “teorema forte dos grafos perfeitos” (Strong
Perfect Graph Theorem): um grafo G é perfeito se e somente se nem G nem G contêm
um buraco ímpar. Um buraco ímpar (= odd hole) é um circuito induzido com um número
ímpar ≥ 5 de vértices. Essa caracterização havia sido conjeturada por Claude Berge em
1960.
59
Publicado em 1966 por Tibor Gallai e em 1967, independentemente, por Bernard Roy.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 90

clica60 D de um grafo G, seja k(D) o comprimento de um caminho orien-


tado61 máximo em D. Então

χ(G) = 1 + min k(D) .


D

ED 3.13.10 Prove que a seguinte conjetura62 é falsa: Para todo grafo G, se


χ(G) = k então G contém uma subdivisão (veja exercício 3.19.19) de Kk .

D 3.13.11 Prove a seguinte conjetura de Hadwiger63 : Para todo grafo G, se


χ(G) = k então G tem um menor isomorfo a Kk .

60
Uma orientação de um grafo consiste na substituição de cada aresta vw pelo par orde-
nado (v, w) ou pelo par ordenado (w, v). Um tal par ordenado é chamado arco. O resultado
é um grafo dirigido. Um grafo dirigido D é acíclico se não tem circuitos orientados. Um
circuito é orientado se todos os seus arcos são dirigidas no mesmo sentido.
61
Um caminho é orientado se todos os seus arcos são dirigidas no mesmo sentido.
62
A conjetura foi proposta por G. Hajós, em 1961.
63
A conjetura foi proposta por H. Hadwiger, em 1943.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 91

3.14 Circuitos e caminhos hamiltonianos


Um circuito num grafo é máximo se o grafo não contém um circuito mais
comprido. A circunferência de um grafo é o comprimento de um circuito de
comprimento máximo no grafo.

P ROBLEMA DO C IRCUITO M ÁXIMO: Encontrar um circuito máximo


num grafo dado.

O problema de encontrar um caminho máximo é formulado de maneira aná-


loga. Um caminho num grafo é máximo se o grafo não contém um caminho
mais comprido.
Um circuito é hamiltoniano64 se contém todos os vértices do grafo. É evi-
dente que todo circuito hamiltoniano é um circuito máximo. Um grafo é
hamiltoniano se admite um circuito hamiltoniano. O problema do circuito
máximo tem a seguinte especialização óbvia:

P ROBLEMA DO G RAFO H AMILTONIANO: Decidir se um dado grafo


é hamiltoniano.

O conceito de caminho hamiltoniano e o problema do caminho hamiltoni-


ano são definidos de maneira análoga.
Alguns dos exercícios abaixo envolvem a condição “todo vértice tem pelo
menos k vizinhos”, ou seja, “|N(v)| ≥ k para todo vértice v”. Como |N(v)| =
d(v), usaremos a expressão mais curta “δ(G) ≥ k” para formular a condição.

EF 3.14.1 É verdade que todo grafo completo tem um circuito hamiltoniano?

E 3.14.2 Encontre um circuito máximo no grafo da figura 3.11.

E 3.14.3 Encontre um circuito máximo no grafo de Petersen. Encontre um


caminho máximo no grafo de Petersen.

E 3.14.4 Prove que para todo k ≥ 2 o k-cubo tem um circuito hamiltoniano.


(Sugestão: Use indução em k.)65

64
Referência ao matemático irlandês William Rowan Hamilton ( − ). Teria sido
mais justo homenagear o inglês Thomas P. Kirkman ( − ).
65
Indução é a arte de reduzir um problema a uma versão menor d’ele mesmo.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 92

Figura 3.11: Encontre um circuito hamiltoniano. Veja exercício 3.14.2.

E 3.14.5 Dê uma condição necessária e suficiente para que uma grade tenha
um circuito hamiltoniano.

E 3.14.6 Encontre um circuito hamiltoniano no grafo do cavalo t-por-t.

EF 3.14.7 Seja G um grafo hamiltoniano 3-regular. Mostre que χ 0 (G) = 3.

E 3.14.8 (A LGORITMO) Discuta o seguinte algoritmo para o problema do


circuito hamiltoniano. Ao receber um grafo G,

(1) gere uma lista de todas as permutações de VG ; (2) descarte as per-


mutações que não correspondem a circuitos hamiltonianos; (3) devolva
qualquer uma das permutações restantes.

E 3.14.9 Mostre que todo G tem um caminho de comprimento δ(G). (Veja


exercício 2.4.19.)

E 3.14.10 Mostre que todo grafo G tem um circuito de comprimento não-


inferior a δ(G) + 1, desde que δ(G) > 1. (Veja exercício 2.4.22.)

E 3.14.11 Mostre que todo grafo G tem um caminho de comprimento pelo


menos χ(G), sendo χ(G) o número cromático (veja seção 3.7) de G

E 3.14.12 Sejam P ∗ e Q∗ dois caminhos máximos em um grafo conexo G.


Mostre que P ∗ e Q∗ têm um vértice em comum.

EF 3.14.13 Mostre que grafos hamiltonianos não têm pontes.


FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 93

E 3.14.14 Seja G um grafo (U, W )-bipartido tal que |U | =


6 |W |. Prove que G
não é hamiltoniano. (Outra maneira de formular a questão: para todo grafo
hamiltoniano (U, W )-bipartido tem-se |U | = |W |.)

EI 3.14.15 Seja S um conjunto de vértices de um grafo G tal que 0 < |S| <
n(G). Suponha que
c(G − S) > |S| ,
sendo c(G − S) o número de componentes de G − S . Prove que G não é
hamiltoniano.66 (Outra maneira de formular a questão: se um grafo G é
hamiltoniano então c(G − S) ≤ |S| para toda parte própria e não-vazia S de
VG .)
Mostre que a condição “c(G−S) ≤ |S|” é uma generalização da condição
“|U | = |W |” discutida no exercício 3.14.14.

E 3.14.16 Seja G um grafo dotado de um caminho hamiltoniano. Mostre que


c(G − S) ≤ |S| + 1 para toda parte própria S de VG .

D 3.14.17 Um grafo G é t-duro (= t-tough) se, para todo conjunto S de vér-


tices, c(G − S) ≤ |S|/t. Prove a seguinte conjetura67 : Todo grafo 2-duro é
hamiltoniano.

E 3.14.18 Mostre que existem grafos não-hamiltonianos que satisfazem a


condição necessária discutida no exercício 3.14.15. Em outras palavras, mos-
tre que existe um grafo não-hamiltoniano G tal que cG − S ≤ |S| para todo
conjunto S de vértices tal que 0 < |S| < n(G).

E 3.14.19 Suponha que um grafo G satisfaz as desigualdades n(G) ≥ 4 e


δ(G) ≥ n(G) − 2. Mostre que G é hamiltoniano.

E 3.14.20 Seja G um grafo conexo tal que δ(G) ≥ k para algum número natu-
ral k ≥ 2. Prove que G contém (1) um circuito hamiltoniano ou (2) um cami-
nho de comprimento pelo menos 2k (ou seja, um caminho com mais que 2k
vértices).68 (Sugestão: Sejam u e v os extremos de um caminho máximo P .
Mostre que o grafo (VP , EP ∪ ∇(u) ∪ ∇(v)) contém um circuito hamiltoniano.)

66
Sugestão: Comece por analisar os casos |S| = 1 e |S| = 2.
67
A conjetura foi proposta por Vašek Chvátal em 1971.
68
Note que as duas alternativas não são mutuamente exclusivas.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 94

EI 3.14.21 (T EOREMA DE D IRAC69 ) Suponha que um grafo G satisfaz as


condições n(G) ≥ 3 e
δ(G) ≥ n(G)/2 .
Mostre que G é hamiltoniano. (Sugestão: Veja a solução do exercício 3.14.20.)

E 3.14.22 Seja G um grafo com a seguinte propriedade: para cada par u,v de
vértices não-adjacentes,
d(u) + d(v) ≥ n(G) + 1 .
Prove que, para cada par u,v de vértices, G tem um caminho hamiltoniano
com extremos u e v.
E 3.14.23 Seja G um grafo e {V1 , V2 , V3 } uma partição de VG em partes não
vazias. Suponha que (1) cada vértice em V1 é adjacente a todos os vértices
de V2 ∪ V3 e (2) cada vértice de V2 é adjacente a todos os vértices de V3 .
Se |V2 | = 2|V1 | e |V3 | = 3|V1 |, prove que G é hamiltoniano. Se |V2 | = 2|V1 |
e |V3 | = 3|V1 | + 1, prove que G não é hamiltoniano.

E 3.14.24 ((Yoshiko)) Mostre que Kn,2n,3n é hamiltoniano para todo n ≥ 1.


Mostre que Kn,2n,3n+1 não é hamiltoniano para todo n ≥ 1.

E 3.14.25 Mostre que toda aresta de um grafo hamiltoniano pertence a um


circuito.

D 3.14.26 Dê uma condição necessária e suficiente para que um grafo tenha


um circuito hamiltoniano.

D 3.14.27 (A LGORITMO) Invente um algoritmo rápido que encontre um cir-


cuito hamiltoniano em qualquer grafo dado.70
E 3.14.28 Seja A um algoritmo que decide se um grafo dado tem um circuito
hamiltoniano. Use A para formular um algoritmo que decide se um grafo
dado tem um caminho hamiltoniano.
Seja B um algoritmo que decide se um grafo dado tem um caminho ha-
miltoniano. Use B para formular um algoritmo que decide se um grafo dado
tem um circuito hamiltoniano.

69
Publicado em 1952 por Gabriel Andrew Dirac.
70
Não se conhece um algoritmo rápido para decidir se um grafo é hamiltoniano. Em
termos técnicos, esse problema é NP-completo. Veja os livros de Garey–Johnson [GJ79], Ha-
rel [Har92] e Sipser [Sip97].
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 95

D 3.14.29 (A LGORITMO) Invente um algoritmo rápido para resolver o se-


guinte problema: Dado um grafo e dois de seus vértices, digamos v e w,
encontrar um caminho de comprimento máximo dentre os que têm extremos
v e w.71

D 3.14.30 (P ROBLEMA DO C AIXEIRO V IAJANTE (= Traveling Salesman Problem


= TSP)) Seja K um grafo completo e ϕ uma função de EK em {0, 1, 2, 3, . . .}.
Para cada aresta e doPgrafo, diremos que ϕ(e) é o custo de e. O custo de um
subgrafo H de K é e∈EH ϕ(e). Invente um algoritmo para encontrar um
circuito hamiltoniano de custo mínimo em K .72
(A propósito, veja o sítio A History of the Traveling Salesman Problem, man-
tido por Bill Cook na Georgia Tech University.)

71
O problema é NP-difícil. Veja os livros de Garey–Johnson [GJ79], Harel [Har92] e Sip-
ser [Sip97].
72
O problema é NP-difícil. Veja os livros de Garey–Johnson [GJ79], Harel [Har92] e Sip-
ser [Sip97].
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 96

3.15 Ciclos e trilhas eulerianas


Um passeio (= walk) em um grafo é qualquer seqüência finita
(v0 , v1 , v2 , . . . , vk−1 , vk ) (3.1)
de vértices tal que vi é adjacente a vi−1 para todo i entre 1 e k. Dizemos que
o vértice v0 é a origem do passeio e que vk é o término do passeio. Dizemos
também que o passeio vai de v0 a vk e que o passeio liga v0 a vk . As arestas
do passeio são v0 v1 , v1 v2 , . . . , vk−1 vk . O comprimento do passeio (3.1) é k.
Uma trilha (= trail) é um passeio sem arestas repetidas, isto é, um passeio
cujas arestas são distintas duas a duas. É claro que o comprimento de uma
trilha é igual à cardinalidade do seu conjunto de arestas.
Um passeio (v0 , . . . , vk ) é fechado (= closed) se sua origem coincide com o
término, ou seja, se v0 = vk . Um ciclo (= cycle) é uma trilha fechada.73
Um passeio é simples se os seus vértices são distintos dois a dois, ou seja,
se não tem vértices repetidos. É evidente que todo passeio simples é, em
particular, uma trilha.

Um ciclo num grafo é euleriano74 se passa por todas as arestas e todos os vér-
tices do grafo.75 Assim, um ciclo (v0 , v1 , . . . , vk−1 , vk ) é euleriano se e somente
se k = m(G). Um grafo é euleriano se tem um ciclo euleriano. Uma trilha é
euleriana se passa por todas as arestas e todos os vértices do grafo.

P ROBLEMA DO C ICLO E ULERIANO: Encontrar um ciclo euleriano


num grafo dado.

P ROBLEMA DA T RILHA E ULERIANA: Encontrar uma trilha euleriana


num grafo dado.

Uma decomposição em circuitos, ou cobertura simples por circuitos (= cir-


cuit simple cover), de um grafo é uma coleção de circuitos tal que cada aresta
do grafo pertence a exatamente um dos circuitos da coleção. A existência de
uma tal decomposição é essencialmente equivalente à existência de um ciclo
euleriano (veja exercício 3.15.9).

73
De acordo com essa definição, um ciclo pode ter comprimento 0. Já um circuito, por
definição, tem comprimento pelo menos 3.
74
Referência a Leonhard Euler ( − ).
75
Alguns livros não exigem que o ciclo passe por todos os vértices do grafo. A diferença
entre as duas definições é superficial.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 97

EF 3.15.1 Sejam v0 , . . . , v5 alguns vértices (não necessariamente distintos dois


a dois) de um grafo G. Quais das seguintes afirmações são verdadeiras: (1) se
v0 v1 v2 v3 v4 v5 é um caminho em G então (v0 , v1 , v2 , v3 , v4 , v5 ) é um passeio sim-
ples; (2) se v0 v1 v2 v3 v4 v5 v0 é um circuito em G então (v0 , v1 , v2 , v3 , v4 , v5 , v0 )
é um ciclo; (3) se (v0 , v1 , v2 , v3 , v4 , v5 ) é uma trilha então v0 v1 v2 v3 v4 v5 é um
caminho; (4) se (v0 , v1 , v2 , v3 , v4 , v5 , v0 ) é um ciclo então v0 v1 v2 v3 v4 v5 v0 é um
circuito.

E 3.15.2 Encontre ciclos eulerianos nos grafos da figura 3.12.

a r r ra r
h
r
A @aa

bT @r a ar
r Tr
c

Tg


T r r

Te
T a aa @
r
d
r

T
Tr f r aa @r

Figura 3.12: Encontre um ciclo euleriano. Veja exercício 3.15.2.

E 3.15.3 Para que valores de p e q uma grade p-por-q tem um ciclo euleriano?

E 3.15.4 Para que valores de k o k-cubo é euleriano?

E 3.15.5 Dê uma condição necessária e suficiente para que um grafo com-


pleto tenha um ciclo euleriano.

E 3.15.6 Encontre um ciclo euleriano no grafo do cavalo 8-por-8.


E 3.15.7 Suponha que um grafo G tem um ciclo euleriano. Mostre que o
grafo das arestas L(G) tem um circuito hamiltoniano (veja exercício 1.1.25).
Mostre que a recíproca não é verdadeira: L(G) pode ser hamiltoniano
sem que G tenha um ciclo euleriano.

E 3.15.8 Exiba uma decomposição em circuitos de cada um dos grafos da


figura 3.13.

EI 3.15.9 Mostre que todo grafo dotado de um ciclo euleriano tem uma de-
composição em circuitos. (Sugestão: Veja exercício 2.4.20.)
Mostre que todo grafo conexo dotado de uma decomposição em circuitos
tem um ciclo euleriano.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 98

Figura 3.13: Encontre uma decomposição


em circutos. Veja exercício 3.15.8.

EF 3.15.10 Suponha que um grafo G não é conexo. Mostre que G não tem
ciclo euleriano.

E 3.15.11 Suponha que um grafo G tem um vértice de grau ímpar. Mostre


que G não é euleriano. (Em outras palavras, se G é euleriano então todos os
seus vértices têm grau par.)76

EI 3.15.12 (T EOREMA DE E ULER77 ) Seja G um grafo conexo. Mostre que G


tem um ciclo euleriano se e somente se o grau de cada vértice de G é par. Em
outras palavras, mostre que a ausência de vértices de grau ímpar é condição
necessária e suficiente para que um grafo conexo tenha um ciclo euleriano.78

E 3.15.13 (B OM) Mostre que um grafo conexo tem um ciclo euleriano se e


somente se todos os seus cortes são pares.

E 3.15.14 Dê uma condição necessária e suficiente para que um grafo tenha


uma trilha euleriana não-fechada.

E 3.15.15 (A LGORITMO) Construa um algoritmo que encontre um ciclo eu-


leriano em qualquer grafo conexo dado.

E 3.15.16 (A LGORITMO) Construa um algoritmo que encontre uma trilha


euleriana (fechada ou não) em qualquer um grafo conexo dado.

ED 3.15.17 (P ROBLEMA DO C ARTEIRO C HINÊS (= Chinese Postman Pro-


blem)79 ) Esboce um algoritmo para resolver o seguinte problema: Dado

76
Portanto, um vértice ímpar é um certificado da inexistência de um ciclo euleriano.
77
Leonhard Euler ( − ).
78
Grafos eulerianos não têm vértices ímpares; grafos bipartidos não têm circuitos ímpares.
Mera coincidência, ou há algo mais por trás disso? Veja exercício 3.19.42.
79
Proposto em 1962 pelo matemático chinês Mei-Ko Kwan.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 99

um grafo, encontrar um passeio de comprimento mínimo dentre os que são


fechados e passam por todas as arestas. (Sugestão: Combine o problema
do ciclo euleriano com o problema do emparelhamento perfeito de peso
mínimo; veja o exercício 3.11.16.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 100

3.16 Conectores mínimos


Uma conector80 de um grafo G é qualquer conjunto C de arestas de G tal
que o grafo (VG , C) é conexo. Um conector C∗ de um grafo é mínimo se não
existe outro conector C tal que |C| < |C∗ |.

P ROBLEMA DO C ONECTOR M ÍNIMO: Encontrar um conector mí-


nimo de um grafo dado.

Convém não confundir mínimo com minimal. Um conector C 0 é minimal


se não existe conector C tal que C ⊂ C 0 . É evidente que todo conector mí-
nimo também é minimal. É um tanto surpreendente (diante do que acontece
com emparelhamentos, por exemplo) que a recíproca seja verdadeira: todo
conector minimal é mínimo (veja exercício 3.16.3). Por isso, o problema do
conector mínimo é muito fácil.
Uma árvore geradora (= spanning tree) de um grafo G é qualquer subgrafo
gerador de G que seja uma árvore.81 Como veremos abaixo (exercício 3.16.2),
uma árvore geradora é essencialmente o mesmo que um conector minimal.

EF 3.16.1 Mostre que um grafo G tem um conector se e somente se G é co-


nexo.

E 3.16.2 A. Seja T uma árvore geradora de um grafo G. Mostre que ET é um


conector minimal de G.
B. Seja C um conector minimal de G. Mostre que o grafo (VG , C) é uma
árvore geradora de G.

EI 3.16.3 Mostre que todo conector minimal de um grafo G tem exatamente


n(G)−1 arestas. (Veja exercício 2.8.9.) Deduza daí que todo conector minimal
é mínimo.

E 3.16.4 (A LGORITMO) Construa um algoritmo eficiente que receba um


grafo G e devolva um conector mínimo de G ou uma prova de que G não é
conexo.

80
Cuidado! O termo “conector” não é usual na literatura da teoria dos grafos.
81
Uma árvore geradora de um grafo poderia ser chamada esqueleto do grafo. Em alemão,
por exemplo, diz-se Gerüst (= andaime).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 101

E 3.16.5 Prove que todo grafo conexo com dois ou mais vértices tem um vér-
tice v tal que G − v é conexo. (Compare com o exercício 2.6.17.)

E 3.16.6 (C IRCUITOS F UNDAMENTAIS) Seja C um conector minimal de um


grafo G e a um elemento de EG r C . Mostre que o grafo (VG , C ∪ {a}) tem
um único circuito.
(Circuitos desse tipo são conhecidos como circuitos fundamentais de G.
É claro que os circuitos fundamentais dependem do conector: para cada co-
nector minimal de G teremos uma coleção diferente de circuitos fundamen-
tais.)

EI 3.16.7 Seja C um conector minimal de um grafo G e a um elemento de


EG r C . Mostre que existe b em C tal que

(C ∪ {a}) r {b}

é um conector minimal de G. (Veja o exercício 2.8.7, parte A.)

E 3.16.8 (B OM) Seja b uma aresta em um conector minimal C de um grafo G.


Dê uma condição necessária e suficiente para que exista uma aresta a em
EG r C tal que (C r {b}) ∪ {a} seja um conector. (Compare com o exercí-
cio 3.16.7.)

E 3.16.9 Suponha que um grafo G tem um único conector minimal. Mostre


que G é uma árvore.

E 3.16.10 (A LGORITMO) Suponha que cada aresta a de um grafo G tem um


“peso” numérico π(a) P≥ 0. Por definição, o peso de qualquer conjunto A
de arestas é o número a∈A π(a). Construa um algoritmo que encontre um
conector de G que tenha peso mínimo.82

E 3.16.11 Seja G um grafo conexo com n vértices e m arestas. Mostre que G


tem pelo menos m − n + 1 circuitos. (Veja o exercício 2.6.26.)

82
Os célebres algoritmos de Kruskal e Prim resolvem o problema. Esses algoritmos têm
um caráter “guloso”; eles são os mais antigos e mais conhecidos algoritmos gulosos da teoria
dos grafos. A prova da correção desses algoritmos depende do exercício 3.16.7.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 102

3.17 Subflorestas máximas


Uma subfloresta (ou subgrafo acíclico) de um grafo G é qualquer floresta
que seja subgrafo de G. Uma subfloresta F ∗ de um grafo G é máxima se não
existe subfloresta F tal que n(F ) > n(F ∗ ) ou m(F ) > m(F ∗ ).

P ROBLEMA DA S UB F LORESTA M ÁXIMA: Encontrar uma subfloresta


máxima de um grafo dado.

Convém não confundir máxima com maximal. Uma subfloresta F 0 de G é


maximal se não existe subfloresta F de G tal que F ⊃ F 0 . É evidente que toda
subfloresta máxima também é maximal. É um tanto surpreendente (diante
do que acontece com emparelhamentos, por exemplo) que a recíproca seja
verdadeira: toda subfloresta maximal é máxima (veja exercício 3.17.2). Por
isso, o problema da subfloresta máxima é muito fácil.
É claro que toda subfloresta maximal (e, em particular, toda subfloresta má-
xima) é geradora. Mais precisamente, se F é uma subfloresta maximal de um
grafo G então VF = VG .

EF 3.17.1 Mostre que toda subfloresta maximal de um grafo G é geradora.

EI 3.17.2 Mostre que toda subfloresta maximal de um grafo G tem exata-


mente n(G) − c(G) arestas, sendo c(G) o número de componentes de G. (Veja
exercício 2.8.10.) Deduza daí que toda subfloresta maximal é máxima.

E 3.17.3 Seja F uma subfloresta maximal de um grafo G. Seja H um compo-


nente de G. Mostre que EF ∩ EH é um conector de H . Formule e prove a
recíproca desse fato.

E 3.17.4 (A LGORITMO) Construa um algoritmo eficiente que encontre uma


subfloresta máxima de qualquer grafo dado.

E 3.17.5 (C IRCUITOS F UNDAMENTAIS) Seja F uma subfloresta maximal de


um grafo G e a uma aresta de G que não esteja em F . Mostre que o grafo
F + a tem um único circuito.
(Circuitos desse tipo são conhecidos como circuitos fundamentais de G.
É claro que os circuitos fundamentais dependem da subfloresta: para cada
subfloresta maximal de G teremos uma coleção diferente de circuitos funda-
mentais.)
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 103

EI 3.17.6 Seja F uma subfloresta maximal de um grafo G e a uma aresta de


G que não esteja em F . Mostre que existe b em EF tal que

(F + a) − b ,

é uma subfloresta maximal de G. (Veja o exercício 2.8.7, parte A.)

E 3.17.7 Suponha que um grafo G tem uma única subfloresta maximal. Mos-
tre que G é uma floresta.

E 3.17.8 (A LGORITMO) Suponha que cada aresta a de um grafo G tem um


“custo” não-negativo. Por definição, o custo de qualquer subfloresta F de
G é a soma dos custos da aresta de F . Construa um algoritmo que encontre
uma subfloresta de G que tenha custo máximo.83

E 3.17.9 Uma cobertura de circuitos por arestas (= feedback edge set) em um


grafo G é um conjunto de arestas que intercepta todos os circuitos de G, ou
seja, um conjunto F de arestas tal que F ∩ EO 6= ∅ para todo circuito O. Qual
a cardinalidade de uma cobertura mínima de circuitos por arestas?84

83
Os célebres algoritmos de Kruskal e Prim resolvem o problema. Esses algoritmos têm
um caráter “guloso”; eles são os mais antigos e mais conhecidos algoritmos gulosos da teoria
dos grafos. A prova da correção desses algoritmos depende do exercício 3.17.6.
84
A propósito, eis um problema bem mais difícil: encontrar uma cobertura mínima de
circuitos por vértices. Uma cobertura de circuitos por vértices (= feedback vertex set) em
um grafo G é um conjunto de vértices que intercepta todos os circuitos de G, ou seja, um
conjunto X de vértices tal que X ∩ VC 6= ∅ para todo circuito C .
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 104

3.18 Caminhos e circuitos mínimos


Um caminho é mais curto que outro se o comprimento do primeiro é menor
que o do segundo. Um caminho P∗ é mínimo se nenhum caminho mais curto
tem os mesmos extremos que P∗ .

P ROBLEMA DO C AMINHO M ÍNIMO: Dados vértices v e w de um


grafo, encontrar um caminho mínimo com extremos v e w.

Em outras palavras, o problema consiste em encontrar um caminho de com-


primento mínimo dentre todos os caminhos que têm extremos v e w.
A distância entre dois vértices v e w é o comprimento de um caminho mí-
nimo com extremos v e w. Se não existe caminho algum com esses extremos,
dizemos que a distância entre v e w é infinita. A distância entre dois vértices
v e w de um grafo G será denotada por distG (v, w). Se G estiver subenten- dist( , )
dido, diremos simplesmente dist(v, w).
Um circuito é mínimo se o grafo não contém outro circuito mais curto. A
cintura (= girth) de um grafo é o comprimento de um circuito mínimo no
grafo. Se um grafo não tem circuito algum, sua cintura é infinita.

E 3.18.1 No grafo da figura 3.14, calcule a distância entre o vértice x e cada


um dos outros vértices. Em seguida, exiba um caminho mínimo entre x e y.
x r r r r r r r r r r r r r
r
@ r r r
r @r r r r r r r r r r
r r r r
@ r
r r r r r r r r r @
r r
r r r r r
r r r r r r r r r r r r
r @ r r r r
r r @
r r r r r r r r
r r r r r
r r r r r r r r r r r ry

Figura 3.14: Encontre um caminho mínimo


entre x e y. Veja o exercício 3.18.1.

EF 3.18.2 Seja k a distância entre dois vértices v e w num grafo. Mostre que
(1) existe um caminho de comprimento k de v a w e (2) não existe caminho
de comprimento menor que k de v a w. Mostre a recíproca: se (1) e (2) valem
então a distância entre v e w é k.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 105

E 3.18.3 Suponha que v0 v1 · · · vk é um caminho mínimo (dentre os que têm


extremos v0 a vk ). Prove que
dist(v0 , vj ) = j
para todo índice j.

EI 3.18.4 (D ESIGUALDADE T RIANGULAR) Prove que para qualquer terno


(x, y, z) de vértices de um grafo vale a desigualdade
dist(x, y) + dist(y, z) ≥ dist(x, z) .

E 3.18.5 Seja r um vértice de um grafo conexo G. Mostre que, para qualquer


aresta xy, tem-se |dist(r, x) − dist(r, y)| ≤ 1.

E 3.18.6 (A LGORITMO DA B USCA EM L ARGURA85 ) Construa um algoritmo


eficiente que receba dois vértices v e w de um grafo e calcule a distância entre
v e w. Construa um algoritmo eficiente que encontre um caminho mínimo
entre dois vértices dados.

E 3.18.7 (Á RVORE DAS D ISTÂNCIAS) Seja r um vértice de um grafo co-


nexo G. Mostre que G tem uma árvore geradora T tal que
distG (r, x) = distT (r, x)
para todo vértice x (ou seja, a distância de r a x em G é igual à distância de
r a x em T ).

EF 3.18.8 É verdade que todo grafo conexo G tem uma árvore geradora T tal
que distG (u, v) = distT (u, v) para todo par u,v de vértices?

E 3.18.9 O diâmetro de um grafo G é o número maxu,v dist(u, v), sendo o


máximo tomado sobre todos os pares u,v de vértices. Prove que o diâmetro
de quase todo grafo G em G(n) (veja a seção 2.10) não passa de 2.

E 3.18.10 Um vértice v de um grafo é central se minimiza maxx∈V dist(v, x).


Mostre que toda árvore tem no máximo dois centros e se tiver dois então eles
são adjacentes.

E 3.18.11 (A LGORITMO) Construa um algoritmo que calcule a cintura de


qualquer grafo dado. Construa um algoritmo que encontre um circuito mí-
nimo em qualquer grafo dado. (Sugestão: Veja o exercício 3.18.6.)

85
Breadth-First Search Algorithm.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 106

Restrições de paridade

Dizemos que um circuito ou caminho é ímpar se o seu comprimento é um


número ímpar. Analogamente, um circuito ou caminho é par se o seu com-
primento é um número par.
A cintura ímpar de um grafo é o comprimento de um circuito ímpar mínimo
no grafo. A cintura par é definida analogamente.

E 3.18.12 Seja r um vértice de um grafo conexo G. Sejam x e y dois vérti-


ces adjacentes tais que dist(r, x) = dist(r, y). Mostre que G tem um circuito
ímpar. Mais especificamente, mostre que a cintura ímpar do grafo não é su-
perior a dist(r, x) + dist(r, y) + 1.

E 3.18.13 Use o conceito de distância para mostrar que um grafo é bicolorível


se e somente se não tem circuitos ímpares. (Compare com o exercício 3.3.23.
Sugestão: Veja o exercício 3.18.12.)

E 3.18.14 (A LGORITMO) Construa um algoritmo que calcule a cintura ímpar


de qualquer grafo dado. Construa um algoritmo que encontre um circuito
ímpar mínimo em qualquer grafo dado.

E 3.18.15 (A LGORITMO) Construa um algoritmo que calcule a cintura par


de qualquer grafo dado. Construa um algoritmo que encontre um circuito
par mínimo em qualquer grafo dado.

ED 3.18.16 (A LGORITMO) Dados dois vértices u e v de um grafo G, encontre


um caminho de comprimento mínimo na coleção de todos os caminhos de
comprimento par que têm extremos u e v.

ED 3.18.17 (A LGORITMO) Dados dois vértices u e v de um grafo G, encontre


um caminho de comprimento mínimo na coleção de todos os caminhos de
comprimento ímpar que têm extremos u e v.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 107

3.19 Mapas planos e grafos planares


Grosso modo, um grafo é planar se pode ser desenhado no plano86 sem que
as arestas se cruzem. A definição exata depende dos conceitos de arco e mapa
plano, como veremos a seguir.
Um arco é qualquer conjunto de pontos no plano R2 que seja homeomorfo ao
intervalo fechado [0, 1] da reta. Em outras palavras, um subconjunto A de R2
é um arco se existe uma bijeção contínua (no sentido topológico) do intervalo
[0, 1] em A. As imagens de 0 e 1 sob essa bijeção contínua são os extremos
do arco.87
Um mapa plano88 é um par (V, E) de conjuntos finitos, sendo V um conjunto
de pontos do plano e E um conjunto de arcos tal que

• os extremos de cada arco são elementos de V ,


• o interior de cada arco é disjunto de V ,
• o interior de cada arco é disjunto de todos os demais arcos,
• arcos diferentes têm diferentes pares de extremos.

Os elementos de V são os vértices do mapa e os de E são os arcos do mapa.

Figura 3.15: O mapa da esquerda não é plano. O mapa


plano da direita representa um K4 .

O grafo de um mapa plano (V, E) é definido da maneira óbvia: o conjunto


de vértices do grafo é V e dois vértices v e w são adjacentes no grafo se existe
um arco em E com extremos v e w.
Dizemos que um mapa plano (V, E) representa um grafo G se o grafo de

86
Do ponto de vista técnico, seria mais cômodo usar a superfície da esfera no lugar do
plano. Mas os resultados são equivalentes.
87
Por definição, os dois extremos são distintos.
88
Alguns livros dizem “grafo plano”. Essa expressão não deve ser confundida com “grafo
planar”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 108

(V, E) é isomorfo a G. Em geral, um grafo pode ser representado por vários


mapas planos diferentes.

P ROBLEMA DO M APA P LANO: Encontrar um mapa plano que repre-


sente um grafo dado.

Um grafo G é planar se for representável por um mapa plano, ou seja, se


existir um mapa plano cujo grafo é isomorfo a G.

P ROBLEMA DA P LANARIDADE: Decidir se um dado grafo é planar


ou não.

EF 3.19.1 Mostre que todo circuito é planar.

EF 3.19.2 Mostre que toda grade (veja exercício 1.1.4) é planar.

E 3.19.3 Mostre que o 3-cubo (veja exercício 1.1.12) é planar. O 4-cubo tam-
bém é planar? O 5-cubo é planar?

E 3.19.4 O grafo da dama t-por-t (veja exercício 1.1.6) é planar? O grafo do


cavalo t-por-t (veja exercício 1.1.7) é planar?

E 3.19.5 O grafo de Petersen (veja figura 2.1) é planar?

E 3.19.6 Seja G um K5 (isto é, um grafo completo com 5 vértices). Mostre


que G − e é planar qualquer que seja a aresta e de G. Repita o exercício com
K3,3 (veja figura 3.16) no lugar de K5 .

EI 3.19.7 Mostre que K3,3 (veja figura 3.16) não é planar.

EI 3.19.8 Mostre que K5 (veja figura 3.16) não é planar.

EI 3.19.9 Mostre que todo subgrafo de um grafo planar é planar. Em outras


palavras, se um grafo G tem um subgrafo não-planar então G não é planar.

E 3.19.10 Suponha que todos os subgrafos próprios de grafo G são planares.


É verdade que G é planar?
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 109

Figura 3.16: K3,3 e K5 não são planares. Veja exercícios 3.19.7 e 3.19.8.

E 3.19.11 Suponha que um grafo G não contém um K5 nem um K3,3 . É ver-


dade que G é planar?

E 3.19.12 Seja e uma ponte de um grafo G. Mostre que G é planar se e so-


mente se G − e é planar.
Seja v um vértice tal que G − v tem mais componentes que G. Mostre
que G é planar se e somente se G − v é planar.

Caracterização de grafos planares

Como vimos na seção 3.13, uma contração (= contraction) de um grafo G é


qualquer grafo H da seguinte forma:

• VH é uma partição de VG em partes não-vazias,


• o grafo induzido G[X] é conexo para todo elemento X de VH ,
• dois elementos distintos de VH são adjacentes em H se existe uma aresta
em G com uma ponta em um e outra no outro.

Figura 3.17: Um grafo G e uma contração de G.

A seguinte generalização do conceito de subgrafo é muito importante no es-


tudo do problema da planaridade e de vários outros tópicos da teoria dos
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 110

grafos: Um menor (= minor89 ) de um grafo G é qualquer contração de um


subgrafo de G.
A expressão “G tem um subgrafo contratível a H ” é usada às vezes como
abreviatura de “G tem um menor isomorfo a H ”.

E 3.19.13 Mostre que toda contração de um grafo planar é planar.

EI 3.19.14 Suponha que algum menor de um grafo G não é planar. Mostre


que G não é planar. (Em outras palavras, mostre que todo menor de um
grafo planar é planar.)

E 3.19.15 Mostre que o grafo de Petersen tem um menor isomorfo a K5 . De-


duza daí que o grafo de Petersen não é planar. Mostre também que o grafo
de Petersen tem um menor isomorfo a K3,3 .

E 3.19.16 Mostre que o 4-cubo tem um menor isomorfo a K3,3 . Deduza daí
que o 4-cubo não é planar.

E 3.19.17 Mostre que K5 não tem menor isomorfo a K3,3 . Mostre que K3,3
não tem menor isomorfo a K5 .

EID 3.19.18 (T EOREMA DE WAGNER90 ) Mostre que um grafo é planar se


e somente se não tem um menor isomorfo a K5 nem um menor isomorfo
a K3,3 .
(Esse fato é equivalente ao Teorema de Kuratowski, enunciado no exer-
cício 3.19.20.)

E 3.19.19 Um operação de subdivisão de um grafo H consiste no seguinte:


escolha um objeto s que não esteja em VH e troque alguma aresta vw de H
pelas arestas vs e sw. Um subdivisão de um grafo H é o grafo que resulta
de uma seqüência arbitrária (e recursiva) de operações de subdivisão.
Mostre que se S é uma subdivisão de um grafo H então H é isomorfo a
uma contração de S . A recíproca é verdadeira?
Suponha que um grafo G contém uma subdivisão de um grafo H . Mos-
tre que H é isomorfo a um menor de G. A recíproca é verdadeira?

89
Diga “máinor”.
90
Publicado em 1937 pelo matemático alemão Klaus W. Wagner ( − ).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 111

E 3.19.20 (T EOREMA DE K URATOWSKI91 ) Mostre que um grafo é planar se e


somente se não contém uma subdivisão de K5 nem uma subdivisão de K3,3 .
(Veja os exercícios 3.19.18 e 3.19.19.)
(Esse fato é equivalente ao Teorema de Wagner, enunciado no exercí-
cio 3.19.18.)

E 3.19.21 (A LGORITMO) Construa um algoritmo que decida se um dado


grafo é planar.

Faces e dualidade
S
O suporte de um mapa plano (V, E) é o conjunto V ∪ E (trata-se, obvia-
mente, de um subconjunto de R2 ).92 Em outras palavras, o suporte do mapa
é o conjunto de todos os vértices do mapa e todos os pontos de R2 que per-
tencem a arcos do mapa.
Uma face (= face) de um mapa plano (V, E) é qualquer região do comple-
mento do suporte do mapa, ou seja, qualquer
S componente conexo (no sen-
93 2
tido topológico ) do conjunto R r V ∪ E). A fronteira de cada face é
formada por arcos do mapa; o número de arcos na fronteira de uma face f é
o grau de f .
Se o grafo de um mapa plano com 3 ou mais vértices é conexo e não tem
pontes (veja seção 2.5), então as faces do mapa são “bem comportadas”:

cada face é homeomorfa a um disco;


a fronteira de cada face corresponde a um circuito no grafo do mapa;
cada arco pertence à fronteira de exatamente duas faces diferentes.

O grafo das faces, ou grafo dual, de um mapa plano (V, E) é definido da


seguinte maneira:94 os vértices do grafo são as faces do mapa e duas faces
são adjacentes se suas fronteiras têm pelo menos um arco em comum.95

91
Publicado em 1930 pelo matemático polonês Kazimierz Kuratowski ( − ).
92
S
Se E = {A1 , A2 , . . . , Ak } então E denota o conjunto A1 ∪ A2 ∪ · · · ∪ Ak .
93
O conceito topológico de conexão é formalmente análogo ao conceito de conexão da
teoria dos grafos: uma parte X do plano é conexa se, para quaisquer pontos x e x0 em X ,
existe um arco com extremos em x e x0 cujos pontos estão todos em X .
94
Note que o grafo dual é definido a partir de um mapa e não a partir do grafo do mapa.
Um grafo (planar) pode ser representado por vários mapas planos diferentes, e cada um
desses mapas tem o seu grafo dual.
95
O estudo da dualidade planar fica mais “limpo” se a definição de grafo é liberalizada
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 112

Um exemplo: o grafo dos estados do Brasil que examinamos no exercí-


cio 1.1.15 é o grafo dual do mapa do Brasil.

E 3.19.22 Se o grafo de um mapa plano (V, E) é um caminho então (V, E) tem


apenas uma face. Se o grafo de um mapa plano (V, E) é um circuito então
(V, E) tem exatamente duas faces (e as duas faces têm a mesma fronteira).

E 3.19.23 Um mapa plano (V, E) tem uma e uma só face se e somente se o


grafo de (V, E) é uma floresta.

E 3.19.24 Quantas faces tem o mapa plano de uma grade p-por-q?

E 3.19.25 Quantas faces tem o mapa plano do 3-cubo?

E 3.19.26 Dê um exemplo de um grafo conexo planar que possa ser represen-


tado por dois mapa planos com diferentes números de faces.

EI 3.19.27 (F ÓRMULA DE E ULER96 ) Seja (V, E) um mapa plano cujo grafo é


conexo. Mostre que
|V | − |E| + |F | = 2 ,
onde F é o conjunto das faces do mapa. (Verifique que a fórmula é falsa em
mapas cujos grafos não são conexos.)

E 3.19.28 Seja F o conjunto das faces de um mapa plano (V,PE). Suponha que
o grafo do mapa é conexo e não tem pontes. Mostre que f ∈F d(f ) = 2|E|,
sendo d(f ) o grau da face f .

EI 3.19.29 Seja G um grafo planar com 3 ou mais vértices. Mostre que

m(G) ≤ 3n(G) − 6 . (3.2)

(Sugestão: Use a fórmula de Euler.) Como são as faces de um mapa plano


(V, E) tal que |E| = 3|V | − 6?

para permitir que (1) duas ou mais arestas diferentes tenham o mesmo par de pontas (ou seja,
para permitir “arestas paralelas”) e (2) uma aresta tenha duas pontas iguais (arestas desse
tipo são “laços”). É claro que a definição de mapa plano deve ser liberalizada de acordo.
Mas prefiro não adotar essa liberalização no presente texto. Para compensar, será necessário
evitar ocasionalmente os grafos que tenham pontes ou vértices de grau 2.
96
Leonhard Euler ( − ).
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 113

EF 3.19.30 É verdade que todo grafo G com m(G) ≤ 3n(G) − 6 é planar?

D 3.19.31 Prove a seguinte conjetura:97 Todo grafo G com m(G) > 3n(G) − 6
contém uma subdivisão de K5 . (Veja exercício 3.19.19.)

E 3.19.32 Deduza de (3.2) que K5 não é planar.

E 3.19.33 Seja G um grafo com 3 ou mais vértices e cintura (veja seção 3.18)
não-inferior a 4. Mostre que se G é planar então m(G) ≤ 2n(G)−4. (Compare
com o exercício 3.19.29.) Deduza daí que K3,3 não é planar.

E 3.19.34 Seja G um grafo e k um número natural não-inferior a 3. Suponha


que G tem pelo menos 12 (k + 2) vértices e cintura não-inferior a k. Mostre
que se G é planar então m(G) ≤ (n(G) − 2)k/(k − 2). (Compare com o
exercício 3.19.33.)

E 3.19.35 Mostre que todo grafo planar tem pelo menos um vértice de grau
não-superior a 5. Em outras palavras, mostre que δ(G) ≤ 5 para todo grafo
planar G. (Sugestão: Veja o exercício 3.19.29.)

E 3.19.36 Dê exemplo de um grafo planar que não contém vértices de grau


menor que 5.

E 3.19.37 Seja G um grafo com 11 ou mais vértices. Mostre que G e o seu


complemento G não podem ser ambos planares.

E 3.19.38 Seja M um mapa plano que representa uma grade 3-por-4. Faça
uma figura do grafo das faces (ou seja, do grafo dual) de M .

E 3.19.39 Faça uma figura dos grafos das faces de cada um dos mapas dese-
nhados nas figuras 3.18 e 3.19.

E 3.19.40 Seja G um K5 e e uma aresta de G. Seja M um mapa plano que


representa G − e. Seja G∗ o grafo das faces (ou seja, o grafo dual) de M . Faça
uma figura de G∗ . Verifique que G∗ é planar. Exiba uma representação plana,
digamos M ∗ de G∗ . Faça uma figura do grafo das faces de M ∗ .

97
A conjetura foi proposta por G. A. Dirac em 1964.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 114

Figura 3.18: Faça uma figura do grafo dual de


cada um dos mapas planos da figura.

Figura 3.19: Faça uma figura do grafo dual de


cada um dos mapas planos da figura.

EI 3.19.41 Seja G o grafo de um mapa plano M . Suponha que G é conexo,


não tem pontes e não tem vértices de grau 2 (ou seja, δ(G) ≥ 3). Seja G∗ o
grafo das faces (= grafo dual) do mapa M . Mostre que G∗ é planar.
Seja M ∗ um mapa plano que representa G∗ . Seja G∗∗ o grafo das faces
de M ∗ . Mostre que G∗∗ é isomorfo a G.

E 3.19.42 (B OM) Seja G o grafo de um mapa plano (V, E). Suponha que G é
conexo, não tem pontes e não tem vértices de grau 2 (ou seja, δ(G) ≥ 3). Seja
G∗ o grafo das faces (ou seja, grafo dual) do mapa (V, E). Mostre que G∗ é
bicolorível se e somente se G tem um ciclo euleriano.

E 3.19.43 Um mapa plano é auto-dual se o seu grafo for isomorfo ao seu


grafo dual. Mostre que se (V, E) é auto-dual então 2|V | = |E| + 2. Mostre
que nem todo mapa plano (V, E) tal que 2|V | = |E| + 2 é auto-dual.

E 3.19.44 Uma cobertura dupla por circuitos (= circuit double cover) de um cobertura
grafo G é uma multicoleção98 de circuitos dotada da seguinte propriedade: dupla
por circuitos
98
Uma multicoleção pode conter mais de uma “cópia” de cada elemento. No presente
contexto, a multicoleção tem no máximo duas cópias de cada elemento.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 115

cada aresta de G pertence a exatamente dois dos circuitos da coleção. (Com-


pare com o exercício 3.15.9.)
Mostre que todo grafo planar conexo sem pontes tem uma cobertura du-
pla por circuitos.99

Coloração de grafos planares

O conjunto de vértices de qualquer grafo planar pode ser colorido com pou-
cas cores.

E 3.19.45 Mostre que χ(G) ≤ 6 para todo grafo planar G. (Compare com o
exercício 3.7.32.)

E 3.19.46 Mostre que χ(G) ≤ 5 para todo grafo planar G. (Veja exercí-
cios 3.13.3 e 3.13.5.)

EDD 3.19.47 (T EOREMA DAS Q UATRO C ORES100 ) Mostre que todo grafo pla-
nar admite uma coloração dos vértices com 4 ou menos cores. Em outras
palavras, mostre que
χ(G) ≤ 4
para todo grafo planar G.

E 3.19.48 Mostre que existem grafos planares que não admitem coloração de
vértices com 3 cores apenas.

E 3.19.49 Calcule o número cromático do grafo dos estados do Brasil (veja


exercício 1.1.15).

E 3.19.50 (A LGORITMO) Construa um algoritmo que produza uma 5-


coloração dos vértices de qualquer grafo planar dado.

EDD 3.19.51 (A LGORITMO) Construa um algoritmo que produza uma 4-


coloração mínima dos vértices de qualquer grafo planar dado.

99
Szekeres e Seymour conjeturam (1973 e 1977, respectivamente) que todo grafo sem pon-
tes (planar ou não) tem uma cobertura dupla por circuitos.
100
Demonstrado em 1976 por Kenneth Appel e Wolfgang Haken. Demonstração simplifi-
cada em 1997 por Neil Robertson, Daniel P. Sanders, Paul D. Seymour e Robin Thomas. Veja
as páginas “The four color theorem” e “Four-Color Theorem”.
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 116

E 3.19.52 Mostre que α(G) ≥ 14 n(G) para todo grafo planar G. (Seria muito
interessante ter uma prova desse fato que não dependesse do teorema das
quatro cores, exercício 3.19.47.)

EDD 3.19.53 Mostre que χ 0 (G) = 3 para todo grafo 3-regular G planar. (Este
fato é equivalente ao Teorema das Quatro Cores, exercício 3.19.47.)
Apêndice A

O alfabeto grego

A teoria dos grafos, tal como outras áreas da matemática, considera o alfabeto latino
insuficiente e recorre freqüentemente ao alfabeto grego:

α A alfa ν N nü
β B beta ξ Ξ ksi
γ Γ gama o O ômicron
δ ∆ delta π Π pi
ε E epsilon ρ P rô
ζ Z zeta σ Σ sigma
η H eta τ T tau
θ Θ teta υ Υ upsilon
ι I iota ϕ Φ fi
κ K kapa χ X qui
λ Λ lambda ψ Ψ psi
µ M mü ω Ω ômega

O símbolo ∇ não pertence ao alfabeto grego. Dizem que o nome do símbolo —


nabla — designa uma harpa egípcia. Não confunda ∇ com ∆.

117
Bibliografia

[ACOS91] Y. Alavi, G. Chartrand, O. R. Oellermann, and A. J. Schwenk, edi-


tors. Graph Theory, Combinatorics, and Applications. John Wiley,
1991. 119

[BLS99] A. Brandstädt, V.B. Le, and J.P. Sprinrand. Graph Classes: A Sur-
vey. SIAM Monographs on Discrete Mathematics and Applicati-
ons. SIAM, 1999.

[BM76] J. A. Bondy and U. S. R. Murty. Graph Theory with Applicati-


ons. Macmillan/Elsevier, 1976. [http://www.ecp6.jussieu.fr/
pageperso/bondy/books/gtwa/gtwa.html]. 1

[BM07] J. A. Bondy and U. S. R. Murty. Graph Theory. Graduate Texts


in Mathematics. Springer Verlag, 2007. [http://blogs.springer.
com/bondyandmurty]. 1

[Bol98] B. Bollobás. Modern Graph Theory, volume 184 of Graduate Texts in


Mathematics. Springer-Verlag, 1998. 1

[Die00] R. Diestel. Graph Theory, volume 173 of Graduate Texts


in Mathematics. Springer-Verlag, second edition, 2000.
[http://www.math.uni-hamburg.de/home/diestel/books/graph.
theory/index.html]. 1

[GJ79] M. R. Garey and D. S. Johnson. Computers and Intractability: a


Guide to the Theory of NP-Completeness. W. H. Freeman, 1979. 15,
94, 95

[Har92] D. Harel. Algorithmics: The Spirit of Computing. Addison-Wesley,


second edition, 1992. 15, 94, 95

[Knu93] D. E. Knuth. The Stanford GraphBase: A Platform for Combinatorial


Computing. ACM Press and Addison-Wesley, 1993. 11

118
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 119

[LP86] L. Lovász and M. D. Plummer. Matching Theory, volume 29 of


Annals of Discrete Mathematics. North-Holland, 1986. 1

[Luc79] C. L. Lucchesi. Introdução à Teoria dos Grafos. 12o¯ Colóquio Brasi-


leiro de Matemática. IMPA (Instituto de Matemática Pura e Apli-
cada), 1979. 1

[MST + 98] O. Melnikov, V. Sarvanov, R. Tyshkevich, V. Yemelichev, and


I. Zverovich. Exercises in Graph Theory, volume 19 of Kluwer Texts
in the Mathematical Sciences. Kluwer, 1998. 1

[Rob76] F. S. Roberts. Discrete Mathematical Models with Applications to So-


cial, Biological and Environmental Problems. Prentice-Hall, 1976.

[Rob78] F. S. Roberts. Graph Theory and its Application to Problems of Society,


volume 29 of NFS-CBMS monographs. SIAM (Society for Industrial
and Applied Mathematics), 1978.

[Rob91] F. S. Roberts. From Garbage to Rainbows: Generalizations of Graph


Coloring and their Applications, pages 1031–1052. In Alavi et al.
[ACOS91], 1991.

[Sip97] M. Sipser. Introduction to the Theory of Computation. PWS Pu-


blishing, 1997. [http://www-math.mit.edu/~sipser/book.html].
15, 94, 95

[vL90] J. van Leeuwen. Graph algorithms. In J. van Leeuwen, editor, Al-


gorithms and Complexity, volume A of Handbook of Theoretical Com-
puter Science, pages 527–631. Elsevier and MIT Press, 1990.

[Wil79] R. J. Wilson. Introduction to Graph Theory. Academic Press, second


edition, 1979. 1
Índice Remissivo

bxc, 34 ω, 59
dxe, 57 χ, 62
V (2) , 8 χ 0 , 83
VG , 8 o, 80
EG , 8 A ⊕ B, 31
n(G), 8
m(G), 8 adjacent, 7
c(G), 36 adjacentes
G, 8 arestas, 14, 70
Kn , 8 vértices, 7
Kp,q , 12, 50 alcanos, 8
L(G), 14 aleatório, 42
N(v), 17 algoritmo
Adj , 17 guloso, 56, 65, 68, 84, 85
N(X), 75 húngaro, 76
d(v), 17 alternating, 70
d(X), 30 Appel, 115
δ(G), 18 arco, 107
δ(X), 30 aresta, 7
∆(G), 18 de corte, 30
∇(X), 30 aresta-biconexo, 41
X ⊂ Y , 25 2-aresta-conexo, 41
Y ⊃ X , 25 arestas
G ⊆ H , 25 adjacentes, 14, 70
G ∪ H , 21 múltiplas, 8, 112
G ∩ H , 21 paralelas, 8, 112
G[X], 25 árvore, 38
G(n), 42 das distâncias, 105
G − v, 25 geradora, 100
G − X , 25 augmenting path, 71
G − e, 25 auto-complementar, 46
G − A, 25 β, 61
α, 54 Berge, 89
α 0 , 70 BFS, 105
β, 61 bicoloração, 62

120
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 121

bicolorível, 62 circuito, 22
biconexo, 41 fundamental, 101, 102
bipartição hamiltoniano, 91
de conjunto, 50 ímpar, 50
de grafo, 50 ímpar mínimo, 106
bipartido, 50 máximo, 91
completo, 12, 50 mínimo, 104
bipartite, 50 par mínimo, 106
bishop, 10 circunferência, 91
bispo, 10 classes de grafos, 16
Bollobás, 1 clique, 59
breadth-first search, 105 clique cover, 62
bridge, 30 clique number, 59
buraco ímpar, 89 closed, 29, 96
busca em largura, 105 cobertura
de circuitos
c(G), 36 por arestas, 103
caixeiro viajante, 95 por vértices, 103
caminho, 22 dupla por circuitos, 114
alternante, 70 por arestas, 82
de aumento, 71 por cliques, 62
hamiltoniano, 91 por vértices, 61
ímpar mínimo, 106 simples por circuitos, 96
maximal, 25 coboundary, 30
máximo, 25, 91 colorable, 62
mínimo, 104 k-coloração, 62
par mínimo, 106 coloração
carteiro chinês, 98 de arestas, 83
cavalo, 10 de vértices, 62, 88
certificado, 53, 67, 73, 81, 98 mínima, 62, 83
chinese postman problem, 98 total, 87
chromatic colorível, 62
index, 83 k-colorível, 62
number, 62 comparabilidade, 13
Chudnovsky, 89 complemento, 8
Chvátal, 93 completo, 8
ciclo, 29, 96 componente, 36
euleriano, 96 ímpar, 80
cintura, 104 comprimento
ímpar, 106 de caminho, 23
par, 106 de circuito, 23
circuit double cover, 114 de passeio, 96
circuit simple cover, 96 de trilha, 96
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 122

conector, 100 EF, 3


conexo, 33 EI, 3
conjetura de EID, 3
Berge, 89 EU, 3
Chvátal, 93 EG , 8
Hadwiger, 90 edge, 7
conjunto edge cover, 82
estável, 54 2-edge-2-connected, 41
independente, 54 edge-biconnected, 41
conjunto completo, 59 Edmonds, 81
connected, 33 emparelhamento, 70
contração, 88, 109 de peso máximo, 82
contraction, 88, 109 perfeito, 70
corte, 30 Erdős, 49
cubo, 11 estável, 54
k-cubo, 11 estrela, 12
custo de aresta, 103 Euler, 96, 112
cut, 30 euleriano, 96
cut edge, 30 extremos de caminho, 22
cut vertex, 86
cycle, 29, 96 face, 111
cycle double cover, 114 face, 111
fechado, 29, 96
∆(G), 18 feedback
d(X), 30 edge set, 103
d(v), 17 vertex set, 103
δ(G), 18 filho de vértice, 38
D, 3 floresta, 38
dama, 9 folha, 38
decomposição em circuitos, 96 forest, 38
degree, 17 fórmula de Euler, 112
densidade, 18 fronteira de face, 111
desigualdade triangular, 105
diâmetro, 105 G(n), 42
diferença simétrica, 31 Gallai, 49, 81, 89
Dirac, 94, 113 gerador (subgrafo), 25
dist( ), 104 girth, 104
distância, 104 grade, 9
dual de mapa plano, 111 gráfica (seqüência), 48
duro, 87, 93 grafo, 7
-linha, 14
EE, 2 acíclico, 38
ED, 3 aleatório, 42
EDD, 3 aresta-biconexo, 41
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 123

bicolorível, 62 médio, 19
bipartido, 50 mínimo, 18
bipartido completo, 12, 50 greedy, 56, 65
k-colorível, 62 grid, 9
complementar, 8 guloso, 56
completo, 8
cúbico, 18 Hadwiger, 90
da dama, 9 Hajós, 90
da torre, 10 Haken, 115
das arestas, 14 Hall, 78
das faces, 111 Hamilton, 91
das palavras, 11 hamiltoniano, 91
de Catlin, 64 Heawood, 27
de comparabilidade, 13 heurística
de Heawood, 27 da troca de cores, 85
de intervalos, 13 hexágono, 23
de Kneser, 11 hidrocarbonetos, 8
de mapa plano, 107
incide, 7
de matriz simétrica, 13
independence number, 54
de Petersen, 11
independent, 54
de Turán, 58
índice de estabilidade, 54
do bispo, 10
indução, 26, 91
do cavalo, 10
interseção de grafos, 21
do rei, 11
intervalos, 13
dos estados, 12
isolado (vértice), 18
dual, 111
isomorfismo, 43
duro, 87, 93
isomorphism, 43
euleriano, 96
isthmus, 30
grade, 9
istmo, 30
hamiltoniano, 91
perfeito, 89 Kn , 8
planar, 13, 108 Kp,q , 50
plano, 107 Kn , 8
regular, 18 king, 11
simples, 8 Kirkman, 91
vazio, 8 Kneser, 11
grafos disjuntos, 21 knight, 10
graph, 7 König, 76, 86
graph design, 48 Kruskal, 101, 103
grau, 17 Kuratowski, 111
de conjunto, 30
de face, 111 L(G), 14
máximo, 18 laço, 8, 112
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 124

leaf, 38 parallel edges, 112


liga u a v, 22 parallel edges, 8
ligado, 33 parte de conjunto, 25
line graph, 14 partição, 36
loop, 112 passeio, 29, 72, 96
loop, 8 de v a w, 96
Lovász, 1, 11, 89 fechado, 29, 96
simples, 96
m(G), 8 pentágono, 23
mapa plano, 107 perfect
matching, 70 elimination scheme, 89
maximum weight, 82 graph, 89
matriz de adjacências, 13 matching, 70
maximal, 54, 70, 102 peso de aresta, 82, 101
maximal vs máximo, 25, 70 Petersen, 11
máximo, 54, 70 planar, 13, 108
menor, 88, 110 ponta de aresta, 7
minimal vs mínimo, 100 ponte, 30
minor, 88, 110 Prim, 101, 103
multiple edges, 112 problema
multiple edges, 8 do caixeiro viajante, 95
do carteiro chinês, 98
n(G), 8
N(v), 17 quadrado, 23
N(X), 75 quase todo, 42
nabla, 30 queen, 10
não-ordenado, 7
neighbor, 7 raiz de árvore, 38
neighborhood, 17 random, 12
NP-completo, 15 regular, 18
NP-difícil, 15 rei, 11
número cromático, 62 Robertson, 89, 115
número de cores, 62, 83 rook, 10
Roy, 89
o(G), 80
ω, 59 separa, 30
odd component, 80 seqüência gráfica, 48
odd hole, 89 Seymour, 89, 115
ordem parcial, 13 slink, 73
origem de passeio, 29, 96 slither, 73
spanning, 25, 100
pai de vértice, 38 stability number, 54
palavras, 11 stable, 54
par não-ordenado, 7 star, 12
FEOFILOFF www.ime.usp.br/~pf/grafos-exercicios/ 125

subdivisão, 110 TSP, 95


subfloresta, 102 Turán, 58
subgrafo, 25 Tutte, 80
acíclico, 102
gerador, 25 união de grafos, 21
induzido, 25 usa k cores, 62
maximal, 36
VG , 8
próprio, 25
vazio, 8
suporte de mapa plano, 111
vertex cover, 61
Szekeres, 115
vértice, 7
tabuleiro, 10 central, 105
teorema das de corte, 86
Quatro Cores, 115 isolado, 18
teorema de saturado, 70
Berge, 72 vértices adjacentes, 7
Brooks, 88 vizinho, 7
Dirac, 94
Wagner, 110
Erdős e Gallai, 49
walk, 29, 72, 96
Euler, 98
Gallai–Roy, 89
Hall, 78
Havel e Hakimi, 49
König, 86
König–Egerváry, 76
Kuratowski, 111
Turán, 58
Tutte, 80
Tutte–Berge, 81
Vizing, 87
Wagner, 110
término de passeio, 29, 96
Thomas, 89, 115
tipos de grafos, 16
torre, 10
total coloring, 87
tough, 87, 93
trail, 29, 96
traveling salesman, 95
tree, 38
triângulo, 23
trilha, 29, 96
euleriana, 96

You might also like