algoritmos de busca heurísticos. sumario heurísticos –best-first –greedy best-first –a *...

25
Algoritmos de Busca Heurísticos

Post on 21-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Algoritmos de Busca Heurísticos

Sumario

• Heurísticos– Best-first – Greedy best-first – A* – Algoritmos de Busca local– Hill-climbing

• Metaheuristicos– Simulated annealing– Algoritmos Geneticos

Best-first

• Idéia: usar uma função de avaliação f(n) para cada nodo– Estimar se ele é “promissor”Expandir o mais desejável

• Casos Especiais:– greedy best-first – A*

Romania

Greedy best-first (guloso)

• Função de avaliação f(n) = h(n) (heurística)

• = estima o custo de n ao objetivo

• hSLD(n) = linha reta desde n a Bucharest

• O Algoritmo “Greedy best-first” expande o nodo que parece mais perto do objetivo

Greedy best-first

Greedy best-first search example

Greedy best-first search example

Greedy best-first search example

Propriedades do Algoritmo greedy

• Completo? Não

• Tempo? O(bm), uma boa heurística pode melhorar ele muito

• Espaço? O(bm) – mantém todos os nodos em memória

• Ótimo? Não

A*

• Idéia: evitar a expansão de caminhos que estão muito custosos

• Função de Avaliação f(n) = g(n) + h(n)

• g(n) = custo de atingir n

• h(n) = custo estimado de n ao objetivo

• f(n) = custo total estimado de caminho através de n ao objetivo

A*

A*

A*

A*

A*

A*

Heurística Admissível

• Uma heurística h(n) é admissível se para cada nodo n,

h(n) ≤ h*(n), donde h*(n) é o custo real de atingir o estado objetivo desde n.

• Uma heurística admissível nunca sobreestima o custo de atingir o objetivo, ela é otimista

• Exemplo: hSLD(n) (nunca sobreestima a distancia da rodovia)

• Teorema: Se h(n) é admissível, A* é ótima

Propriedades de A*

• Completa? Sim (ao menos que existam infinitos nodos com f ≤ f(G) )

• Tempo? Exponencial

• Espaço? Mantém todos os nodos em memória

• Ótima? Sim

Algoritmos de Busca Local

• Em muitos problemas de otimização , o caminho até o objetivo é irrelevante; o objetivo é a solução

• Espaço de Estados = conjunto de configurações completas

• Encontrar a configuração que satisfaz as restrições, exemplo as n- rainhas

• Em tais casos, podem ser usados algoritmos de busca local

• Manter um estado atual,tentar melhorar ele

Exemplo: n-rainhas

• Coloque as n rainhas em um tabuleiro de n × n, as rainhas não podem estar na mesma coluna, linha ou diagonal

Hill-climbing

• “Igual que escalar o Everest "

Hill-climbing

• Problema: dependendo do estado inicial, pode ficar em máximos locais

Busca Local

• Manter k estados como alternativa a um • Comece gerando k estados aleatoriamente

• A cada iteração, todos os sucessores de todos os k estados devem ser gerados

• Se qualquer um deles for o objetivo, pare; caso contrario selecione k melhores sucessores da lista completa e repita

• Algoritmos Genéticos