25.10.2014 Views

busca - profunidade, largura, A - Unicamp

busca - profunidade, largura, A - Unicamp

busca - profunidade, largura, A - Unicamp

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

FT 024 - Teoria dos Grafos e Aplicações<br />

Profa. Dra. Elaine Cristina Catapani Poletti<br />

Aula 05<br />

DMBC/FT/UNICAMP<br />

12 de abril de 2010<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Introdução<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Grafos × Métodos de Busca<br />

Tipos de Algoritmos<br />

Grafos × Métodos de Busca<br />

Grafos × Métodos de Busca<br />

Compreendendo o que são grafos e árvores como podemos<br />

explorar essas estruturas a fim de <strong>busca</strong>r uma solução?<br />

Métodos de Busca<br />

Existem procedimentos para se caminhar pelos nós e arestas<br />

de um dado grafo?<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Grafos × Métodos de Busca<br />

Tipos de Algoritmos<br />

Grafos × Métodos de Busca<br />

Grafos × Métodos de Busca<br />

Compreendendo o que são grafos e árvores como podemos<br />

explorar essas estruturas a fim de <strong>busca</strong>r uma solução?<br />

Métodos de Busca<br />

Existem procedimentos para se caminhar pelos nós e arestas<br />

de um dado grafo?<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Grafos × Métodos de Busca<br />

Tipos de Algoritmos<br />

Algorítmos de Busca<br />

Tipos de Busca<br />

1 Busca em profundidade (Depth-First Search DFS)<br />

2 Busca em <strong>largura</strong> (Breadth-First Search BFS)<br />

3 Busca A ∗<br />

4<br />

.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Depth-First Search<br />

O algoritmo DFS realiza uma <strong>busca</strong> que progride através da<br />

expansão do primeiro nó (o nó raiz) e se aprofunda cada vez mais,<br />

até que o alvo seja encontrado, ou até que se depare com um nó<br />

folha, daí a <strong>busca</strong> retrocede (backtrack) e recomeça no próximo nó.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Figura: Representação gráfica de uma <strong>busca</strong> DFS<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

O Método DFS<br />

O algoritmo para <strong>busca</strong> em profundidade marca v (raiz) como visitado;<br />

A seguir toma o vértice w conectado a v, verifica se w é solução:<br />

se sim, encerra a <strong>busca</strong> (e indica a solução que pode ser<br />

somente este nó ou todo o percurso do nó-raiz até este nó),<br />

se não, continua a DFS em w;<br />

Terminando <strong>busca</strong> em w, o algoritmo toma outro vértice z conectado a<br />

v ainda não visitado e executa a <strong>busca</strong>, se o nó for a solução, encerra o<br />

algoritmo e devolve a solução, caso contrário prossegue, desta forma,<br />

sucessivamente.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Exemplo DFS<br />

Considere o seguinte grafo. Qual a ordem de visitação dos<br />

vértices?<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Figura: Ordem de visitação de vértices<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Exemplo 1<br />

Aplique a <strong>busca</strong> DFS no grafo partindo de l:<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Exemplo 2<br />

Aplique a <strong>busca</strong> DFS no grafo partindo de l:<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Exemplo 3<br />

Aplique a <strong>busca</strong> DFS no grafo partindo de a:<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Propriedades da <strong>busca</strong> DFS<br />

Efeito backtrack.<br />

Formação de uma pilha.<br />

A complexidade temporal é O(V + E).<br />

Busca infinita.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Propriedades da <strong>busca</strong> DFS<br />

Efeito backtrack.<br />

Formação de uma pilha.<br />

A complexidade temporal é O(V + E).<br />

Busca infinita.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Propriedades da <strong>busca</strong> DFS<br />

Efeito backtrack.<br />

Formação de uma pilha.<br />

A complexidade temporal é O(V + E).<br />

Busca infinita.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca em Profundidade<br />

Propriedades da <strong>busca</strong> DFS<br />

Efeito backtrack.<br />

Formação de uma pilha.<br />

A complexidade temporal é O(V + E).<br />

Busca infinita.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Aplicações DFS<br />

Aplicações da <strong>busca</strong> DFS<br />

Busca de articulação<br />

Ordenação topológica<br />

Identificação de componentes fortemente conexos<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Busca de articulação - Aplicações DFS<br />

Um vértice em um grafo não direcionado simples e conexo é uma<br />

articulação se sua remoção torna o grafo resultante desconexo.<br />

Figura: Exemplo de articulação<br />

Importante, por exemplo, para identificar os pontos frágeis de uma<br />

rede de computadores.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Ordenação topológica - Aplicações DFS<br />

Se um grafo direcionado G = (V,E) não contém ciclos, ele induz<br />

um conjunto parcialmente ordenado tal que para todos os<br />

vértices v e w, v < w ⇐⇒ existe um caminho de v até w em G.<br />

Os vértices de tal grafo podem ser ordenados para obter uma<br />

seqüência de vértices v 1 , v 2 , · · · , v n , onde v i < v j , para i < j.<br />

Importante, por exemplo, para se conhecer a sequência de<br />

requisitos para determinada ação.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Identificação de componentes fortemente conexos -<br />

Aplicações DFS<br />

Um grafo direcionado é fortemente conexo se existe um caminho de<br />

u até v e de v até u para qualquer par distinto de vértices u e v.<br />

Figura: Exemplo de componentes fortemente conexos<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método DFS<br />

Exemplos<br />

Propriedades<br />

Aplicações<br />

Identificação de componentes fortemente conexos -<br />

Aplicações DFS<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

Breadth-First Search<br />

O algoritmo BFS expande e examina sistematicamente todos os nós<br />

de uma árvore através de níveis, em <strong>busca</strong> de uma solução.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Figura: Representação gráfica de uma <strong>busca</strong> BFS<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

O Método BFS<br />

O algoritmo para <strong>busca</strong> em <strong>largura</strong> marca v (raiz) como visitado;<br />

A seguir toma todos os vértices (filhos) conectados a v,<br />

verificando se cada um deles é solução - se sim, encerra a<br />

<strong>busca</strong> no respectivo nó e indica a solução, se não, continua a<br />

BFS nos filhos dos filhos;<br />

Terminando <strong>busca</strong> nos filhos dos filhos, o algoritmo toma os<br />

filhos dos filhos dos filhos e executa a <strong>busca</strong> até que encerra o<br />

algoritmo ou devolva a solução.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

Figura: Ordem de visitação de vértices<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

Exemplo 1<br />

Aplique a <strong>busca</strong> BFS no grafo:<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

Exemplo 2<br />

Aplique a <strong>busca</strong> BFS no grafo:<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

Exemplo 3<br />

Aplique a <strong>busca</strong> BFS no grafo:<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca em Largura<br />

Propriedades da <strong>busca</strong> BFS<br />

A <strong>busca</strong> BFS é completa apenas em árvores com número finito de<br />

ramos.<br />

Os nós são adicionados à uma fila.<br />

A complexidade temporal também é proporcional ao número de<br />

vértices somado ao número de arestas do grafo O(V + E).<br />

A complexidade espacial de um algoritmo de <strong>busca</strong> BFS é maior que o<br />

de <strong>busca</strong> DFS.<br />

O algoritmo BFS encontra a solução mais rasa em uma árvore (não<br />

necessariamente a melhor).<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca BFS × Busca DFS<br />

Busca BFS × Busca DFS<br />

A diferença mais marcante entre a BFS e a DFS está na<br />

estrutura de dados auxiliar empregada por uma e pela outra. A<br />

<strong>busca</strong> BFS usa uma fila (de vértices), e a <strong>busca</strong> DFS usa uma<br />

pilha.<br />

A <strong>busca</strong> DFS visita, tipicamente, todos os vértices do digrafo,<br />

enquanto a <strong>busca</strong> BFS visita apenas os vértices que podem ser<br />

atingidos a partir do vértice inicial.<br />

A <strong>busca</strong> DFS é descrita, usualmente, em estilo recursivo,<br />

enquanto a <strong>busca</strong> BFS é descrita em estilo iterativo.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca BFS × Busca DFS<br />

Busca BFS × Busca DFS<br />

A diferença mais marcante entre a BFS e a DFS está na<br />

estrutura de dados auxiliar empregada por uma e pela outra. A<br />

<strong>busca</strong> BFS usa uma fila (de vértices), e a <strong>busca</strong> DFS usa uma<br />

pilha.<br />

A <strong>busca</strong> DFS visita, tipicamente, todos os vértices do digrafo,<br />

enquanto a <strong>busca</strong> BFS visita apenas os vértices que podem ser<br />

atingidos a partir do vértice inicial.<br />

A <strong>busca</strong> DFS é descrita, usualmente, em estilo recursivo,<br />

enquanto a <strong>busca</strong> BFS é descrita em estilo iterativo.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca BFS × Busca DFS<br />

Busca BFS × Busca DFS<br />

A diferença mais marcante entre a BFS e a DFS está na<br />

estrutura de dados auxiliar empregada por uma e pela outra. A<br />

<strong>busca</strong> BFS usa uma fila (de vértices), e a <strong>busca</strong> DFS usa uma<br />

pilha.<br />

A <strong>busca</strong> DFS visita, tipicamente, todos os vértices do digrafo,<br />

enquanto a <strong>busca</strong> BFS visita apenas os vértices que podem ser<br />

atingidos a partir do vértice inicial.<br />

A <strong>busca</strong> DFS é descrita, usualmente, em estilo recursivo,<br />

enquanto a <strong>busca</strong> BFS é descrita em estilo iterativo.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca BFS × Busca DFS<br />

Busca BFS × Busca DFS<br />

Computabilidade - dependendo de como a estrutura de dados é<br />

organizada, um caminho percorrido por <strong>busca</strong> DFS pode ter<br />

tamanho infinito, já a <strong>busca</strong> BFS encontrará a solução em um<br />

número finito de passos se esta existir.<br />

Espaço de memória e tempo: a <strong>busca</strong> DFS armazena todos os<br />

nós visitados a partir da raiz, ou seja, no máximo o tamanho da<br />

árvore, a <strong>busca</strong> BFS armazena todos os possíveis nós<br />

processados, desta forma, em termos de espaço e tempo, a<br />

<strong>busca</strong> DFS pode ser mais eficiente.<br />

A <strong>busca</strong> BFS é completa apenas em árvores com número finito<br />

de ramos.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca BFS × Busca DFS<br />

Busca BFS × Busca DFS<br />

Computabilidade - dependendo de como a estrutura de dados é<br />

organizada, um caminho percorrido por <strong>busca</strong> DFS pode ter<br />

tamanho infinito, já a <strong>busca</strong> BFS encontrará a solução em um<br />

número finito de passos se esta existir.<br />

Espaço de memória e tempo: a <strong>busca</strong> DFS armazena todos os<br />

nós visitados a partir da raiz, ou seja, no máximo o tamanho da<br />

árvore, a <strong>busca</strong> BFS armazena todos os possíveis nós<br />

processados, desta forma, em termos de espaço e tempo, a<br />

<strong>busca</strong> DFS pode ser mais eficiente.<br />

A <strong>busca</strong> BFS é completa apenas em árvores com número finito<br />

de ramos.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Definição<br />

O Método BFS<br />

Exemplos<br />

Propriedades<br />

Busca BFS × Busca DFS<br />

Busca BFS × Busca DFS<br />

Computabilidade - dependendo de como a estrutura de dados é<br />

organizada, um caminho percorrido por <strong>busca</strong> DFS pode ter<br />

tamanho infinito, já a <strong>busca</strong> BFS encontrará a solução em um<br />

número finito de passos se esta existir.<br />

Espaço de memória e tempo: a <strong>busca</strong> DFS armazena todos os<br />

nós visitados a partir da raiz, ou seja, no máximo o tamanho da<br />

árvore, a <strong>busca</strong> BFS armazena todos os possíveis nós<br />

processados, desta forma, em termos de espaço e tempo, a<br />

<strong>busca</strong> DFS pode ser mais eficiente.<br />

A <strong>busca</strong> BFS é completa apenas em árvores com número finito<br />

de ramos.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Exercícios<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Busca Heurística<br />

Busca heurística<br />

Estratégias de <strong>busca</strong> heurística utilizam conhecimento específico<br />

(prévio) do problema na escolha do próximo nó a ser espandido e<br />

aplicam uma função de avaliação a cada nó na froneira do espaço de<br />

estados.<br />

Classes de Algorítmos para <strong>busca</strong> heurística<br />

Best-First Search (Busca pela melhor escolha)<br />

Busca com limite de memória<br />

Busca com melhora iterativa<br />

.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Best-First Search<br />

Best-First Search<br />

Busca genérica, onde o nó de menor custo aparente é<br />

expandido primeiro. Conhecimento provido por uma função de<br />

avaliação que retorna um número que indica qual nó deve ser<br />

expandido na <strong>busca</strong>.<br />

Dentre as abordagens básicas temos:<br />

Greedy Search<br />

Algorítmo A ∗ Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Greedy Search<br />

Greedy Search<br />

Conhecido também por <strong>busca</strong> gulosa é o processo semelhante àquele<br />

realizado pela <strong>busca</strong> em profundidade com efeito backtracking.<br />

Tenta expandir o nó mais próximo do nó final com base na estimativa<br />

feita pela função heurística h(n), que é o custo estimado do menor<br />

caminho de um ponto n até o objetivo;<br />

Custo de <strong>busca</strong> é minimizado, não exandindo nós fora do caminho;<br />

Escolhe o caminho mais econômico à primeira vista, portanto não é<br />

ótima.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Greedy Search<br />

Greedy Search<br />

Conhecido também por <strong>busca</strong> gulosa é o processo semelhante àquele<br />

realizado pela <strong>busca</strong> em profundidade com efeito backtracking.<br />

Tenta expandir o nó mais próximo do nó final com base na estimativa<br />

feita pela função heurística h(n), que é o custo estimado do menor<br />

caminho de um ponto n até o objetivo;<br />

Custo de <strong>busca</strong> é minimizado, não exandindo nós fora do caminho;<br />

Escolhe o caminho mais econômico à primeira vista, portanto não é<br />

ótima.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Greedy Search<br />

Greedy Search<br />

Conhecido também por <strong>busca</strong> gulosa é o processo semelhante àquele<br />

realizado pela <strong>busca</strong> em profundidade com efeito backtracking.<br />

Tenta expandir o nó mais próximo do nó final com base na estimativa<br />

feita pela função heurística h(n), que é o custo estimado do menor<br />

caminho de um ponto n até o objetivo;<br />

Custo de <strong>busca</strong> é minimizado, não exandindo nós fora do caminho;<br />

Escolhe o caminho mais econômico à primeira vista, portanto não é<br />

ótima.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Greedy Search<br />

Greedy Search<br />

Conhecido também por <strong>busca</strong> gulosa é o processo semelhante àquele<br />

realizado pela <strong>busca</strong> em profundidade com efeito backtracking.<br />

Tenta expandir o nó mais próximo do nó final com base na estimativa<br />

feita pela função heurística h(n), que é o custo estimado do menor<br />

caminho de um ponto n até o objetivo;<br />

Custo de <strong>busca</strong> é minimizado, não exandindo nós fora do caminho;<br />

Escolhe o caminho mais econômico à primeira vista, portanto não é<br />

ótima.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Exemplo<br />

De Arad à Bucharest<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

De Arad à Bucharest<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Rota - Busca Gulosa<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Busca A ∗<br />

O Algoritmo A ∗<br />

O algoritmo A ∗ desenvolve uma <strong>busca</strong> que vai de um vértice inicial até outro,<br />

empregando ”heuristica de estimativa”que classifica cada nó por uma<br />

estimativa da melhor rota. A base do algoritmo é a equação:<br />

onde:<br />

f(n) = g(n) + h(n)<br />

g(n) distância do nó inicial até o nó n,<br />

h(n) distância estimada do nó n até o objetivo.<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Exemplo<br />

De Arad à Bucharest<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

De Arad à Bucharest<br />

Elaine Catapani Disciplina FT 024


Introdução<br />

Grafos × Métodos de Busca<br />

Busca em Profundidade<br />

Busca em Largura<br />

Exercícios<br />

Busca Heurística<br />

Busca Heurística<br />

Best-First Search<br />

Greedy Search<br />

Exemplo<br />

Busca A ∗<br />

Exemplo<br />

Rota - Busca A ∗ Elaine Catapani Disciplina FT 024

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!