inteligência artificial estratégias de busca...
TRANSCRIPT
2
In which we see how informationabout the state space can
prevent algorithms from blunderingabout in the dark
3
Busca InformadaBusca InformadaBusca exaustiva (cega)
encontram soluções para problemas pela geração sistemática de novos estados, que são comparados ao objetivo;
são ineficientes na maioria dos casos:são capazes de calcular apenas o custo de caminho do nó atual ao nó inicial (função g), para decidir qual o próximo nó da fronteira a ser expandido;essa medida não necessariamente conduz a busca na direção do objetivo.
Como encontrar um barco perdido?não podemos procurar no oceano inteiro...
4
Busca Heurísticautiliza conhecimento específico do problema na escolha do próximo nó a ser expandidofunção de avaliação estima o custo do caminho do nó atual até o objetivo (conhecida como heurística), ie, essa estimativa indica o quanto o nó é promissor com relação a atingir a meta estabelecida
5
Funções HeurísticasFunções HeurísticasFunção heurística h
nome vem do grego heuriskein – arquimedes(heureka)introduzida em IA por George Polya em 1957 (livro How to Solve It)estima o custo do menor caminho do estado atual até o estado final mais próximo
Funções heurísticas são específicas para cada problema
rota mais barata de Corumbá a Campo Grandehdd(n) = distância direta entre n e o nó final
6
Funções HeurísticasFunções Heurísticas
Como escolher uma boa função heurística?ela deve ser admissível (nunca superestimar o custo real da solução)distância direta (hdd) é admissível porque o caminho mais curto entre dois pontos é sempre uma linha reta
7
Funções HeurísticasFunções HeurísticasFunção heurística (h)
estima o custo do caminho mais barato do estado atual até o estado final mais próximo.são específicas para cada problema
Exemplo: encontrar a rota mais curta entre duas cidadeshdd(n) = distância direta entre o nó n e o nó final.
Como escolher uma boa função heurística?ela deve ser admissível, i.e., nunca superestimar o custo real da soluçãoex. distância direta (hdd) é admissível porque o caminho mais curto entre dois pontos é sempre uma linha reta
8
Busca genérica onde o nó de menor custo “aparente” na fronteira do espaço de estados é expandido primeiroA idéia básica é prosseguir com a busca sempre a partir do nó mais promissorDuas abordagens básicas:1. Busca Gulosa (Greedy search) 2. Algoritmo A* e suas variantes
Estratégia Estratégia BestBest--FirstFirst
9
Algoritmo:FunçãoFunção--InsereInsere - ordena nós com base na
FunçãoFunção--AvaliaçãoAvaliação
função BuscaBusca--MelhorMelhor--EscolhaEscolha(problema,FunçãoFunção--AvaliaçãoAvaliação)
retorna uma soluçãoBuscaBusca--GenéricaGenérica (problema, FunçãoFunção--InsereInsere)
Estratégia Estratégia BestBest--FirstFirst
10
Estratégia Estratégia BestBest--FirstFirstA função f(n) será construída como: f(n) = g(n) + h(n)
g(n) é uma estimativa do custo do caminho ótimo de s até nh(n) é uma estimativa do custo do caminho ótimo de n até t
s
n
t
g(n)
h(n)
11
Estratégia Estratégia BestBest--FirstFirstQuando um nó n é encontrado pelo processo de busca temos a seguinte situação
Um caminho de s até n já foi encontrado e seu custo pode ser calculado como a soma dos custos dos arcos no caminho
Este caminho não é necessariamente um caminho ótimo de saté n (pode existir um caminho melhor de s até n ainda não encontrado pela busca) mas seu custo serve como uma estimativa g(n) do custo mínimo de s até n
O outro termo, h(n) é mais problemático pois o “mundo” entre n e t não foi ainda explorado
Portanto, h(n) é tipicamente uma heurística, baseada no conhecimento geral do algoritmo sobre o problema em questãoComo h depende do domínio do problema, não há um método universal para construir h
12
Busca Gulosa (Busca Gulosa (GreedyGreedy SearchSearch))Semelhante à busca em profundidade com backtracking
Tenta expandir o nó mais próximo do nó final com base na estimativa feita pela função heurística h
Tenta minimizar o custo estimado para se atingir o objetivo
Algoritmo:
função BuscaBusca--GulosaGulosa (problema) retorna uma solução ou falha
BuscaBusca--MelhorMelhor--EscolhaEscolha (problema, h)
15
Busca GulosaBusca GulosaCusto de busca mínimo!
No exemplo, não expande nós fora do caminho Porém não é ótima:
No exemplo escolhe o caminho que é mais econômico à primeira vista, via Fagarasporém, existe um caminho mais curto via RimnicuVilcea
Não é completa:pode entrar em loop se não detectar a expansão de estados repetidospode tentar desenvolver um caminho infinito
Custo de tempo e memória: O(bd)
16
Algoritmo A*Algoritmo A*É ainda a técnica de busca mais usada Tenta minimizar o custo total da solução combinando:
Busca Gulosa: econômica, porém não é completa nem ótimaBusca de Custo Uniforme (Djikstra): ineficiente, porém completa e ótima
Função de avaliação:f (n) = g (n) + h (n)g (n) = distância de n ao nó inicialh (n) = distância estimada de n ao nó finalA* expande o nó de menor valor de f na fronteira do espaço de estados.
17
Algoritmo A*Algoritmo A*
Algoritmo:função BuscaBusca--A*A* (problema)
retorna uma solução ou falhaBuscaBusca--MelhorMelhor--EscolhaEscolha (problema, g+h)
20
Propriedades do Algoritmo A*Propriedades do Algoritmo A*Se h é admissível, f(n) nunca irá superestimar o custo real da melhor solução através de nA função f(n) sempre cresce analisando os caminhos de cima para baixoPara provar a otimalidade do algoritmo é necessário que a monotonicidade seja garantida
nunca deve ocorrer que f(n’) < f(n), onde n é o pai de n’para evitar pode se utilizar
f(n’) = max ( f(n), g(n’) + h(n’) ) (pathmax equation)
uma vez que todo caminho que passa por n’ passa também por n (seu pai)
21
MonotonicidadeMonotonicidade
Uma heurística é monotônica se e somente se ela obedece a Desigualdade Triangular;Desigualdade Triangular: dois lados de um triângulo não podem somar menos que o terceiro lado.Pearl, J. (1984) Heuristics: Intelligent Search Strategies for Computer Problem Solving. Addison-Wesley, Reading, Massachusetts.
23
Algoritmo A* : Algoritmo A* : análise do comportamentoanálise do comportamento
A estratégia é completa e ótima
Custo de tempo:exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo
Custo memória: O (bd)guarda todos os nós expandidos na memória
para possibilitar o backtracking
24
Algoritmo A* : Algoritmo A* : análise do comportamentoanálise do comportamento
Eficiência ótimasó expande nós com f(n) ≤ f*, onde f* é o custo do caminho ótimo
f é não decrescentenenhum outro algoritmo ótimo garante expandir menos nós
25
BestBest--FirstFirst & A*& A*
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
Distância entre duas cidades através de um
caminho (rodovia)
Distância entre a cidade em questão e a cidade destino (t) em
linha reta
26
BestBest--FirstFirst & A*& A*Dado um mapa, o objetivo é encontrar o caminho mais curto entre a cidade inicial s e a cidade destino tPara estimar o custo do caminho restante da cidade X até a cidade t utilizaremos a distância em linha reta denotada por dist(X,t)f(X) = g(X) + h(X) =
= g(X) + dist(X,t)
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
27
BestBest--FirstFirst & A*& A*Neste exemplo, podemos imaginar a busca best-firstconsistindo em dois processos, cada um explorando um dos caminhos alternativosProcesso 1 explora o caminho via aProcesso 2 explora o caminho via e
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
28
BestBest--FirstFirst & A*& A*f(a)=g(a)+dist(a,t)=2+5=7f(e)=g(e)+dist(e,t)=2+7=9Como o valor-f de a é menor do que de e, o processo 1 (busca via a) permanece ativo enquanto o processo 2 (busca via e) fica em estado de espera
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(e)=9
f(a)=7
29
BestBest--FirstFirst & A*& A*f(a)=g(a)+dist(a,t)=2+5=7f(e)=g(e)+dist(e,t)=2+7=9Como o valor-f de a é menor do que de e, o processo 1 (busca via a) permanece ativo enquanto o processo 2 (busca via e) fica em estado de esperaf(b)=g(b)+dist(b,t)=4+4=8
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(e)=9
f(a)=7
f(b)=8
30
BestBest--FirstFirst & A*& A*f(a)=g(a)+dist(a,t)=2+5=7f(e)=g(e)+dist(e,t)=2+7=9Como o valor-f de a é menor do que de e, o processo 1 (busca via a) permanece ativo enquanto o processo 2 (busca via e) fica em estado de esperaf(b)=g(b)+dist(b,t)=4+4=8f(c)=g(c)+dist(c,t)=6+4=10Como f(e)<f(c) agora o processo 2 prossegue para a cidade f
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(c)=10
f(e)=9
f(a)=7
f(b)=8
31
BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prossegue
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(c)=10
f(f)=11
f(e)=9
f(a)=7
f(b)=8
32
BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prosseguef(d)=g(d)+dist(d,t)=9+3=12Como f(d)>f(f) o processo 2 reinicia
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(c)=10
f(f)=11
f(d)=12
f(e)=9
f(a)=7
f(b)=8
33
BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prosseguef(d)=g(d)+dist(d,t)=9+3=12Como f(d)>f(f) o processo 2 reinicia chegando até o destino tf(g)=g(g)+dist(g,t)=9+2=11
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(c)=10
f(f)=11
f(d)=12f(g)=11
f(e)=9
f(a)=7
f(b)=8
34
BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prosseguef(d)=g(d)+dist(d,t)=9+3=12Como f(d)>f(f) o processo 2 reinicia chegando até o destino tf(g)=g(g)+dist(g,t)=9+2=11f(t)=g(t)+dist(t,t)=11+0=11
se
a
bc
d
f
g
2
2
2
2
3
3 2
2
5
7
5
444
32
t
f(c)=10
f(f)=11
f(d)=12f(g)=11
f(e)=9
f(a)=7
f(b)=8
f(t)=11
35
BestBest--FirstFirst & A*& A*
A busca, começando pelo nó inicial continua gerando novos nós sucessores, sempre expandindo na direção mais promissora de acordo com os valores-fDurante este processo, uma árvore de busca é gerada tendo como raiz o nó inicial e o algoritmo best-first continua expandindo a árvore de busca até que uma solução seja encontrada
42
BestBest--FirstFirst & A*& A*s
ea
b
c
d
f
g
t
f(e)=9f(a)=7
f(b)=8
f(c)=10
f(f)=11
f(d)=12
f(g)=11
f(t)=11
43
Busca com Limite de Memória Busca com Limite de Memória MemoryMemory BoundedBounded SearchSearch
IDA* (Iterative Deepening A*)extensão do aprofundamento iterativo, porém seu limite é dado pela função de avaliação (f) (contornos), e não pela profundidade (d).necessita de menos memória do que A* mas continua ótima
SMA* (Simplified Memory-Bounded A*) Similar ao A*O número de nós guardados em memória é fixado previamente
conforme vai avançando, descarta os piores nós (embora guarde informações a respeito deles) e atualiza os melhores valores dos caminhos
É completa e ótima se a memória alocada for suficiente
44
IDA*IDA*
IDA* é similar à busca em profundidade iterativa
Na busca em profundidade iterativa as buscas em profundidade são realizadas em limites crescentes de profundidade; em cada iteração a busca em profundidade é limitada pelo limite de profundidade atualEm IDA* as buscas em profundidade são limitadas pelo limite atual representando valores-f dos nós
45
IDA*IDA*procedure ida(Inicio,Solucao)
Limite ← f(Inicio)repeatIniciando no nó Início, realize busca emprofundidade sujeita à condição que um nó N éexpandido apenas se f(N) <= Limiteif busca em profundidade encontrou nó final then
indique ’Solução encontrada’else
Calcule NovoLimite como o mínimo valor-f dos nósalcançados ao ultrapassar Limite, ou seja, NovoLimite ← min{f(N): N gerado pela busca e f(N) > Limite}
endifLimite ← NovoLimite
until Solução encontrada
49
Inventando Funções HeurísticasInventando Funções HeurísticasComo escolher uma boa função heurística h?h depende de cada problema particular.h deve ser admissível
não superestimar o custo real da solução Existem estratégias genéricas para definir h:1) Relaxar restrições do problema;2) Usar informação estatística;3) Identificar os atributos mais relevantes do
problema
50
Problema Relaxado:versão simplificada do problema original, onde os operadores são menos restritivos
Exemplo: jogo dos 8 números: operador original: um número pode mover-se de A para B se A é adjacente a B e B está vaziobusca exaustiva ≈ 320 estados possíveis
Fator de ramificação ≈ 3 e d ≈ 20 passos
Operadores relaxados:1. um número pode mover-se de A para B (h1)2. um número pode mover-se de A para B se A é adjacente a B (h2)
4 5 81 6
7 32
(1) Relaxando o problema(1) Relaxando o problema
51
Heurísticas possíveish1 = no. de elementos fora do lugar (h1=7)h2 = soma das distâncias de cada número à posição final (h2=2+3+3+2+4+2+0+2=18)
Manhattan Distance d de dois pontos (x,y) e (u,v), d = |x-u| + |y-v|
Heurísticas para jogo 8 númerosHeurísticas para jogo 8 números
52
(2) Usando informação estatística(2) Usando informação estatística
Funções heurísticas podem ser “melhoradas” com informação estatística:
executar a busca com um conjunto de treinamento (e.g., 100 configurações diferentes do jogo), e computar os resultados.se, em 90% dos casos, quando h (n) = 14, a distância real da solução é 18,então, quando o algoritmo encontrar 14 para o resultado da função, vai substituir esse valor por 18.
53
(2) Usando informação estatística(2) Usando informação estatística
Informação estatística expande menos nós, porém elimina admissibilidade:
em 10% dos casos do problema acima, a função de avaliação poderá superestimar o custo da solução, não sendo de grande auxílio para o algoritmo encontrar a solução mais barata.
54
(3) Usando Atributos/características(3) Usando Atributos/características
Características do problema podem ser usadas para mensurar o quão se está próximo da soluçãoex. xadrez
número de peças de cada ladosomatório dos pesos das peças de cada lado (Peão-1, ..., Rainha-9) número de peças sob ataque
Quando não se conhece a importância das características, pode-se aprendê-las (w1f1+w2f2+...+wnfn)
55
Qualidade da função heurísticaQualidade da função heurística
Qualidade da função heurística: medida através do fator de expansão efetivo (b*).
b* é o fator de expansão de uma árvore uniforme com N nós e nível de profundidaded
N = 1 + b* + (b*)2 + ... + (b*)d , onde N = total de nós expandidos para uma instância de
problemad = profundidade da solução;
56
Qualidade da função heurísticaQualidade da função heurística
Mede-se empiricamente a qualidade de h a partir do conjunto de valores experimentais de N e d.
uma boa função heurística terá o b* muito próximo de 1.
Se o custo de execução da função heurística for maior do que expandir nós, então ela não deve ser usada.
uma boa função heurística deve ser eficiente
Experimento com 100 problemasExperimento com 100 problemas88--númerosnúmeros
Uma boa função heurística terá o b* muito próximo de 1.
58
Escolhendo Funções HeurísticasEscolhendo Funções HeurísticasÉ sempre melhor usar uma função heurística com valores mais altos, contanto que ela seja admissível.
ex. h2 melhor que h1hi domina hk ⇒ hi(n) ≥ hk(n) ∀n no espaço de estados
h2 domina h1 no exemplo anteriorCaso existam muitas funções heurísticas para o mesmo problema, e nenhuma delas domine as outras, usa-se uma heurística composta:
h (n) = max (h1 (n), h2 (n),…,hm(n))Assim definida, h é admissível e domina cada função hi individualmente
59
Heurística... por toda IAHeurística... por toda IAA noção de heurística sempre foi além da busca e de uma formalização via função de um estado Heurística
escolha, prioridade, estratégia na busca de uma solução razoável onde não há solução ótima ou recurso para determiná-laNo dia a dia: heurística para dirigir, namorar, estudar,...
Em IA: em todas as áreas como conhecimento de controle
ex. escolha de regras a serem disparadas (SBC)ex. escolha de viés de generalização (aprendizagem)...
60
Qual seria uma boa heurística Qual seria uma boa heurística para o jogo da velha?para o jogo da velha?
X
0
62
s
ba c
d e f
h i
gj k
Busca em Profundidade (com backtracking)
Ordem de visita:s a d
a eas bs c f h j
h g
63
ReferênciasReferências
Material Didático Prof. Marcílio Souto –UFRN, 2005Material Didático Prof. José Augusto Baranauskas – USP Ribeirão Preto, 2005Material Didático Prof. Huei Diana Lee –Unioeste, 2002Russel, S. e Norvig, P. Artificial Intelligence: A modern approach, Prentice Hall, 1995Referências indicadas no curso