Вы находитесь на странице: 1из 61

Anotações sobre Grafos


Rodrigo Carlos Silva de Lima

rodrigo.uff.math@gmail.com

2
Sumário

1 Grafos 5
1.1 Definições básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Representação gráfica dos grafos . . . . . . . . . . . . . . . . . . . 6

1.1.2 d(v) = 2m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
v∈V
1.1.3 Famı́lias especiais de grafos . . . . . . . . . . . . . . . . . . . . . . 31
1.1.4 Isomorfismo de grafos . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.2 Matriz de incidência e de adjacência . . . . . . . . . . . . . . . . . . . . . 42
1.3 Grafos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 43
1.4 Problemas de trajeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 Cadeias de Markov e grafos . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.6 Algoritmos de caminho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.6.1 Algoritmo de Fleury . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.6.2 O problema chinês do carteiro . . . . . . . . . . . . . . . . . . . . . 54
1.6.3 O problema das pontes de Königsberg . . . . . . . . . . . . . . . . 56
1.6.4 O problema de Count Von Diamond . . . . . . . . . . . . . . . . . 58
1.6.5 O Problema do Desenho da Casa . . . . . . . . . . . . . . . . . . . 59
1.7 Grafos e palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.7.1 Grafos e Doublets de Lewis Carrol . . . . . . . . . . . . . . . . . . 60
1.8 Exemplos de grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.8.1 WWW a rede mundial de internet . . . . . . . . . . . . . . . . . . 61

3
4 SUMÁRIO
Capı́tulo 1

Grafos

1.1 Definições básicas

m Definição 1 (Grafos). • Um grafo G é um par ordenado (V(G), E(G))


onde V(G) é um conjunto de elementos chamados verticesa e E(G) um con-
junto de elementos chamados arestas( cujos elementos podem ser chamados
respectivamente de vertices e arestas do grafo G) munido de uma função fG
que associa cada aresta de G a dois vertices de G, não necessariamente dis-
tintos. Se fica clara no contexto o grafo que estamos estudando, suprimimos
o sı́mbolo G e denotamos apenas (V, E) ou G e a função como f.

• Denotamos o conjunto dos pares não ordenados de elementos de V(G) como


V ×N V , daı́ temos a seguinte função

f : E → V ×N V

que a cada a ∈ V associa o par não ordenado (x, y) = (y, x), f(a) = (x, y).

• Se a é uma aresta e x, y vertices tais que f(a) = (x, y), então x e y são
chamados de extremos de a e diz-se que a conecta x e y ou é incide nesses

5
6 CAPÍTULO 1. GRAFOS

elementos.
a
Alguns autores usam o termo nó para vértices e arcos para arestas.

m Definição 2 (Ordem e tamanho de um grafo). Se o conjunto de vertices e


arestas de G forem finitos, denotamos esses números, respectivamente, por

• v(G) = v = |V| = |V(G)| = n ,número de vertices chamado de ordem de G.

• e(G) = |E(G)| = |E| = m, número de arestas chamado de tamanho de G.

Iremos considerar grafos em que V e E são conjuntos finitos.

1.1.1 Representação gráfica dos grafos

Podemos representar grafos graficamente tomando os vértices como pontos dis-


tintos no plano em posições arbitrárias e as arestas que ligam dois vértices como
linhas.

m Definição 3 (Vértices adjacentes). Dois vértices são ditos adjacentes se existe


uma aresta incidente em ambos.

Figura 1.1: V1 e V2 são vértices adjacentes pois existe uma aresta incidente em ambos,
V2 e V3 não são adjacentes, pois não existe aresta que os liga.
1.1. DEFINIÇÕES BÁSICAS 7

m Definição 4 (Arestas adjacentes). Duas arestas são ditas adjacentes se inci-


dem em um mesmo vértice.

Figura 1.2: e1 e e2 são arestas adjacentes pois incidem em v1 , e1 e e3 não são


adjacentes pois não incidem em um mesmo vértice. V1 e V2 são vizinhos, porém V1 e
V4 não são vizinhos.

m Definição 5 (Vértices vizinhos). Dois vértices distintos são ditos vizinhos


se existe uma aresta incidente em ambos. O conjunto dos vizinhos de um vértice
v é denotado por NG (v).

m Definição 6 (Laço). Uma aresta com extremos idênticos é chamado de Laço.


8 CAPÍTULO 1. GRAFOS

Figura 1.3: e1 é um laço, pois possui como extremo apenas V1 .

m Definição 7 (Link). Uma aresta com extremos distintos é chamado de link


(qual nome é usado em português para esse conceito?).

m Definição 8 (Arestas paralelas). Duas arestas são paralelas, se são links com
mesmos extremos.

Figura 1.4: e1 e e2 são arestas paralelas.

m Definição 9 (Multigrafo). Um multigrafo é todo grafo que possui arestas


paralelas.
1.1. DEFINIÇÕES BÁSICAS 9

m Definição 10 (Grafo nulo). É o grafo que não possui vértices. Iremos em


geral tratar de grafos não nulos.

m Definição 11 (Grafo trivial). É o grafo que possui apenas um vértice.

m Definição 12 (Grafo simples). Um grafo é dito simples se ele não possui


laço ou arestas paralelas.

m Definição 13 (Grau dos vértices-Valência). O grau de um vértice v em um


grafo G denotado por dG (v) ou d(v) quando ficar claro o grafo, é o número de
arestas de G incidentes em v e caso haja um laço são contadas duas arestas.
Denotamos o mı́nimo e o máximo dos graus dos vértices de um grafo por δ(G) e
∆(G) respectivamente.

Figura 1.5: d(v1 ) = 5, contamos 2 de um laço 2 arestas paralelas e (v1 , v3 ), d(v2 ) = 2


e d(v3 ) = 1.

m Definição 14 (Sequência de Graus). Se enumeramos os vértices de um grafo


como (vk )n1 , então (d(vk ))n1 é chamada sequência de graus do grafo.
10 CAPÍTULO 1. GRAFOS

Figura 1.6: Grafo em forma de Garra, chamado Claw.Temos os vértices enumera-


dos, d(V1 ) = 3 e d(V2 ) = d(V3 ) = d(V4 ) = 1, logo temos a sequência de graus
(d(V1 ), d(V2 ), d(V3 ), d(V4 )) = (3, 1, 1, 1).

b Propriedade 1. Seja G um grafo simples, então G possui pelo menos dois


vértices de mesmo grau.
Esse resultado modela o fato de num grupo de duas ou mais pessoas, existem
pelo menos duas pessoas que possuem exatamente o mesmo número de amigos no
grupo. A modelagem pode ser feita com grafos simples, pois se A é amigo de B
então B é amigo de A, não considerando que uma pessoa seja amiga de si mesma
(sem laços) ou amiga de outra pessoa mais de uma vez (sem arestas paralelas).

ê Demonstração. O grau de cada vértice pode variar de 0 até n − 1, pois o


vértice pode incidir no máximo 1 vez em cada um dos outros n − 1 vértices. Não
podem existir vértices vt e vs tais que d(vt ) = 0 e d(vs ) = n − 1, pois vs deveria incidir
em vt , daı́ vt não teria grau nulo, então temos n vértices para n − 1 graus possı́veis,
o que implica pelo princı́pio da casa dos pombos que devem haver dois vértices com
mesmo grau.

Z Exemplo 1. Pode existir um grupo de cinco pessoas, tais que quaisquer duas
delas tem exatamente um amigo em comum, como mostra a construção da tabela
abaixo.
1.1. DEFINIÇÕES BÁSICAS 11

− v1 v2 v3 v4 v5
v1 − (v2 , v1 ) (v3 , v1 ) (v4 , v1 ) (v5 , v1 )
v2 (v1 , v2 ) − (v3 , v2 ) − −
v3 (v1 , v3 ) (v2 , v3 ) − − −
v4 (v1 , v4 ) − − − (v5 , v4 )
v5 (v1 , v5 ) − − (v4 , v5 ) −

Figura 1.7: Grafo correspondente a tabela.

b Propriedade 2. Não existe um grupo de quatro pessoas, tais que quaisquer


duas delas tem exatamente um amigo em comum.

ê Demonstração. Denotamos as pessoas por vértices v1 , v2 , v3 , v4 . Vamos


denotar que vs e vt tem um amigo vp em comum por vs ∩ vt = vp . v1 e v2 devem ter
um amigo em comum, digamos v3 ( sem perda de generalidade, pois se não trocamos
os nomes). Ficamos com a tabela

− v1 v2 v3 v4
v1 − (v3 , v1 )
B = v2 − (v3 , v2 ) −
v3 (v1 , v3 ) (v2 , v3 ) − −
v4 − − −
12 CAPÍTULO 1. GRAFOS

v1 e v3 devem ter um amigo em comum, temos duas possibilidades v2 ou v4 , vamos


analisar primeiro a possibilidade de ser v4 . Ficamos com a seguinte tabela

− v1 v2 v3 v4
v1 − (v3 , v1 ) (v4 , v1 )
B1 = v2 − (v3 , v2 ) −
v3 (v1 , v3 ) (v2 , v3 ) − (v4 , v3 )
v4 (v1 , v4 ) − (v3 , v4 ) −

Figura 1.8: Grafo da tabela B1

com isso podemos ver que ganhamos v3 ∩ v4 = v1 , v2 ∩ v4 = v3 e v1 ∩ v4 = v3 , falta


determinar apenas v2 ∩ v3 em que temos duas possibilidades v1 ou v4 . Se v1 = v2 ∩ v3 ,
ficamos com a tabela

− v1 v2 v3 v4
v1 − (v2 , v1 ) (v3 , v1 ) (v4 , v1 )
B11 = v2 (v1 , v2 ) − (v3 , v2 ) −
v3 (v1 , v3 ) (v2 , v3 ) − (v4 , v3 )
v4 (v1 , v4 ) − (v3 , v4 ) −

de onde segue v1 ∩v3 = {v2 , v4 } o que não pode acontecer, o grafo dessa configuração
segue abaixo
1.1. DEFINIÇÕES BÁSICAS 13

Figura 1.9: Grafo da tabela B11

Se temosv2 ∩ v3 = v4 , adicionamos a aresta (v2 , v4 ) ao grafo de B1 e ficamos com


a configuração abaixo

Figura 1.10:

que é semelhante a anterior , apenas por uma mudança do nome dos vértices,
logo essa configuração não fornece uma solução para o problema.

Analisamos agora o caso de V1 ∩ V3 = v2 . Que a princı́pio não causa nenhum


problema, vejamos então as possbilidades para v1 ∩ v4 , que são v3 ou v2 , se temos v3
, ainda não temos problemas, ficamos com o grafo
14 CAPÍTULO 1. GRAFOS

Figura 1.11: B3

em que também não temos problemas, agora olhamos as possibilidades para v3 ∩v4
que podem ser v1 ou v2 , suponha v1 ficamos com um grafo exatamente igual ao da
figura B11 o que não pode acontecer. Supondo ser v2 então v1 ∩ v4 = {v2 , v3 } como
podemos perceber na figura abaixo

Figura 1.12:

Agora no último caso que falta se v1 ∩ v4 = v2 , temos o grafo

Figura 1.13: B3
1.1. DEFINIÇÕES BÁSICAS 15

que tem a mesma configuração do grafo B3 , portanto não é possı́vel encontrar


a configuração pedida. Como testamos todos possı́veis casos, fica provado que não
existe um grupo de quatro pessoas, tais que quaisquer duas delas tem exatamente um
amigo em comum.

m Definição 15 (Grafo regular de grau r). Um grafo G é dito ser regular de


grau r quando vale d(v) = r ∀ v ∈ V, isto é, todos os vértices possuem o mesmo
grau r.

Figura 1.14: Grafo regular de grau 3, pois todo vértice possui grau 3.

Figura 1.15: Um grafo regular de grau 2.

b Propriedade 3 (Caracterização dos grafos k-regulares, k = 0, 1, 2).


16 CAPÍTULO 1. GRAFOS

m Definição 16 (t-cubo). O t-cubo, denotado como Qt , é um grafo simples


cujos vértices são t-uplas ordenadas de coordenadas em {0, 1}, de tal maneira que
dois vértices são adjacentes ⇔ diferem em exatamente uma coordenada.

Figura 1.16: Representação de um 1-cubo e de um 2-cubo.

b Propriedade 4. Seja um n-cubo, então cada vértice possui exatamente n


vértices adjacentes, isto é, um n-cubo é um grafo regular de grau n.

Figura 1.17: Representação de um 3-cubo .

ê Demonstração. Tomamos um vértice qualquer do n-cubo, (a1 , · · · , an ), fixa-


mos n − 1 coordenadas da n-upla e deixamos a outra coordenada ak variar, existem
duas possibilidades para ak , ou ak = 0 ou ak = 1, supondo sem perda de generalidade
1.1. DEFINIÇÕES BÁSICAS 17

que ak = 0, então existe apenas uma outra upla com ak = 1, que difere na k-ésima
coordenada com a upla dada. Para cada uma das n coordenadas podemos aplicar o
mesmo argumento, chegando num total de n vértices adjacentes.

$ Corolário 1. O número de vértices do n-cubo é 2n , pois para cada coordenada


temos 2 escolhas ak = 0 ou ak = 1.

n2n
$ Corolário 2. O número de arestas em um n-cubo é de pois cada vértice
2
possui n arestas então com 2n vértices contamos n2n arestas, porém contamos
duas vezes o número total de arestas, então dividimos por 2 o resultado.

Figura 1.18: Representação de um 4-cubo.

m Definição 17 (Vértice isolado). É um vértice de grau zero.

m Definição 18 (Grau médio). O grau médio de um grafo com n vértices é o


número
1 ∑
d(G) := d(v).
n v∈V
18 CAPÍTULO 1. GRAFOS

$ Corolário 3. Vale que

δ(G) ≤ d(G) ≤ ∆(G),

tal propriedade é corolário direto da propriedade de médias.

m Definição 19. Dado um grafo G, definimos m(v,e) como o número de vezes


em que a aresta e incide no vértice v.

• m(v,e) = 0 quando e não incide em v.

• m(v,e) = 1 quando e incide em v e não é laço.

• m(v,e) = 2 quando e incide em v, sendo laço.

b Propriedade 5. Dado um vértice v de G um grafo com número finito (ek )m


1

de arestas, vale que



m
d(v) = m(v,ek ) .
k=1

b Propriedade 6. Em qualquer grafo G vale que


m(k,et ) = 2
k∈V

onde et é uma aresta fixada do grafo , essa propriedade vale inclusive para grafos
com número infinito de elementos.

ê Demonstração. A propriedade vale pois cada aresta et incide exatamente em


dois vértices ou em apenas 1 vértice caso seja um laço. No caso de não haver laço,
existem vs e vm tais que m(vs ,et ) = 1 = m(vm ,et ) e para todo outro k vale m(vk ,et ) = 0
portanto
∑ ∑
m(k,et ) = m(k,et ) +m(vm ,et ) + m(vs ,et ) = 2
k∈V k∈V\{vm ,vs }
| {z }
=0
1.1. DEFINIÇÕES BÁSICAS 19

caso et seja um laço, existe vm tal que 2 = m(vm ,et ) e para todo outro k vale
m(vk ,et ) = 0, daı́
∑ ∑
m(k,et ) = m(k,et ) +m(vm ,et ) = 2.
k∈V k∈V\{vm }
| {z }
=0


1.1.2 d(v) = 2m.
v∈V

b Propriedade 7. Vale que


d(v) = 2m
v∈V

em qualquer grafo com número finito de arestas e vértices, tal identidade vale
inclusive em grafos com laços e arestas paralelas.

ê Demonstração.[1] Enumeramos os vértices (vk )n1 e arestas do grafo (ek )m


1 ,

logo
∑ ∑
n
d(v) = d(vk )
v∈V k=1

m
porém d(vk ) = m(vk ,et ) substituindo temos
t=1

∑ n ∑
∑ m ∑
m ∑
n ∑
m
d(v) = m(vk ,et ) = m(vk ,et ) = 2 = 2m.
v∈V k=1 t=1
|
t=1 k=1
{z } t=1
=2

ê Demonstração.[2] Seja n , o número de vértices fixado. Demonstramos por


indução sobre m. Para m = 0 o resultado vale, pois não existe aresta incidente em
nenhum vértice. Suponha que vale para m arestas. Adicionamos mais uma aresta,
seja d ′ (v) a nova contagem do grau. Existem vm e vs (não necessariamente distintos),
∑ ∑
tais que d ′ (v) = d(v) + 2 portanto a soma fica como
v∈{vs ,vm } v∈{vs ,vm }
∑ ∑ ∑ ∑ ∑
d ′ (v) = d ′ (v) + d ′ (v) = d(v) + d(v) + 2 =
v∈V v∈V\{vm ,vs } v∈{vs ,vm } v∈V\{vm ,vs } v∈{vs ,vm }

= d(v) + 2 = 2m + 2 = 2(m + 1)
v∈V

como querı́amos provar.


20 CAPÍTULO 1. GRAFOS

$ Corolário 4. A soma dos graus é sempre um número par.

$ Corolário 5 (Lema do aperto de mãos). Em qualquer grafo o número de


vértices de grau ı́mpar é par, pois podemos tomar a partição V = Vp ∪ Vi , onde Vp
contém os vértices de grau par e Vi os de grau ı́mpar, logo

∑ ∑ ∑
d(v) = d(v) + d(v) ≡ 1|Vi | ≡ 0 mod 2.
v∈V v∈Vp v∈Vi

Tal resultado é chamado de Lema do aperto de mãos, pois implica que se os


convidados de uma festa apertarem as mãos quando se encontrarem pela primeira
vez, então o número de convidados que aperta mãos um número ı́mpar de vezes é
par. Pois de n convidados, associamos a cada um um vértice vk , se ligamos uma
aresta entre vk e vt , se e somente se, vk e vt apertam as mãos.

Z Exemplo 2. • Existe um grafo com sequência de graus 333356666?

• Não pois a soma dos graus 3 + 3 + 3 + 3 + 5 + 6 + 6 + 6 + 6 é ı́mpar.

m Definição 20 (Caminho-Passeio). Um caminho é uma sequência de vértices


(vk )n1 onde vk e vk+1 são adjacentes para todo k de 1 até n − 1. Dado um caminho
(vk )n1 dizemos que v1 alcança ou atinge vn . Se o grafo tiver arestas paralelas ou
laços a notação (vk )n1 pode ser ambı́gua , pois pode existir mais de uma aresta
ligando dois vértices vs e vs+1 por isso, podemos denotar entre dois vértices do
caminho a aresta que percorremos.
Um caminho também pode ser chamada de passeio. Perceba que em um passeio
podemos ter vértices ou arestas iguais.
1.1. DEFINIÇÕES BÁSICAS 21

m Definição 21 (Caminhos independentes). Dois caminhos (vk )n1 e (tk )m


1 são

ditos independentes quando nenhum tk pertence a (vk )n1 e nenhum vk pertence a


(tk )n1

m Definição 22 (Caminho simples). Se todos os vértices do caminho (vk )n1 são


distintos o caminho é dito simples ou elementar.

m Definição 23 (Trajeto-Trilha). Se todos as arestas de um caminho forem


distintas o caminho é chamado de trajeto. Um trajeto também pode ser chamado
de trilha.

m Definição 24 (Trilha fechada). Uma trilha fechada é uma trilha (vk )n1 onde
v1 = vn . Podemos definir vk para todo k inteiro, por meio de congruência mod p,
daı́ , por exemplo vp+2 = v2 pois p + 2 ≡ 2 mod p.

b Propriedade 8. Todo caminho simples é trilha e nem toda trilha é caminho


simples.

ê Demonstração. Se o caminho simples não fosse trilha, então haveria


repetição de aresta o que implicaria em repetição de vértice o que contraria definição
de caminho simples. Um trilha fechada não é caminho simples pois repete vértice.

m Definição 25 (Ciclo). Um cicloa é uma trilha fechada (vk )1p+1 , isto é, v1 = vp+1
onde (vk )p1 é uma trilha simples. Isto é, em ciclos não temos arestas repetidas e o
único vértice repetido é v1 .

• Um ciclo de um vértice consiste em um vértice com um laço.


22 CAPÍTULO 1. GRAFOS

• Um ciclo com dois vértices consiste em dois vértices e duas arestas paralelas.

Um ciclo também é chamado de caminho fechado.


a
Alguns autores usam definição onde se permite que vértices sejam repetidos

m Definição 26 (Comprimento de um caminho ou ciclo). O comprimento de


um caminho ou ciclo é o número de suas arestas. Um caminho ou ciclo de
comprimento t pode ser chamado de t-caminho ou t-ciclo, ainda podendo ser
denotado por ct , respectivamente. Um caminho ou ciclo é dito ser par ou ı́mpar
conforme a paridade de t.

• Um t ciclo também pode ser denotado por Ct .

• C3 é chamado de triângulo, C4 de quadrado, C5 de pentágono, em geral


nomeamos um Ct com o nome do polı́gono de t lados.

$ Corolário 6. Em um ciclo o número de arestas é igual ao número de vértices.

Figura 1.19: (V1 , V2 , V3 , V4 ) é um caminho simples, pois todos vértices são distintos,
também é um trajeto pois todas arestas são distintas, tal caminho tem comprimento
3.
1.1. DEFINIÇÕES BÁSICAS 23

m Definição 27 (Ciclo simples). Um ciclo (vk )n+


1
1
é dito simples quando o
caminho (vk )n1 é simples.

m Definição 28 (Acı́clico). Um grafo G que não possui ciclo é dito ser acı́clico.

m Definição 29 (Cintura). Cintura de um grafo G é o comprimento do menor


ciclo simples de G.

m Definição 30 (Circunferência). Circunferência de um grafo G é o compri-


mento do maior ciclo simples de G.

Num grafo acı́clico definimos a cintura e a circunferência como sendo infinitos.

m Definição 31 (Caminho Hamiltoniano). Um caminho (vk )n1 de um grafo G


é dito ser hamiltoniano se é simples e contém todos vértices do grafo G, isto é,
todos os vértices são distintos e qualquer vértice do grafo é elemento do caminho.
Observe que com essa definição o caminho pode conter mais de uma vez a mesma
arestas do grafo, a restrição fica apenas para vértices.

m Definição 32 (Caminho Euleriano-Trajeto Euleriano). Um caminho (vk )n1 de


um grafo G é dito ser euleriano, quando é um trajeto e possui todas arestas do
grafo G, isto é, todas arestas são distintas e qualquer aresta do grafo é elemento
do caminho. Observe que com essa definição o caminho pode conter mais de
uma vez o mesmo vértice do grafo, a restrição fica apenas para arestas. Também
chamado de trilha euleriana.
24 CAPÍTULO 1. GRAFOS

m Definição 33 (Grafo atravessável). Um grafo é dito atravessávela se ele


possui um caminho Euleriano.
a
Tal tipo de grafo também pode ser chamado de semi-euleriano

m Definição 34 (Ciclo Euleriano). O ciclo (vk )n+


1
1
é dito euleriano quando o
caminho (vk )n1 é euleriano. Também chamado de circuito euleriano.

m Definição 35 (Ciclo Hamiltoniano). O ciclo (vk )n+


1
1
é dito hamiltoniano
quando o caminho (vk )n1 é Hamiltoniano.

m Definição 36 (Grafo conexo). Um grafo G é dito ser conexo, se para quais-


quer dois vértices distintos u e v existe um caminho que os conecta. Caso o grafo
não seja conexo ele é chamado de desconexo.

b Propriedade 9. Um grafo conexo tem pelo menos n − 1 arestas, isto é, se o


grafo tem menos de n − 1 arestas então ele é desconexo. Lembrando que n é o
número de vértices.

ê Demonstração. Tomamos v1 um vértice do grafo, ele deve se conectar a um


vértice v2 , logo contamos uma aresta, deve haver um vértice v3 que se conecta no sub-
grafo conexo {v1 , v2 }, logo contamos duas arestas, aplicamos o mesmo procedimento
existindo v4 que se conecta em um dos vértices {v1 , v2 , v3 } contando três arestas,
continuamos o processo até termos o subgrafo conexo com vértices {v1 , · · · , vn−1 } onde
devemos conectar o vértice vn , contando n − 1 arestas no total, pelo menos.

b Propriedade 10. Se adicionamos arestas em um grafo conexo ele continua


sendo conexo.
1.1. DEFINIÇÕES BÁSICAS 25

ê Demonstração. Sejam v1 e vs dois vértices quaisquer de G um grafo conexo,


então existe um passeio (vk )s1 , que leva v1 até vs . Se adicionamos arestas ao grafo tal
caminho continua válido, logo o grafo é conexo.

( )
n−1
b Propriedade 11. Se G é simples e m > 2 então G é conexo. m é o
número de arestas.

ê Demonstração. ( ) ( )
n−1 n−1
Primeiro notamos que se m > então m ≥ + 1. Se qualquer grafo
( ) 2 2( )
n−1 n−1
com m = + 1 é conexo, então grafos com m > + 1 são conexos.
2 ( ) 2
n−1
Tomemos um grafo qualquer G com m > + 1 , retirando arestas de G
2 ( )
n−1
até que o grafo resultante Gn tenha exatamente m = + 1, Gn é conexo,
2
agora recolocamos as arestas que retiramos , colocar arestas em um grafo não altera
conexidade, então G é conexo. ( )
n−1
Sabemos que se G é desconexo então G é conexo. Seja G com m = +1
2
então G possui
( ) ( )
n n−1
= − − 1 = n − 2 arestas
2 2

portanto G é desconexo e daı́ G é conexo.

( )
Z Exemplo 3. Encontre um grafo desconexo simples com m =
n−1
2)
.
(
n−1
Dos n vértices podemos separar n − 1 vértices usando todas arestas
2
nesses n − 1 vértices separados, O n-ésimo vértice é então um vértice isolado e o
grafo é desconexo.
O resultado anterior podemos interpretar da seguinte maneira: Considerar os
(n − 1)(n − 2)
n vértices como ilhas e as m arestas como pontes, se m > e não
2
existe mais de uma ponte ligando duas ilhas quaisquer então é possı́vel passear
(n − 1)(n − 2)
por todas as ilhas. Se = m então pode haver ilha isolada.
2
26 CAPÍTULO 1. GRAFOS

b Propriedade 12. Seja G um grafo simples. Se δ(G) ≥


n
2
então G é conexo.

ê Demonstração. Suponha inicialmente n par , um vértice v1 incide em pelo


n
menos vértices, que simbolizaremos por v2 , v3 , · · · , v n2 +1 , separamos tais vértices
2
em um conjunto V1 que é conexo. Os outros vértices v n2 +2 , · · · , vn separamos em um
n n
conjunto V2 , como V1 possui + 1 vértices V2 deve possuir − 1 vértices. Dado o
2 2
n
vértice v n2 +2 de V2 ele deve incidir em pelo menos , podendo incidir em no máximo
2
n
− 2 vértices em V2 , portanto ele deve incidir em algum vértice de V1 obrigatoria-
2
mente, então V1 adicionado de v n2 +2 é conexo, fazemos o mesmo procedimento com
v n2 +3 e assim sucessivamente, ao fim do procedimento temos que V1 adicionado dos
vértices v n2 +2 , · · · , vn é conexo, que é o conjunto de vértices de G.
n+1
Para n ı́mpar devemos ter um grau mı́nimo de . Separamos novamente o
2
conjunto dos vértices de G em dois, V1 e V2 , tomamos um vértice qualquer de G, que
chamamos de v1 , ele incide nos vértices v2 , v3 , · · · , v n+1 +1 , que juntos com v1 formam
2

todos elementos de V1 , que é conexo. Em V2 colocamos os vértices v n+1 +2 , · · · , vn ,


2
n−1 n+1
que possui − 1 vértices. v n+1 +2 em V2 deve se conectar à vértices e pode
2 2 2
n−1
incidir em no máximo − 2 vértices em em V2 , sobrando 3 arestas que devem
2
incidir em V1 , a partir de agora utilizamos o mesmo procedimento do caso par, feito
acima e chegamos no fim que V1 adicionado dos vértices v n+1 +2 , · · · , vn é conexo,
2

que é o conjunto de vértices de G.

Z Exemplo 4. Encontre um grafo simples n −2 2 -regular, onde n é par.


Separamos 2 conjuntos de n vértices (v1 , · · · , vn ) e (vn+1 , · · · , v2n ), vamos dar
um exemplo em que esses dois conjuntos não se conectam, mostrando que po-
n−2
demos usar todas arestas dentro de um desses conjuntos. Desenhamos as
2
seguintes arestas (trocamos n por 2n para facilitar as contas, com isso temos n − 1
1.1. DEFINIÇÕES BÁSICAS 27

como grau de cada vértice)


 
Arestas desenhadas − − −
 
 
 (1) (2) ··· (n − 1) 
 
 
 (v1 , v2 ) − ··· − 
 
 
 ··· 
 (v1 , v3 ) (v2 , v3 ) − 
 
 .
.. .. .. .. 
 . . . 
 
 
 (v1 , vn ) (v2 , vn ) ··· (vn−1 , vn ) 
 
 
 Contribuição para o grau total dos vértices − − − 
 
 
 d(v1 ) = n − 1 d(v1 ) = 0 ··· d(v1 ) = 0 
 
 
 ··· 
 d(v2 ) = 1 d(v2 ) = n − 2 d(v2 ) = 0 
 
 .. .. .. .. 
 . . . . 
 
 
 d(vn−1 ) = 1 d(vn−1 ) = 1 ··· d(vn−1 ) = 1 
 
d(vn ) = 1 d(vn ) = 1 ··· d(vn ) = 1

b Propriedade 13 (Caracterização dos grafos k-regulares, k = 0, 1, 2.).

• Os grafos 0-regulares consistem em vértices desconexos.

• Os grafos 1-regulares consistem em arestas desconexas.

• Os grafos 2-regulares consistem em ciclos desconexos.

ê Demonstração.

• Os grafos 0-regulares consistem em vértices desconexos pois não podemos adi-


cionar arestas.

• Os grafos 1-regulares consistem em arestas desconexas, dado v1 no grafo deve


haver v2 tal que v1 incide em v2 , v1 e v2 não podem incidir em mais nenhum
outro vértice, pois se não o grau de algum deles seria maior que 1. O número
de vértices de grafos 1-regulares deve sempre ser par, pois para cada aresta
contamos dois vértices.
28 CAPÍTULO 1. GRAFOS

• Dado um vértice v1 num grafo com número finito de vértices, v1 deve incidir
em outro vértice v2 e assim por diante, como o número de vértices é finito,
deve haver t máximo tal que vt não pode incidir em nenhum outro vértice já
não usado no caminho até vt ( vt também não poderia incidir em vértice de
um outro ciclo presente no grafo, desconexo com o caminho percorrido até o
vértice vt , pois se não haveria grau de algum vértice maior que 2), vt não pode
incidir em nenhum dos vértices vk com 1 < k < t, pois estes já possuem grau
2 por pertencer ao caminho, a única possibilidade restante é vt incidir em v1
assim d(v1 ) = d(vt ) = 2 assim como para os outros vértices do grafo.

Figura 1.20: G é um grafo desconexo, não existe caminho que conecta V1 e V4 .

m Definição 37 (Ponte). Uma ponte é uma aresta de um grafo que se retirada


torna o grafo desconexo.

Figura 1.21: G é um grafo conexo e e1 é uma ponte.


1.1. DEFINIÇÕES BÁSICAS 29

m Definição 38 (Grafo Euleriano). Um grafo conexo G é dito ser Euleriano se


possui um ciclo euleriano.

m Definição 39 (Grafo Hamiltoniano). Um grafo conexo G é dito ser Hamil-


toniano se possui um ciclo Hamiltoniano.

Figura 1.22: (V1 , V2 , V3 , V4 , V5 , V6 , V1 ) é um ciclo simples de comprimento 6, sendo


portanto um C6 , hexágono, também é um ciclo Euleriano e Hamiltoniano. G é
portanto grafo Euleriano e Hamiltoniano.

b Propriedade 14. Se G é conexo então para qualquer partição dos vértices


de G em conjuntos não vazios X e Y , existe um vértice com um extremo em X e
outro em Y .

ê Demonstração. Tomamos V1 ∈ X e Vf ∈ Y , daı́ existe um caminho (vk )t1 com


Vt = Vf . Existe um k máximo tal que Vk ∈ X, pois os valores de k são limitados
superiormente , com k < t, daı́ Vk+1 ∈ Y.

$ Corolário 7. Se podemos particionar um grafo em dois conjuntos disjuntos e


30 CAPÍTULO 1. GRAFOS

não vazios X e Y tais que nenhum vértice de X tem extremo em Y então o grafo
não é conexo.

b Propriedade 15. Se para qualquer partição dos vértices de G em conjuntos


não vazios X e Y , existe um vértice com um extremo em X e outro em Y então G
é conexo.

ê Demonstração.

b Propriedade 16. Um t-cubo é um grafo conexo.

ê Demonstração. Tomamos dois vértices quaisquer do t-cubo v1 = (a1 , · · · , at )


e Vf = (b1 , · · · , bt ) vemos mostrar que existe caminho que conecta V1 e Vf .

Tomamos a primeira coordenada das uplas tais que ak ̸= bk , definimos o vértice


v2 = (a1 , · · · , bk , ak+1 , · · · , at ), onde trocamos apenas ak por bk no vértice v1 , com
isso v1 é adjacente à v2 . Se não existe mais alguma coordenada distinta entre v1 e
vF nada temos a fazer e obtemos nosso caminho, caso contrário passamos a próxima
coordenada distinta at ̸= bt e aplicamos o mesmo procedimento chamando o novo
vetor obtido de v3 , como a quantidade de coordenadas é finita, por aplicação sucessiva
desse procedimento iremos conseguir um caminho (v1 , · · · , vf ), portanto todo t-cubo
é conexo.

m Definição 40 (Grafo totalmente desconexo). Um grafo é totalmente desco-


nexo quando ele não possui arestas. A definição coincide com o conceito de grafo
vazio, porém antes não não havı́amos definido o conceito de grafo conexo.
1.1. DEFINIÇÕES BÁSICAS 31

Figura 1.23: Exemplo de grafo totalmente desconexo, todos os vértices são isolados,
isto é, possuem grau zero.

1.1.3 Famı́lias especiais de grafos

m Definição 41 (Subgrafo). Um subgrafo H de um grafo G, é qualquer grafo


que V(H) ⊂ V(G) e E(H) ⊂ H(G). Caso H seja subgrafo de G, denotamos tal fato
por H ⊂ G e dizemos que H está contido em G ou G contém H.
Podemos obter subgrafos de um grafo deletando arestas ou vértices .

Figura 1.24: No grafo acima, temos um subgrafo destacado, com arestas e vértices
vermelhos, seu conjunto de vértices {B, C, D, E}, seu conjunto de arestas {(C, E)}.

m Definição 42 (Componentes conexas). Uma componente conexa de um grafo


G é um subgrafo H de G conexo, tal que não existe H ′ subgrafo conexo de G tal
32 CAPÍTULO 1. GRAFOS

que H ⊂ H ′ propriamente.

m Definição 43 (Distância entre vértices). A distância entre dois vértices v e


w é o comprimento do menor caminho entre v e w.

m Definição 44 (Subgrafo induzido). Um subgrafo de G é dito induzido quando


é obtido através de G após a remoção de alguma quantidade de vértices, sem
remoção de arestas adicionais além daquelas retiradas ao se remover os vértices.
Em sı́mbolos, um subgrafo H de G é dito induzido se para todo par de vértices
x, y ∈ H, (x, y) é aresta de H ⇔ (x, y) é aresta de G.

m Definição 45 (Caminho induzido). Um caminho induzido em um grafo


não direcionado G é um caminho em um subgrafo induzido de G, isto é, uma
sequência de vértices de G, tais que cada dois vértices na sequência são conectados
por arestas em G.

m Definição 46 (Ciclo induzido). É um ciclo que também é um grafo induzido


de G.

m Definição 47 (Grafos esparsos). Um grafo é dito esparso se possui mais


pares de vértices não adjacentes do que pares de vértices adjacentes.

m Definição 48 (Exclusão de arestas). Seja G um grafo e S um conjunto de


arestas de G, denotamos por G − S o grafo obtido a partir de G pela exclusão de
todas arestas contidas em S.
1.1. DEFINIÇÕES BÁSICAS 33

m Definição 49 (Exclusão de vértices). Seja G um grafo e S um conjunto de


vértices de G, denotamos por G − S o grafo obtido a partir de G pela exclusão de
todos os vértices contidos em S e as arestas incidentes em tal vértice.

m Definição 50 (Inclusão de arestas). Seja S um conjunto de pares de vértices


não adjacentes em G, denotamos por G + S o grafo obtido a partir de G pela
adição das arestas que ligam cada par de S.

m Definição 51 (Inclusão de vértices). Seja S um conjunto de vértices não


contidos em G, denotamos por G + S o grafo obtido por adicionar os vértices de
S.

m Definição 52 (Grafo direcional-dı́grafo). Um grafo direcional, é um grafo


onde estabelecemos um sentido ( orientação) para as arestas . O sentido da
orientação pode ser denotado pelo uso de uma seta. Nesse caso as arestas podem
ser chamadas de arcos.

m Definição 53 (Grafo completo). Um grafo simples G é dito completoa quando


qualquer dois vértices de G são adjacentes (todos os vértices são ligados por
arestas). Um grafo completo de n vértices pode ser denotado por Kn ou Kn .
a
Grafos completos também já foram chamados de grafos universais

$ Corolário 8. Um grafo completo é n − 1-regular, pois cada vértice é adjacente


a todos outros n − 1 vértices.
34 CAPÍTULO 1. GRAFOS

( )
n(n − 1)
b Propriedade 17. Um grafo completo possui
2
=
n
2
arestas .

ê Demonstração. Seja f(n) o número de arestas em função do número de


vértices de um grafo completo. Para n = 1, temos f(1) = 0. Supondo que um grafo
completo com n vértices , tendo f(n) arestas, adicionamos mais um vértice an+1 e
com isso devemos adicionar as arestas (an+1 , ak ) com k variando de 1 até n para que
o grafo seja completo, então

f(n + 1) = f(n) + n ⇒ f(k + 1) − f(k) = k


n−1
aplicando em ambos lados, temos por soma telescópica
k=1

n(n − 1)
f(n) =
2

n−1
n(n − 1)
pois k= .
2
k=1

( )
n
$ Corolário 9. Para todo grafo simples vale m ≤ , valendo a igualdade
2
quando o grafo é completo.

m Definição 54 (Grafo vazio). Um grafo é dito vazio quando o conjunto de


aresta é vazio. Em grafos vazios não existem vértices adjacentes.

m Definição 55 (Grafo Bipartido). Um grafo G é dito ser bipartido se o


conjunto dos vértices pode ser particionado numa união disjunta V = A ∪ B onde
cada aresta de G possui um extremo A e outro extremo em B (não existem arestas
ligando vértices no mesmo conjunto A ou B ). A partição A ∪ B = V pode ser
denotada como (A, B) e é chamada bipartição do grafo G, A e B são chamados
1.1. DEFINIÇÕES BÁSICAS 35

de partes de G. Podemos denotar o grafo bipartido como G[A, B]. Denotamos |A|
e |B| para o número de vértices de A e B respectivamente.

Figura 1.25: O grafo G é bipartido, a direita dele temos um exemplo de bipartição.

m Definição 56 (Grafo t-partido). Um grafo t-partido é tal que o conjunto


dos seus vértices V podem ser particionados em t subconjuntos (vk )t1 dois-a-dois

t
disjuntos tais que V = vk de tal forma que os vértices do mesmo subconjunto
k=1
não são adjacentes. Cada conjunto vk é chamado de parte de V .

m Definição 57 (Grafo k partido completo). Um grafo k-partido é dito ser


completo se qualquer dois vértices em partes diferentes são adjacentes.

$ Corolário 10. Todo grafo simples com n vértices é n-partido.

m Definição 58 (Grafo de Turán). Um grafo completo simples s-partido com


n vértices em que as partes tem mesmo tamanho ou quase mesmo tamanho, isto
n n
é, ⌊ ⌋ ou ⌈ ⌉ é chamado grafo de Turán, sendo denotado por T (s, n).
s s
36 CAPÍTULO 1. GRAFOS

m Definição 59 (Sequência de graus). Se G tem vértices (vk )n1 a sequência


(d(vk ))n1 é chamada de sequência dos graus de G.

b Propriedade 18. Seja G um grafo bipartido com partição (X, Y) então


∑ ∑
d(v) = d(v).
v∈X v∈Y

∑ ∑
ê Demonstração. Vale que d(v) + d(v) = 2m então mostrar que
∑ ∑ v∈X v∈Y
d(v) = d(v) é equivalente a demonstrar que cada uma das somas vale m.
v∈X v∈Y
Não existe arestas conectando vértices em X, toda aresta do grafo deve incidir em

algum vértice de X por isso d(v) = m.
v∈X

b Propriedade 19. Seja G um grafo bipartido com partição (X, Y). Se G é


regular então X e Y tem o mesmo número de elementos.

ê Demonstração. Para todo x ∈ X e y ∈ Y vale

d(x) = d(y) = k

onde k é a ordem dos vértices, sejam n1 = |X|, n2 = |Y|, então vale


∑ ∑
d(x) = d(y) = kn1 = kn2 ⇒ kn1 = kn2 ⇒ k(n1 − n2 ) = 0
x∈X y∈Y

sendo k ̸= 0 tem-se n1 = n2 e portando X e Y possuem o mesmo número de elementos.

m Definição 60 (Grafo completo bipartido). Um grafo simples bipartido G[x, y]


é dito ser um grafo completo bipartido se cada vértice em X está ligado a cada
vértice de Y .

b Propriedade 20. Um grafo completo bipartido simples possui |X||Y| arestas.


1.1. DEFINIÇÕES BÁSICAS 37

ê Demonstração. Cada elemento v de X incide em cada elemento de Y , portanto


d(v) = |Y|, somamos então a contribuição de cada um dos vértices de X
∑ ∑
m= d(v) = |Y| 1 = |Y||X|.
v∈X v∈X

$ Corolário 11. Para qualquer grafo bipartido simples G[x, y] vale m ≤ |X||Y|
pois o grafo deve possuir número de arestas menor do que do grafo bipartido
completo.

n2
b Propriedade 21. Em um grafo simples G[x, y] bipartido, vale que m ≤
4
.

ê Demonstração. Sabemos que vale m ≤ |X||Y|, mostramos agora que |X||Y| ≤


n2
. Sabemos que n = |X| + |Y| logo a desigualdade é equivalente à 4|X||Y| ≤
4
|X|2 + 2|X||Y| + |Y|2 que por sua vez equivale à 0 ≤ (|X| − |Y|)2 que é uma desigual-
dade verdadeira, como querı́amos demonstrar. Um dos casos mais simples onde a
identidade se verifica é quando |X| = |Y| = 1, logo n = 2, m = 1.

b Propriedade 22. 1. Todo caminho simples é bipartido.

2. Um ciclo é bipartido ⇔ seu comprimento é par.

ê Demonstração.

• Considere um caminho (vk )n1 .

Definimos A como conjunto dos elementos vk com k ı́mpar e B dos vk tais


que k é par. Temos a bipartição do grafo G[A, B]. Um procedimento para gerar
uma bipartição do caminho é o seguinte, inicialmente colocamos v1 em A, v2
não pode estar em A pois se não haveria a aresta (v1 , v2 ) conectando elementos
do mesmo conjunto e daı́ o grafo não seria bipartido, então obrigatoriamente
v2 ∈ B, v3 não pode pertencer a B, logo pertence a A , continuamos o processo
até a n-ésimo vértice, sendo que vk e vk+1 estão sempre em conjuntos diferentes
assim como vk+1 e vk+2 , vk+1 não incide em nenhum outro vértice além de vk e
vk+2 pois o caminho é simples, então o caminho simples é bipartido .
38 CAPÍTULO 1. GRAFOS

• ⇐). Seja n par . Considere o ciclo (vk )n+


1
1
, temos que (vk )n1 é um caminho, logo
bipartido, considerando a bipartição do caso anterior, como n é par vn ∈ B e
vn+1 = v1 ∈ A logo temos uma bipartição.

⇒). Caso n seja ı́mpar a construção da bipartição do resultado para caminhos


simples, que é única a menos de uma renomeação de vértices e conjuntos,
implica que vn acaba por pertencer ao mesmo conjunto de v1 daı́ temos obriga-
toriamente uma aresta (vn , vn+1 ) dentro de uma das partições o que implica que
o ciclo não ser bipartido.

m Definição 61 (Reticulado booleano). Um reticulado Booleano BLn é um grafo


cujo conjunto dos vértices é o conjunto das partes P(In )(subconjuntos) de In =
{1, · · · , n}(que possui 2n elementos), onde dois subconjuntos X e Y são adjacentes
se sua diferença simétrica tem exatamente um elemento. A diferença simétrica é
definida como A∆B = (A ∪ B) \ (A ∩ B).

Z Exemplo 5. • Em BL1 temos dois vértices {1} e ∅.

• Em BL2 temos quatro vértices ∅, {1}, {1, 2}, {2}.

• Em BL3 temos oito vértices ∅, {1}, {1, 2}, {2}, {3}, {1, 3}, {1, 2, 3}, {2, 3}.

Podemos associar o reticulado booleano BLn ao grafo n-cubo, associando uma


n-upla ao subconjunto de X de P(In ), da seguinte maneira a k-ésima coordenada do
reticulado é nula se k ∈
/ In e tem valor 1 se k ∈ In a relação de incidência também
é preservada pois a diferença simétrica de dois conjuntos tem apenas um elemento
⇔ os subconjunto diferem em um elemento, assim como a relação de incidência
entre os vértices do n-cubo. Portanto todas propriedades demonstrada para o n-cubo
também valem para o Reticulado booleano.

m Definição 62 (Estrela). Uma estrela é um grafo completo bipartido G[x, y]


onde |X| = 1 ou |Y| = 1.
1.1. DEFINIÇÕES BÁSICAS 39

m Definição 63 (Grafo planar). É um grafo que pode ser desenhado no plano


sem que suas arestas se interceptem em pontos que não sejam extremos.

b Propriedade 23. Existem grafos que não são planares.

ê Demonstração.

b Propriedade 24. Para qualquer grafo G existe uma superfı́cie S tal que o
grafo pode ser desenhado na superfı́cie S sem que suas arestas se interceptem em
pontos que não sejam extremos.

ê Demonstração.

1.1.4 Isomorfismo de grafos

m Definição 64 (Grafos isomorfos). Dois grafos F(V1 , E1 ) e G(V2 , E2 ) são ditos


isomorfos, quando existe uma bijeção f : V1 → V2 , tal que existe aresta (v, p) ∈
F ⇔ (f(v), f(p)) ∈ G. Tal função f é chamada de isomorfismo de grafos.

$ Corolário 12. Como f é uma bijeção entre V1 e V2 , se ambos são finitos, então
possuem o mesmo número de elementos n = |V1 | = |V2 |. Se os grafos F(V1 , E1 )
e G(V2 , E2 ) tem número de vértices distintos então não pode ser isomorfos e se
possuem mesmo número de vértices n, então é possı́vel verificar se existe um
isomorfismo entre eles, testando as n! funções que existem entre V1 e V2 . Ainda
não se sabe se existe ou não um algoritmo eficiente para testar se dois grafos são
isomorfos.

m Definição 65 (Grafo complementar). Um grafo G é dito ser um grafo com-


plementar de um grafo G, quando G possui os mesmos vértices de G e arestas
40 CAPÍTULO 1. GRAFOS

que faltam para G ser um grafo completo.

$ Corolário 13 (Idempotência). Vale que G = G.

$ Corolário (14.)Seja (d(vk ))n1 sequência de graus de G então a sequência de


n
graus de G é ( − d(vk ))n1 , pois cada vértice de G possui as arestas que faltam
2
para G ser um grafo completo.

b Propriedade 25 (Festa com 6 pessoas). Para qualquer grafo simples G com


6 vértices, G ou G possuem triângulo um triângulo (K3 , grafo completo com três
vértices) como subgrafo.

ê Demonstração. Seja v um vértice de G, a soma dos graus de v nos grafos G


e G é 5, portanto num deles, v está unido a pelo menos 3 vértices ( pelo princı́pio da
casa dos pombos).
Supondo sem perda de generalidade que isso se passa em G, v se liga em 3
vértices, (v1 , v2 , v3 ), se dois quaisquer desses vértices forem adjacentes em G então
eles formam um triângulo, na pior das hipóteses, se eles não são adjacentes em G,
então eles formam triângulo em G, como podemos ver na figura abaixo.
Com tal resultado podemos concluir que numa festa com 6 pessoas, existem 3
pessoas que se conhecem mutuamente ou se desconhecem mutuamente.
Modelamos o problema com grafos, associando a cada pessoa um vértice, dois
vértices sendo ligados por uma aresta se as pessoas indicadas pelos vértices se co-
nhecem. Consideramos que "conhecer"seja uma propriedade reflexiva, isto é, se A
conhece B, então B conhece A. Ter um triângulo em G significa que os três envolvi-
dos se conhecem mutuamente e ter um triângulo em G, significa que se desconhecem
mutuamente.
1.1. DEFINIÇÕES BÁSICAS 41

Figura 1.26: Exemplo de grafo e seu complementar, servindo como exemplo também
para o pior caso na demonstração, quando nenhum dos vértices v1 , v2 ou v3 são
adjacentes.

m Definição 66 (Grafo autocomplementar). Um grafo G é dito ser autocom-


plementar se o seu grafo complementar G é isomorfo a G.

b Propriedade 26. Se G é desconexo então G é conexo.

ê Demonstração. Sejam v1 , v2 vértices quaisquer de V , se (v1 , v2 ) ∈


/ E então
(v1 , v2 ) ∈ E. Caso contrário, existe v3 ∈ V que não se liga a v1 nem em v2 em G,
pois se valesse para todos vértices vk de V então G seria conexo. Portanto temos
(v1 , v3 , v2 ) em E, portanto em qualquer dos casos temos caminhos unindo os vértices
v1 e v2 em G.

Z Exemplo 6. Não vale a recı́proca G pode ser conexo e G também ser conexo.
Basta tomar G como um grafo autocomplementar conexo.

$ Corolário 15. Podemos aplicar o resultado com G no lugar de G, então vale,


se G é desconexo então G é conexo.
42 CAPÍTULO 1. GRAFOS

Figura 1.27: G e G são conexos, G é autocomplementar.

m Definição 67 (Árvore). Um grafo G é dito ser uma árvore se é um grafo


conexo que não possui ciclos.

m Definição 68 (Folhas). Todo vértice de grau 1 de uma árvore é chamado de


folha.

1.2 Matriz de incidência e de adjacência

m Definição 69 (Matriz de incidência). A matriz de incidência de G é a matriz


n × m, MG := (m(v,e) ), onde m(v,e) é o número de vezes que a aresta e incide no
vértice v.
m(v,e) pode assumir três valores 0 quando e não possui extremo em v, 1 quando
e possui extremo em v e não é laço e por último 2 quando temos um laço.

m Definição 70 (Matriz de adjacência). A matriz de adjacência de G é a matriz


n × n, AG := (m(v,u) ), onde m(v,u) é o número de arestas que conectam os vértices
u e v de G . Contamos um laço como duas arestas.
1.3. GRAFOS EULERIANOS E HAMILTONIANOS 43

Z Exemplo 7. Um grafo é totalmente desconexo ⇔ sua matriz de adjacência


é a matriz nula.

$ Corolário 16. A matriz de adjacência de um grafo onde não existe laço,


possui a diagonal nula, pois m(v,v) = 0. Em especial um grafo simples tem matriz
de adjacência com diagonal nula.

$ Corolário 17. Um grafo completo possui matriz de adjacência com diagonal


principal nula, pois m(v,v) = 0 o grafo é simples, além disso todo outra entrada
tem valor 1 , pois todas arestas são adjacentes, m(v,u) = 1 .

m Definição 71 (Matriz de adjacência bipartida). Suponha G[x, y] um grafo


bipartido onde X = {x1 , · · · , xr } e Y = {y1 , · · · , ys }, definimos a matriz de adjacência
bipartida de G como a matriz r × s BG = (bij ) onde bij é o número de arestas
ligando xi e yj .

1.3 Grafos Eulerianos e Hamiltonianos

m Definição 72 (Mapa de estrada). Um mapa de estrada é um grafo cujos


vértices correspondem a cidades e as arestas correspondem a cidades.

m Definição 73 (Problema do explorador). Um explorador deseja encontrar


um trajeto que posse por todos caminhos exatamente uma vez e retorne ao ponto
inicial.
O problema do explorador consiste em achar um ciclo euleriano.
44 CAPÍTULO 1. GRAFOS

m Definição 74 (Problema do viajante). Um viajante deseja encontrar um


trajeto que posse por todas cidades exatamente uma vez e retorne ao ponto inicial.
O problema do viajante consiste em achar um ciclo Hammiltoniano.

1.4 Problemas de trajeto


O próximo teorema vale tanto para grafos simples quanto para multigrafos.

⋆ Teorema 1 (Classificação de grafos Eulerianos). Um grafo conexo G = (V, E)


é euleriano ⇔ o grau de todo vértice é par.

ê Demonstração.
⇒). Supondo que o grafo é euleriano, então ele possui um ciclo euleriano (vk )n+
1
1
,
onde v1 = vn+1 , o ciclo contém todos os vértices do grafo G e cada aresta do grafo
aparece apenas uma vez no ciclo. Dado um vértice qualquer do grafo v, existe k
tal que v = vk , supondo que para s arbitrário tenhamos (vs , vs+1 ) então (vs+1 , vs+2 ),
|{z} |{z}
vk vk
se ( vs , vs+1 ) então (vs−1 , vs ), então contamos sempre um número par de arestas
|{z} |{z}
vk vk
ligadas à vk
⇐).
Suponha que todo vértice de G tenha grau par. Tomamos um vértice qualquer
do grafo v1 e começamos a percorrer o grafo a partir dele sem repetir arestas, tal
processo deve ter um fim e ao seu final voltamos ao vértice v1 (até não conseguir mais
prosseguir ou até voltar ao vértice v1 ), não podendo ser outro vértice do grafo, pois
cada vértice tem grau par, tendo pelo menos uma entrada e saı́da e não repetimos
arestas, se fosse um vértice qualquer diferente de v1 terı́amos duas opções, o vértice
já foi atravessado, então já foram contadas um número par de vezes de passagem por
ele (entrada e saı́da) então ao entrar nele mais uma vez terı́amos pelo menos uma
outra saı́da para completar o número par para o grau do vértice, o mesmo se o vértice
não foi ainda percorrido. Se o ciclo C1 construı́do por esse processo contém todas
arestas do grafo a construção termina. Se não, deletamos todas as arestas de C1 e
possı́veis vértices isolados. No novo grafo G1 obtido temos ainda todo grau par pois
1.4. PROBLEMAS DE TRAJETO 45

reduzimos um número par ao grau de cada vértice ( sempre uma entrada associado
associado a uma saı́da de um vértice). Nesse novo grafo podemos novamente achar
um ciclo C2 simples, que possui algum vértice em comum com C1 percorremos a partir
desse vértice o ciclo C2 depois o ciclo C1 , se o ciclo resultante conter todas arestas
do grafo G paramos, se não deletamos todas arestas de G1 comuns ao ciclo C2 e
possı́veis vértices isolados e aplicamos o processo novamente. Tal processo chega ao
fim, pois o número de aresta e vértices são finitos , no fim de tal processo podemos
construir um ciclo Euleriano no grafo G, ligando os ciclos1 encontrados.

Figura 1.28: Todos os vértices do Grafo acima tem grau par, podemos achar nele um
ciclo euleriano, por exemplo percorrendo inicialmente (P2 P1 (c1 )P4 (C2 )P3 P2 ) e depois
deletando as arestas e percorrendo (P1 P3 (C5 )P4 (C3 )P1 juntando ambos ciclos conse-
guimos um ciclo euleriano (P2 P1 P3 (C5 )P4 (C3 )P1 (c1 )P4 (C2 )P3 P2 ) .

m Definição 75 (Grafo Par). Um grafo Par é aquele que possui todos os seus
vértices com grau pau.

$ Corolário 18. Um grafo conexo é par ⇔ é euleriano.

1
Perceba também que os ciclos não possuem arestas em comum por construção
46 CAPÍTULO 1. GRAFOS

$ Corolário 19. Todo grafo conexo par pode ser dividido em ciclos, tais que
quaisquer dois deles não possui aresta em comum.

b Propriedade 27. Um t-cubo é um grafo bipartido.

ê Demonstração. Se t é par, cada vértice possui grau par t, logo o grafo é


euleriano, sendo de comprimento par o grafo é bipartido.
Se t é ı́mpar tomamos a partição dos vértices como A∪B, onde A contém as uplas
com número par de entradas 1 e B o conjunto das uplas que possuem um número
ı́mpar de entradas 1.

⋆ Teorema 2 (Classificação de grafos atravessáveis). Um multigrafo G é atra-


vessável ⇔ G é conexo e tem exatamente dois vértices de grau ı́mpar. Além disso
todo trajeto euleriano em G começa em um vértice de grau ı́mpar e termina no
outro vértice de grau ı́mpar.

ê Demonstração.
⇒). Se G é atravessável então G tem exatamente dois vértices de grau ı́mpar.
Sejam v1 e vf os vértices inicial e final do caminho euleriano, se adicionarmos
uma nova aresta ao grafo ligando v1 e vf o grau dos vértices v1 e vf aumentam em
uma unidade e conseguimos um ciclo euleriano, logo todos os outros vértices devem
ter grau par. O grau de v1 e v2 não podem ser pares, pois se não ao conectar a aresta
o grau se tornaria ı́mpar e não terı́amos grafo euleriano.
⇐). Se um grafo conexo G tem exatamente dois vértices de grau ı́mpar então G
é atravessável.
Sejam v1 e vf os vértices de grau ı́mpar, adicionamos uma nova aresta (v1 , vf ) os
conectando, assim conseguimos um ciclo euleriano C1 no grafo G + (v1 , vf ), pois o
grau de todos vértices passa a ser par, deletando tal aresta adicionada conseguimos
um caminho euleriano que começa em um dos vértices e termina no outro vértice de
grau ı́mpar.
1.4. PROBLEMAS DE TRAJETO 47

$ Corolário 20. Grafos atravessáveis não são eulerianos e grafos eulerianos


não são atravessáveis.

b Propriedade 28. Sejam G1 e G2 grafos eulerianos, sem arestas em comum.


Dados quaisquer vértices v1 ∈ G1 e v2 ∈ G2 então o grafo que consiste de G1 e G2
com a aresta (v1 , v2 ) é atravessável.

ê Demonstração. O grau de outros vértices não se alteram, o grau de v1


aumenta em uma unidade e o de v2 também, sendo agora vértices de grau ı́mpar.

b Propriedade 29. Se G é um multigrafo atravessável, então um grafo eule-


riano pode ser construı́do a partir de M ao se adicionar uma única aresta.

ê Demonstração. Sejam v1 e v2 os vértices de grau ı́mpar, adicionamos uma


nova aresta e = (v1 , v2 ), podemos fazer esse procedimento mesmo que já exista aresta
ligando esses vértices, nesse caso teremos arestas paralelas, o que é possı́vel em
multigrafos, com esse procedimento d(v1 ) e d(v2 ) passam a ser par, pois aumentam
em uma unidade.

Figura 1.29: O grafo da figura é atravessável. Não se pode construir um grafo


euleriano a partir dele adicionando uma aresta, já que passa a ser multigrafo, ou
deletando uma aresta, pois o grafo passa a ser desconexo.

$ Corolário 21. Um grafo completo é euleriano ⇔ o número de arestas n é


ı́mpar. Pois o grau o grau de cada vértice é d(v) = n − 1, sendo n par, n − 1 é
48 CAPÍTULO 1. GRAFOS

ı́mpar, daı́ o grafo não pode ser euleriano. Sendo n ı́mpar n − 1 é par, daı́ o grafo
é euleriano.

m Definição 76 (Clique). Uma clique de G de tamanho K é um subgrafo


completo de G com k vértices. Ou de forma equivalente conjunto de vértices de
cardinalidade k, tais que dois quaisquer vértice desse conjunto sejam adjacentes.

Figura 1.30: O conjunto de vértices {B, D, C} é uma clique do grafo G.

m Definição 77 (Conjunto independente de vértices). Dado o grafo G(V, E),


um conjunto independente de vértices V ′ é um subconjunto de V tal que todo par
de vértices de V ′ não é adjacente, isto é, se v, w ∈ V ′ então (v, w) ∈
/ E.

m Definição 78 (Cobertura de vértices). Para um grafo G(V, E) um subconjunto


V ′ ⊂ V é chamado cobertura de vértices se toda aresta de G possuir pelo menos
um de seus extremos em V ′ , isto é, se (v, w) ∈ E então v ou w ∈ V ′ .

m Definição 79 (Conjunto de arestas de realimentação). Para um dı́grafo


D(V, E) um conjunto de arestas de realimentação é um subconjunto E ′ ⊂ E tal
1.4. PROBLEMAS DE TRAJETO 49

que cada ciclo direcionado de D possui pelo menos uma aresta de E ′ , isto é,
D(V, E \ E ′ ) é acı́clico.

m Definição 80 (Conjunto de vértices de realimentação). Para um dı́grafo


D(V, E) um conjunto de vértices de realimentação é um subconjunto V ′ ⊂ V tal
que cada ciclo direcionado de D possui pelo menos um vértice de V ′ , isto é,
D(V \ V ′ , E) é acı́clico.

m Definição 81 (Coloração). Uma coloração de um grafo G(V, E) é uma


atribuição de "cores"aos vértices de G, de tal modo que os vértices adjacentes
possuam cores diferentes. Ou de forma equivalente, uma partição do conjunto de
vértices em conjuntos independentes de vértices.

m Definição 82 (Grafo n-colorável). Um grafo G é dito n colorável se possui


uma coloração usando exatamente n-cores.

⋆ Teorema 3 (Teorema das 4 cores). Vértices de todo grafo planar possuem


uma coloração com no máximo 4 cores . Todo grafo planar é 4-colorável .
O teorema das 4 cores foi provado inicialmente por Kenneth Appel and Wolf-
gang Haken em 1976, a prova utilizou computadores, ainda não se conhece uma
demonstração de tal teorema que não usa computadores.

m Definição 83 (Número cromático). O número cromático de um grafo G é o


número mı́nimo χ(G) de vértices independentes em que um conjunto de vértices
pode ser particionado.
50 CAPÍTULO 1. GRAFOS

m Definição 84 (Grafo k-conexo). Um grafo conexo é k-conexo se a remoção


de k − 1 vértices quaisquer dele (e arestas incidentes nele), não o torna desconexo.

m Definição 85 (Potência de grafo). A k-ésima potência de um grafo G, é um


grafo com os mesmos vértices de G, denotado por Gk , tais que dois vértices de Gk
são adjacentes se a distância deles em G não é maior que k.

m Definição 86 (União de grafo). A união de dois grafos G1 e G2 é denotada por


G1 ∪G2 com conjunto de vértices V(G1 )∪V(G2 ) e conjunto de arestas E(G1 )∪E(G2 ).

m Definição 87 (Junção de grafos). Para dois grafos G1 e G2 com V(G1 ) ∩


V(G2 ) = ∅ a junção de G1 e G2 é o grafo com conjunto de vértices V(G1 ) ∪ V(G2 ) e
conjunto de arestas E(G1 ) ∪ E(G2 )cupB. Onde B = {(u, v) | u ∈ V(G1 ) ev ∈ V(G2 )}
ligamos todos os vértices de G1 com todos de G2 .

m Definição 88 (Vértice universal). Um vértice u em G é universal se é


adjacente a todos os vértices em V(G) \ {u}.

m Definição 89 (Grafo split (dividido)). É um grafo que pode ser particionado


em um conjunto independente de vértices e uma clique.

m Definição 90 (Grafo cordal). É um grafo sem ciclo induzido com compri-


mento maior que três.
1.5. CADEIAS DE MARKOV E GRAFOS 51

m Definição 91 (Grafo intervalo). Um grafo G é dito ser um grafo intervalo se


existe uma coleção de intervalos da reta real indexada pelos elementos de V(G)
tais que dois vértices distintos em G são adjacentes ⇔ os dois vértices associados
se intersectam.

1.5 Cadeias de Markov e grafos


Considere uma criança entre duas de suas lojas de brinquedo prediletas: O ur-
sinho fofinho (A) e o pônei saltitante (B). A cada minuto a criança se comporta de
uma maneira com as seguintes probabilidades:
1
• Ela anda dez metros em direção à A com probabilidade .
2
1
• Ela anda dez metros em direção à B com probabilidade .
3
1
• Ela fica no mesmo lugar com probabilidade .
6
Tal procedimento é chamado de caminhada aleatória (Random walk).
Consideramos que as duas lojas tem a propriedade de absorver, no sentido de que
se a criança chega em uma das lojas ela permanece lá.
Dada a distância entre as duas lojas e a posição inicial da criança, temos várias
questões, por exemplo

• A qual loja ela costuma chegar primeiro?

• Quanto tempo ela demora para chegar lá?

Vamos supor que as duas lojas estejam há 50 metros de distância e a criança está
inicialmente há 20 metros de B. Vamos denotar os vários pontos em que ela pode
parar por {E1 , E2 , E3 , E4 , E5 , E6 }, onde E1 e E6 são as duas lojas. Sua posição inicial é
E4 e pode ser descrita por
x0 = [0, 0, 0, 1, 0, 0]

onde a k-ésima componente é a probabilidade dela estar inicialmente em Ek . A


probabilidade de sua posição após 1 minutos é dada pelo vetor
1 1 1
x1 = [0, 0, , , , 0]
2 6 3
52 CAPÍTULO 1. GRAFOS

e após dois minutos


1 1 13 1 1
x2 = [0, , , , , ].
4 6 36 12 9
Pode ser complicado calcular diretamente probabilidade dele estar em um local
após t minutos, porém há uma modo mais conveniente de fazer esses cálculos, que
é introduzindo a ideia de matriz de transição.
Seja Pij a probabilidade dela se mover de Ei para Ej em um minuto, tal proba-
bilidade é chamada de transição e a matriz P6×6 = (Pij ) é chamada de matriz de
transição. Cada entrada de P é não negativa e a soma de toda coluna é 1 . No caso
do nosso problema temos
 
0 1 0 0 0 0
 
 1 1 1 
 0 0 0 
 2 3 6 
 1 1 1 
 0 0 0 
 2 3 6 
P= 
 0 0 1 1 1
0 
 
 2 3 6 
 1 1 1 
 0 0 0 
 2 6 3 
0 0 0 0 0 1
se x0 é a linha inicial definida acima, a probabilidade de sua posições depois de
um minuto é dada pelo vetor

x1 = [ 0 0 0 1 0 0 ] P = x0 P

e após t minutos temos xt = x0 Pt onde a k-ésima componente de tal vetor representa


a probabilidade de se estar em Ek após t minutos.
Em geral uma matriz de transição é uma matriz quadrada com elementos em cada
linha tal que a soma de seus elementos é 1 e as entradas são não negativas e são
chamadas de probabilidade de transição. Uma cadeia de Markov, consiste em uma
matriz P n × n e um vetor x coluna 1 × n.
As posições Ei são chamadas estados da cadeia de Markov, nosso objetivo é
descrever uma maneira de as classificar.
Estamos interessados em saber quando podemos passar de um estado para outro
estado e se possı́vel quanto tempo demoraria. Em nosso problema ir de E4 para
E1 em três minutos, mas nunca poderia ir de E1 para E4 , nossa preocupação não
é com a probabilidade mas sim quando elas são não nulas. Para decidir isso nos
1.5. CADEIAS DE MARKOV E GRAFOS 53

representamos essa situação por um digrafo cujos vértices correspondem aos estados
e cujos arcos nos dizem se podemos ou não ir de um estado para o outro em um
minuto.
Se cada Ek é representado por um vértice vk então o digrafo obtido por ligar vk e
vj se e somente se Pkj ̸= 0 é chamado de digrafo associado a cadeia de Markov.
O grafo do problema anterior é (entra desenho).
A matriz de adjacência do digrafo associado a cadeia de Markov é chamada de
matriz associada, ela pode ser facilmente obtida pela matriz de Transição P ao trocar
cada entrada não nula de P por 1, então a matriz do nosso problema é

 
1 0 0 0 0 0
 
 0 1 1 1 0 0 
 
 
 0 0 1 1 1 0 
A=



 0 0 1 1 1 0 
 
 0 0 0 1 1 1 
 
0 0 0 0 0 1

Como outro exemplo, suponha que seja dada uma cadeia de Markov cuja matriz
de transição é dada abaixo
 
1 1 1  
 0 0 0  0 1 1 0 0 1
 4 2 4   
 0 1 0 0 0 0   0 1 0 0 0 0 
   
 1 1 1 1   
 0 0   1 1 0 1 0 1 
P=
 2 3 12 12  A=
 


   0 0 0 0 1 0 
 0 0 0 0 1 0   
   0 0 0 0 0 1 
 0 0 0 0 0 1   
 
0 0 0 1 0 0 0 0 0 1 0 0

(mostrar desenho do digrafo)


pode ficar claro que podemos ir de um estado Ek para um estado Ek numa cadeia
de Markov se e somente se, existe um caminho de vk para vj no digrafo associado e
o tempo mı́nimo de chegar a tal estado é o comprimento do caminho mais curto.
Uma cadeia de Markov em que podemos ir de um estado arbitrário em outro
qualquer é chamada de Cadeia de Markov irredutı́vel. Uma cadeia de Markov é
irredutı́vel se e somente se seu digrafo associado é fortemente conexo.
54 CAPÍTULO 1. GRAFOS

1.6 Algoritmos de caminho

1.6.1 Algoritmo de Fleury

O Algoritmo de Fleury possibilita encontrar um ciclo euleriano ou trajeto euleri-


ano em um grafo euleriano.

m Definição 92 (Algoritmo de Fleurya ). Vejamos os passos do algoritmo

1. Escolha um vértice inicial.

2. Atravesse uma das arestas possı́veis do grafo a partir a partir do vértice


inicial, atravessando uma ponte apenas se não tiver outra escolha, então
apague a aresta atravessada e qualquer possı́vel vértice isolado que restar.

3. Repita o passo 2 até não haver mais arestas e então pare.


a
Tal algoritmo apareceu em "Deux problemes de geometrie de situation", Journal de mathema-
tiques elementaires (1883), 257-261Fleury foi um matemático francês do qual se sabe pouco

1.6.2 O problema chinês do carteiro

O problema chinês do carteiro2 .


Um carteiro deseja entregar cartas ao longo de todas as ruas em sua área e então
voltar ao depósito. Como ele pode planejar sua rota de maneira que cubra a menor
distância?
Se o mapa de sua área for um grafo Euleriano, então não há dificuldade no
problema, ele pode simplesmente percorrer um ciclo Euleriano tal que o ciclo te-
nha comprimento mı́nimo, essa situação ocorre quando todos os vértices do grafo
possuem grau par.
O que às vezes acontece na prática é que o carteiro precisa visitar algumas partes
de sua rota mais de uma vez e deseja minimizar os trajetos. Iremos assumir que
sabemos o comprimento de cada parte da rota.
2
Tal problema foi estudado por Mei-Ko Kwan em 1962 e pode ser encontrado em Graphic Pro-
gramming Using Odd or Even Points, Chinese Math., 1:273-277, 1962
1.6. ALGORITMOS DE CAMINHO 55

Figura 1.31: Carteiro

Problemas similares a esse surgem em outros contextos, por exemplo, foi feito um
grande estudo com rotas de máquinas que retiram o gelo das ruas em Zurique alguns
anos atrás, tais máquinas são caras para se operar, então fez-se um estudo para
encontrar rotas que envolviam revisitar as ruas o mı́nimo possı́vel. Outras cidades
começaram investigações similares em termos de limpeza de ruas.

Podemos reformular o problema em termo de grafos com "peso"da seguinte ma-


neira

Achar um ciclo de peso total mı́nimo que inclua cada aresta pelo menos uma vez.

Esse problema foi resolvido em geral, usando um algoritmo que combina propri-
edades do algoritmo de Fleury e do caminho mais curto. Se o grafo é não euleriano
então existem vértices de grau ı́mpar. Porém segue do lema de "aperto de mãos"que
o número de tais vértices é par. então o número de vértices ı́mpares é 2k e podemos
fazer o grafo se tornar euleriano dobrando as arestas ao longo de k que conectam
esses vértices em pares. Garantimos que conseguimos um ciclo de peso mı́nimo
quando escolhemos os pares tais que a soma do comprimento dos k caminhos é o
menor possı́vel.

Os detalhes do algoritmo são muito complicados para serem dados aqui, mas
podemos ter uma ideia do que está envolvido ao considerar o caso particular de um
grafo com apenas dois vértices v e w de grau ı́mpar, como o grafo abaixo
56 CAPÍTULO 1. GRAFOS

Figura 1.32:

O caminho mais curto de v para w é vbcw de peso total 6. Se dobrarmos cada


aresta nesse caminho ficamos com o grafo euleriano (b) (figura). O ciclo de peso
mı́nimo total é obtido por encontrar um trajeto euleriano nesse grafo ( usando o
algoritmo de Fleury se necessário) como abvdcvbcbwcwa as únicas arestas que
precisam retraçadas são vb, bc e cw.
De maneira alternativa encontramos um caminho semi-euleriano de v para w
(usando uma modificação do algoritmo de Fleury) e então encontramos o caminho
mais curto de w de volta para v. A combinação desses caminhos é o trajeto de peso
mı́nimo. Para o grafo acima obtemos a rota

vdcvbcwbawcbv.

1.6.3 O problema das pontes de Königsberg

m Definição 93 (O problema das pontes de Königsberga ). O problema das


pontes de Königsberg (1736) é considerado o primeiro e mais famoso problema de
teoria dos grafos, ele foi resolvido por Euler em 1736. Na cidade de Königsberg
sete pontes cruzam o rio Pregel, conectando duas ilhas e as margens opostas do
rio. A questão colocada era saber se é possı́vel fazer um passeio começando e
terminando no mesmo ponto cruzando cada ponte exatamente uma vez. Euler deu
uma solução negativa para tal problema, mostrando que não existe tal caminho.
1.6. ALGORITMOS DE CAMINHO 57

Figura 1.33: Mapa de Königsberg (Kaliningrado como hoje é chamada) recons-


truı́da após sua destruição na Segunda Guerra Mundial.

Em termo de grafos o problema consiste em achar um ciclo euleriano no Grafo


formado pelas margens (superior e inferior) e as ilhas como vértices tomando as
pontes como arestas.
O trabalho de Euler foi apresentado a Academia de São Petersburgo em 26 de
agosto de 1735 e publicado com o o tı́tulo : Solutio problematis ad geometriam
situs pertinentis (A solução de um problema relativo a geometria de posição) no
jornal Commentarii academiae scientiarum Petropolitanae em 1741. A solução
de Euler para o problema das pontes de Königsberg, é considerado o primeiro
teorema de teoria dos grafos
a
Königsberg em alemão significa montanha do rei

Figura 1.34: Desenho de como seria Königsberg nos dias de Euler. Königsberg e as
pontes sobre o Rio Pregel.
58 CAPÍTULO 1. GRAFOS

Figura 1.35: Grafo representando o problema das pontes de Königsberg.

Por meio do grafo do problema, podemos perceber que em tal grafo não é eule-
riano, pois todos os vértices são de grau ı́mpar e também não é atravessável, pois
temos 4 vértices de grau ı́mpar. Então o grafo não possui ciclo euleriano nem trajeto
euleriano, não sendo possı́vel atravessar todas as pontes de Königsberg e voltar ao
ponto inicial.

1.6.4 O problema de Count Von Diamond

O cenário abaixo e a residência do bilionário Count Van Diamond, que acaba


de ser assassinado. James Bomb (um conhecido detetive que nas horas vagas e um
estudioso da teoria dos grafos) foi chamado para investigar o caso. O mordomo alega
ter visto o jardineiro entrar na sala da piscina (lugar onde ocorreu o assassinato) e
logo em seguida deixar aquela sala pela mesma porta que havia entrado. O jardineiro,
contudo, afirma que ele não poderia ser a pessoa vista pelo mordomo, pois ele havia
entrado na casa, passado por todas as portas uma única vez e, em seguida, deixado a
casa. Sherlock Gomes avaliou a planta da residência (conforme figura abaixo) e em
1.6. ALGORITMOS DE CAMINHO 59

poucos minutos declarou solucionado o caso. Quem poderia ser o suspeito indicado
por James Bomb? Qual o raciocı́nio utilizado pelo detetive para apontar o suspeito?

Figura 1.36: Mapa da casa de Van Diamond.

Figura 1.37: Grafo associado a casa de Van Diamond.

No grafo acima podemos perceber que é impossı́vel percorrer todos os aposentos


passando uma vez apenas por cada porta e voltar ao ponto inicial, pois o grafo possui
vértice de grau ı́mpar, como é o caso do vértice associado ao dormitório .

1.6.5 O Problema do Desenho da Casa

Uma criança diz ter posto a ponta do lápis numa das bolinhas do desenho da
figura abaixo, e com movimentos contı́nuos (sem levantar e sem retroceder o lápis)
traçou as linhas que formam o desenho da casa, traçando cada linha uma única
vez. A mãe da criança acha que ela trapaceou, pois não foi capaz de achar nenhuma
sequência que pudesse produzir tal resultado. Você concorda com esta mãe?
60 CAPÍTULO 1. GRAFOS

Figura 1.38: Desenho.

Modelamos o problema em questão associando cada bolinha do desenho da casa


a um vértice. As linhas que ligam as bolinhas correspondem às arestas do grafo.
Percebe-se que o problema é equivalente a determinar se existe uma trilha euleriana
no grafo. Nota-se que o grafo acima possui vértices de grau ı́mpar e, portanto, pelo
não é euleriano. No entanto ele possui uma trilha euleriana já que possui exatamente
dois vértices de grau ı́mpar, a saber v3 e v4 . Então qualquer trilha euleriana inicia-se
em v3 e termina em v4 , ou vice-versa. Por exemplo, v3 , v2 , v1 , v5 , v2 , v6 , v4 , v5 , v6 , v3 ,
v4 corresponde a uma trilha euleriana. Ou seja, é possı́vel colocar o lápis sobre uma
das bolinhas do desenho da casa e, sem tirá-lo do papel ou retroceder, traçar todas
as linhas que formam a casa. Logo, a criança pode não ter trapaceado.

Figura 1.39: Grafo associado ao desenho.

1.7 Grafos e palavras

1.7.1 Grafos e Doublets de Lewis Carrol


1.8. EXEMPLOS DE GRAFOS 61

m Definição 94 (Doublets de Lewis Carrola ). Um Doublet é um par de palavras


(A, B) com o mesmo número de letras. O objetivo do jogo é transformar uma
palavra A numa palavra B, substituindo uma letra por vez, sendo que as palavras
resultantes tem que ter sentido na lı́ngua portuguesab .
a
Lewis Carrol foi matemático e autor de Alice no Paı́s das Maravilhas
b
Ou outra lı́ngua como inglês, francês, etc.

Z Exemplo 8. Um exemplo simples de Doublet: (Vida, Bela) e uma de suas


soluções
(vida, vila, vela, bela).

m Definição 95 (Grafo Doublets). O grafo de Doublets, é o grafo obtido ao


se tomar as palavras da lı́ngua portuguesa como vértices, sendo que dois vértices
estão ligados por uma aresta ⇔ diferem pela mudança de uma letra apenas. O
problema do jogo consiste então em dados dois vértices encontrar caminhos que
os ligam, em especial encontrar um caminho de comprimento mı́nimo .

$ Corolário 22. O grafo Doublets é desconexo, pois palavras com números de


letras diferentes não se ligam.

1.8 Exemplos de grafos

1.8.1 WWW a rede mundial de internet


A rede mundial de internet, pode ser pensada como um grafo, onde cada compu-
tador é um vértice e as arestas são as conexões entre os computadores.

Вам также может понравиться