Aula 04 Busca em Grafos
Aula 04 Busca em Grafos
Aula 04 Busca em Grafos
Introduo
Busca em Grafos
Prof. Humberto Brando humberto@unifal-mg.edu.br aula disponvel no site: http://www.dcc.ufmg.br/~humberto/
Universidade Federal de Alfenas Departamento de Cincias Exatas verso da aula: 0.1
Aplicaes???
Busca em Grafos
Aplicaes:
Compiladores; Resoluo de problemas p (xadrez, ( por p exemplo); p ) Roteamento de Veculos; Funo localizar arquivo no sistema operacional; Deteco de deadlocks.
Busca em Grafos
Adaptaes nos algoritmos de busca nos permitem construir algoritmos para os problemas de:
rvore Geradora Mnima (AGM); Caminho Mnimo; Componentes Fortemente Conectados; Ordenao Topolgica.
Busca em Grafos
Algoritmos clssicos de Busca: Busca em Largura; Busca B em Profundidade; P f did d Backtracking; Backtracking com backjumping;
Busca em Profundidade
Busca em Profundidade
A busca em profundidade (do ingls depth-first search DFS) um algoritmo para caminhar no grafo; Seu ncleo se concentra em buscar, sempre que possvel, o mais fundo no grafo. grafo As arestas so exploradas a partir do vrtice v mais recentemente descoberto que ainda possui arestas no exploradas saindo dele.
Busca em Profundidade
Quando todas arestas adjacentes a v tiverem sido exploradas, a busca anda para trs (do ingls backtrack) para explorar vrtices do qual v foi descoberto; O processo continua at que sejam descobertos todos os vrtices que so alcanveis a partir do vrtice original; Se todos os vrtices j foram descobertos, ento o fim. Caso contrrio o processo continua a partir de um novo vrtice de origem ainda no descoberto (grafos desconexos).
Busca em Profundidade
Legenda para algoritmo:
Vrtice Branco Ainda no visitado... Vrtice cinza Visitado, mas seus adjacentes ainda no foram todos visitados; Vrtice preto Visitado, e seus adjacentes j foram todos visitados.
Busca em Profundidade
DFS (G ) 1 para cada vrtice u V [G ] 2 cor[u ] BRANCO 3 tempo 0 4 para cada vrtice u V [G ]
5 6 se cor[u ] = BRANCO DFS VISIT (u ) DFS VISIT (u ) 1 cor[u ] CINZA 2 tempo tempo + 1 3 d [u ] tempo 4 para cada d vrtice v Adj Ad (u ) 5 6 se cor[v] = BRANCO DFS VISIT (v)
Busca em Profundidade
Legenda
Busca em Profundidade
Dado um Grafo, temos uma lista de todos os vrtices:
d: marcador do instante que o vrtice c foi encontrado; f: marcador do instante que os fecho transitivo do vrtice c foi totalmente visitado.
Busca em Profundidade
ltima ao: Vrtice c encontrado
Busca em Profundidade
ltima ao: Vrtice g encontrado
Contador = 1
Contador = 2
Busca em Profundidade
ltima ao: Vrtice f encontrado
Busca em Profundidade
ltima ao: Vrtice f finalizado
Contador = 3
Contador = 4
Busca em Profundidade
ltima ao: Vrtice h encontrado
Busca em Profundidade
ltima ao: Vrtice h finalizado
Contador = 5
Contador = 6
Busca em Profundidade
ltima ao: Vrtice g finalizado
Busca em Profundidade
ltima ao: Vrtice d encontrado
Contador = 7
Contador = 8
Busca em Profundidade
ltima ao: Vrtice d finalizado
Busca em Profundidade
ltima ao: Vrtice c finalizado
Contador = 9
Contador = 10
Busca em Profundidade
ltima ao: Capturando o prximo vrtice da lista de vrtices disponveis no grafo
Busca em Profundidade
ltima ao: Vrtice a encontrado
Contador = 10
Contador = 11
Busca em Profundidade
ltima ao: Vrtice b encontrado
Busca em Profundidade
ltima ao: Vrtice e encontrado
Contador = 12
Contador = 13
Busca em Profundidade
ltima ao: Vrtice e finalizado
Busca em Profundidade
ltima ao: Vrtice b finalizado
Contador = 14
Contador = 15
Busca em Profundidade
ltima ao: Vrtice a finalizado
Busca em Profundidade
ltima ao: Capturando os prximos vrtices disponveis. Ser verificado que todos foram visitados pela busca!!!
Contador = 16
Contador = 16
Busca em Profundidade
Se voc fosse implementar busca em profundidades, qual representao computacional escolheria?
Matriz de Adjacncia; Matriz de Incidncia; Lista de Adjacncia;
Busca em Profundidade
Estes slides esto disponveis no endereo: http://www.dcc.ufmg.br/~humberto/ Bibliografia recomendada para esta aula:
Algoritmos Teoria e Prtica, Traduo da 2 edio. Thomas H. Cormen, Charles E. E Leiserson, Leiserson Ronald L. L Rivest, Rivest Clifford Stein. Stein 2002, 2002 936 pp. pp Editora Campus/Elsevier, ISBN 8535209263.
Por qu?