Você está na página 1de 18

Inteligncia Artificial

Mecanismos de Busca

Inteligncia Artificial

Mecanismos de Busca
n O que uma busca ?
Uma busca visa encontrar uma solu
soluo
o para um problema atrav
atravs de um
mecanismo algor
algortmico que procura no espa
espao de solu
solues.
es.
n Como feita essa busca ?
A busca feita em uma rvore (ou grafo) de busca. O espa
espao de busca o
conjunto de solu
solues.
es. Essas solu
solues
es s
so, geralmente, representadas por estados.
Essas solu
solues
es em forma de estados configuram um espa
espao de estados
n O que , ent
ento, um estado ?
O estado uma descri
descrio
o de uma situa
situao
o (solu
(soluo)
o) do dom
domnio ao qual o
mecanismo esta sendo aplicado. Por exemplo, suponha o exemplo de um estado
no dom
domnio do Mundo de blocos: on(a,b)
on(b,c)
ontable(d)
a Estado  ontable(c)
b clear(a)
c d clear(d)
handempty
Inteligncia Artificial

Descrevendo Estados
n Como definir problemas e solu
solues
es como estados ?
n Vamos por exemplos: Place(1,5) Place(6,8)
Dom 5 4 Place(2,4)
Domnio do Jogo-
Jogo-dos-
dos-oito: Place(7,7)
Place(3,*) Place(8,3)
(miniproblemas) 6 1 8
Place(4,6) Place(9,2)
7 3 2 Place(5,1)
n Pode ser por um vetor: [5,4,*,6,1,8,7,3,2]

Dom
Domnio do Caixeiro Viajante (problemas do mundo real)

5
6 Sequncia de Visita das Cidades:
4

2 Vetor = { 1,3,7,2,6,5,4}
1
3

Inteligncia Artificial

Definindo Estados
n Caracter
Caractersticas dos Estados
Negation as Failure
O estado representa apenas o que verdade (TRUE) no mundo.
mundo. O que n
no estiver
representado considerado falso.
falso.

Como representar um estado ?


Aquisi
Aquisio
o de Conhecimento pelo Engenheiro do Conhecimento
n Para cada dom
domnio, o Engenheiro do Conhecimento deve estruturar os
dom
domnios e suas representa
representaes
es

Estrutura de Dados
n Um estado pode ser um vetor de strings (nome dos predicados) Ruim !!!
n Um estado pode ser um vetor de inteiros onde cada inteiro representa
representa um
predicado -->
--> pode ser uma id
idia
Inteligncia Artificial

Estados
n Exemplos de Estruturas de Dados
Vetor de inteiros
n [1,4,6,7,3,2]
n Consulta de um predicado lenta ( percorre todo o vetor)
vetor)
n Determina
Determinaoo do conjunto de predicados r pida ( o pr
prprio vetor)
vetor)
String representativa de conjunto
n 111101100
n Rpida consulta de um predicado (basta verificar a posi
posio
o)
n Determina
Determinao
o do conjunto de predicados lenta (percorrer toda a string)

Tudo isso deve ser definido no momento de


estrutura
estruturao
o da representa
representaoo do conhecimento
n Qual representa
representao
o usar (rede sem
semntica, BD, L
Lgica) ?
n Como implementar tal representa
representao
o em uma Estrutura de Dados ?

Inteligncia Artificial

Espa
Espao de Estados em Grafo e rvore
n Um grafo e seu equivalente em forma de rvore
S Representa o
caminho
S-D
A D

B D A E
A C
4 4
3
B E
G C E B B F
5
S 5
3
4 4 D F B F C E A C G
2 E F
D

G C G F Representa o
caminho
Grafo G
S-D-A-B-E-F-G

rvore
Inteligncia Artificial

rvore de Busca
n Detalhamento de uma rvore
Raiz

Caminho parcial Arco

Pai

N ancestral Filho Filho

Caminho completo - soluo


Folha descendente

Folha
Fator de ramificao: b
Profundidade: d
Meta
Total caminhos: bd

Inteligncia Artificial

Exemplo de rvore de Estados


n Exemplo no Jogo-
Jogo-dos-
dos-oitos
4 5 8
1 6
Operadores 7 2 3
Reversveis up down
right
5 8 4 5 8 4 5 8
4 1 6 1 6 7 1 6
7 2 3 7 2 3 2 3
down right

1 2 3
4 5 6
7 8
Inteligncia Artificial

Avalia
Avaliao
o de um Mecanismo de Busca
n Completude(completeza) - completeness:
a estrat
estratgia sempre encontra uma solu
soluo
o quando existe alguma
n Custo do tempo:
quanto tempo gasta para encontrar uma solu
soluo?
o?
n Custo de mem
memria:
quanta mem
memria necess
necessria para realizar a busca?
n Qualidade/otimalidade (optimality):
a estrat
estratgia encontra a melhor solu
soluo
o quando existem solu
solues
es
diferentes?
n menor custo de caminho
n O que importa em um mecanismo de Busca ?
Definir a estrat
estratgia (ou ordem) de expans
expanso dos n
ns (estados)

Inteligncia Artificial

Buscas Cegas
n As buscas cegas (sem informa
informao)
o) so buscas de expans
expanso de n
ns
gen
genricas sem informa
informaeses espec
especficas do problema, al
alm daquelas
fornecidas sobre a defini
definioo do mesmo (n (no se sabe se um estado
no-objetivo mais promissor do que outro...)
outro...).

n Exemplos (ordens de expans


expanso distintas):
distintas):
Busca em Largura (ou extens
extenso)
Busca em
problemas queProfundidade
no possuem problemas solveis
uma soluo
Busca algortmica
Bidirecional IA
por seres humanos

n Nota de Aula:
n Para exemplificar os algoritmos, iremos usar uma lista de estados:
estados:
{A,B,C,D,E} uma lista com os estados A,B,C,D e E, e com A no inicio da lista
lista
Inteligncia Artificial

Busca em Largura
n Mtodo de Expans
Expanso do N
N:
A partir do N
N inicial:
n Abre todos os n
ns da primeira profundidade
n Abre todos os n
ns da segunda profundidade
n ...
A A A

B C B C
d=1

D G
E F
d=2

FILA => {A}  {B,C}  {C,D,E,F}  {D,E,F,G}


Algoritmo:
Algoritmo Expande o n do inicio da lista, removendo-o e inserindo seus ns
filhos ao final da lista (implementao como uma fila FIFO).
Retorna:
Retorna Estado soluo no inicio da lista ou quando lista={} retorna falha

Inteligncia Artificial

Caracter
Caractersticas da Busca em largura
n Breadth First Search (BFS):
completa: sempre acha uma solu
soluo
o se existir
tima: acha o menor caminho (sempre expande primeiro o n
n mais
raso)
n Nota: Quando os caminhos possuem custos diferentes, a soluo de
menor caminho pode no ser a soluo tima de menor custo.
Fator de Ramifica
Ramificao: o: todos os n
ns gerados a partir de um n
n (b)
Custo de Tempo: com fator de ramifica
ramificao
o = b e a solu
soluo
o estiver no
ento custo = O (bd). EXPONENCIAL !!!
nivel = d, ent
Custo de Mem
Memria: Os n ns que ainda n
no foram expandidos devem
permanecer na fila (mem
(memria)
Inteligncia Artificial

Custo do Busca em Largura (BFS)


n Exemplo:
fator de expans
expanso b = 10
1.000 n
ns gerados por segundo
cada n
n ocupa 100 bytes

Profundidade Ns Tempo Memria


0 1 1 milissegundo 100 bytes
2 111 0.1 segundo 11 quilobytes
4 11111 11 segundos 1 megabytes
6 106 18 minutos 111 megabytes
8 108 31 horas 11 gigabytes
10 1010 129 dias 1 terabyte
12 1012 35 anos 111 terabytes
14 1014 ~3500 anos 11 petabytes

Inteligncia Artificial

Busca em Profundidade
n Mtodo de Expans
Expanso do N
N:
A partir do N
N inicial:
n Expande o primeiro n n de profundidade 1
n Expande o segundo n n de profundidade 2, etc...
n Quando um nn final n
no solu
soluo,
o, o algoritmo volta para expandir os n
ns que
ainda est espao de estados (backtracking)
esto na fronteira do espa
A

B M
d=1

C
H L
d=2

I
G
D

F
K
E J
d=m
Inteligncia Artificial

Implementa
Implementao
o Busca em Profundidade
n PILHA => {A}  {B,M}  {C,H,L,M}  {D,G,H,L,M} 
{E,F,G,H,L,M}  {F,G,H,L,M}  {G,H,L,M}  {H,L,M}  {I,L,M} 
{J,K,L,M}  {K,L,M}  {L,M}  {M} ...

Seta  indica backtracking


Algoritmo:
Algoritmo Expande o n do inicio da lista, removendo-o e inserindo
seus ns filhos no inicio (implementao como uma pilha LIFO).
Retorna:
Retorna Estado soluo no inicio da lista ou quando lista={}
retorna falha

Inteligncia Artificial

Caracter
Caractersticas da Busca em Profundidade
n Depth First Search (DFS):
completa: no. Pois precisa-
precisa-se definir um limite de profundidade m
sen
seno o algoritmo pode ficar paralisado ao descer um caminho muito
longo.
tima: no hh garantia.
Fator de Ramifica
Ramificao: o: no pior caso todos os n ns gerados a partir
de um n
n (b)
Custo de Tempo: no pior caso O (bm).
Custo de Mem
Memria:
n mant
mantm na mem
memria o caminho que estest sendo expandido no
momento, e os nns irm
irmos dos n
ns no caminho (para possibilitar o
backtracking). Isso d
d b.m ns.
n Para problemas com v v rias solu
solues,
es, esta estrat
estratgia pode ser bem
mais r
rpida do que busca em largura.
n Esta estrat
estratgia deve ser evitada quando m>>d ou mesmo quando m n
n o
conhecido.
Inteligncia Artificial

An
Anlise DFS X BFS
n Exemplo:
fator de expans
expanso b = 10
1.000 n
ns gerados por segundo
cada n
n ocupa 100 bytes
Profundidade Ns Tempo Memria
DFS para m=12 Entre 120 Entre 1s e 35 anos 12 Kbytes
12
e 10
12
BFS p/ d = 12 10 35 anos 111 terabytes

Mas o BFS te dar


dar a solu
soluo
o tima e o DFS n
no necessariamente

Inteligncia Artificial

Loopings...
n Quando ocorrem os loopings ?
Quando um estado j j visitado volta a aparecer em uma profundidade
maior na rvore (existe
(existe mais de um caminho at at um mesmo estado...)
estado...).
Isto ocorre principalmente quando h h operadores revers
reversveis,
veis, que
podem voltar para um estado anterior. Ex. Jogo-
Jogo-dos-
dos-oito.
n Como evitar ?
Armazenar os estados j
j visitados
Consequ Memria O (bd). -> Armazena todos os n
Consequncia: Custo de Mem ns
Geralmente implementado em hash tables (evita gastar tempo para
verificar se o estado j
j foi visitado ou n
no -> eficiente).
Inteligncia Artificial

Heur
Heursticas
n H como inserir conhecimento do domdomnio para melhorar o processo
de busca ? Sim. Atrav
Atravs da defini
definio
o de heur
heursticas.

n heurstica ? Informa
O que heur Informao,
o, valor e/ou quantifica
quantificao
o de um estado
quanto sua relev
relevncia ou dist
distncia de outros estados (geralmente o objetivo)

n A heur
heurstica utiliza-
utiliza-se de conhecimento espec
especfico do dom
domnio para ajudar a busca a
determinar qual n n deve ser expandido

n Mtodos de Busca Heur


Heurstica
Best-
Best-First Search (Melhor-
(Melhor-Escolha )
Hill-
Hill-Climbing (Subida da Colina)
Simulated Annealing (T
(Tmpera Simulada)
A*
IDA*
outros

Inteligncia Artificial

Buscas Heur
Heursticas
n Tentam evitar a exploso combinatrial
n Pode levar a solues "razoveis"
n PROBLEMA ?
Como determinar a heurstica adequada para cada problema ?
A heurstica deve mostrar a relevncia ou o custo do n.
5 4 1 2 3
6 1 8 8 4
7 3 2 7 6 5

Estado Inicial Objetivo (meta)


No sabemos a solu
soluo.
o. Pretendemos encontr
encontr-la. Logo, n
no sabemos quantos
movimentos teremos que fazer, que seria a dist
distncia real at
at a meta.
Como achar uma fun
funo
o heur
heurstica que me fale o quanto estou pr
prximo da meta?
Inteligncia Artificial

Criando Heur
Heursticas...

5 4 1 2 3
6 1 8 8 4
7 3 2 7 6 5

Estado Inicial Objetivo (meta)


Heur
Heurstica 1:
1: Nmero de pastilhas que esto fora de lugar: h = 8 (inclui espa
espao)
Heur
Heurstica 2: Nmero de pastilhas no lugar certo:: h = 1 (inclui espa
espao)
Heur
Heurstica 3: Distncia de Manhattan: distncia horizontal + vertical de cada
pastilha para o seu lugar correto: h = 20 (inclui espa
espao)

CUSTO DE UM N
N COM RELA
RELAOO META:
n Custo = | valor heur
heurstico do n
n - valor heur
heurstico da meta |
p/ Heur
Heurstica 1: Custo = |8 - 0| = 8.
P/ Heur
Heurstica 2: Custo = |1 - 9| = |-
|-8| = 8
p/ Heur
Heurstica 3: Custo = |20 - 0| = 20

Inteligncia Artificial

Busca Melhor-
Melhor-Escolha
n Busca gen n de menor custo aparente
genrica onde o n aparente na fronteira do espa
espao
de estados expandido primeiro
n Duas abordagens b
bsicas:
1. Busca Gulosa (Greedy search)
2. Algoritmo A* e suas varia
variaes
es (pr
(prxima aula) Custo em relao ao n meta
n Funcionamento A A A

do Algoritmo:

B (3) C (5) D (1) B (3) C (5) D


A
(6)
A
E (4) F

B C (5) D

B (3) C (5) D
(6)
G (6) E (4) F
(6)
G (6) E F
Inteligncia Artificial

Busca Melhor-
Melhor-Escolha
n Semelhante busca em profundidade com backtracking
n Tenta expandir o nn mais pr
prximo do n
n final com base na estimativa de
custo feita pela fun
funo
o heur
heurstica h.
completa: Sim, desde que, como a DFS, o algoritmo controle o
acesso a estados (n contrrio pode entrar em looping.
(ns) repetidos. Caso contr
tima: no hh garantia.
Fator de Ramifica
Ramificao: o: no pior caso todos os nns gerados a partir
de um n
n (b)
Custo de Tempo: no pior caso O (bd).
Custo de Mem
Memria: no pior caso O (bd).

Inteligncia Artificial

Buscas mais r
rpidas...
n Uma fun
funo
o heur
heurstica, quando muito bem dimensionada, permite o
uso de processos de busca mais velozes.
n Se a heurstica no for boa:
Pode-se tomar uma deciso errada
Fazer o sistema, na pior das hipteses, no encontrar uma soluo

Processos de Busca Rpidos (confiam na heurstica !!):


Subida da Encosta (Hill-Climbing)
Subida da Encosta pelo caminho mais ngreme (Steepest-
Ascent Hill-Climbing)
Subida Forada da Encosta (Enforced Hill-Climbing)
Inteligncia Artificial

Subida da Encosta
n Funcionamento do algoritmo:
A (7) A (7) A (7)

(8) (5)
B C
C (5)

D (4)

n Expande o primeiro n encontrado cuja a funo heurstica melhor


que a do n-pai que o gerou. Ignora os demais ns.
completa: No.
tima: No.
Custo de Tempo: melhor caso: O(d) e no pior caso O (bd).
Custo de Mem
Memria: no se guarda os n
ns. Usa pouca mem
memria

Inteligncia Artificial

Subida Encosta pelo Caminho + ngreme


n Funcionamento do Algoritmo:
A (7) A (7) A (7)

B (8) (5) (6)


C D
C (5)

(4) (3)
E (6)
F G

n Dentro todos os sucessores do n-pai, expande o melhor n cuja a


funo heurstica melhor que a do n-pai. Ignora os demais ns
completa: No.
tima: No.
Custo de Tempo: melhor caso: O(b.d) e no pior caso O (bd).
Custo de Mem
Memria: no se guarda os n
ns. Usa pouca mem
memria
Inteligncia Artificial

Problemas com a Subida da Encosta


n Os algoritmos movem-
movem-se sempre na dire
direo
o que apresenta varia
variao
o
na fun
funo
o heur
heurstica. Ele pode falhar sem encontrar uma solu
soluo.
o.
n Isso pode acarretar em 2 problemas principais:
1. M
Mximos locais
2. Plan
Plancies (plat
(plats)

Melhor heurstica Geral (Meta)

Melhor Ara c/ mesmo


heurstica local valor heurstico

Inteligncia Artificial

Problemas com a Subida da Encosta


n As armadilhas:
 Acontecem pois Subida-pela-Encosta no faz backtracking
 Dependem do estado inicial

n Formas de contornar tais armadilhas :


 Recomear de novo com outro operador
 Aplicar uma juno de mecanismos de busca
(Enforced Hill-Climbing - Subida Forada da Encosta
 Permitir que a busca desa alguns passos da encosta
(Simulated Annealing  prxima aula)
Inteligncia Artificial

Subida For
Forada da Encosta
O algoritmo Subida Forada da Encosta relativamente novo
(1999). Foi inicialmente utilizada no sistema de
planejamento: FF (Fast-Forward) (Hoffmann)

n Tem como objetivo continuar procurando (expandindo) os ns


sucessores do estado corrente, como uma busca em largura, at
encontrar um n que seja melhor que o estado corrente.

A (7) A (7) A (7)


A (7)

(8) (8) (8)


B (8) C
(7) B (8) C
(7) C
D D

F G (6)
E G (6)
(7)
(7)

Inteligncia Artificial

Exerc
Exerccio
n Para a seguinte rvore:
A (9)

B
(8) (8) (7)
C D

(8) (7)
E F (7) (6)
G (8) I
H

(8) (7)
K L (6) (7) (8)
(
) M N
J O

(
) (4)
(
) (5)
P Q R S T
U
n Ache a sequ
sequncia de n
ns: GOAL GOAL
Melhor Escolha (
)
V
Subida da Encosta (Normal, +Ingreme e For
Forada)
Inteligncia Artificial

Resposta Exerc
Exerccio:
n Sequ
Sequncia de Expans
Expanso de N
Ns para:
A (9)
Melhor-
Melhor-Escolha
B
(8) (8) (7)
C D

(8) (7)
E F (7) (6)
G (8) I
H

(8) (7)
K L (6) (7) (9)
(
) M N
J O

(
) (4)
(
) (5)
P Q R S T
U

n Sequ
Sequncia Gerada: GOAL GOAL
(
)
ABCDHIOEFKLQR V

Inteligncia Artificial

Resposta Exerc
Exerccio:
n Sequ
Sequncia de Expans
Expanso de N
Ns para:
A (9)
Subida Encosta
B
(8) (8) (7)
C D

(8) (7)
E F (7) (6)
G (8) I
H

(8) (7)
K L (6) (7) (9)
(
) M N
J O

(
) (4)
(
) (5)
P Q R S T
U

n Sequ
Sequncia Gerada: GOAL GOAL
(
)
ABEFKL falha ! V
Inteligncia Artificial

Resposta Exerc
Exerccio:
n Sequ
Sequncia de Expans
Expanso de N
Ns para:
A (9)
Subida Encosta
caminho + Ingreme B
(8)
C
(8) (7)
D

(8) (7)
E F (7) (6)
G (8) I
H

(8) (7)
K L (6) (7) (9)
(
) M N
J O

(
) (4)
(
) (5)
P Q R S T
U

GOAL GOAL
n Sequ
Sequncia Gerada: (
)
ABCDHIO falha ! V

Inteligncia Artificial

Resposta Exerc
Exerccio:
n Sequ
Sequncia de Expans
Expanso de N
Ns para:
A (9)
Subida For
Forada
B
da Encosta (8)
C
(8)
D
(7)

(8) (7)
E F (7) (6)
G (8) I
H

(8) (7)
K L (6) (7) (8)
(
) M N
J O

(
) (4)
(
) (5)
P Q R S T
U

GOAL GOAL
n Sequ
Sequncia Gerada: (
)
ABEFKLPQR V
Inteligncia Artificial

Bibliografia desta Aula


Para aprofundamento nos assuntos desta aula, segue a
seguinte refer
referncia bibliogr
bibliogrfica

n Rich, E. (Intelig
(Inteligncia Artificial)
Cap
Captulo 2 e parte do 3
n Russel & Norvig (Artificial Intelligence)
Cap
Captulos 3 e parte do 4

n Alguns slides desta aula foram baseados no slides:


n Anna Reali Costa e Geber Ramalho: Tcnicas de Busca Cega, Poli-
Poli-USP e
Cin-
Cin-UFPE.

Você também pode gostar