Você está na página 1de 21

Algoritmos de Busca Heurstica (PARTE 1) 1

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

Para 4 Cidades temos 3! = 6 Combinaes:


C1 C2 C3 C4
C1 C2 C4 C3
C1 C3 C2 C4

Para 11 cidades temos 10! ( mais de 3.000.000)
Para 25 cidades, s com HEURSTCA
33
45
12
28
15
41
C3 C4
Algoritmos de Busca Heurstica (PARTE 1) 1(
3ependendo da configurao do estado atual /corrente corrente0 :
6 8 7
3 5 1
4 2 -
Nesta configurao, apenas 2 (dois) movimentos so so possveis: deslizar o ladrilho 2 para a direita
OU o 1 para baixo.
6 8 7 6 8 7
3 5 1 3 5 -
4 - 2 4 2 1
Depois de ter deslizado o -2- para a direita, 3 (trs) movimentos adicionais so possveis: deslizar o 2
DE VOLTA para a esquerda, deslizar o -4- para a direita ou deslizar o -5- para baixo.
6 8 7 6 8 7 6 8 7
3 5 1 3 5 1 3 - 1
4 2 - - 4 2 4 5 2
A META encontrar "UMA" seqncia de movimentos que nos permita atingir a configurao
seguinte:
1 2 3
4 5 6
7 8 -
Porm, alguns domnios de problemas no so facilmente redutveis. Exemplos:
Calcular: 200 ! - 200 ! ?
Existe um nmero primo MAOR que 100.000.000 ?
O incndio na ilha.
A partilha de um terreno.
:ida ou morte.
Algoritmos de Busca Heurstica (PARTE 1) 11
6m Iomnio com Pro?lemas cuOas ?uscas !odem n5o ter solu45o
O problema das Torres de altura pr-determinada utilizando blocos de tamanhos variados.
dado um conjunto de nmeros e o PROBLEMA achar um (ou mais) subconjuntos cuja cardinalidade
seja igual a um dado nmero de referencia.
Conjunto Referencia
{1 2 3 4} 8
{1 4 7 9} 3
{2 2 2 2 2 2} 9
{6 5 7 4} 9
{1 3 5 2 8} 18
)l.m da "usca poder ser >eur#stica- alguns fatores de nature=a Epistemol?gica podem ser aplicados ao
algoritmo "ase da "usca de maneira a tentar identificar impossi"ilidade de soluo. Em 7ual7uer passo
na se7@Ancia de soluo de um pro"lema temos:
C (conjunto de nmeros Correntes)
UM ESTADO.
D (conjunto de nmeros Disponveis)
)char uma se7@Ancia de estados 7ue le$e a um pr?ximo estado $+lido- partindo do seguinte
estado inicial:
C: Conjunto Vazio
D: Conjunto Dado
) partir dele- a "usca de$e le$ar a um estado final:
C: Conjunto cuja soma de elementos igual ao Nmero de Referencia
D: Um conjunto qualquer
Diagrama com 2 passos do processo de soluo, a partir do seguinte ESTADO:
C [ 1 3 5 ]
D [ 2 ]
C [ 1 3 5 ]
D [ 2 ]
C [ 1 3 5 2 ]
D [ ]
C [ 1 3 2 ]
D [ 5 ]
C [ 1 3 2 ]
D [ 5 ]
C [ 1 3 2 5 ]
D [ ]
C [ 1 3 ]
D [ 5 2 ]
C [ 1 3 2 ]
D [ 5 ]
C [ 1 3 5 ]
D [ 2 ]
C [ 1 3 ]
D [ 5 2 ]
! e s t a " o ! # $ $
! e s t a " o ! % $ $

Algoritmos de Busca Heurstica (PARTE 1) 12


Algoritmo 2eral de Busca Heurstica (,om?ina45oPHrdena45o)
BunCes 2ecess+riasD!#picas:
Funo-1: eh_estado_final(E) RETORNA <verdadeiro>/<falso>
Funo-2: adjacentes(E) RETORNA [ E1 , E2 , ... , En ]
Funo-3: adjacente(E) RETORNA RETROATVAMENTE Ei [ E1, E2 , ... , En ]
Funo-4: heuristica(E) RETORNA <valor numrico representando estimativa de proximidade do Ef>
3efinio da funo ?usca:
FUNO busca(E_i);
vars E_c, E_d, Caminho, Caminho_Estendido, Lista_Prior;
E_c = E_i;
Caminho = [ ];
Lista_Prior = [ ];
ENQUANTO no eh_estado_final(E_c) faa
PARA_CADA E_d em adjacentes(E_c) faa
SE no pertence_a(E_d, Caminho) ENTO
Caminho_Estendido = [ ^^Caminho ^E_c ^E_d ];
Lista_Prior = insere(Caminho_Estendido, Lista_Prior);
FM-SE;
FM-PARA_CADA;
Lista_Prior UNFCADA_COM [ [ ??Caminho ?E_c ] ??Lista_Prior ];
FM-ENQUANTO;
RETORNA( [ ^^Caminho ^Ec] );
FM-FUNO;
3efinio da funo insere:
FUNO insere(Caminho, Lista_Caminhos);
vars Cabea, Cauda;
SE Lista_Caminhos eh_UNFCVEL_COM [ ?Cabea ??Cauda ] ENTO
SE melhor(Caminho, Cabea) ento
Nova_Lista = [ ^Caminho ^Cabea ^^Cauda ];
SENO
Cauda = insere(Caminho, Cauda);
Nova_Lista = [^Cabea ^^Cauda];
FM-SE
Seno
Nova_Lista = [ ^Caminho ];
FM-Se
RETORNA( Nova_Lista );
FM-FUNO;
H?ser&a45o: O procedimento "adjacentes" retorna uma lista de estados imediatamente atingveis a
partir do estado argumento, de acordo com as operaes atmicas aplicveis a ele
(estado argumento). Note que um ou mais dos estados produzidos j podem existir no
Caminho em expanso
2o pro"lema cl+ssico de ordenao em $etores de E nFmeros- % alteraCes atmicas sempre se
aplicam. Gor exemplo:
adjacentes([3 4 2 1]) RETORNA [ [3 4 1 2] [3 2 4 1] [4 3 2 1] ]
Algoritmos de Busca Heurstica (PARTE 1) 1)
Busca em Profundidade
search([3 4 2 1]);
H*onsidering state num"er 1 Estimate for this state is I 2um"er of untried paths is 0 >istorJ and state isK
[[3 4 2 1]]
H*onsidering state num"er 2 Estimate for this state is ' 2um"er of untried paths is 2 >istorJ and state isK
[[3 4 2 1] [4 3 2 1]]
H*onsidering state num"er % Estimate for this state is I 2um"er of untried paths is % >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1]]
H*onsidering state num"er E Estimate for this state is E 2um"er of untried paths is E >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1]]
H*onsidering state num"er I Estimate for this state is % 2um"er of untried paths is I >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1]]
H*onsidering state num"er ' Estimate for this state is E 2um"er of untried paths is ' >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1] [3 2 4 1]]
H*onsidering state num"er L Estimate for this state is % 2um"er of untried paths is ' >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1] [3 2 4 1] [3 2 1 4]]
H*onsidering state num"er ( Estimate for this state is 2 2um"er of untried paths is L >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1] [3 2 4 1] [3 2 1 4] [2 3 1 4]]
H*onsidering state num"er & Estimate for this state is 1 2um"er of untried paths is L >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1] [3 2 4 1] [3 2 1 4] [2 3 1 4] [2 1 3 4]]
HMolution has "een found after considering & states !he length of the solution is 10 4aximum memorJ re7uirements
Nere & Mearch strategJ Nas depth Estimation method Nas perfect !he solution itself isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1] [3 2 4 1] [3 2 1 4] [2 3 1 4] [2 1 3 4] [1 2 3 4]]
Busca em Am!litude
search([3 4 2 1]);
H*onsidering state num"er 1 Estimate for this state is I 2um"er of untried paths is 0 >istorJ and state isK
[[3 4 2 1]]
H*onsidering state num"er 2 Estimate for this state is E 2um"er of untried paths is 2 >istorJ and state isK
[[3 4 2 1] [3 4 1 2]]
H*onsidering state num"er % Estimate for this state is E 2um"er of untried paths is % >istorJ and state isK
[[3 4 2 1] [3 2 4 1]]
H*onsidering state num"er E Estimate for this state is ' 2um"er of untried paths is E >istorJ and state isK
[[3 4 2 1] [4 3 2 1]]
Algoritmos de Busca Heurstica (PARTE 1) 19
H*onsidering state num"er I Estimate for this state is % 2um"er of untried paths is I >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2]]
H*onsidering state num"er ' Estimate for this state is I 2um"er of untried paths is ' >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [4 3 1 2]]
H*onsidering state num"er L Estimate for this state is % 2um"er of untried paths is L >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [3 2 1 4]]
H*onsidering state num"er ( Estimate for this state is % 2um"er of untried paths is ( >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1]]
H*onsidering state num"er & Estimate for this state is I 2um"er of untried paths is & >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 3 1 2]]
H*onsidering state num"er 10 Estimate for this state is I 2um"er of untried paths is 10 >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1]]
H*onsidering state num"er 11 Estimate for this state is 2 2um"er of untried paths is 11 >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4]]
# # # O45!53)M )GRO654)3)4E2!E 200 <52>)M 3E !E2!)!5:)M # # #
H*onsidering state num"er E% Estimate for this state is % 2um"er of untried paths is %& >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 4 1 3]]
H*onsidering state num"er EE Estimate for this state is % 2um"er of untried paths is E0 >istorJ and state isK
[[3 4 2 1] [4 3 2 1] [4 2 3 1] [2 4 3 1] [2 3 4 1]]
H*onsidering state num"er EI Estimate for this state is E 2um"er of untried paths is E1 >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4] [3 2 1 4] [3 2 4 1]]
H*onsidering state num"er E' Estimate for this state is 2 2um"er of untried paths is E1 >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4] [3 2 1 4] [2 3 1 4]]
H*onsidering state num"er EL Estimate for this state is 2 2um"er of untried paths is E2 >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4] [1 3 2 4] [1 3 4 2]]
HMolution has "een found after considering EL states !he length of the solution is ' 4aximum memorJ re7uirements
Nere E% Mearch strategJ Nas "readth Estimation method Nas perfect !he solution itself isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4] [1 3 2 4] [1 2 3 4]]
Busca 2ulosa (2reed<)
search([3 4 2 1]);
H*onsidering state num"er 1 Estimate for this state is I 2um"er of untried paths is 0 >istorJ and state isK
[[3 4 2 1]]
H*onsidering state num"er 2 Estimate for this state is E 2um"er of untried paths is 2 >istorJ and state isK
[[3 4 2 1] [3 2 4 1]]
Algoritmos de Busca Heurstica (PARTE 1) 18
H*onsidering state num"er % Estimate for this state is % 2um"er of untried paths is % >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1]]
H*onsidering state num"er E Estimate for this state is 2 2um"er of untried paths is E >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4]]
H*onsidering state num"er I Estimate for this state is 1 2um"er of untried paths is I >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4] [2 1 3 4]]
HMolution has "een found after considering I states !he length of the solution is ' 4aximum memorJ re7uirements
Nere L Mearch strategJ Nas "est Estimation method Nas perfect !he solution itself isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4] [2 1 3 4] [1 2 3 4]]
Busca AQ
search([3 4 2 1]);
H*onsidering state num"er 1 Estimate for this state is I 2um"er of untried paths is 0 >istorJ and state isK
[[3 4 2 1]]
H*onsidering state num"er 2 Estimate for this state is E 2um"er of untried paths is 2 >istorJ and state isK
[[3 4 2 1] [3 4 1 2]]
H*onsidering state num"er % Estimate for this state is E 2um"er of untried paths is % >istorJ and state isK
[[3 4 2 1] [3 2 4 1]]
H*onsidering state num"er E Estimate for this state is % 2um"er of untried paths is E >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2]]
H*onsidering state num"er I Estimate for this state is % 2um"er of untried paths is I >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [3 2 1 4]]
H*onsidering state num"er ' Estimate for this state is % 2um"er of untried paths is ' >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1]]
H*onsidering state num"er L Estimate for this state is 2 2um"er of untried paths is L >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4]]
H*onsidering state num"er ( Estimate for this state is 2 2um"er of untried paths is ( >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [1 3 4 2]]
H*onsidering state num"er & Estimate for this state is 2 2um"er of untried paths is & >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [3 2 1 4] [3 1 2 4]]
H*onsidering state num"er 10 Estimate for this state is 2 2um"er of untried paths is 10 >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [3 2 1 4] [2 3 1 4]]
H*onsidering state num"er 11 Estimate for this state is 2 2um"er of untried paths is 11 >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4]]
H*onsidering state num"er 12 Estimate for this state is 1 2um"er of untried paths is 12 >istorJ and state isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4] [1 3 2 4]]
H*onsidering state num"er 1% Estimate for this state is 1 2um"er of untried paths is 1% >istorJ and state isK
Algoritmos de Busca Heurstica (PARTE 1) 17
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [1 3 4 2] [1 3 2 4]]
H*onsidering state num"er 1E Estimate for this state is 1 2um"er of untried paths is 1E >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [3 2 1 4] [3 1 2 4] [1 3 2 4]]
H*onsidering state num"er 1I Estimate for this state is 1 2um"er of untried paths is 1I >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [3 2 1 4] [2 3 1 4] [2 1 3 4]]
H*onsidering state num"er 1' Estimate for this state is 1 2um"er of untried paths is 1' >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4] [2 1 3 4]]
HMolution has "een found after considering 1' states !he length of the solution is ' 4aximum memorJ re7uirements
Nere 1( Mearch strategJ Nas astar Estimation method Nas perfect !he solution itself isK
[[3 4 2 1] [3 4 1 2] [3 1 4 2] [3 1 2 4] [1 3 2 4] [1 2 3 4]]
Busca de ,usto 6niforme
search([3 4 2 1]);
H*onsidering state num"er 1 Estimate for this state is I 2um"er of untried paths is 0 >istorJ and state isK
[[3 4 2 1]]
H*onsidering state num"er 2 Estimate for this state is E 2um"er of untried paths is 2 >istorJ and state isK
[[3 4 2 1] [3 2 4 1]]
H*onsidering state num"er % Estimate for this state is % 2um"er of untried paths is % >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1]]
H*onsidering state num"er E Estimate for this state is 2 2um"er of untried paths is E >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4]]
H*onsidering state num"er I Estimate for this state is 1 2um"er of untried paths is I >istorJ and state isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4] [2 1 3 4]]
HMolution has "een found after considering I states !he length of the solution is ' 4aximum memorJ re7uirements
Nere L Mearch strategJ Nas hill Estimation method Nas perfect !he solution itself isK
[[3 4 2 1] [3 2 4 1] [2 3 4 1] [2 3 1 4] [2 1 3 4] [1 2 3 4]]
Algoritmos de Busca Heurstica (PARTE 1) 11
H undo de Blocos
)ME 3E REOR)M:
[[pegar ?X da mesa]
[[braco_vazio] [topo_vazio ?X] [na_mesa ?X]]
[[braco_vazio] [na_mesa ?X]]
[[segurando ?X]]]
[[colocar ?X sobre mesa]
[[segurando ?X]]
[[segurando ?X]]
[[na_mesa ?X] [braco_vazio]]]
[[tirar ?X de ?Y]
[[braco_vazio] [?X sobre ?Y] [topo_vazio ?X]]
[[braco_vazio] [?X sobre ?Y]]
[[segurando ?X] [topo_vazio ?Y]]]
[[apoiar ?X sobre ?Y]
[[segurando ?X] [topo_vazio ?Y]]
[[segurando ?X] [topo_vazio ?Y]]
[[braco_vazio] [?X sobre ?Y]]]
Cada regra composta de:
1. NOME da AO da regra;
2. PRECONDES da AO da regra (verificadas contra a BASE DE FATOS);
3. ASSERTVAS ajustadas como FALSAS pela AO da regra (na BASE DE FATOS);
4. ASSERTVAS ajustadas como VERDADE pela AO da regra (na BASE DE FATOS).
)ME 3E B)!OM:
b 1 b 2 b 3 b & b 5
[ [na_mesa b1]
[na_mesa b2]
[na_mesa b3]
[na_mesa b4]
[na_mesa b5]
[topo_vazio b1]
[topo_vazio b2]
[topo_vazio b3]
[topo_vazio b4]
[topo_vazio b5]
[braco_vazio] ]
Algoritmos de Busca Heurstica (PARTE 1) 10
,om!ara45o AQ A AnNlise IntermediNria
)ME 3E B)!OM /EM!)3O 525*5)<0: ) mesma acima.
EM!)3O 4E!):
b 1 b 2 b 3
b &
b 5
)ME 3E B)!OM 3O EM!)3O 4E!):
[ [na_mesa b1] [na_mesa b2] [na_mesa b3] [na_mesa b5] [topo_vazio b1]
[topo_vazio b2] [topo_vazio b3] [topo_vazio b4] [topo_vazio b5] [segurando b4] ]

Algoritmo AQ
[SEGURANDO B4]
pegar b1 da mesa
pegar b2 da mesa
pegar b3 da mesa
PEGAR B4 DA MESA
pegar b5 da mesa
COMPLETE PLAN S:
[pegar b4 da mesa]
Analise IntermediNria
achieve [segurando b4]
reduce [segurando b4]
perform [pegar b4 da mesa]
COMPLETE PLAN S:
[pegar b4 da mesa]
Em outra situa45o
Algoritmos de Busca Heurstica (PARTE 1) 1/
)ME 3E B)!OM 3O EM!)3O 525*5)<: ) mesma anterior.
EM!)3O 4E!):
b1
b2
b3
b&
b5
)ME 3E B)!OM 3O EM!)3O 4E!):
[ [b1 sobre b2] [b2 sobre b3] [b3 sobre b4] [b4 sobre b5] [na_mesa b5] [topo_vazio b1]
[braco_vazio] ]
AnNlise IntermediNria
achieve [b1 sobre b2] [b2 sobre b3] [b3 sobre b4] [b4 sobre b5]
reduce [b4 sobre b5]
achieve [segurando b4] [topo_vazio b5]
reduce [segurando b4]
perform [pegar b4 da mesa]
perform [apoiar b4 sobre b5]
reduce [b3 sobre b4]
achieve [segurando b3] [topo_vazio b4]
reduce [segurando b3]
perform [pegar b3 da mesa]
perform [apoiar b3 sobre b4]
reduce [b2 sobre b3]
achieve [segurando b2] [topo_vazio b3]
reduce [segurando b2]
perform [pegar b2 da mesa]
perform [apoiar b2 sobre b3]
reduce [b1 sobre b2]
achieve [segurando b1] [topo_vazio b2]
reduce [segurando b1]
perform [pegar b1 da mesa]
perform [apoiar b1 sobre b2]
COMPLETE PLAN S:
[pegar b4 da mesa]
[apoiar b4 sobre b5]
[pegar b3 da mesa]
[apoiar b3 sobre b4]
[pegar b2 da mesa]
[apoiar b2 sobre b3]
[pegar b1 da mesa]
[apoiar b1 sobre b2]
Algoritmo AQ
[B1 SOBRE B2] [B2 SOBRE B3] [B3 SOBRE B4] [B4 SOBRE B5]
Algoritmos de Busca Heurstica (PARTE 1) 2(
pegar b1 da mesa
apoiar b1 sobre b2
pegar b3 da mesa
pegar b4 da mesa
pegar b5 da mesa
apoiar b1 sobre b3
apoiar b1 sobre b4
apoiar b1 sobre b5
pegar b2 da mesa
apoiar b2 sobre b1
apoiar b2 sobre b3
pegar b1 da mesa
pegar b4 da mesa
pegar b5 da mesa
apoiar b2 sobre b4
apoiar b2 sobre b5
pegar b3 da mesa
apoiar b3 sobre b1
apoiar b3 sobre b2
apoiar b3 sobre b4
pegar b1 da mesa
pegar b2 da mesa
pegar b5 da mesa
apoiar b3 sobre b5
PEGAR B4 DA MESA
apoiar b4 sobre b1
apoiar b4 sobre b2
apoiar b4 sobre b3
APOAR B4 SOBRE B5
pegar b1 da mesa
apoiar b1 sobre b2
pegar b3 da mesa
tirar b4 de b5
apoiar b1 sobre b3
apoiar b1 sobre b4
pegar b2 da mesa
apoiar b2 sobre b1
apoiar b2 sobre b3
pegar b1 da mesa
tirar b4 de b5 COMPLETE PLAN S:
apoiar b2 sobre b4 [pegar b4 da mesa]
PEGAR B3 DA MESA [apoiar b4 sobre b5]
apoiar b3 sobre b1 [pegar b3 da mesa]
apoiar b3 sobre b2 [apoiar b3 sobre b4]
APOAR B3 SOBRE B4 [pegar b2 da mesa]
pegar b1 da mesa [apoiar b2 sobre b3]
apoiar b1 sobre b2 [pegar b1 da mesa]
tirar b3 de b4 [apoiar b1 sobre b2]
apoiar b1 sobre b3
PEGAR B2 DA MESA
apoiar b2 sobre b1
APOAR B2 SOBRE B3
PEGAR B1 DA MESA
APOAR B1 SOBRE B2
pegar b5 da mesa
Em outra situa45o
)ME 3E B)!OM 3O EM!)3O 525*5)<:
[ [na_mesa b1] [b2 sobre b1] [topo_vazio b2] [segurando b3] [topo_vazio b3] [na_mesa b4] [topo_vazio
b4]
Algoritmos de Busca Heurstica (PARTE 1) 21
[na_mesa b5] [topo_vazio b5] ]
EM!)3O 525*5)<:
b1
b2
b3
b& b5
)ME 3E B)!OM 3O EM!)3O 4E!): ) mesma anterior.
Algoritmo AQ
COMPLETE PLAN S:
[colocar b3 sobre mesa]
[pegar b4 da mesa]
[apoiar b4 sobre b5]
[pegar b3 da mesa]
[apoiar b3 sobre b4]
[tirar b2 de b1]
[apoiar b2 sobre b3]
[pegar b1 da mesa]
[apoiar b1 sobre b2]
Analise IntermediNria
COMPLETE PLAN S:
[colocar b3 sobre mesa]
[tirar b2 de b1]
[colocar b2 sobre mesa]
[pegar b1 da mesa]
[apoiar b1 sobre b2]
[tirar b1 de b2]
[colocar b1 sobre mesa]
[pegar b2 da mesa]
[apoiar b2 sobre b3]
[tirar b2 de b3]
[colocar b2 sobre mesa]
[pegar b3 da mesa]
[apoiar b3 sobre b4]
[tirar b3 de b4]
[colocar b3 sobre mesa]
[pegar b4 da mesa]
[apoiar b4 sobre b5]
[pegar b3 da mesa]
[apoiar b3 sobre b4]
[pegar b2 da mesa]
[apoiar b2 sobre b3]
[pegar b1 da mesa]
[apoiar b1 sobre b2]
b1
b2
b3
b4 b

Você também pode gostar