Documente Academic
Documente Profesional
Documente Cultură
2005
Apresentação
• O curso / motivação
• Horário /sala
• Programa do curso
• Referências
• Avaliação
• E-mail : adolfo@ufba.br
A teoria
dos
grafos
mostra
que não
é
água luz telefone possível
v3 v2
v4
v6
v5
v3 v2
v4 V = {v1, v2, v3, v4, v5, v6}
e1
v6
v5
E = {(v1,v2),(v1,v3),(v1,v4),(v2,v4),(v3,v4),(v4,v5)}
e1 é incidente a v4 e v5
Exercício
Desenhe a representação geométrica do seguinte
grafo:
V = {1,2,3,4,5,6};
E ={(1,2),(1,3),(3,2),(3,6),(5,3),(5,1),(5,6),(4,6),
(4,5),(6,1),(6,2),(3,4)}
Adolfo Duran - 2005 Teoria dos Grafos 24
Mais definições
• Laço
– É uma aresta formada por um par de vértices idênticos
• Multigrafo
– Um grafo que permite a existência de arestas múltiplas
v2 v3
v4
V1 é um vértice ímpar,
grau(v1)=3
Reflexão
O que podemos concluir sobre a soma dos graus de
um grafo?
Adolfo Duran - 2005 Teoria dos Grafos 31
Soma dos graus de um grafo:
O resultado é sempre par, e corresponde à formula
abaixo:
Prova
Exercício
V = pessoas.
E = relação de amizade.
Não existe a necessidade de laços nem de
arestas multiplas, então o grafo é simples.
1
Exemplo: N4 3
V={1,2,3,4}; E={ }. 2
4
Adolfo Duran - 2005 Teoria dos Grafos 41
Grafo Completo
Exemplo: K4
Logo |E| = (( n - 1 ) n ) / 2
Cn,m = n! / ( m! (n – m)! )
V=V
e
dois vértices são adjacentes em G, se e
somente se, não o são em G
Propriedade 2
O complemento de Kn é Nn
Exercício:
1 5 V1
3
2 6 V2
4
Adolfo Duran - 2005 Teoria dos Grafos 47
Grafo Bipartido
Sejam os conjuntos H={h | h é um homem} e M={m |
m é um mulher} e o grafo G(V,A) onde:
V=HUM
A = {(v,w) | (v ∈ H e w ∈ M) ou (v ∈ M e w ∈ H) e <v
foi namorado de w>}
V1
V2
K3,3
Adolfo Duran - 2005 Teoria dos Grafos 49
Subgrafo
Um grafo Gs(Vs, As) é dito ser subgrafo de um grafo
G(V,A) quando Vs ⊂ V e As ⊂ A. O grafo G2, por
exemplo, é subgrafo de G1
G1 G2
G1 G2 1
1
4 5 4
V2 induz G2
Adolfo Duran - 2005 Teoria dos Grafos 52
Clique
Denomina-se clique de um grafo G a um subgrafo
(induzido) de G que seja completo
Função:
{ (a→2), (b → 1), (c → 3), (d → 4), (e → 6), (f → 5) }
Adolfo Duran - 2005 Teoria dos Grafos 58
Isomorfismo de Grafos (exemplo)
u v w
x y z
•Simetria: G1 ≈ G2 ↔ G2 ≈ G1
•Reflexividade: G1 ≈ G1
•Transitividade: G1 ≈ G2 e G2 ≈ G3 ↔ G1 ≈ G3
Proposições válidas se G1 ≈ G2
Digrafo Simples
a d
D = (V,A)
V = {a,b,c,d)
A = {ac,ba,bc,cb,cd,cd)
b c
Proposição
Σ grauent(vi) = Σ grausai(vi) = | A |
b c
b c
Adolfo Duran - 2005 Teoria dos Grafos 65
Operações com grafos
União
– Considere 2 grafos G1(V1,E1) e G2(V2,E2) onde V1 e V2
são conjuntos distintos
– A união G1 ∪ G2 é formada pelo grafo com conjunto de
vértices V1 ∪ V2 e conjunto de arestas E1 ∪ E2
Exemplo
G: V1={1,2} e E1={(1,2)}
H: V2={3,4} e E2={ }
G ∪ H: V={1,2,3,4} e E={(1,2)}
Exemplo
G: V1 = {1,2} e E1 = {(1,2)}
H: V2 = {3,4} e E2 = { }
G + H: V={1,2,3,4} e E={(1,2),(1,3),(1,4),(2,3),(2,4)}
G∪H G+H
1 2
1 2
3 4 3 4
u: v,y
y v v: u,y,w
w: v,x,y
x: w,y
y: u,v,w,x
x w
G1 G2
X2 é um vértice de corte
Adolfo Duran - 2005 Teoria dos Grafos 80
Ponte
Uma aresta é dita ser uma ponte se sua
remoção provoca uma redução na
conectividade do grafo.
C6
C5 P5
C5 W6
Adolfo Duran - 2005 Teoria dos Grafos 84
Grafos cúbicos
São grafos regulares de grau 3
1 2 1 2
3 4 3 4
1 2 1 2
3 4 3 4
A seqüência de vértices
(x1, x2, x5, x6, x3)
é um exemplo de
caminho
A seqüência de vértices
(x1, x2, x3, x6, x5, x4, x1)
é um exemplo de ciclo
1 2 1 2
3 4 3 4
A seqüência de vértices
(x1, x2, x5, x4, x1)
é um exemplo de
circuito
Cada um destes
subgrafos é dito ser
uma componente
fortemente conexa de
G
Prova:
Corolário II
Um grafo conectado G é semi-euleriano se e
somente se ele possui exatamente 2 vértices de
grau ímpar
Algoritmo Geral
Busca Geral G(V,E)
1. Escolher e marcar um vértice inicial;
2. Enquanto existir algum vértice v marcado e incidente a
uma aresta (v,w), não explorada, efetuar:
a) escolher o vértice v;
b) explorar a aresta (v,w). Se w não é marcado então
marcar w.
Variantes do problema
x 6 y
Adolfo Duran - 2005 Teoria dos Grafos 120
Calculando os pesos:
u v
3 6 9
3
s 4
0 2 1 2 7
3
5
5 11
6
x y
u v
3 6 9
3
s 4
0 2 1 2 7
3
5
5 11
6
x y
u v
3 6 9
3
s 4
0 2 1 2 7
3
5
5 11
6
x y
Para i := 2 até n:
D[i] := L[1,i]
Repetir n-2 vezes:
v := Elemento de C que minimiza D[v]
C := C - {v}
Para cada elemento w de C:
D[w] := min(D[w],D[v]+ L[v,w])
Retornar D
Passo v C D
Início - {2,3,4,5} [50,30,100,10]
1 5 {2,3,4} [50,30,20,10]
2 4 {2,3} [40,30,20,10]
3 3 {2} [35,30,20,10]
Adolfo Duran - 2005 Teoria dos Grafos 127
O algoritmo de Dijkstra
Da maneira descrita, obtemos o custo do caminho
mínimo para qualquer vértices, mas não obtemos o
caminho mínimo.
Passo v C D P
Início - {2,3,4,5} [50,30,100,10] [1,1,1,1]
1 5 {2,3,4} [50,30,20,10] [1,1,5,1]
2 4 {2,3} [40,30,20,10] [4,1,5,1]
3 3 {2} [35,30,20,10] [3,1,5,1]
Adolfo Duran - 2005 Teoria dos Grafos 130
O algoritmo de Dijkstra para o caminho mínimo
Ele deve passar por cada estrada pelo menos uma vez,
mas deve evitar passar por muitas estradas mais de uma
vez.
A 8 14 10 D
4 9
6
F E
Adolfo Duran - 2005 Teoria dos Grafos 134
O problema do carteiro chinês
Já que os vértices B e E são os únicos que têm grau
ímpar, podemos encontrar uma cadeia semi-euleriana de
B até E passando por cada aresta exatamente uma vez
A fim de retornar ao ponto de partida, cobrindo a menor
distância possível, é só encontrar o menor caminho de E
até B (E→F →A →B)
B C
5
3 5
A 8 14 10 D
4 9
6
F E
Adolfo Duran - 2005 Teoria dos Grafos 135
O problema do carteiro chinês
A solução do problema é dada combinando o menor
caminho com a cadeia semi-euleriana
Note que, fazendo essa combinação, obtemos um grafo
euleriano
B C
5
3 5
A 8 14 10 D
4 9
6
F E
2 6 No grafo ao lado, a
6 menor rota seria
B E
8 4 A→B →D →E →C →A
7 8 5
totalizando uma
3
distância de 26
9
C D
Adolfo Duran - 2005 Teoria dos Grafos 138
O problema do caxeiro viajante
Com mais de 5 cidades, a solução anterior passa a ficar
muito complicada...
Por exemplo, com 20 cidades a quantidade de possíveis
ciclos hamiltonianos é (19!)/2, o que dá
aproximadamente 6 x 1016