Slide sem título - FTP da PUC

Propaganda
Inteligência Artificial
PUCC
1
Agenda - Aula 05
• Buscas
•Heurísticas
PUCC
2
Função de Avaliação
• O processo de busca que vamos estudar é
parecido com o de busca em amplitude,
exceto pelo fato de não ser uniforme a partir
do nó inicial. Ao invés disso, ele dá
preferência para determinados nós onde
informações específicas do problema indicam
que eles podem levar a soluções melhores.
• Esses processos são chamados BUSCAS
HEURÍSTICAS
PUCC
3
Idéia Básica
• 1. Temos uma função de avaliação, função
heurística ĥ, a qual ajuda a decidir qual nó é
o melhor para ser expandido.
– Valores menores dessa função são melhores
– Esta função é baseada em informações
específicas do domínio do problema.
• 2. Expanda o nó n que possui o menor valor
de ĥ(n). Empates são resolvidos
arbitrariamente.
• 3. Termine quando o nó a ser expandido é o
nó ALVO.
PUCC
4
Quebra Cabeças
• Qual seria uma função heurística adequada?
• Tendo como nó inicial o estado abaixo,
desenho o grafo resultante da aplicação da
sua função heurística.
2 8 3
1 6 4
7 b 5
PUCC
5
Função Melhorada
• Este exercício mostra que devemos influenciar
a busca em favor de retornos para explorar
passos anteriores a fim de prevenir buscas
muito profundas.
• Então podemos alterar a nossa função para
levar em conta a profundidade do nó:
ĥ: ĥ(n)= ĝ(n) + ŝ(n)
onde: ĝ(n) é a profundidade do nó no grafo
ŝ(n) avaliação heurística do nó n
(número de peças fora do lugar)
PUCC
6
Função Avaliação
• Duas questões importantes:
• Como devemos escolher funções de
avaliação para guiar as buscas heurísticas
que utilizam o melhor primeiro?
• Esse tipo de busca sempre nos leva a
resultados interessantes? Quais são suas
propriedades?
PUCC
7
Algoritmo de Busca em Grafo
• 1. Crie uma árvore que possui somente o nó inicial, n0. Coloque
n0 numa lista ordenada chamada ABERTA.
• 2. Crie a lista FECHADA - vazia
• 3. Se ABERTA estiver vazia - erro
• 4. Selecione o primeiro nó de ABERTA, tire ele de lá e coloque
em FECHADA. Chame este nó n.
• 5. Se n é o nó alvo PARE. Encontre o caminho da árvore de n
para n0.
• 6. Expanda n. Coloque o conjunto de sucessores na árvore
criando arcos de n para cada sucessor. Coloque todos os
sucessores em ABERTO.
• 7. Reordene ABERTO de acordo com algum critério.
• 8. Volte para 3.
PUCC
8
Algoritmo A*
• Vamos particularizar o algoritmo anterior
fazendo uma ordenação, no passo 7, dos nós
que estão na lista ABERTA, para valores
crescentes da função ĥ. Vamos chamar esse
algoritmo de A*.
• Seja s(n), o custo real do caminho mínimo
entre o nó n e um nó alvo (calculado para
todos os nós alvos e todos os caminhos
possíveis entre n e eles)
PUCC
9
Algoritmo A*
• Seja g(n), o custo do caminho mínimo entre o
nó inicial n0 e o nó n.
• Então, h(n)= g(n)+s(n) é o custo do menor
caminho entre o nó inicial n0 e um nó ALVO
com a restrição de que esse caminho passe
por n.
• Note que h(n0)= s(n0) é o caminho mínimo
irrestrito.
PUCC
10
Algoritmo A*
• Para cada nó n, seja ŝ(n) uma
estimativa de s(n) e ĝ(n) o menor custo
encontrado por A* para chegar a n.
• Para o algoritmo A* nós utilizamos:
ĥ(n)= ĝ(n) + ŝ(n)
– Onde ^ significa estimativa
PUCC
11
Algoritmo A*
• Como funcionaria o algoritmo de busca no
caso de não estarmos trabalhando com uma
árvore e sim com um grafo? Isto é, existe
mais de uma seqüência de ações que levam
ao mesmo estado partindo do estado inicial.]
PUCC
12
Algoritmo A*
• Existem condições sobre o grafo e sobre s^ as
quais garantem que o A* encontra a solução
ótima:
– Cada nó do grafo tem que ter um número finito de
sucessores
– Os arcos tem que ter custo positivo
^
– Para todos os do grafo: s(n)
<= s(n)
PUCC
13
Algoritmo A* Iterativo
• Redução do uso de memória grande mas muitas vezes
não suficiente.
• Método Iterativo: executar uma série de buscas em
profundidade. Pode ser realizada em paralelo.
^
^
^
1.) estabeleça um custo de corte inicial: h(n0)= g(n
0)+s(n0)
^
^
h(n0) = s(n
0)
^
2.) Melhor situação esse é o valor do ótimo. s(n
0)<=s(n0)
^
3.) Backtracking: sempre que h(n) > custo de corte
4.) Se encontrou o ALVO solução ótima. Se não: custo da
solução ótima maior que o custo de corte.
^
5.) Custo de corte= menor h de nó não expandido.
PUCC
14
Download