Está en la página 1de 58

Resoluo de Problemas por meio de

Busca
Prof. Alexandre Monteiro
Recife

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: alexandrecordel@gmail.com
greinaldo@fbv.edu.br

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Buscando Solues
Busca Heurstica = Conhecimento

Busca Heurstica ou Informada

Estratgias de Busca Cega

encontram solues para problemas pela gerao


sistemtica de novos estados, que so comparados ao
objetivo;
so ineficientes na maioria dos casos:
- so capazes de calcular apenas o custo de caminho do n atual ao n
inicial (funo g), para decidir qual o prximo n da fronteira a ser
expandido.
- essa medida no necessariamente conduz a busca na direo do objetivo.

Como encontrar um barco perdido?


- no podemos procurar no oceano inteiro...

Busca Heurstica

Estratgias de Busca Heurstica


utilizam conhecimento especfico do problema na escolha do
prximo n a ser expandido
barco perdido
- correntes martimas, vento, etc...

Aplica de uma funo de avaliao a cada n na fronteira do


espao de estados
essa funo estima o custo de caminho do n atual at o objetivo
mais prximo utilizando uma funo heurstica

Heurstica
do grego heuriskein, encontrar, descobrir
introduzida em IA por George Polya em 1957 (livro How to Solve It)
conhecimento e, por isso, marcou quebra da IA com a pesquisa
operacional

Funes Heursticas

Funo heurstica (h)


estima o custo do caminho mais barato do estado atual at o
estado final mais prximo.
so especficas para cada problema

Exemplo:
encontrar a rota mais curta entre duas cidades
hdd(n) = distncia direta entre o n n e o n final.

Como escolher uma boa funo heurstica?


ela deve ser admissvel, i.e., nunca superestimar o custo real da
soluo
ex. distncia direta (hdd) admissvel porque o caminho mais
curto entre dois pontos sempre uma linha reta

Busca pela Melhor Escolha (BME)


Best-First Search

Busca genrica onde o n de menor custo aparente na fronteira


do espao de estados expandido primeiro
Duas abordagens bsicas:

1. Busca Gulosa (Greedy search)


2. Algoritmo A* e suas variantes

Algoritmo:

Funo-Insere - ordena ns com base na Funo-Avaliao


funo Busca-Melhor-Escolha (problema,Funo-Avaliao)
retorna uma soluo

Busca-Genrica (problema, Funo-Insere)

Busca Gulosa

Semelhante busca em profundidade com backtracking


Tenta expandir o n mais prximo do n final com base na
estimativa feita pela funo heurstica h(n).

Funo-Avaliao = Funo Heurstica h(n)

Algoritmo:
funo Busca-Gulosa (problema)
retorna uma soluo ou falha

Busca-Melhor-Escolha (problema, h)

Exemplo: Ir de Arad a Bucharest

Busca Gulosa...

11

Busca Gulosa

Custo de busca mnimo!

No exemplo, no expande ns fora do caminho

Porm no tima:

No exemplo escolhe o caminho que mais econmico


primeira vista, via Fagaras
porm, existe um caminho mais curto via Rimnicu Vilcea

No completa:

pode entrar em loop se no detectar a expanso de


estados repetidos
pode tentar desenvolver um caminho infinito

Custo de tempo e memria: O(bd)

12

Algoritmo A*

ainda a tcnica de busca mais usada

Tenta minimizar o custo total da soluo combinando:


Busca Gulosa: econmica, porm no completa nem tima
Busca de Custo Uniforme (Djikstra): ineficiente, porm
completa e tima

Funo de avaliao:

f (n) = g (n) + h (n)


g (n) = distncia de n ao n inicial
h (n) = distncia estimada de n ao n final
A* expande o n de menor valor de f na fronteira do espao
de estados.

13

Algoritmo A*

Se h admissvel, f (n) nunca ir superestimar o custo real


da melhor soluo atravs de n.
Algoritmo:
funo Busca-A* (problema)
retorna uma soluo ou falha

Busca-Melhor-Escolha (problema, g+h)

Algoritmo A* : exemplo
Ir de Arad a Bucharest

14

Algoritmo A*: outro exemplo


Viajar de Arad a Bucharest

Usando A*

17

Algoritmo A*: anlise do comportamento

A estratgia completa e tima

Custo de tempo:
exponencial com o comprimento da soluo, porm boas funes
heursticas diminuem significativamente esse custo
- o fator de expanso fica prximo de 1

Custo memria: O (bd)


guarda todos os ns expandidos na memria
- para possibilitar o backtracking

Eficincia tima
s expande ns com f(n) f*, onde f* o custo do caminho timo
- f no decrescente

nenhum outro algoritmo timo garante expandir menos ns

A* define Contornos

. fator de expanso
prximo de 1

18

19

Busca com Limite de Memria


Memory Bounded Search

IDA* (Iterative Deepening A*)


igual ao aprofundamento iterativo, porm seu limite dado
pela funo de avaliao (f) (contornos), e no pela
profundidade (d).
necessita de menos memria do que A* mas continua tima

SMA* (Simplified Memory-Bounded A*)


O nmero de ns guardados em memria fixado
previamente
- conforme vai avanando, descarta os piores ns (embora guarde
informaes a respeito deles) e atualiza os melhores valores dos caminhos

completa e tima se a memria alocada for suficiente

IDA* - Iterative Deepening A*

20

SMA* (Simplified Memory-Bounded A*)

21

Busca - Funes Heursticas e


Algoritmos de Melhorias Interativas

22

23

Inventando Funes Heursticas

Como escolher uma boa funo heurstica h?

h depende de cada problema particular.

h deve ser admissvel

no superestimar o custo real da soluo

Existem estratgias genricas para definir h:

1) Relaxar restries do problema;


2) Usar informao estatstica;
3) Identificar os atributos mais relevantes do
problema
4) Aprender a heurstica pela experincia
- Aprendizagem de mquina

24

(1) Relaxando o problema

Problema Relaxado:

verso simplificada do problema original, onde os


operadores so menos restritivos

Exemplo: jogo dos 8 nmeros:


operador original: um nmero pode mover-se de A para B se A
adjacente a B e B est vazio
busca exaustiva 320 estados possveis
4 5 8
- Fator de ramificao 3 e d 20 passos

Operadores relaxados:

1 6
7 2 3

1. um nmero pode mover-se de A para B (h1)


2. um nmero pode mover-se de A para B se A adjacente a B (h2)

Estratgias para definir h


(1) Relaxando o problema

O custo de uma soluo tima para um problema relaxado


sempre uma heurstica admissvel para o problema
original.
Existem softwares capazes de gerar automaticamente
problemas relaxados

Se o problema for definido em uma


linguagem formal

Existem tambm softwares capazes de gerar


automaticamente funes heursticas para problemas
relaxados
Ex.: CPLEX 7.5
25

26

(2) Usando informao estatstica

Funes heursticas podem ser melhoradas com


informao estatstica:
executar a busca com um conjunto de treinamento (e.g., 100
configuraes diferentes do jogo), e computar os resultados.
se, em 90% dos casos, quando h (n) = 14, a distncia real da
soluo 18,
ento, quando o algoritmo encontrar 14 para o resultado da
funo, vai substituir esse valor por 18.

Informao estatstica expande menos ns, porm


elimina admissibilidade:
em 10% dos casos do problema acima, a funo de avaliao
poder superestimar o custo da soluo, no sendo de grande
auxlio para o algoritmo encontrar a soluo mais barata.

27

(3) Usando atributos/caractersticas

Caractersticas do problema podem ser usadas para


mensurar o quo se est prximo da soluo
ex. xadrez

nmero de peas de cada lado


somatrio dos pesos das peas de cada lado
(Peo-1, ..., Rainha-9)
nmero de peas sob ataque

Quando no se conhece a importncia das caractersticas,


pode-se aprend-las (w1f1+w2f2+...+wnfn)

28

Qualidade da funo heurstica

Qualidade da funo heurstica: medida atravs do fator de


expanso efetivo (b*).
b* o fator de expanso de uma rvore uniforme com N
ns e nvel de profundidade d
N = 1 + b* + (b*)2 + ... + (b*)d , onde
N = total de ns expandidos para uma instncia de problema
d = profundidade da soluo;

Mede-se empiricamente a qualidade de h a partir do conjunto


de valores experimentais de N e d.
uma boa funo heurstica ter o b* muito prximo de 1.

Se o custo de execuo da funo heurstica for maior do que


expandir ns, ento ela no deve ser usada.
uma boa funo heurstica deve ser eficiente

29

Heursticas para jogo 8 nmeros

Heursticas possveis

h1 = no. de elementos fora do lugar (h1=7)


h2 = soma das distncias de cada nmero posio
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|

30

Escolhendo Funes Heursticas

sempre melhor usar uma funo heurstica com valores


mais altos, contanto que ela seja admissvel.

ex. h2 melhor que h1

hi domina hk hi(n) hk(n) n no espao de estados

h2 domina h1 no exemplo anterior

Caso existam muitas funes heursticas para o mesmo


problema, e nenhuma delas domine as outras, usa-se uma
heurstica composta:

h (n) = max (h1 (n), h2 (n),,hm(n))


Assim definida, h admissvel e domina cada
funo hi individualmente

Estratgias para definir h


(2) Aprendendo a heurstica

Definindo h com aprendizagem automtica

(1) Criar um corpus de exemplos de treinamento

Resolver um conjunto grande de problemas


- e.g., 100 configuraes diferentes do jogo dos 8 nmeros

Cada soluo tima para um problema


prov exemplos
- Cada exemplo consiste em um par
- (estado no caminho soluo, custo real da soluo a partir
daquele ponto)

31

Estratgias para definir h


(2) Aprendendo a heurstica
(2) Treinar um algoritmo de aprendizagem indutiva

Que ento ser capaz de prever o custo de


outros estados gerados durante a execuo
do algoritmo de busca

32

Experimento com 100 problemas

Uma boa funo heurstica ter o b* muito prximo de 1.


33

Na sequencia....

Algoritmos de Melhorias Iterativas

34

Algoritmos de Melhorias Iterativas

Dois exemplos clssicos

Subida da encosta (Hill-Climbing)


Tmpera simulada (Simulated Annealing)

35

Algoritmos de Melhorias Iterativas


(Iterative Improvement Algorithms)

Idia geral

comear com um estado inicial


- configurao completa, soluo aceitvel

e tentar melhor-lo iterativamente


E.g., ajustar a imagem da TV com antena
interna

Os estados so representados sobre uma superfcie


(grfico)

a altura de qualquer ponto na superfcie


corresponde funo de avaliao do
estado naquele ponto
36

Exemplo de Espao de Estados

37

Algoritmos de Melhorias Iterativas

O algoritmo se move pela superfcie em busca de pontos


mais altos

Objetivos (onde a funo de avaliao melhor)


- Objetivos so estados mais adequados

O ponto mais alto corresponde soluo tima

mximo global
- n onde a funo de avaliao atinge seu valor mximo

Aplicaes: problemas de otimizao

por exemplo, linha de montagem, rotas, etc.

38

Algoritmos de Melhorias Iterativas

Esses algoritmos guardam apenas o estado atual, e no


vem alm dos vizinhos imediatos do estado

Contudo, muitas vezes so os melhores mtodos


para tratar problemas reais muito complexos.

Duas classes de algoritmos:

Subida da Encosta ou Gradiente Ascendente


- Hill-Climbing
- s faz modificaes que melhoram o estado atual.

Tmpera Simulada

- Simulated Annealing
- pode fazer modificaes que pioram o estado temporariamente
para fugir de mximos locais

39

Subida da Encosta - Hill-Climbing

O algoritmo no mantm uma rvore de busca:

guarda apenas o estado atual e sua avaliao

simplesmente um loop que se move

na direo crescente da funo de avaliao


- para maximizar

ou na direo decrescente da funo de avaliao


- para minimizar
- Pode ser o caso se a funo de avaliao representar o custo, por
exemplo...

40

Subida da Encosta: algoritmo

funo Hill-Climbing (problema) retorna uma


soluo
variveis locais: atual (o n atual), prximo (o prximo n)
atual Estado-Inicial do Problema
loop do
prximo sucessor do n atual de maior/menor valor
(i.e., expande n atual e seleciona seu melhor filho)
se Valor[prximo] < Valor[atual ] (ou >, para minimizar)
ento retorna n atual (o algoritmo pra)
atual prximo
end
41

Exemplo de Subida da Encosta


Clculo da menor rota com 5 ns

estado inicial = (N1, N2, N3, N4, N5)


f = soma das distncias diretas entre cada n, na ordem escolhida
(admissvel!)

operadores = permutar dois ns quaisquer do caminho

restrio = somente caminhos conectados so estados vlidos

estado final = n onde valor de f mnimo

e1 = {N1, N2, N3, N4, N5}

e2 = {N2, N1, N3, N4, N5}

f(N1, N2, N3, N4, N5) = 10


f(N2, N1, N3, N4, N5) = 14

e3 = {N2, N1, N4, N3, N5}

f(N2, N1, N3, N4, N5) = 9!!!


42

Subida da Encosta
Problemas

O algoritmo move-se sempre na direo que apresenta


maior taxa de variao para f
Isso pode levar a 3 problemas:
1. Mximos locais
2. Plancies (plats)
3. Encostas e picos

43

Subida da Encosta
Mximos locais

Os mximos locais so picos mais baixos do que o pico mais


alto no espao de estados

mximo global - soluo tima

Nestes casos, a funo de avaliao leva a um valor mximo


para o caminho sendo percorrido

a funo de avaliao menor para todos os


filhos do estado atual, apesar de o objetivo
estar em um ponto mais alto
- essa funo utiliza informao local

e.g., xadrez:

- eliminar a Rainha do adversrio pode levar o jogador a perder o jogo.

44

Subida da Encosta
Mximos locais

O algoritmo pra no mximo local

s pode mover-se com taxa crescente de


variao de f
- restrio do algoritmo

Exemplo de taxa de variao negativa


- Jogo dos 8 nmeros:
- mover uma pea para fora da sua posio correta para dar passagem a outra
pea que est fora do lugar tem taxa de variao negativa!!!

45

Subida da Encosta
Plats (Plancies)

Uma regio do espao de estados onde a funo de


avaliao d o mesmo resultado
todos os movimentos so iguais (taxa de variao zero)
- f(n) = f(filhos(n))

O algoritmo pra depois de algumas tentativas


Restrio do algoritmo

Exemplo: jogo 8-nmeros


em algumas situaes, nenhum movimento possvel vai
influenciar no valor de f, pois nenhum nmero vai chegar
ao seu objetivo.
46

Subida da Encosta
Encostas e Picos

Apesar de o algoritmo estar em uma direo que leva


ao pico (mximo global), no existem operadores
vlidos que conduzam o algoritmo nessa direo
Os movimentos possveis tm taxa de variao zero ou
negativa
- restrio do problema e do algoritmo

Exemplo: clculo de rotas


quando necessrio permutar dois pontos e o caminho
resultante no est conectado.

47

Subida da Encosta
Problemas - soluo

Nos casos apresentados, o algoritmo chega a um ponto


de onde no faz mais progresso
Soluo: reincio aleatrio (random restart)
O algoritmo realiza uma srie de buscas a partir de
estados iniciais gerados aleatoriamente
Cada busca executada
- at que um nmero mximo estipulado de iteraes seja
atingido, ou
- at que os resultados encontrados no apresentem
melhora significativa

O algoritmo escolhe o melhor resultado obtido com as


diferentes buscas.
- Objetivo!!!
48

Subida da Encosta: anlise

O algoritmo completo?
SIM, para problemas de otimizao
- uma vez que cada n tratado pelo algoritmo sempre um
estado completo (uma soluo)
NO, para problemas onde os ns no so estados completos
- e.g., jogo dos 8-nmeros
- semelhante busca em profundidade

O algoritmo timo?
TALVEZ, para problemas de otimizao
- quando iteraes suficientes forem permitidas...
NO, para problemas onde os ns no so estados completos
49

Subida da Encosta: anlise

O sucesso deste mtodo depende muito do formato da


superfcie do espao de estados:

se h poucos mximos locais, o reincio


aleatrio encontra uma boa soluo
rapidamente
caso contrrio, o custo de tempo
exponencial.

50

Tmpera Simulada -Simulated


Annealing

Este algoritmo semelhante Subida da Encosta,


porm oferece meios para escapar de mximos locais
quando a busca fica presa em um mximo local, o algoritmo
no reinicia a busca aleatoriamente
ele retrocede para escapar desse mximo local
esses retrocessos so chamados de passos indiretos

Apesar de aumentar o tempo de busca, essa estratgia


consegue escapar dos mximos locais

51

Tmpera Simulada

Analogia com cozimento de vidros ou metais:


processo de resfriar um lquido gradualmente at ele se
solidificar

O algoritmo utiliza um mapeamento de resfriamento de


instantes de tempo (t) em temperaturas (T).

52

Tmpera Simulada

Nas iteraes iniciais, no escolhe necessariamente o


melhor passo, e sim um movimento aleatrio:
se a situao melhorar, esse movimento ser sempre escolhido
posteriormente;
caso contrrio, associa a esse movimento uma probabilidade
de escolha menor do que 1.

Essa probabilidade depende de dois parmetros, e


decresce exponencialmente com a piora causada pelo
movimento,
eE/T, onde:
E = Valor[prximo-n] - Valor[n-atual]
T = Temperatura

53

Tmpera Simulada: algoritmo


funo Anelamento-Simulado (problema, mapeamento)
retorna uma soluo
variveis locais: atual, prximo, T (temperatura que controla a
probabilidade de passos para trs)

atual Faz-N(Estado-Inicial[problema])
for t 1 to do
T mapeamento[t]
Se T = 0
ento retorna atual
prximo um sucessor de atual escolhido aleatoriamente
E Valor[prximo] - Valor[atual]
Se E > 0
ento atual prximo
seno atual prximo com probabilidade = e -E/T

54

Tmpera Simulada

Para valores de T prximos de zero


a expresso E/T cresce
a expresso e-E/T tende a zero
a probabilidade de aceitar um valor de prximo
menor que corrente tende a zero
o algoritmo tende a aceitar apenas valores de
prximo maiores que corrente

Concluso
com o passar do tempo (diminuio da
temperatura), este algoritmo passa a funcionar
como Subida da Encosta
55

Tmpera Simulada

Implementao (dica)
Gerar nmero aleatrio entre (0,1) e comparar com o valor
da probabilidade
Se nmero sorteado < probabilidade, aceitar movimento para
trs

Anlise
O algoritmo completo
O algoritmo timo se o mapeamento de resfriamento tiver
muitas entradas com variaes suaves
- isto , se o mapeamento diminui T suficientemente
devagar no tempo, o algoritmo vai encontrar um mximo
global timo.
56

57

Heurstica... por toda IA

A noo de heurstica sempre foi alm da busca e de uma


formalizao via funo de um estado
Heurstica
escolha, prioridade, estratgia na busca de uma soluo
razovel onde no h soluo tima ou recurso para
determin-la
No dia a dia: heurstica 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 vis de generalizao (aprendizagem)
...

Referncias

T. Mitchell. Machine Learning. McGraw Hill, New York,


1997.
Stuart Russell and Peter Norvig, Artificial Intelligence A Modern Approach. Prentice Hall, 1995.

58

También podría gustarte