Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
FT 024 - Teoria dos Grafos e Aplicac oes
Profa. Dra. Elaine Cristina Catapani PolettiAula 05
DMBC/FT/UNICAMP
12 de abril de 2010
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Introduc ao
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Grafos × Metodos de BuscaTipos de Algoritmos
Grafos × Metodos de Busca
Grafos × Metodos de Busca
Compreendendo o que sao grafos e arvores como podemosexplorar essas estruturas a fim de buscar uma solucao?
Metodos de Busca
Existem procedimentos para se caminhar pelos nos e arestasde um dado grafo?
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Grafos × Metodos de BuscaTipos de Algoritmos
Grafos × Metodos de Busca
Grafos × Metodos de Busca
Compreendendo o que sao grafos e arvores como podemosexplorar essas estruturas a fim de buscar uma solucao?
Metodos de Busca
Existem procedimentos para se caminhar pelos nos e arestasde um dado grafo?
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Grafos × Metodos de BuscaTipos de Algoritmos
Algorıtmos de Busca
Tipos de Busca
1 Busca em profundidade (Depth-First Search DFS)2 Busca em largura (Breadth-First Search BFS)3 Busca A∗
4...
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Depth-First Search
O algoritmo DFS realiza uma busca que progride atraves daexpansao do primeiro no (o no raiz) e se aprofunda cada vez mais,ate que o alvo seja encontrado, ou ate que se depare com um nofolha, daı a busca retrocede (backtrack) e recomeca no proximo no.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Figura: Representacao grafica de uma busca DFS
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
O Metodo DFS
O algoritmo para busca em profundidade marca v (raiz) como visitado;
A seguir toma o vertice w conectado a v, verifica se w e solucao:
se sim, encerra a busca (e indica a solucao que pode sersomente este no ou todo o percurso do no-raiz ate este no),se nao, continua a DFS em w;
Terminando busca em w, o algoritmo toma outro vertice z conectado av ainda nao visitado e executa a busca, se o no for a solucao, encerra oalgoritmo e devolve a solucao, caso contrario prossegue, desta forma,sucessivamente.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Exemplo DFS
Considere o seguinte grafo. Qual a ordem de visitacao dosvertices?
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Figura: Ordem de visitacao de verticesElaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Exemplo 1
Aplique a busca DFS no grafo partindo de l:
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Exemplo 2
Aplique a busca DFS no grafo partindo de l:
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Exemplo 3
Aplique a busca DFS no grafo partindo de a:
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Propriedades da busca DFS
Efeito backtrack.
Formacao de uma pilha.
A complexidade temporal e O(V + E).
Busca infinita.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Propriedades da busca DFS
Efeito backtrack.
Formacao de uma pilha.
A complexidade temporal e O(V + E).
Busca infinita.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Propriedades da busca DFS
Efeito backtrack.
Formacao de uma pilha.
A complexidade temporal e O(V + E).
Busca infinita.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca em Profundidade
Propriedades da busca DFS
Efeito backtrack.
Formacao de uma pilha.
A complexidade temporal e O(V + E).
Busca infinita.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Aplicacoes DFS
Aplicacoes da busca DFS
Busca de articulacao
Ordenacao topologica
Identificacao de componentes fortemente conexos
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Busca de articulacao - Aplicacoes DFS
Um vertice em um grafo nao direcionado simples e conexo e umaarticulacao se sua remocao torna o grafo resultante desconexo.
Figura: Exemplo de articulacao
Importante, por exemplo, para identificar os pontos frageis de umarede de computadores.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Ordenacao topologica - Aplicacoes DFS
Se um grafo direcionado G = (V,E) nao contem ciclos, ele induzum conjunto parcialmente ordenado tal que para todos osvertices v e w, v < w ⇐⇒ existe um caminho de v ate w em G.
Os vertices de tal grafo podem ser ordenados para obter umasequencia de vertices v1, v2, · · · , vn , onde v i < v j , para i < j .
Importante, por exemplo, para se conhecer a sequencia derequisitos para determinada acao.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Identificacao de componentes fortemente conexos -Aplicacoes DFS
Um grafo direcionado e fortemente conexo se existe um caminho deu ate v e de v ate u para qualquer par distinto de vertices u e v.
Figura: Exemplo de componentes fortemente conexos
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo DFSExemplosPropriedadesAplicac oes
Identificacao de componentes fortemente conexos -Aplicacoes DFS
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
Breadth-First Search
O algoritmo BFS expande e examina sistematicamente todos os nosde uma arvore atraves de nıveis, em busca de uma solucao.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Figura: Representacao grafica de uma busca BFS
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
O Metodo BFS
O algoritmo para busca em largura marca v (raiz) como visitado;
A seguir toma todos os vertices (filhos) conectados a v,verificando se cada um deles e solucao - se sim, encerra abusca no respectivo no e indica a solucao, se nao, continua aBFS nos filhos dos filhos;
Terminando busca nos filhos dos filhos, o algoritmo toma osfilhos dos filhos dos filhos e executa a busca ate que encerra oalgoritmo ou devolva a solucao.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
Figura: Ordem de visitacao de verticesElaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
Exemplo 1
Aplique a busca BFS no grafo:
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
Exemplo 2
Aplique a busca BFS no grafo:
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
Exemplo 3
Aplique a busca BFS no grafo:
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca em Largura
Propriedades da busca BFS
A busca BFS e completa apenas em arvores com numero finito deramos.
Os nos sao adicionados a uma fila.
A complexidade temporal tambem e proporcional ao numero devertices somado ao numero de arestas do grafo O(V + E).
A complexidade espacial de um algoritmo de busca BFS e maior que ode busca DFS.
O algoritmo BFS encontra a solucao mais rasa em uma arvore (naonecessariamente a melhor).
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca BFS × Busca DFS
Busca BFS × Busca DFSA diferenca mais marcante entre a BFS e a DFS esta naestrutura de dados auxiliar empregada por uma e pela outra. Abusca BFS usa uma fila (de vertices), e a busca DFS usa umapilha.
A busca DFS visita, tipicamente, todos os vertices do digrafo,enquanto a busca BFS visita apenas os vertices que podem seratingidos a partir do vertice inicial.
A busca DFS e descrita, usualmente, em estilo recursivo,enquanto a busca BFS e descrita em estilo iterativo.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca BFS × Busca DFS
Busca BFS × Busca DFSA diferenca mais marcante entre a BFS e a DFS esta naestrutura de dados auxiliar empregada por uma e pela outra. Abusca BFS usa uma fila (de vertices), e a busca DFS usa umapilha.
A busca DFS visita, tipicamente, todos os vertices do digrafo,enquanto a busca BFS visita apenas os vertices que podem seratingidos a partir do vertice inicial.
A busca DFS e descrita, usualmente, em estilo recursivo,enquanto a busca BFS e descrita em estilo iterativo.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca BFS × Busca DFS
Busca BFS × Busca DFSA diferenca mais marcante entre a BFS e a DFS esta naestrutura de dados auxiliar empregada por uma e pela outra. Abusca BFS usa uma fila (de vertices), e a busca DFS usa umapilha.
A busca DFS visita, tipicamente, todos os vertices do digrafo,enquanto a busca BFS visita apenas os vertices que podem seratingidos a partir do vertice inicial.
A busca DFS e descrita, usualmente, em estilo recursivo,enquanto a busca BFS e descrita em estilo iterativo.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca BFS × Busca DFS
Busca BFS × Busca DFSComputabilidade - dependendo de como a estrutura de dados eorganizada, um caminho percorrido por busca DFS pode tertamanho infinito, ja a busca BFS encontrara a solucao em umnumero finito de passos se esta existir.
Espaco de memoria e tempo: a busca DFS armazena todos osnos visitados a partir da raiz, ou seja, no maximo o tamanho daarvore, a busca BFS armazena todos os possıveis nosprocessados, desta forma, em termos de espaco e tempo, abusca DFS pode ser mais eficiente.
A busca BFS e completa apenas em arvores com numero finitode ramos.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca BFS × Busca DFS
Busca BFS × Busca DFSComputabilidade - dependendo de como a estrutura de dados eorganizada, um caminho percorrido por busca DFS pode tertamanho infinito, ja a busca BFS encontrara a solucao em umnumero finito de passos se esta existir.
Espaco de memoria e tempo: a busca DFS armazena todos osnos visitados a partir da raiz, ou seja, no maximo o tamanho daarvore, a busca BFS armazena todos os possıveis nosprocessados, desta forma, em termos de espaco e tempo, abusca DFS pode ser mais eficiente.
A busca BFS e completa apenas em arvores com numero finitode ramos.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Definic aoO Metodo BFSExemplosPropriedades
Busca BFS × Busca DFS
Busca BFS × Busca DFSComputabilidade - dependendo de como a estrutura de dados eorganizada, um caminho percorrido por busca DFS pode tertamanho infinito, ja a busca BFS encontrara a solucao em umnumero finito de passos se esta existir.
Espaco de memoria e tempo: a busca DFS armazena todos osnos visitados a partir da raiz, ou seja, no maximo o tamanho daarvore, a busca BFS armazena todos os possıveis nosprocessados, desta forma, em termos de espaco e tempo, abusca DFS pode ser mais eficiente.
A busca BFS e completa apenas em arvores com numero finitode ramos.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Exercıcios
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Busca Heurıstica
Busca heurıstica
Estrategias de busca heurıstica utilizam conhecimento especıfico(previo) do problema na escolha do proximo no a ser espandido eaplicam uma funcao de avaliacao a cada no na froneira do espaco deestados.
Classes de Algorıtmos para busca heurıstica
Best-First Search (Busca pela melhor escolha)
Busca com limite de memoria
Busca com melhora iterativa...
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Best-First Search
Best-First Search
Busca generica, onde o no de menor custo aparente eexpandido primeiro. Conhecimento provido por uma funcao deavaliacao que retorna um numero que indica qual no deve serexpandido na busca.
Dentre as abordagens basicas temos:
Greedy Search
Algorıtmo A∗
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Greedy Search
Greedy Search
Conhecido tambem por busca gulosa e o processo semelhante aquelerealizado pela busca em profundidade com efeito backtracking.
Tenta expandir o no mais proximo do no final com base na estimativafeita pela funcao heurıstica h(n), que e o custo estimado do menorcaminho de um ponto n ate o objetivo;
Custo de busca e minimizado, nao exandindo nos fora do caminho;
Escolhe o caminho mais economico a primeira vista, portanto nao eotima.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Greedy Search
Greedy Search
Conhecido tambem por busca gulosa e o processo semelhante aquelerealizado pela busca em profundidade com efeito backtracking.
Tenta expandir o no mais proximo do no final com base na estimativafeita pela funcao heurıstica h(n), que e o custo estimado do menorcaminho de um ponto n ate o objetivo;
Custo de busca e minimizado, nao exandindo nos fora do caminho;
Escolhe o caminho mais economico a primeira vista, portanto nao eotima.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Greedy Search
Greedy Search
Conhecido tambem por busca gulosa e o processo semelhante aquelerealizado pela busca em profundidade com efeito backtracking.
Tenta expandir o no mais proximo do no final com base na estimativafeita pela funcao heurıstica h(n), que e o custo estimado do menorcaminho de um ponto n ate o objetivo;
Custo de busca e minimizado, nao exandindo nos fora do caminho;
Escolhe o caminho mais economico a primeira vista, portanto nao eotima.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Greedy Search
Greedy Search
Conhecido tambem por busca gulosa e o processo semelhante aquelerealizado pela busca em profundidade com efeito backtracking.
Tenta expandir o no mais proximo do no final com base na estimativafeita pela funcao heurıstica h(n), que e o custo estimado do menorcaminho de um ponto n ate o objetivo;
Custo de busca e minimizado, nao exandindo nos fora do caminho;
Escolhe o caminho mais economico a primeira vista, portanto nao eotima.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Exemplo
De Arad a Bucharest
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
De Arad a Bucharest
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Rota - Busca Gulosa
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Busca A∗
O Algoritmo A∗
O algoritmo A∗ desenvolve uma busca que vai de um vertice inicial ate outro,empregando ”heuristica de estimativa”que classifica cada no por umaestimativa da melhor rota. A base do algoritmo e a equacao:
f (n) = g(n) + h(n)
onde:
g(n) distancia do no inicial ate o no n,
h(n) distancia estimada do no n ate o objetivo.
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
Exemplo
De Arad a Bucharest
Elaine Catapani Disciplina FT 024
Introduc aoGrafos × Metodos de Busca
Busca em ProfundidadeBusca em Largura
ExercıciosBusca Heurıstica
Busca HeurısticaBest-First SearchGreedy SearchExemploBusca A ∗
Exemplo
De Arad a Bucharest
Elaine Catapani Disciplina FT 024