Buscar

Cap4 TG geradora e busca

Prévia do material em texto

TEORIA DOS GRAFOS
Prof. Bernardo Caldas
bcaldasbc@gmail.com
12/03/2018 1Teoria dos Grafos
• “Por menor que seja seu tempo de estudo, ESTUDE.”
• “Não tenha medo de crescer lentamente, tenha medo 
apenas de ficar parado.”
12/03/2018 2Teoria dos Grafos
• “Você deve estudar para “aprender” e “não” para passar de 
ano.”
• “Eu só sei que nada sei.” - Sócrates
• Minha meta é formar pensadores.
Índice
• Árvore geradoras de grafos
• Busca em profundidade e largura
• Algoritmos de caminho crítico 
• Acessibilidade• Acessibilidade
12/03/2018 3Teoria dos Grafos
Árvore geradora
• Uma árvore geradora para um grafo conexo é uma árvore sem raiz cujo
conjunto de nós coincide com o conjunto de nós do grafo e cujos arcos são,
alguns dos, arcos do grafo.
• Uma árvore geradora cuja soma dos pesos de seus arcos seja menor do que
em qualquer outra situação é chamada de árvore geradora mínima.
• Um método para obter uma árvore geradora de mínimo é o algoritmo de
Prim.
12/03/2018 4Teoria dos Grafos
Árvore geradora
Uma possível árvore geradora.
12/03/2018 5Teoria dos Grafos
Uma árvore geradora mínima.
Árvore geradora
• Pseudocódigo para árvore geradora mínima:
– Colocar um nó arbitrário no conjunto IN;
– Para cada nó z não pertencente a IN, guardar a distância– Para cada nó z não pertencente a IN, guardar a distância
mínima d[z] entre z e qualquer nó em IN;
– Incluir sucessivamente os demais nós em IN, em que o
próximo nó a ser incluído é um que não pertença a IN e cuja
distância d[z] seja mínima;
– O arco tendo essa distância mínima fará parte da árvore
geradora.
12/03/2018 6Teoria dos Grafos
Árvore geradora 
• Encontrar a árvore geradora mínima do grafo.
x
2
83
1
12/03/2018 7Teoria dos Grafos
21
71046
4
13
3
y
1
Árvore geradora
• IN = {1} adotar arbitrariamente.
• Distância dos nós adjacentes de IN
– 1 p/x = 3 (menor vai para lista IN)
– 1 p/3 = 6
x
2
83
1
71046
– 1 p/3 = 6
• IN = { 1, x}
12/03/2018 8Teoria dos Grafos
71046
4
13
3
y
1
Árvore geradora
• IN = {1, x}
• Distância dos nós adjacentes de IN
– x p/2 = 8
– x p/y = 10
x
2
83
1
71046
– x p/y = 10
– x p/3 = 4 (menor vai para lista IN)
– 1 p/3 = 6
• IN = { 1, x, 3}
12/03/2018 9Teoria dos Grafos
71046
4
13
3
y
1
Árvore geradora
• IN = {1, x, 3}
• Distância dos nós adjacentes de IN
– 3 p/y = 3
– 3 p/4 = 1 (menor vai para lista IN)
x
2
83
1
71046
– 3 p/4 = 1 (menor vai para lista IN)
– x p/2 = 8
• IN = { 1, x, 3, 4}
12/03/2018 10Teoria dos Grafos
71046
4
13
3
y
1
Árvore geradora
• IN = {1, x, 3, 4}
• Distância dos nós adjacentes de IN
– 4 p/y = 1 (menor vai para lista IN)
– 4 p/2 = 7
x
2
83
1
71046
– 4 p/2 = 7
– x p/2 = 8
• IN = { 1, x, 3, 4, y}
12/03/2018 11Teoria dos Grafos
71046
4
13
3
y
1
Árvore geradora
• IN = {1, x, 3, 4, y}
• Distância dos nós adjacentes de IN
– x p/2 = 8
– 4 p/2 = 7 (menor vai para lista)
x
2
83
1
71046
– 4 p/2 = 7 (menor vai para lista)
• IN = { 1, x, 3, 4, y, 2}
12/03/2018 12Teoria dos Grafos
71046
4
13
3
y
1
Árvore geradora
• Qual a árvore
geradora do
grafo mínima?
• IN = {a}
• a->b=1; a->d=4
• IN = {a,b}
• a->d=4; b->d=6; b->e=4; b->c=2
• IN = {a,b,c}
• a->d=4; b->d=6; b->e=4; c->e=5; c->f=6
12/03/2018 13Teoria dos Grafos
• a->d=4; b->d=6; b->e=4; c->e=5; c->f=6
• IN = {a,b,c,d}
• d->e=3; d->g=4; b->e=4; c->e=5; c->f=6
• IN = {a,b,c,d,e}
• d->g=4; e->g=7; e->f=8
• IN = {a,b,c,d,e,g}
• g->f=3; e->f=8; c->f=6
• IN = {a,b,c,d,e,g,f}
Árvore geradora
• Qual a árvore
geradora do
grafo mínima?
6
1
172
• IN = {1}
• 1->6=172; 1->5=123; 1->2=404; 1->3
=1120; 1->4=844
• IN = {1, 5}
• 1->6=172; 1->2=404; 1->3=1120; 1->4
=844; 5->6=47; 5->4=21547
12/03/2018 14Teoria dos Grafos
5
404
1
4
2
3
592
987
1120
844 215
123
321
186
=844; 5->6=47; 5->4=215
• IN = {1, 5, 6}
• 1->2=404; 1->3=1120; 1->4=844; 5-
>4=215; 6-4=321
• IN = {1, 5, 6, 4}
• 1->2=404; 1->3=1120; 4->3=186
• IN = {1, 5, 6, 4, 3}
• 1->2=404; 3->2=592; 4->2=987
• IN = {1,5,6,4,3,2}
Algoritmos de percurso
• Os percursos em grafos tratam de como explorar
um grafo de forma sistemática.
• Encontrar um caminho que passa por cada nó
pelo menos uma vez, mas pode visitar um nópelo menos uma vez, mas pode visitar um nó
mais de uma vez se não o escrever de novo,
podendo.
• Dois algoritmos generalizam o percurso em
qualquer grafo simples e conexo, a busca em
profundidade e busca em largura.
12/03/2018 15Teoria dos Grafos
Algoritmos de percurso
Busca em profundidade
• Começar em um nó arbitrário a do grafo, marcar
esse nó como tendo sido visitado e escrever esse
nó.
• Percorrer um caminho saindo de a, visitando e
escrevendo os nós, indo tão longe quantoescrevendo os nós, indo tão longe quanto
possível até não existirem nós que ainda não
forem visitados nesse caminho.
• Voltar pelo caminho explorando, em cada nó,
quaisquer caminhos laterais, até voltar,
finalmente, para a.
12/03/2018 16Teoria dos Grafos
Algoritmos de percurso
Busca em profundidade
• Aplicar a busca em
profundidade no grafo.
• Em uma busca em
profundidade, vá o mais longe
possível, depois suba
a
ib e
12/03/2018 17Teoria dos Grafos
profundidade, vá o mais longe
possível, depois suba
voltando, pegando qualquer
caminho não percorrido na
descida.
• As escolhas dos nós serão
feitas por ordem alfabética.
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em a (arbitrário)
• L = {a}
• Escolher um nó adjacente a a
(b, e, h, i)
a
ib e
12/03/2018 18Teoria dos Grafos
(b, e, h, i)
– => selecionar b
• Iniciar em b
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em b
• L = {a, b}
• Escolher um nó adjacente a b
(c)
a
ib e
12/03/2018 19Teoria dos Grafos
(c)
– => selecionar c
• Iniciar em c
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em c
• L = {a, b, c}
• Escolher um nó adjacente a c
(e,d,f)
a
ib e
12/03/2018 20Teoria dos Grafos
(e,d,f)
– => selecionar d (ordem alfab.)
• Iniciar em d
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em d
• L = {a, b, c, d}
• Escolher um nó adjacente a d
( f, g)
a
ib e
12/03/2018 21Teoria dos Grafos
( f, g)
– => selecionar f (ordem alfab.)
• Iniciar em f
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em f
• L = {a, b, c, d, f}
• Escolher um nó adjacente a f
(g)
a
ib e
12/03/2018 22Teoria dos Grafos
(g)
– => selecionar g
• Término em g
• L = { a, b, c, d, f, g}
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Voltar a partir de g (sair dos laços)
• Escolher um nó adjacente a c
(e)
– Selecionar e
a
ib e
12/03/2018 23Teoria dos Grafos
– Selecionar e
• Iniciar em e
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em e
• L = {a, b, c, d, f, g, e}
• Escolher um nó adjacente a e
(h, j)
a
ib e
12/03/2018 24Teoria dos Grafos
(h, j)
– => escolher h (ordem alfab.)
• Iniciar em h
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em h
• L = {a, b, c, d, f, g, e, h}
• Escolher um nó adjacente a h
(i, j, k)
a
ib e
12/03/2018 25Teoria dosGrafos
(i, j, k)
– => escolher i (ordem alfab.)
• Iniciar em i
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Iniciar em i
• L = {a, b, c, d, f, g, e, h, i}
• Escolher um nó adjacente a i (k)
– => escolher k
a
ib e
12/03/2018 26Teoria dos Grafos
– => escolher k
• Termino em k
• L = { a, b, c, d, f, g, e, h, i, k}
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em profundidade
• Voltar a partir de k (sair dos laços)
• Escolher um nó adjacente a h
(j)
– h para j (não visitado)
a
ib e
12/03/2018 27Teoria dos Grafos
– h para j (não visitado)
• Selecionar J
• L = {a, b, c, d, f, g, e, h, i, k, j}
• Terminar em J
• Voltar para a
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• Na busca em largura, começar em
um nó arbitrário a, procurar, a
partir de a, todos os nós
adjacentes, depois os nós
adjacentes a esses e assim por
a
ib e
12/03/2018 28Teoria dos Grafos
adjacentes a esses e assim por
diante, quase como círculos
concêntricos de ondas em um
pequeno lago.
• A figura mostra os primeiros nós
visitados na busca em largura
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
a
ib e
h
Distância 0 - a
Distância 1 – b, e, h, i
12/03/2018 29Teoria dos Grafos
fd
g
c
h
j k
Distância 2 – c, j, k
Distância 3 – d, f
Distância 4 - g
Algoritmos de percurso
Busca em largura
• Aplicar a busca em
largura no grafo.
a
ib e
12/03/2018 30Teoria dos Grafos
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { } vazia
• Iniciar em a
• F = {a}
a
ib e
12/03/2018 31Teoria dos Grafos
• F = {a}
• Procurar nós adjacentes a a
– => b, e, h, i
• F = { a, b, e, h, i}
• F = { a, b, e, h, i} remover a
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i}
• Procurar nós adjacentes a b
– => c
a
ib e
12/03/2018 32Teoria dos Grafos
– => c
• F = { a, b, e, h, i, c}
• F = { a, b, e, h, i, c} remover b
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c}
• Procurar nós adjacentes a e
– => j
a
ib e
12/03/2018 33Teoria dos Grafos
– => j
• F = { a, b, e, h, i, c, j}
• F = { a, b, e, h, i, c, j} remover e
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j}
• Procurar nós adjacentes a h
– => k
a
ib e
12/03/2018 34Teoria dos Grafos
– => k
• F = { a, b, e, h, i, c, j, k}
• F = { a, b, e, h, i, c, j, k} remover h
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k}
• Procurar nós adjacentes a i
– => nenhum nó novo na fila
a
ib e
12/03/2018 35Teoria dos Grafos
– => nenhum nó novo na fila
• F = { a, b, e, h, i, c, j, k}
• F = { a, b, e, h, i, c, j, k} remover i
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k}
• Procurar nós adjacentes a c
– => d, f
a
ib e
12/03/2018 36Teoria dos Grafos
– => d, f
• F = { a, b, e, h, i, c, j, k, d, f}
• F = { a, b, e, h, i, c, j, k, d, f} remover c
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k, d, f}
• Procurar nós adjacentes a j
– => nenhum nó novo na fila
a
ib e
12/03/2018 37Teoria dos Grafos
– => nenhum nó novo na fila
• F = { a, b, e, h, i, c, j, k, d, f}
• F = { a, b, e, h, i, c, j, k, d, f} remover j
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k, d, f}
• Procurar nós adjacentes a k
– => nenhum nó novo na fila
a
ib e
12/03/2018 38Teoria dos Grafos
• F = { a, b, e, h, i, c, j, k, d, f}
• F = { a, b, e, h, i, c, j, k, d, f} remover k
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k, d, f}
• Procurar nós adjacentes a d
– => f; g
a
ib e
12/03/2018 39Teoria dos Grafos
• F = { a, b, e, h, i, c, j, k, d, f, g}
• F = { a, b, e, h, i, c, j, k, d, f, g} remover d
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k, d, f, g}
• Procurar nós adjacentes a f
– => nenhum nó novo na fila
a
ib e
12/03/2018 40Teoria dos Grafos
• F = { a, b, e, h, i, c, j, k, d, f, g}
• F = { a, b, e, h, i, c, j, k, d, f, g} remover f
ib
fd
g
c
e
h
j k
Algoritmos de percurso
Busca em largura
• F = { a, b, e, h, i, c, j, k, d, f, g}
• Procurar nós adjacentes a g
– => nenhum nó novo na fila
• F = { a, b, e, h, i, c, j, k, d, f, g}
a
ib e
12/03/2018 41Teoria dos Grafos
• F = { a, b, e, h, i, c, j, k, d, f, g}
• F = { a, b, e, h, i, c, j, k, d, f, g} remover g
• F = { a, b, e, h, i, c, j, k, d, f, g}
• F = { a, b, e, h, i, c, j, k, d, f, g}
ib
fd
g
c
e
h
j k
Algoritmo de caminho mínimo
• Para um grafo simples conexo e com pesos positivos, então,
existe um caminho entre dois nós quaisquer x e y.
• Como encontrar um caminho com peso mínimo? Como o
peso representa, muitas vezes, a distância, esse problema
ficou conhecido como problema do caminho mínimo.ficou conhecido como problema do caminho mínimo.
• Em 1959, Dijkstra fez a publicação de um algoritmo para
resolver esse problema.
• Inúmeras aplicações: redes de computadores, telefonia,
caixeiro viajante, etc...é um algoritmo clássico
12/03/2018 42Teoria dos Grafos
Algoritmo de caminho mínimo
• O algoritmo de Dijkstra soluciona o problema
do caminho mais curto num grafo dirigido ou
não dirigido com arcos de pesos não
negativos.negativos.
• A google desenvolveu o algoritmo A*
12/03/2018 43Teoria dos Grafos
Algoritmo de caminho mínimo Dijkstra
• O grafo e a matriz de adjacência modificada
x
83
12/03/2018 44Teoria dos Grafos
2
83
1
71046
4
13
3
y
1
Algoritmo de caminho mínimo Dijkstra
• Fase de inicialização
x
83
12/03/2018 45Teoria dos Grafos
2
83
1
71046
4
13
3
y
1
Infinito -> não existe arco de x para 4.
x -> é o predecessor de todos os nós, 
exceto do nó x.
Identificar todos os nós adjacentes a x.
Iniciar em qualquer nó.
Algoritmo de caminho mínimo Dijkstra
• Procurar entre os valores de d o nó
não pertencente a IN de distância
mínima => d[1] = 3
• Colocar o nó 1 em IN
• Recalcular os valores de d para os nós
restantes 2, 3, 4, y => d[z]
x
• p = 1 (nó inserido)
• IN = {x, 1}
• D[z]=min(d[z], d[p]+A[p,z])
• D[2]=min(8, 3+A[1, 2]) = min(8, 3+inf)=8
• D[3]=min(4, 3+A[1, 3]) = min(4, 3+6) = 4
• D[4]=min(inf, 3+A[1, 4])=min(inf, inf)=inf
D[y]=min(10, 3+A[1, y])=min(10, inf)=10
12/03/2018 46Teoria dos Grafos
2
83
1
71046
4
13
3
y
1
• D[y]=min(10, 3+A[1, y])=min(10, inf)=10
• Não houve mudança nos valores de d, não
existe distâncias menor para ir para 1 de x.
Algoritmo de caminho mínimo Dijkstra
• Procurar entre os valores de d o nó
não pertencente a IN de distância
mínima => d[3] = 4
• Colocar o nó 3 em IN
• Recalcular os valores de d para os nós
restantes 2, 4, y => d[z]
x
• p = 3 (nó inserido)
• IN = {x, 1, 3}
• D[z]=min(d[z], d[p]+A[p,z])
• D[2]=min(8, 4+A[3, 2]) = min(8, 4+inf)=8
• D[4]=min(inf, 4+A[3, 4])=min(inf, 4+1)=5
• Atualizar s[4]=3
D[y]=min(10, 4+A[3, y])=min(10, 4+3)=7
12/03/2018 47Teoria dos Grafos
2
83
1
71046
4
13
3
y
1
• D[y]=min(10, 4+A[3,y])=min(10, 4+3)=7
• Atualizar s[y]=3
• Foi encontrado distância menor de x aos
nós 4 e y.
Posição anterior Após atualização
Algoritmo de caminho mínimo Dijkstra
• Procurar entre os valores de d o nó
não pertencente a IN de distância
mínima => d[4] = 5
• Colocar o nó 4 em IN
• Recalcular os valores de d para os nós
restantes 2, y => d[z]
x
• p = 4 (nó inserido)
• IN = {x, 1, 3, 4}
• D[z]=min(d[z], d[p]+A[p,z])
• D[2]=min(8, 5+A[4, 2]) = min(8, 5+7)=8
• D[y]=min(7, 5+A[4, y])=min(7, 5+1)=6
• Atualizar s[y]=4
Foi encontrado distância menor de x ao nó y.
12/03/2018 48Teoria dos Grafos
2
83
1
71046
4
13
3
y
1
• Foi encontrado distância menor de x ao nó y.
Posição anterior Após atualização
Algoritmo de caminho mínimo Dijkstra
• Procurar entre os valores de d o nó
não pertencente a IN de distância
mínima => d[y] = 6
• Colocar o nó y em IN
• Recalcular os valores de d para os nós
restantes 2 => d[z]
x
• p = y (nó inserido)
• IN = {x, 1, 3, 4, y}
• D[z]=min(d[z], d[p]+A[p,z])
• D[2]=min(8, 6+A[4, y])=min(8, 6+inf)=8
• Com a entrada de y o algoritmo termina
• A distância de y para x = 6
A sequencia é: y, 4, 3, x (inversa)
12/03/2018 49Teoria dos Grafos
2
83
1
71046
4
13
3
y
1
• A sequencia é: y, 4, 3, x (inversa)
Algoritmo de caminho mínimo 
Bellman-Ford
• Outro algoritmo para encontrar os caminhos mínimos a
partir de um único nó para todo os outros em um grafo é o
algoritmo de Bellman-Ford.
• Ao contrário do algoritmo de Dijkstra, que guarda um
conjunto de nós cujo caminho mínimo de qualquerconjunto de nós cujo caminho mínimo de qualquer
comprimento arbitrário já foi determinado, o algoritmo de
Bellman-Ford executa uma série de cálculos procurando
encontrar caminhos mínimos, sucessivamente, de
comprimento 1, comprimento 2 e assim em diante, até ao
máximo de comprimento n-1.
• Os pesos podem ser negativos e apresenta um tempo
maior de execução em relação ao algoritmo de Dijksta.
12/03/2018 50Teoria dos Grafos
Algoritmo de caminho mínimo 
Bellman-Ford
• Calcular o caminho mínimo para o grafo dirigido usando
Bellman-Ford do nó a ao nó f.
• Iniciar em a
• O peso de a é zero;
12/03/2018 51Teoria dos Grafos
3
5
-2
10
1
72a
b
c
d
e
f2
3
• O peso de a é zero;
• Calcular as distâncias
dos nós acessíveis a a;
• De a->b=0+5=5
• De a->c=0+-2=-2
0
Algoritmo de caminho mínimo 
Bellman-Ford
5
12/03/2018 52Teoria dos Grafos
3
5
-2
10
1
72a
b
c
d
e
f2
3
0
-2
5
passo 1 passo 2 passo 3
a a, 0
b a, 5
c a, -2
d inf
e inf
f inf
Algoritmo de caminho mínimo 
Bellman-Ford
5->0
• Calcular as distâncias dos
nós acessíveis a b;
• De b->d=5+1=6
• Ajustando b
• De b->d=0+1=16->1
12/03/2018 53Teoria dos Grafos
3
5
-2
10
1
72a
b
c
d
e
f2
3
0
-2
5->0 • De b->d=0+1=1
• Calcular as distância do nós
acessíveis a c;
• De c->b=-2+2=0 (é menor
que 5, ajustar b)
• De c->e=-2+3=1
6->1
Algoritmo de caminho mínimo 
Bellman-Ford
0 1
12/03/2018 54Teoria dos Grafos
3
5
-2
10
1
72a
b
c
d
e
f2
3
0
-2
0
1
1
passo 1 passo 2 passo 3
a a, 0 a, 0
b a, 5 c, 0
c a, -2 a, -2
d a,inf b, 1
e a,inf c, 1
f a,inf a,inf
Algoritmo de caminho mínimo 
Bellman-Ford
0 1
• Calcular as distâncias dos
nós acessíveis a d;
• De d->f=1+3=4
• De d->c=1+2=3 é maior
que -2, manter
12/03/2018 55Teoria dos Grafos
3
5
-2
10
1
72a
b
c
d
e
f2
3
0
-2
0
1
1 que -2, manter
• De d->e=1+7=8 é maior
que 1, manter
• Calcular as distância do nós
acessíveis a e;
• De e->f=1+10=11 é maior
que de d->f=4
Algoritmo de caminho mínimo 
Bellman-Ford
0 1 passo 1 passo 2 passo 3
a a, 0 a, 0 a, 0
12/03/2018 56Teoria dos Grafos
3
5
-2
10
1
72a
b
c
d
e
f2
3
0
-2
0
1
1
4
a a, 0 a, 0 a, 0
b a, 5 c, 0 c, 0
c a, -2 a, -2 a, -2
d a,inf b, 1 b, 1
e a,inf c, 1 c, 1
f a,inf a,inf d, 4
Acessibilidade
• Em um grafo direcionado, o nó nj será
acessível do nó ni se existir um caminho de ni
para nj.
12/03/2018 57Teoria dos Grafos
• Se A for a matriz booleana de adjacência de
um grafo direcionado G com n nós e sem
arcos paralelos, então A(m)[i,j]=1 se e somente
se existir um caminho de comprimento m do
nó ni para o nó nj .
Acessibilidade
• Seja G o grafo direcionado apresentado na
figura e sua matriz de acessibilidade.
12/03/2018 58Teoria dos Grafos
Acessibilidade
• Produto entre as matrizes
X =>
A A
12/03/2018 59Teoria dos Grafos
• A11 = 0*0 + 1*0 + 0*1 + 0*0 + 0*1 = 0
• A12 = 0*1 + 1*0 + 0*0 + 0*0 + 0*0 = 0
• A13 = 0*0 + 1*1 + 0*0 + 0*0 + 0*1 = 1
• A14 = 0*0 + 1*0 + 0*1 + 0*0 + 0*0 = 0
• A15 = 0*0 + 1*0 + 0*0 + 0*0 + 0*0 = 0
• A21 = 0*0 + 0*0 + 1*1 + 0*0 + 0*1 = 1
• ......
A
Acessibilidade
12/03/2018 60Teoria dos Grafos
• Existe um caminho de comprimento 2 de 2 para 1, pois
A(2)[2,1]=1 (caminho 2-3-1).
• Existe um caminho de comprimento 4 de 5 para 2, pois
A(4)[5,3]=1 (caminho 5-3-1-2-3)
Acessibilidade
• Para calcular A(2)[i,j], escreva duas cópias de A, uma ao
lado da outra. Use um dedo da mão esquerda para
percorrer a linha i da matriz à esquerda ao mesmo
tempo o dedo da mão direita para percorrer a coluna j
da matriz à direita. O valor será 1 se e somente se
12/03/2018 61Teoria dos Grafos
da matriz à direita. O valor será 1 se e somente se
ambos os dedos encontram um número 1 ao mesmo
tempo.
• Não tente calcular produtos matriciais sem colocar as
duas matrizes uma ao lado da outra; VOCÊ
CERTAMENTE COMETERÁ UM ERRO.
Acessibilidade
• Produto entre matrizes
12/03/2018 62Teoria dos Grafos
Obrigado
Bernardo Caldas
12/03/2018 63Teoria dos Grafos