Universidade Federal do
Paran
Departamento de Informtica
Algoritmos de
Busca Heurstica
(Parte 1)
Aleandre I! Direne
E-mail: alexd@inf.ufpr.br
Web: http://www.inf.ufpr.br/~alexd
Algoritmos de Busca Heurstica (PARTE 1) 2
BIBLIOGRAFIA RECOMENDADA
1- Artificial Intelligence: A odern A!!roac"# $tuart Russell e Peter %or&ig#
$econd Edition' Prentice Hall' 2(()#
2- Programming in Prolog# *illiam +# ,loc-sin and ,#$# ellis"# $!ringer-.erlag'
1/01#
)- 2uil"erme Bittencourt# Intelig3ncia Artificial: +erramentas e Teorias# Terceira
Edi45o' Editora da 6+$,' 2((7 (I$B%: 08-)20-(1)0-2)#
9- Elaine Ric" e :e&in :nig"t' Artificial Intelligence' $econd Edition' c2ra;
Hill' 1//)#
8- Patric- H# *inston' Artificial Intelligence' $econd Edition' Addison-*esle<'
1//)#
PGINAS RECOMENDADAS
"tt!:==;;;#cs#dartmout"#edu=>?rd=Teac"ing=AI=@ectures=$ummaries=searc"#"tml
"tt!:==;;;#decom#ufo!#?r=!rof=guarda=,I,28(=indeA#"tm
"tt!:==aima#cs#?er-ele<#edu=
"tt!:==aima#cs#?er-ele<#edu=ne;c"a!(8#!df
SOFTWARE RECOMENDADOS
http://www.cs.bham.ac.uk/research/poplog/freepoplog.html
http://www.swi-prolog.org
Algoritmos de Busca Heurstica (PARTE 1) )
Algoritmos de Busca
,aractersticas:
1. Algoritmos de Busca so tcnicas de nteligncia Artificial aplicadas a problemas de alta
complexidade terica que no so resolvidos com tcnicas de programao
convencionais, principalmente as de natureza puramente numrica;
2. A "complexidade" de um problema est diretamente relacionada ao tamanho do seu
"Espao de Busca" correspondente.
Hi!Btese $im!lificadoras (Redu45o de Pro?lemas do undo Real):
1. O conhecimento do domnio especfico pode ser representado em Estados de Busca,
formalmente definveis por meio de variveis de memria;
2. O processo de soluo de um problema pode ser reduzido a um Algoritmo de Busca
Heurstica, cujo Espao de Busca formado por transformaes sucessivas de
Estados em uma certa ordem de gerao e percurso.
,onseCD3ncias:
1. Reduo da exploso combinatria de possibilidades de Busca;
2. O trabalho humano se restringe atuao emprica de identificar e formalizar: (a)
representaes de estados; (b) parmetros Heursticos; (c) operaes de
transformaes atmica; (d) combinadores de transformaes que atinjam a soluo
com tempos e tamanhos de memria aceitveis.
EAem!los de $u?-Pro?lemas' Es!a4os e Pro?lemas e Algoritmos de Busca
1. Definio precisa do sub-problema;
2. Anlise do problema;
3. solamento e representao do conhecimento de um Estado de Busca;
4. Escolha das tcnicas "apropriadas" de Busca Heurstica.
Exemplo: Um programa para o jogo de Xadrez entre humanos e maquinas.
(a) (b) ( c ) (d) (e) (f) (g) (h)
(1) X1 Y1 Z1 RE1 RA1 Z1 Y1 X1
(2) o1 o1 o1 o1 o1 o1 o1 o1
(3) ?
(4) ?
(5)
(6)
(7) o2 o2 o2 o2 o2 o2 o2 o2
(8) X2 Y2 Z2 RE2 RA2 Z2 Y2 X2
Algoritmos de Busca Heurstica (PARTE 1) 9
Elementos En&ol&idos no Eogo de FadreG:
1. Estado nicial: (X1,a,1) V (Y1,b,1) V ... V (vazia,d,4) V ... V (X2,h,8)
2. Estado(s) Final(is) = Estado Meta = Estado Soluo: Regras (operaes) e/ou Fatos
(variveis) que definem todas as condies possveis de Soluo/Vitria.
3. Espao de Busca (ou Espao de Soluo de Sub-Problema): Grafos que representam a
plicao sucessiva e cumulativa de operaes atmicas sobre o Estado nicial, at
incluir o Estado Final em seu conjunto de nodos. Por exemplo, se em um
sub-problema sempre so aplicveis duas operaes em 20 movimentos, temos:
2 x 2 x 2 x # # # x 2 = 2
20
= mais de 1 milho.
Em Xadrez, existem aproximadamente 10
120
posies possveis no tabuleiro !!!
4. Regras (Operaes) lcitas de transformao atmica de um estado para outro.
Exemplo de Regra ou Operao de transformao atmica:
REGRA k: SE (Peao_Branco, b,2) &
(vazia,b,3) &
(vazia,b,4)
ENTO
MOVER(Peao_Branco,b,4)
FM-REGRA
5. Funo Heurstica: de reduo da Exploso Combinatria do Espao de Busca: Um
sub-Espao de Busca "relevante" e "processvel" para a estado corrente.
H Iomnio dos Reci!ientes de Jgua
So dados 2 Recipientes:
Recipiente-1 (capacidade 4 litros);
Recipiente-2 (capacidade 3 litros);
Os recipientes no tem marcas de medidas.
Problema: Colocar exatamente 2 litros no recipiente-1.
Elementos formais envolvidos:
1. Representao de um Estado de Busca qualquer: par ordenado de inteiros no
negativos.
2. Estado de Final: (2 , QUALQUER);
3. Espao de Busca: Espao Cartesiano composto pelo conjunto de pares ordenados de
inteiros (x,y) tal que x pertence a {0, 1, 2, 3, 4} e y pertence a {0, 1, 2, 3};
4. Estado nicial: (0 , 0);
Resumo dos passos de uma soluo do sub-problema em foco:
Algoritmos de Busca Heurstica (PARTE 1) 8
Recip - 1
(4 Litros)
Recip - 2
(3 Litros)
Regra
0 0 2
0 3 9
3 0 2
3 3 7
4 2 5
0 2
9
/11
2 0 -
Conjunto possvel de regras (operaes) de transformao atmica:
Regra Estado nicial Condicional de
Regra
Estado Final
1 (x,y) x < 4 (4,y)
2 (x,y) y < 3 (x,3)
3 (x,y) x > 0 (x-d,y)
4 (x,y) y > 0 (x,y-d)
5 (x,y) x > 0 (0,y)
6 (x,y) y > 0 (x,0)
7 (x,y) x+y 4 & y > 0 (4,y-(4-x))
8 (x,y) x+y 3 & x > 0 (x-(3-y),3))
9 (x,y) x+y 4 & y > 0 (x+y,0)
10 (x,y) x+y 3 & x > 0 (0,x+y)
11 (0,2) <VERDADE> (2,0)
12 (2,y) <VERDADE> (0,y)
H Ionnio do Eogo da .el"a
$H@6KLH 1 :
1 2 3
4 5 6
1 2 3 4 5 6 7 8 9
7 8 9
Estado de usca M Espao de usca: !odos os ta"uleiros poss#$eis = %
&
= 1&.'(%
onde: 0 vazio
1 x
2 0
Algoritmos de Busca Heurstica (PARTE 1) 7
1 2 19.683
)lgoritmo de usca:
1. Visualizar o tabuleiro corrente em BASE-3 (valores 0,1,2) e converter para BASE-10;
2. Usar o nmero calculado como ndice de entrada no Espao de Busca;
3. O tabuleiro selecionado representa a prxima jogada plausvel.
*oment+rios: , muito eficiente- por.m h+ $+rias des$antagens:
1. Muita memria para armazenar as combinaes de tabuleiros;
2. Algum deve despender enormes esforos manuais para ORGANZAR o espao de tabuleiros;
3. Espao de tabuleiros pode conter ERROS de criao;
4. Se ampliarmos as dimenses do tabuleiro, o algoritmo no funciona.
$H@6KLH 2 :
1 2 3
4 5 6
1 2 3 4 5 6 7 8 9
7 8 9
Estado de usca: )penas 1 /um0 ta"uleiro 1
= 1 2 3 4 5 6 7 8 9
)lgoritmo de usca:
1. Retorna o nmero do quadrado vencedor se o jogador atual tiver condies de ganhar. Caso
contrrio, retorna o nmero do quadrado para o movimento vitorioso do oponente se esse
tiver a chance de ganhar no prximo movimento. Caso contrrio, retorna 5 se o quadrado
central estiver em branco. Caso contrrio, retorna qualquer quadrado em branco que no
seja de canto;
2. Efetua movimento no quadrado N (parmetro de retorno), ajustando posio para "x" (X) se a
jogada for impar e para "o" (O) se a jogada for par.
*oment+rios: 2o . to eficiente como o primeiro mas tem $antagens:
onde: v vazio
x X
o O
Algoritmos de Busca Heurstica (PARTE 1) 1
1. Requer pouco espao;
2. Fcil de entender a estratgia.
3es$antagens:
1. Parece apenas se defender pois no usa nenhuma ferramenta de nvel ttico para gerir
memria avanada;
2. Tambm no generalizvel para 3 dimenses.
$H@6KLH ) :
Estado de usca:
1. )penas 1 /um0
ta"uleiro.
1 2 3 4 5 6 7 8 9
2. Nmero representando uma estimativa (heurstica) que o tabuleiro tem de levar vitoria.
)lgoritmo de usca /45254)60:
1. Verifique prximas jogadas diretamente atingveis a partir do tabuleiro corrente se a altura
mxima de busca no tiver sido alcanada, caso contrrio, retorne o a estimativa
(heurtica) do tabuleiro corrente;
2. Caso uma se trate de posio de vitria, d a ela a mais alta estimativa possvel e retorne
este valor;
3. Caso contrrio, considere todos os movimentos que o oponente possa fazer em seguida.
Assuma que o oponente far a pior jogada contra a mquina. Ative recursivamente a
expanso de estados;
4. A prxima jogada plausvel o do tabuleiro com a mais alta estimativa.
, ineficiente do ponto de $ista de tempo de pes7uisa pois cria su"8+r$ores de 9ogadas tam".m para o
oponente como forma de plane9amento- mas tem $antagens:
1. mais genrico que os outros;
2. Pode ser usado at para outros jogos, o que no seria possvel com os outros dois algoritmos
vistos.
Princi!ais Algoritmos de Busca Heurstica:
Busca em Grafos OU (Gerar e Testar, Subida de Encosta, Melhor Escolha,
Satisfao de Restries, Anlise ntermediria, outros);
Busca em Grafos E-OU (MNMAX por Corte Alfa-Beta, MNMAX SSS*,
outros que se prestam chamada Busca Adversarista).
Algoritmos de Busca Heurstica (PARTE 1) 0
Busca em Profundidade
3escrio do algoritmo:
Se estado ATUAL o estado soluo (ESTADO-META) ento retorne sucesso;
Caso contrrio, repetir at sucesso (ou "fracasso") :
Gere estado E como SUCESSOR do ATUAL;
Chamar Recursivamente este procedimento utilizando E como se fosse ATUAL;
Se houver sucesso, indicar para retorno Seno, continuar a repetio controlada por (2).
)plicao no exemplo dos recipientes de +gua:
( 0 , 0 )
( 4 , 0 )
( 4 , 3 )
1
2
Busca em Am!litude
3escrio do algoritmo:
Criar uma lista de nodos (LSTA-NODOS) com estado NCAL;
At ser encontrado o estado soluo (ESTADO-META), repetir:
E = Primeiro elemento de LSTA-NODOS;
LSTA-NODO perde seu primeiro elemento;
Repetir para cada REGRA de pr-condio verdadeira quando aplicada a E:
Gerar novo estado;
Se estado gerado ESTADO-META retorne sucesso;
Caso contrrio, acrescente o estado gerado no final de LSTA-NODO.
)plicao no exemplo dos recipientes de +gua:
( 0 , 0 )
( 4 , 0 )
1
( 0 , 3 )
( 4 , 3 )
( 0 , 0 )
( 1 , 3 )
( 4 , 3 )
( 0 , 0 )
( 3 , 0 )
2
2
5
8
1
6
9
Algoritmos de Busca Heurstica (PARTE 1) /
,om!ara45o entre Busca em Profundidade A Am!litude
1. A busca em profundidade requer menos memria pois apenas o estado corrente
armazenado;
2. Se houver qualquer grau de ordenao de estados traduzido na ordem das regras de
transformao atmica, a busca em profundidade pode encontrar a soluo sem
examinar todo o espao de busca. Na busca em amplitude, nenhum estado do nvel
n+1 da rvore de busca visitado antes que todos do nvel n o sejam;
3. A busca em profundidade pode seguir caminhos infrutferos durante longo tempo, ou
mesmo por um tempo infinito, o que no ocorre com a busca em aplitude;
4. Se houver mais de uma soluo, ento a uma soluo *tima* ser encontrada pela
busca em amplitude (busca em amplitude encontra solues mais curtas antes das
mais longas).
ais Pro?lemas ,lNssicos
O pro"lema do *aixeiro :ia9ante /cidades *1- *2- ... - *n0:
C 1 C 2
C 1 C 2
O pro"lema do ;uadrado 4+gico:
6 7 2 Compor 3 Linhas, 3 Colunas e 2 Diagonais;
Com dgitos de 1 a 9;
1 5 9 Cuja soma sempre resulta em 15.
(3 x 3)! = 9! = 362.880 cofiguraes diferentes
8 3 4
O pro"lema dos <adrilhos 3esli=antes.
6 8 7 Anlogo a um problema de ordenao
3 5 1 Existem 40.320 configuraes diferentes
4 2 - Aplicamos alguma estratgia