Vous êtes sur la page 1sur 60

Teoria dos Grafos

Grafos e Subgrafos
verso 2.5

Prof. DSc. Fabiano Oliveira


fabiano.oliveira@ime.uerj.br

Definies Bsicas

Grafos e Subgrafos
Def.: G = (V, E) um grafo se V um
conjunto de elementos (cada elemento
chamado vrtice) e E uma famlia de
pares no-ordenados de vrtices (cada par
chamado aresta)
Se G um grafo, denotamos o conjunto de vrtices
de G por V(G) e o de arestas por E(G)
Um par (a, b) no-ordenado pode ser denotado por
ab

Grafos e Subgrafos
Ex.:
G1 = (V1, E1)
V1 = {a, b, c, d, e, f}
E1 = {aa, ab, bc, bd, cd, dc, ee, ce, cf, de, df, fd, fe}
G2 = (V2, E2)
V2 = IN
E2 = { (a, b) IN IN | a = bk ou b = ak, para algum
k IN }

Grafos e Subgrafos
Def.: Um grafo G finito se V(G) e E(G)
so conjuntos finitos
Ex (slide anterior):
G1 finito
G2 infinito

Grafos e Subgrafos
Uma representao usual de grafos finitos
atravs de um grfico onde um vrtice
v V(G) representado por um crculo
rotulado como v e uma aresta uv E(G)
por um segmento de linha com
extremidades nas representaes dos
vrtices u e v

Grafos e Subgrafos
a

Representao de
G1 (slides anteriores)

Note que um grafo possui infinitas


representaes!

Grafos e Subgrafos
Def.: G = (V, E) um grafo simples se no
existem nem laos (aa E(G)), nem
multiarestas (ab, ab E(G))
a

Grafos e Subgrafos
Def.: ab E(G) incidente a a, b (e
somente a estes vrtices)

ab incidente a a, b
bc incidente a b, c
de no incidente a a

Grafos e Subgrafos
Def.: a, b V(G) so adjacentes se
ab E(G)

a e b so adjacentes
b e f no so adjacentes

Grafos e Subgrafos
Def.: Se G um grafo finito, e nada contrrio
for dito, n representa o nmero de vrtices do
grafo e m o seu nmero de arestas
(ou seja, n = |V(G)| e m = |E(G)|)
a

n = 6, m = 9
c

Exerccio:
e

qual a relao geral entre n e


m para grafos simples?

Grafos e Subgrafos
Def.: G e H so idnticos (G = H) se
V(G) = V(H) e E(G) = E(H)
a

Grafos e Subgrafos
Def.: G e H so isomorfos (G H) se
existir bijeo : V(G) V(H) tal que
uv E(G) (u)(v) E(H)
a

V(G)

V(H)

Grafos e Subgrafos
H

G H, mas G H

Exerccio:
Encontre a bijeo que
comprova o isomorfismo

Grafos e Subgrafos
Def.: um grafo simples G completo se uv
E(G) para todo u, v V(G) distintos
Def.: Kn um grafo completo com n vrtices
b

K5

Grafos e Subgrafos
Def.: G um grafo vazio se E(G) =

Grafos e Subgrafos
Def.: G um grafo bipartido se V(G) = X
Y, com X Y = , tal que uv E(G) para
todo u, v X e uv E(G) para todo u, v
Y

bipartido

no bipartido

Grafos e Subgrafos
Def.: H um subgrafo de G se V(H) V(G) e
E(H) E(G). H subgrafo prprio de G se V
(H) V(G) ou E(H) E(G).
Def.: Se H um subgrafo de G, ento G um
supergrafo de H
a

G
e

Grafos e Subgrafos
Def.: H um subgrafo gerador de G se um
subgrafo de G tal que V(H) = V(G)

G
e

Grafos e Subgrafos
Def.: O subgrafo induzido de G por V, V V
(G), denotado por G[V], o subgrafo H de G tal
que V(H) = V e para todo u, v V, uv E(H)
uv E(G)
a

G[V]
e

V = {b, c, d, f}

Grafos e Subgrafos
Def.: O subgrafo induzido de G por E, E E
(G), denotado por G[E], o subgrafo H de G tal
que E(H) = E e no existe vrtice sem aresta
incidente em H
a

G[E]
e

E = {ab, bc, bd, cd, de}

Grafos e Subgrafos
Def.: G e H so disjuntos em arestas se
E(G) E(H) =

H
e

Grafos e Subgrafos
Def.: G e H so disjuntos em vrtices se
V(G) V(H) =

H
e

Grafos e Subgrafos
Def.: A unio G H de dois grafos o grafo J
tal que V(J) = V(G) V(H) e E(J) = E(G) E
(H)
a

Grafos e Subgrafos
Def.: O complemento de um grafo G,
denotado por Gc, tal que V(Gc) = V(G) e
E(Gc) = { uv : u, v V(G) | u v e uv E(G) }
a

Gc

Grafos e Subgrafos
Def.: A diferena de um grafo G por V V(G),
denotado por G V, o grafo G[V(G) - V]

V = {b, d}

GV

Grafos e Subgrafos
Def.: A diferena de um grafo G por E E(G),
denotado por G E, o grafo H, onde V(H) = V
(G) e E(H) = E(G) - E
a

E = {ab, bc, cf, ef, ce}

GE

Grafos e Subgrafos
Def.: O grau de um v V(G), denotado por d
(v), o nmero de arestas incidentes a v

d(a) = 1, d(b) = 3, etc.


c

Exerccio:
Quanto vale
{ d(v) : v V(G) }?

Grafos e Subgrafos
Exerccio: Mostre que para qualquer grafo, o
nmero de vrtices de grau mpar par

Ex.: a, b, e, f so
aqueles de grau mpar
(em nmero par,
portanto)

Grafos e Subgrafos
Def.: O grau mximo de um grafo G, denotado
por (G), o grau do vrtice de G que possui o
maior valor, i.e., (G) = mx { d(v) : v V(G) }
Def.: O grau mnimo de um grafo G, denotado
por (G), o grau do vrtice de G que possui o
menor valor, i.e., (G) = min { d(v) : v V(G) }
Por definio, (G) (G)

Grafos e Subgrafos

(G) = 1
(G) = 4

Exerccio:
Qual a relao entre
m, (G), (G)?

Grafos e Subgrafos
Def.: Um grafo G k-regular se
d(v) = k para todo v V(G)

4-regular
Exerccio:
Quais so os grafos 0-regulares?
Quais so os grafos 1-regulares?
Quais so os grafos (n1)-regulares?

Grafos e Subgrafos
Def.: Um passeio em um grafo G uma
sequncia v0,v1,v2,...,vk de vrtices de G tal que
vivi+1 E(G), para todo 0 i < k.
O tamanho deste passeio k.
a

a,b,f no um passeio
c

a,b,d,e,f,c,e,d,b um
passeio (de tamanho 8)

Grafos e Subgrafos
Def.: Uma trilha em um grafo simples G um
passeio v0,v1,v2,...,vk tal que vivi+1 distinta para
todo 0 i < k
a

a,b,d,e,f,c,e,d,b no
uma trilha

a,b,d,f,c,d,e uma trilha

Grafos e Subgrafos
Def.: Um caminho em um grafo simples G
uma trilha v0,v1,v2,...,vk tal que vi distinto para
todo 0 i k
a

a,b,d,f,c,d,e no um
caminho

a,b,d,f,c,e um caminho

Grafos e Subgrafos
Def.: A distncia entre u, v V(G), denotado
por d(u, v), o menor k para o qual existe um
caminho u,...,v de tamanho k
a

d(a, a) = 0
d(a, b) = 1
d(a, d) = 2
d(a, f) = 3

Grafos e Subgrafos
Def.: Um grafo G conexo se existe um
caminho entre quaisquer u, v V(G). Caso
contrrio, desconexo
a

Conexo

Desconexo

Grafos e Subgrafos
Def.: Seja V V(G) um conjunto maximal tal que
G[V] conexo. Chamamos G[V] de componente
conexo de G
O nmero de componentes conexos de um grafo G
denotado por (G)
a

(G) = 3
G[{a}], G[{b, c}] e G[{d, e, f}] so
os componentes conexos de G

Grafos e Subgrafos
Def.: Um passeio v0,v1,v2,...,vk fechado se
v0 = vk
Def.: Um ciclo uma trilha fechada
a

c,d,e,f,d,e,c um
passeio fechado e no
um ciclo
c,d,e,f,d,b,c um ciclo

c,e,f,d,c um ciclo

Grafos e Subgrafos
Linguagem das Provas:
Uma prova matemtica uma sequncia passo-apasso de como se concluir Y a partir de X. anlogo a
um algoritmo, que transforma uma entrada X em uma
sada em Y em diversos passos. Assim como um
algoritmo, a Matemtica tem uma linguagem particular
que deve ser conhecida e usada, afim de conseguir ler
e escrever trabalhos de/para outros matemticos.

Grafos e Subgrafos
Linguagem das Provas:
Uma prova matemtica to anloga a um algoritmo
que sua depurao a mesma, "fazendo um Chins"
da mesma: ir seguindo passo-a-passo acompanhando
o que dito por um rascunho e atualizando as variveis
sendo usadas.

Grafos e Subgrafos
Linguagem das Provas:
Uso da expresso "Seja x X que respeite
propriedade P" para escolher um elemento arbitrrio x
de um conjunto X que possua a propriedade P (
necessrio que haja pelo menos um!)

Grafos e Subgrafos
Linguagem das Provas:
Para mostrar "X se e somente se Y (X Y)",
necessrio mostrar a "ida" e a "volta", ou seja,
mostramos que se X, ento Y ("ida"), e em seguida,
mostramos que se Y, ento X ("volta")
a afirmao "chover sair de guarda-chuva" pode
ser verdade, mas no o contrrio!
a eficincia da elaborao de uma prova pode ser
testada verificando-se se a afirmao seguinte
verdadeira: "estudar ser aprovado"

Grafos e Subgrafos
Linguagem das Provas:
Uso da expresso "Sem perda de generalidade,
assuma X" para fixar alguma verdade que antes no
era necessariamente o caso. Esta expresso denota
que esta premissa sempre pode ser assumida ou algum
pr-processamento ou ps-processamento nos dados
do problema pode ser feito para que X se verifique. Se
o pr-/ps-processamento no for informado, ele deve
ser trivial de perceber. Exemplos:
"Sejam X e Y dois inteiros. Sem perda de
generalidade, X Y." (E se no for?)
"Seja V um vetor de inteiros. Sem perda de
generalidade, V est ordenado." (E se no estiver?)

Grafos e Subgrafos
Linguagem das Provas:
Uso da expresso "Basta mostrar que X" para chamar
ateno que se provarmos X, ento o trabalho o qual
estvamos interessados est finalizado. Exemplos:
Objetivo inicial: mostrar que um vetor V est
ordenado.
"Basta mostrar que V(i) V(i+1) para todo 1 i <
|V|"
Objetivo inicial: mostrar que um grafo conexo uma
rvore.
"Basta mostrar que G acclico."

Grafos e Subgrafos
Linguagem das Provas:
Uso da expresso "Naturalmente, X", " claro que X",
"Trivialmente, X", etc. para evidenciar um novo fato X
cuja deduo o leitor deve chegar sem maiores
explicaes de maneira simples
Ex.: Naturalmente, existe natural k tal que x = 2k.
(dado que x ser par fato)

Grafos e Subgrafos
Linguagem das Provas:
Uso da expresso "Vamos mostrar que X" para
mostrar o prximo fato X que a prova pretende
alcanar. mais fcil seguir uma prova com o objetivo
de destino em mente.
(Anlogo a comentrios em uma linguagem de
programao!)
Ex.: Prove que x divisvel por 6. Prova: Vamos
mostrar que x par. (....). Agora, mostraremos que x
divisvel por 3. (....). Logo, x divisvel por 6.

Grafos e Subgrafos
Linguagem das Provas:
Uso da expresso "O raciocnio anlogo para
demonstrar X" para indicar que os mesmos passos de
provas utilizados podem ser usados com ligeiras
modificaes para demonstrar X.

Grafos e Subgrafos
Teorema:
Um grafo G bipartido G no contm um ciclo
de tamanho mpar

bipartido

no bipartido

Grafos e Subgrafos
():
Seja G um grafo bipartido.
Sejam X e Y uma bipartio de V(G).
Se G no possui ciclos, vale a ida. Suponha ento que exista
um ciclo.
Seja v0,v1,v2,...,vk,v0 um ciclo de G.
Sem perda de generalidade, v0 X.
Como G[X] e G[Y] so vazios, v1 Y, v2 X, v3 Y, v4
X, v5 Y, , vk Y.
Portanto, k = 2i+1, para algum i IN.
Logo, o tamanho do ciclo 2i+2, e par portanto.

Grafos e Subgrafos
() (1 de 2):

Seja G um grafo sem ciclos de tamanho mpar.


Se G desconexo, basta mostrar que cada componente
conexo H bipartido para G ser bipartido.
Sejam H um componente conexo de G e u V(H).
Sejam:
X = { v V(H) | d(u, v) par },
Y = { v V(H) | d(u, v) mpar }.
Naturalmente, X Y = V(H) e X Y = . Vamos mostrar
que G[X] e G[Y] so grafos vazios.
Sejam x, y X.
Sejam P o menor caminho entre u e x e Q o menor caminho
entre u e y, e z o ltimo vrtice comum a ambos os
caminhos.

Grafos e Subgrafos
() (2 de 2):

Como P e Q so menores caminhos, ento o trecho u at z


no caminho P tem que ter o mesmo tamanho do trecho u at
z no caminho Q.
Como |P| e |Q| so pares, ento o tamanho do caminho de z
at x em P tem a mesma paridade do tamanho do caminho
de z at y em Q.
Logo, o caminho que vai de x at z por P e depois segue por
Q at y tem tamanho par.
Se xy E(H), haver um ciclo de tamanho mpar, o que no
possvel. Logo, xy E(H).
Como x e y so vrtices quaisquer de X, H[X] vazio.
O raciocnio anlogo para demonstrar que H[Y] vazio.
Logo, X e Y mostram que H bipartido.

Ser que um
programador
realmente
precisa
saber
Matemtica a
este ponto?

Grafos e Subgrafos
Se voc quer criar algoritmos inovadores, muito

provvel que voc ter que saber. Argumentos a favor:


"Argumentos Tcnicos":

Programar criar um processo mecnico para


processar uma funo matemtica. Logo, conhecer
funes e todos os assuntos correlatos a ela (Teoria
dos Conjuntos, Lgica, Relaes, etc.) parece
fundamental, no?

Grafos e Subgrafos
Se voc quer criar algoritmos inovadores, muito

provvel que voc ter que saber. Argumentos a favor:


"Argumentos Tcnicos":
Eficincia executar com o menor nmero de passos,
que significa no fazer todas as verificaes que
algoritmos concorrentes fazem e ainda assim chegar a
uma transformao correta da entrada. Para tanto,
necessrio argumentar a correo do novo processo.
(Se o algoritmo inovador, o argumento passou
desapercebido de muitos.) Exemplos:
Ordenao por Permutaes, Bubblesort, e
Quicksort.
Dado um nmero N, decidir se N primo.

Grafos e Subgrafos
"Argumento da Autoridade":
A vasta maioria dos Departamentos de Computao do
mundo todo colocam a Matemtica a seus alunos de
Cincia da Computao. Estariam todos errados?
"Argumento Histrico":
Os algoritmos mais criativos foram desenvolvidos por
Matemticos ou pessoas que tiveram forte base
Matemtica. Isto no um indcio de que esta faculdade
mental seja desejvel a um desenvolvedor de algoritmos?
"Argumento da Analogia:"
Um jogador de futebol de alto-desempenho precisa se
exercitar na academia. Afinal de contas, ele vai levantar
peso ou jogar bola?

Grafos e Subgrafos
"Argumento do Custo-Benefcio:"
Programar e demonstrar so muito anlogos. Se algum j
sabe um bem, saber o outro um esforo extra pequeno.
Por que no?
"Argumento do Exemplo"
Bill Gates, 4 anos depois de ter fundado a Microsoft,
publicou um artigo cientfico com um dos maiores tericos
da Computao:
Gates, W., Papadimitriou, C. (1979). "Bounds for Sorting
by Prefix Reversal". Discrete Mathematics 27: 4757.
doi:10.1016/0012-365X(79)90068-2.

Exerccios

Grafos e Subgrafos
1.
2.
3.

4.
5.
6.

Mostre que se G e H tem a mesma famlia de graus, isto , a famlia {d(v) :


v V(G)} igual a famlia {d(v) : v V(H)}, no necessariamente G H.
Mostre que h onze grafos simples no-isomorfos que possuem 4
vrtices.
Um k-cubo um grafo cujo conjunto de vrtices formado por todos os
nmeros de k-digitos, onde cada digito 0 ou 1, e dois vrtices so
adjacentes precisamente quando diferem em exatamente um dgito.
Mostre que o nmero de vrtices e de arestas de um k-cubo so
respectivamente 2k e k2k-1 para todo k 1.
Mostre que um k-cubo um grafo bipartido.
Mostre que (G) 2m/n (G)
Quantos vrtices possui um grafo k-regular com m arestas?

Grafos e Subgrafos
7.
8.
9.
10.
11.
12.

Mostre que se um grafo bipartido com bipartio X e Y k-regular, ento


|X| = |Y|
Mostre que, em qualquer grupo de duas ou mais pessoas, h sempre
duas com exatamente o mesmo nmero de conhecidos dentro do grupo
Mostre que se h um passeio de u at v em G, ento h um caminho de u
at v em G.
Mostre que se G desconexo, ento Gc conexo.
Mostre que quaisquer dois caminhos mais longos num grafo conexo tem
um vrtice em comum.
Mostre que se (G) 2, ento G contm um ciclo.