Teoria dos grafos
Introdução
De um modo geral, a área de algoritmos em grafos pode ser considerada como aquela cujo
interesse principal é resolver problemas algorítmicos em grafos, tendo em mente uma
preocupação computacional. Ou seja, o objetivo principal é encontrar algoritmos, eficientes
se possível, para resolver um dado problema em grafos.
Há problemas não algorítmicos em grafos em que o conceito de eficiência torna-se sem
sentido. Por outro lado, a preocupação pela eficiência, na área de algoritmos, se traduz
também na formulação de problemas algorítmicos em grafos que talvez se encontrem fora
de interesses para a teoria. Não obstante, uma melhora na eficiência de um algoritmo para
um dado problema em grafos somente pode ser obtida através de um melhor conhecimento
teórico do problema.
O marco inicial da teoria dos grafos é um problema algorítmico. É o conhecido problema
da ponte de Königsberg resolvido por Euler em 1736. No rio Pregel, junto à cidade de
Königsberg (atual Kaliningrado) na então Prússia, existem duas ilhas formando portanto
quatro regiões distinguíveis da terra, A, B, C e D. Há um total de sete pontes interligandoas. O problema consiste em, partindo de uma dessas regiões, determinar um trajeto pelas
pontes segundo o qual se possa retornar à região de partida, após atravessar cada ponte
somente uma vez. Euler mostrou que não existe tal trajeto, ao utilizar um modelo em grafos
para uma generalização deste problema. Através deste modelo ele verificou que existe o
desejado trajeto se e somente se em cada região concorrer um número par de pontes.
Grafos
Um grafo G = (V, E) consiste de um conjunto finito e não vazio de vértices,V(G), e uma
família finita, E(G) de pares não ordenados de vértices chamados arestas.
A ordem de um grafo é a quantidade de vértices, e seu tamanho é a quantidade de arestas.
Se u e v são dois vértices de um grafo e se o par não ordenado {u, v} é uma aresta denotada
por e, diz-se que u e v são incidentes a e e e é incidente a ambos u e v.
O grau de um vértice v de G é o número de arestas incidentes à v, laços contados duas
vezes. Denota-se por d(v) ou deg(v).
Adj(v) denota o conjunto de vértices adjacentes à v: |Adj(v)| = d(v).
Exemplos: V(G) = {a, b, c, d, e}
E(G) = {(a, b), (b, c), (c, d), (b, d), (d, c)}
c
a
grau= 1
a
a
b
d
b
3
c
3
d
1
e
e
2
c
e
a
b
d
a
b
c
d
e
e
c
b
d
Duas ou mais arestas que unem o mesmo par de vértices distintos são chamadas de arestas
paralelas. Uma aresta que une dois vértices não distintos é chamado de laço. Um grafo
simples não possui arestas paralelas nem laços.
V(G) = {a, b, c, d}
E(G) = {(a, b), (a, b), (b, a), (b, c), (c, d), (d, d)}
b
a
c
d
Um grafo orientado (dirigido) ou dígrafo consiste de um conjunto finito V de vértices e
um conjunto E de pares ordenados de vértices distintos chamados arcos. Se o par
ordenado {u, v} é um arco a, diz-se que o arco a é orientado de u para v. O arco a é
adjacente ao vértice u e é adjacente ao vértice v.
V(G) = {a, b, c, d}
E(G) = {<a, b>, <a, b>, <b, a>, <b, c>, <c, d>, <d, d>}
b
a
d
c
Um grafo conexo é aquele composto por apenas um único componente (pedaço). Um grafo
desconexo possui mais de um componente.
a
a
f
d
c
b
f
d
c
b
e
e
Um grafo completo Kn é um grafo com n vértices no qual há exatamente uma aresta
juntando todos os pares de vértices.
O grafo K1 com um vértice e nenhuma aresta é chamada como grafo trivial.
O complemento de um grafo simples G, denotado por G, é o grafo simples tal que
V(G) = V(G)
(u, v) ∈ E(G) <==> (u, v) ∉ E(G)
a
b
d
c
a
b
d
c
Seja S ⊆ V(G). S é um conjunto independente se não existir aresta entre quaisquer dois
vértices de S, em G.
a
b
{b, d} é um conjunto independente de G
{a, c} é um conjunto independente de G
d
c
Um subgrafo H de um grafo G=(V, G) é um grafo tal que V(H) ⊆ V(G) e E(H) ⊆ E(G).
a
b
d
c
a
b
c
a
Se, além de ser um subgrafo, H possui toda aresta (a, b) de G com ambos os extremos em
V(H), dizemos que H é um subgrafo induzido ou gerado de G. Denota-se H = G[V(H)]
Um subgrafo gerador de G é um subgrafo H tal que V(H) = V(G)
a
b
d
a
b
c
não é induzido
é gerador
a
c
é induzido
não é gerador
a
b
d
não é induzido
não é gerador
c
é induzido
é gerador
Teorema 1: ∀ G, ∑ d(v) = 2m (m = quantidade de arestas)
v ∈ V(G)
cada aresta contribui com exatamente 2 unidades na soma dos graus.
à = 2m
Corolário 1: o número de vértices de grau ímpar em um grafo é par.
Consideremos dois conjuntos de V(G): P, formado pelos vértices de grau par e, I, formado
pelos vértices de grau ímpar
2m = ∑ d(v)
=
v ∈ V(G)
é par
∑ d(v) + ∑ d(v)
v∈P
v∈I
é par
obrigatoriamente é par
Portanto, |I| é par.
Um grafo G é regular se todos os vértices têm o mesmo grau. Em particular, se o grau de
cada vértice é r, então G é regular de grau r ou r-regular.
O símbolo ∆(G) denota o maior grau dos vértices de G, o símbolo δ(G) denota o menor
grau de G.
Se G é k-regular então, ∆(G) = δ(G) = k.
grau 0 à 0-regular
grau 3
3-regular
Kn é regular?
| Kn | = ?
Se G é um grafo simples, qual é o maior valor para ∆(G)?
Quantas arestas possui um grafo simples, k-regular com n vértices?
Um grafo bipartido é um grafo simples no qual o conjunto de vértices pode ser
particionado em dois conjuntos X e Y tal que todas as arestas estão entre um vértice de X e
um vértice Y; é representado como G = (X, Y, E).
O grafo bipartido completo Km,n é o grafo (X, Y, E) com m vértices em X e n vértices em
Y no qual há um aresta entre todos os vértices de X e todos os vértices de Y. A união de
dois grafos G1 = (V1, E1) e G2 = (V2, E2) é o grafo G = G1 ∪ G2 = (V, E), onde V é a união
de V1 e V2 e E é a união de E1 e E2.
bipartido completo
Quantos vértices e quantas arestas possui Km,n?
| V(Km,n )| = ?
| E(Km,n )| = ?
Isomorfismos de grafos
Grafos iguais: 2 grafos G e H são iguais se V(G) = V(H) e E(G) = E(H).
a
b
c
2
1
2
1
a
G
b
c
H
(1,b) ∈ E(G) e (1,b) ∈ E(H). Não são iguais, mas são isomorfos.
Dois grafos G e H são isomorfos se existem 2 funções bijetivas f:V(G) à V(H),
g:E(G)àE(H), tais que para toda aresta α em G, se u e v são os extremos de α, então f(u) e
f(V) são os extremos de g(α) em H. O par (f,g) é um isomorfismo de G em H.
α
u
g(α)
f, g
v
f(u)
f(v)
Se os grafos G e H são simples, então G e H são isomorfos se existir uma bijeção
f:V(G)àV(H) tal que se (u, v) ∈ E(G) então f(u), f(v)) ∈ E(H), ou seja, f preserva a relação
de adjacência.
-
G e H são isomorfos?
a
b
z
c
x
q
w
a
-
b
G
G, H e I são isomorfos?
c
y
t
k
H
G
-
Isomorfismo é uma relação de equivalência? (reflexiva, simétrica, transitiva)
-
quantos grafos simples distintos existem com três vértices: 1, 2, 3?
-
quantos grafos existem, a menos de isomolrfismos, com três vértices: 1, 2, 3?
-
se G ≅ H è |V(G)| = |V(H)| e |E(G)| = |E(H)|
-
para cada n > 1 quantos grafos completos com n vértices existem a menos de
ismorfismos?
-
Um grafo é auto-complementar se G ≅ G. Dê exemplos de grafos auto-complementares.
Automorfismo
Um automorfismo é um isomorfismo de G em G. Então, um automorfismo é uma
permutação dos vértices de G que preserva adjacências.
a
e
f
e
j
b
j
d
g
i
f
h
h
g
d
c
c
b
f(a)=b f(b)=c f(c)=d f(d)=e f(e)=a
f(f)=g f(g)=h f(h)=i f(i)=j f(j)=k
f é um automorfismo de G em G (rotaçãso de 72°)
Quais são os automorfismos de um triângulo com vértices (1,2,3)?
1
3
à
2
a
i
3
f: 1 2 3
231
2
1
2
1
3
1
3
2
1
2
3
3
1
2
2
3
1
Automorfismo (C3) = Aut(∆) = {1, (123), (132), (12), (13), (23)} = S3, grupo com a
operação de combinação de funções (elemento neutro e inverso).
(123) . (132) = 1
-
quais são os automorfismos de G:
a
b
d
-
quais são os automorfismos do C4?
c
Passeio
Um passeio P é uma seqüência finita e não-vazia (vo, α1, v1, α2, v2, ..., αk, vk) cujos
elementos são alternadamente vértices e arestas e tal que para todo 1<= i <= k vi-1 e vi são
extremos de αi.
Dizemos que P é um passeio de vo à vk.
Se k = 0, P é um passeio degenerado.
|P| = k. O comprimento de P é k.
α1
1
α4
α7
α6
4
2
α3
1α12α23α32α11α43α54α64α64 é um passeio
α2
1α12α33α54α64α71α43 é uma trilha
3
α5
Se as arestas α1, α2, ..., αk são 2 a 2 distintas, P é uma trilha (não pode repetir aresta). E,
além disso, os vértices forem 2 a 2 distintos, P é um caminho.
1α12α33α54 é um caminho
Se |P| > 0 e vo = vk, então P é um passeio fechado ou trilha fechada.
Trilhas fechadas: 1α12α23α41, 2α23α32, 1α74α53α41, 1α43α54α64α71
Se P é uma trilha fechada e os ‘vertices são distintos, então P é um ciclo ou circuito.
1α12α33α41 (ciclo)
2α23α32 (ciclo induzido)
1α74α53α41 (ciclo)
Se o grafo G for simples, a seqüencia de vértices determina o passeio.
-
demonstre que se existe um passeio de u a v em G, então existe um caminho de u a v
em G.
todo grafo simples G contém um caminho de comprimeto δ(G); se δ(G) >= 2, G contém
um ciclo de comprimento pelo menos δ(G) + 1.
Conexão
Sejam G um grafo e u e v dois vértices de G. Dizemos que u e v são oligados (conectados)
se existe um caminho de u a v em G.
Lema: ligação é uma relação de equivalência.
Demonstração:
reflexiva: ∀u ∈ V(G), u é ligado a u.
OK! P = (u) degenerado
simétrica: ∀u ∈ V(G), se existe um caminho P = (u=vo, α1, v1, α2, v2, ..., αn, vn=v)
de u a v em G, então existe um caminho Q de v a u em G.
Q = P-1 = (v, αn, ..., v2, α2, v1, α1, u) caminho reverso de P
transitiva: ∀u, v, w ∈ V(G), se existe um caminho P = (u=vo, α1, v1, ..., αn, vn=v) de
u a v em G e se existe um caminho Q = (v=v’o, β1, v’1, ..., βn, v’n=w) de v a w em G è
existe um caminho R de v a w em G.
Grafos Bipartidos
Teorema 2: um grafo é bipartido se e somente se não possui ciclos ímpares.
Dem.: suponha G bipartido com bipartição {X, Y}
Seja C = {u0, u1, ..., uk, uo} um ciclo em G
Sem perda de generalidade, seja u0 em X
Se |C| é ímpar è k = 2a (par) è uk ∈ X, mas existe (u0, uk) ∈ E(G), contradizendo
G ser grafo bipartido.
Download

Teoria dos grafos