A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Busca com Informação Busca com informação Busca Gulosa Busca A*

Apresentações semelhantes


Apresentação em tema: "Busca com Informação Busca com informação Busca Gulosa Busca A*"— Transcrição da apresentação:

1 Busca com Informação Busca com informação Busca Gulosa Busca A*
Heurística Heurística Admissível Princípio da Dominância

2 Estudo de Caso: menor caminho
Início objetivo

3 Busca pela melhor escolha
Utiliza uma função de avaliação para cada nó que estima “o quão desejável” é aquele nó Expande o nó que parece mais desejável ainda não expandido A fronteira (fila de nós gerados mas não expandidos) será uma fila ordenada em ordem decrescente de “desejabilidade”. Casos especiais: Busca gulosa pela melhor escolha (greedy) Busca A* Todos os algoritmos de busca pela melhor escolha utilizam uma função heurística h(n) h(n) é o custo estimado do caminho mais econômico do nó n até um nó objetivo Expande o nó que aparenta ser o melhor de acordo com a fç de avaliação Fç de avaliação -> medida que deve incorporar alguma estimativa do custo do caminho de um estado até o estado objetivo.

4 Problema: busca de caminho
Início objetivo

5 Busca gulosa pela melhor escolha
Minimizar o custo estimado par alcançar o objetivo Muitas vezes o custo para se alcançar o objetivo pode ser estimado mas não pode ser determinado exatamente A busca gulosa pela melhor escolha (greedy) expande o nó que aparenta estar mais próximo do objetivo Função de Avaliação utiliza somente h(n) Para o exemplo da Romênia: hDLR(n) = distância em linha reta de n até Bucarest.

6 Exemplo de busca gulosa pela melhor escolha

7 Exemplo de busca gulosa pela melhor escolha

8 Exemplo de busca gulosa pela melhor escolha

9 Exemplo de busca gulosa pela melhor escolha
O solução encontrada não é a solução ótima. Arad  Sibiu  Fagaras  Bucharest (140) + (99) (211) = 450km A Solução ótima passa por Rimnicu Vilcea Arad  Sibiu  Rimnicu Vilcea  Pitesti Bucharest (140) + (80) (97) + (101) = 418km Arad -> sibiu -> fagaras -> bucharest Embora a menor distancia seja através de Rimnicu Vilcea -> Pitesti Isto acontece porque a DLR de fagaras até bacharest é menor do que a distancia de rimnicu vilcea até bucharest

10 Problema: busca de caminho
GULOSO: g(Sibiu  Fagaras) + h(Fagaras) (99) (178) = 277km Não considera o custo g() Início objetivo IDEAL: g(Sibiu  Rimnicu) + h(Rimnicu) (80) (193) = 273km

11 Análise da busca gulosa pela melhor escolha
Tende a encontrar soluções rapidamente mas nem sempre encontra a solução ótima Se um dos nós mais próximos da solução é um beco- sem-saída, então nós serão expandidos sem necessidade Se não tomarmos cuidado com os estados repetidos a solução nunca será encontrada Sofre dos mesmos problemas da busca em profundidade Segue somente um caminho, mas tem que voltar se não encontrar a solução

12 Análise da busca gulosa pela melhor escolha
Não é ótima nem completa – porque pode entrar em um caminho infinito Complexidade de tempo: O(bm), mas uma boa heurística pode melhorar muito Complexidade de espaço: O(bm), mantém todos os nós na memória) * Onde m é a profundidade máxima e b é o fator de ramificação do espaço de busca.

13 Busca pelo custo mínimo do caminho  A*
Busca gulosa minimiza o custo estimado de n até o objetivo => h(n) Não é completa nem ótima Busca por custo uniforme minimiza o custo do caminho da raiz até n => g(n) É completa e ótima – mas analisa muitos nós Idéia de A*: combinar as duas estratégias Evitar expandir caminhos que já são caros Função de Avaliação f(n) = g(n) + h(n) f(n) = custo estimado total da solução de custo mais baixo passando por n Busca por custo uniforme pode ser muito ineficiente por que não tem informação nenhuma sobre o caminho que falta para o objetivo, assim, custa tempo e espaço de armazenamento

14 Busca pelo custo mínimo do caminho  A*
É completa e ótima, se h(n) é uma heurística admissível e consistente (monotônica) Heurística admissível: h(n) ≤ h’(n)+ custo real de n até n' Assim, f(n) nunca superestima o custo atual da melhor solução até n. Ao longo de qualquer caminho a partir da raiz, f nunca decresce Por exemplo: hDLR(n) nunca superestima a distância real pela estrada. Busca A* com h(n)=0 é uma busca por custo uniforme.

15 Exemplo: busca do caminho mínimo
Problema: Ir de Arad  Bucharest. Função heurística: Distância em linha reta entre a cidade n e Bucharest. Satisfaz a condição de admissibilidade, pois não existe distância menor entre dois pontos do que uma reta. É uma boa heurística, pois induz o algoritmo a atingir o objetivo mais rapidamente.

16 Exemplo de Busca A*

17 Exemplo de Busca A*

18 Exemplo de Busca A*

19 Exemplo de Busca A*

20 Exemplo de Busca A*

21 Exemplo de Busca A*

22 Contornos Busca por custo uniforme, traçaria contornos circulares.

23 Propriedades de A* Completa?: Tempo?: Espaço?: Ótima?:
Sim, a menos que haja uma quantidade infinita de nós com f ≤ f(objetivo) Tempo?: Exponencial em relação ao comprimento da solução Espaço?: Mantém todos os nós na memória Ótima?: Sim, não pode expandir fi+1 antes de fi ser expandido Não é prático para muito problemas de grande escala Para muitos problemas, o numero de nós dentro do espaço de busca do contorno do objetivo ainda é exponencial no tamanho da solução.

24 Heurísticas admissíveis
h(n) nunca deve superestimar o menor caminho, desta forma h(n) deve ser sempre menor que o caminho real. Isto é, h(n)  h*(n) onde h*(n) é o custo real de n. As heurísticas admissíveis tem natureza otimista, pois elas sempre indicam que o custo da solução é melhor do que ele realmente é. Desta maneira se uma solução ainda não foi encontrada sempre existirá um nó com f(n) menor do que ela.

25 Construindo Funções Heurísticas
estado inicial estado final Exemplo de heurísticas para o 8-puzzle h1(n) = número de quadrados em locais errados h2(n) = distância Manhattan total => número de espaços que deve ser movido para chegar no local correto h1(s) = 7 (só o número 7 está no local correto) h2(s) = = 18 H1 é admissível porque é obvio que cada quadrado fora do lugar terá que ser movido no mínimo uma vez H2 é admissível porque qualquer movimento pode mover um quadrado mais perto do objetivo Heurística é especifica para cada problema H(n)=0, se n é o estado objetivo

26 Dominância Se h2(n)  h1(n) para todo n (ambas admissíveis) então h2 domina h1 e é melhor para a busca. Isto se reflete diretamente no números de nós expandidos para cada heurística Custos típicos de busca: d = 14 Aprofundamento Iterativo = nodos A*(h1) = 539 nodos A*(h2) = 113 nodos H2 domina h1 porque ela é mais precisa do que h1. Assim, h2 irá expandir menos nós do que h1, porque h1 tem uma taxa de erro maior que h2.

27 Dominância d = 24 Aprofundamento Iterativo  A*(h1) = nodos A*(h2) = nodos Disponibilidade de uma coleção de heurísticas admissíveis onde nenhuma domina a outra Para cada nó n escolha: h(n) = max(h1(n), h2(n),...,hm(n)), onde h(n) é admissível e domina as outras heurísticas em n Sempre é melhor utilizar uma heurística com valores mais altos, desde que ela seja admissível

28 Relaxação de problemas
Várias vezes "relaxar" (tirar restrições) do problema pode resultar em uma boa heurística. Heurísticas admissíveis podem ser derivadas do custo de uma solução exata a partir de uma versão relaxada do problema. Se as regras do 8-puzzle forem relaxadas para que um quadrado possa se mover para qualquer lugar, então h1(n) dá a solução de caminho mais curto. Se as regras forem relaxadas para que um quadrado possa mover-se para qualquer quadrado adjacente, mesmo que ele esteja ocupado, então h2(n) dá a solução com caminho mais curto. É sempre o caso que o custo de uma solução exata para o problema relaxado é uma boa heurística para o problema original.

29 Relaxação de problemas
Ponto chave: o custo da solução ótima de um problema relaxado não é maior que o custo da solução ótima do problema real. Portanto ela é uma heurística admissível. Geração automática de heurísticas Descrição em linguagem formal do 8-puzzle: Um bloco pode se mover do quadrado A para o quadrado B se: A é horizontal ou verticalmente adjacente a B e B é vazio Heurísticas: Um bloco pode se mover do quadrado A para o B se A é adjacente a B Um bloco pode se mover do quadrado A para o B se B está vazio Um bloco pode se mover do quadrado A para o B Programa ABSOLVER Gerou a melhor heurística do 8-puzzle das pré-existentes Descobriu a primeira heurística útil para o famoso quebra-cabeça do cubo de ubik Também se pode construir uma boa heurística através da análise estatística das soluções já alcançadas do problemas Deve-se levar em conta também o tempo que a heurística leva para ser calculada. Se ela for tão complexa, ou seja, se o custo computacional de calcular-lá é tão grande quanto o custo de expandir todos os nós, então pode não ser uma boa idéia usá-la.


Carregar ppt "Busca com Informação Busca com informação Busca Gulosa Busca A*"

Apresentações semelhantes


Anúncios Google