Sei sulla pagina 1di 69

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

Agente de Resoluo de Problemas (1/2)

O agente reativo simples


Escolhe suas aes com base apenas nas percepes atuais
- no pode pensar no futuro, no sabe aonde vai

4 5 8
1 6
7 2 3

1 2
4 5
7 8

J o agente baseado em objetivo...

sabe, pois segue um objetivo explcito

3
6

Agente de Resoluo de Problemas (2/2)

Dentre as maneiras de implementar um agente baseado em


objetivo existe o chamado Agente de Resoluo de
Problemas

serve para alguns tipos de problemas


requer pouco conhecimento explcito
basicamente BUSCA uma seqncia de aes que
leve a estados desejveis (objetivos)
Elementos que constituem Problema e sua Soluo

Questes

O que um problema e como formul-lo?


Como buscar a soluo do problema?

Problemas e Solues bem


Definidos (1/2)
Um problema em IA definido em termos de 4 componentes:
1) um espao de estados possveis, incluindo um estado inicial
e um estado final (teste de objetivo)
problema 1: dirigir de Natal a Caic
problema 2: jogo de 8-nmeros

inicial

final

4 5 8
1 6
7 2 3

1 2 3
4 5 6
7 8

2) um conjunto de aes (ou operadores) que permitem passar


de um estado a outro
ex1. dirigir de uma cidade a outra
ex2. mover uma pea do jogo de n-nmeros (n-puzzle)

Problemas e Solues bem Definidos (2/2)

Espao de Estados:

conjunto de todos os estados alcanveis a partir do


estado inicial por qualquer seqncia de aes.

Definio do objetivo:

propriedade abstrata
- ex., condio de xeque-mate no Xadrez

conjunto de estados finais do mundo


- ex., estar bem na cidade-destino

Soluo:

caminho (seqncia de aes ou operadores) que


leva do estado inicial a um estado final (objetivo).

Um problema de busca em IA pode ser


definido em termos de...
1. um estado inicial
- Em (Recife)
- Estar (pobre)

2. um ou mais estados finais => definio do objetivo


- Em (Joo Pessoa)
- Estar (rico)

3. Espao de Estados:
- conjunto de todos os estados alcanveis a partir do estado inicial por
qualquer seqncia de aes.
- pode ser representado como uma rvore onde os estados so ns e as
operaes so arcos.

4. Soluo:
- caminho (seqncia de aes ou operadores) que leva do estado inicial
a um estado final (objetivo), passando de um estado para outro

.Ex., dirigir de Recife a Joo Pessoa


- Espao de estados: todas as cidades da regio de Recife a Joo Pessoa
7

Algumas definies

Soluo

caminho (seqncia de aes) que leva do estado


inicial a um estado final (objetivo).
Cuidado! A soluo no o estado final!

Um problema de busca em IA pode ser


definido em termos de...

Um estado inicial e um final

Um conjunto de aes (ou operadores)

que permitem passar de um estado a outro


os estados podem no estar l concretamente.
No caso do problema de dirigir as cidades esto l
No caso de ficar rico no necessariamente.

Um teste de objetivo

Verifica se um dado estado o objetivo


Objetivo => um ou mais estados finais
- propriedade abstrata (em inteno)

- ex., condio de xeque-mate no Xadrez

- conjunto de estados finais do problema (em extenso)


- ex., estar em Joo Pessoa

Um problema de busca em IA pode ser definido em termos


de...

Custo de caminho
Funo que associa um custo a cada caminho possvel
Um caminho uma sequncia de estados conectados
por aes possveis.
Cada ao tem um custo associado

O custo de dirigir de Recife a Abreu e Lima, por exemplo, poderia ser


a distncia entre as duas cidades.
Ou o tempo total que se leva entre as duas cidades, isso pode variar.

Custo de busca
tempo e memria: custo computacional para busca da
soluo.
10

Custo da Busca

Custo total da busca = Custo de Busca + Custo do Caminho

custo de busca (tempo e memria, i.e. custo


computacional) -> busca da soluo
+ custo do caminho -> execuo da soluo

Espao de estados grande

compromisso (conflito) entre determinar


- a melhor soluo em termos de custo do caminho ( uma boa
soluo?) e
- a melhor soluo em termos de custo computacional (
computacionalmente barata?)

11

12

Solucionando o Problema:
formulao, busca e execuo

Formulao do problema e do objetivo (manual)

quais so os estados e as aes a considerar?


qual (e como representar) o objetivo?

Busca (soluo do problema: processo automtico)

processo que gera/analisa seqncias de aes para


alcanar um objetivo
soluo = caminho entre estado inicial e estado final.

Execuo (manual ou automtica)

Executar (passo a passo) a soluo completa


encontrada

Agentes Solucionadores de Problemas


formulao, busca e execuo
funo Agente-Simples-SP(p) retorna uma ao
entrada: p, um dado perceptivo
estado Atualiza-Estado (estado, p)
se s (seqncia de aes) est vazia
ento
o (objetivo) Formula-Objetivo (estado)
problema Formula-Problema (estado, o)
s Busca (problema)
ao Primeira (s, estado)
s Resto (s, estado)
retorna ao

14

Medida de Desempenho na Busca

Desempenho de um algoritmo de busca:

1. O algoritmo encontrou alguma soluo?


2. uma boa soluo?
- custo de caminho (qualidade da soluo)

3. uma soluo computacionalmente barata?


- custo da busca (tempo e memria)

Custo total

custo do caminho + custo de busca

Espao de estados grande:

compromisso (conflito) entre a melhor soluo e a


soluo mais barata

Exemplos de Formulao de problema


Jogo de 8 nmeros

Espao de estados = todas as possveis configuraes


do tabuleiro
Estado inicial = qualquer um dos estados possveis
Teste de Objetivo (estado final) = tabuleiro ordenado,
com branco na posio [3,3]
Aes/operadores = mover peas numricas para
espaos livres (em branco) (esquerda, direita, para
cima e para baixo)
Custo do caminho = nmero de passos da soluo
Custo de busca = depende do computador e da
estratgia de busca utilizada
Prximas aulas
15

rvore de busca para o


Jogo dos 8 nmeros

para cima

4 5 8
1 6
7 2 3
direita

5 8
4 1 6
7 2 3
Para
baixo

4 5 8
1
6
7 2 3

Para
baixo

4 5 8
7 1 6
2 3

direita

1 2 3
4 5 6
7 8

16

Exemplos de formulao de problema

Dirigir de Recife (PE) a Juazeiro do Norte (CE)

Espao de estados = todas as cidades do mapa


alcanveis a partir do estado inicial
Estado inicial = estar em Recife
Teste de Objetivo (j atingimos o objetivo?) = estar
em Juazeiro do Norte
Aes/operadores = dirigir de uma cidade para outra
(se houver estrada entre elas!)
Funo Custo do caminho = nmero de cidades
visitadas, distncia percorrida, tempo de viagem, grau
de divertimento, etc
17

Custo do caminho diferente


=> Soluo diferente

Funo de custo de caminho

(1) distncia entre as cidades


(2) tempo de viagem, etc.

Soluo mais barata:

(1) Camaragibe, Carpina, Patos, Milagres,...


(2) Moreno, Vitria de S. Anto, Caruaru,
Salgueiro,...
apesar de mais longa, pega estradas melhores
e evita as cidades.
18

Recife
Juazeiro do Norte

Recife
Juazeiro do Norte

Exemplo: viajar de Recife a


Juazeiro
Estado inicial =>

Recife
Recife

Camaragibe

Moreno

Olinda

Recife
Camaragibe
Carpina

Goiana

Moreno

Olinda

21

22

Outro Exemplo: Ir de Arad a


Bucharest

23

Exemplo Romnia

Ida para Bucharest:

estados = cada possvel cidade do mapa


estado inicial = Arad
teste de objetivo = estar em Bucarest
operadores = dirigir de uma cidade para outra
custo do caminho = nmero de cidades visitadas,
distncia percorrida, tempo de viagem, grau de
divertimento, etc

Mais um Exemplo...

Aspirador de p

estados = 8 estados possveis;


estado inicial = qualquer estado;
teste de objetivo = estados 7 ou 8
operadores = mover para direita,
mover para esquerda e limpar
custo da soluo = cada passo
tem custo 1, o custo total ser a
soma de passos.

24

25

Espao de Estados Aspirador de P

26

Custo Diferente => Soluo Diferente

Funo de custo de caminho

(1) nmero de cidades visitadas,


(2) distncia entre as cidades,
(3) tempo de viagem, etc.

Soluo mais barata:

(1) Canudos, Belm do S. Francisco, Salgueiro, ...


(2) Canudos, Belm do S. Francisco, Salgueiro, ...
(3) Canudos, Juazeiro, Pretrolina, Cabrob, Salgueiro

27

Importncia da formulao: 8 rainhas

Jogo das 8 Rainhas

dispor 8 rainhas no tabuleiro de forma que no


possam se atacar
- no pode haver mais de uma rainha em uma mesma linha, coluna ou
diagonal

somente o custo da busca conta


- no existe custo de caminho

Existem diferentes estados e operadores possveis

essa escolha pode ter conseqncias boas ou


nefastas na complexidade da busca ou no tamanho
do espao de estados

28

Importncia da formulao: 8 rainhas

Formulao A
estados: qualquer disposio com n (n 8) rainhas
operadores: adicionar uma rainha a qualquer quadrado
64^8 possibilidades: vai at o fim para testar se d certo

Formulao B
estados: disposio com n (n 8) rainhas sem ataque mtuo (teste gradual)
operadores: adicionar uma rainha na coluna vazia mais esquerda em que no
possa ser atacada
melhor (2057 possibilidades), mas pode no haver ao possvel

Formulao C
estados: disposio com 8 rainhas, uma em cada coluna
operadores: mover uma rainha atacada para outra casa na mesma coluna

29

Importncia da formulao: 8 rainhas

Formulao A
estados: qualquer disposio com n (n 8) rainhas
operadores: adicionar uma rainha a qualquer quadrado
64^8 3 x 1014 possibilidades: vai at o fim para testar se d certo

Formulao B
estados: disposio com n (n 8) rainhas sem ataque mtuo (teste gradual)
operadores: adicionar uma rainha na coluna vazia mais esquerda em que no
possa ser atacada
melhor (2057 possibilidades), mas pode no haver ao possvel

Formulao C
estados: disposio com 8 rainhas, uma em cada coluna
operadores: mover uma rainha atacada para outra casa na mesma coluna

30

Importncia da formulao: 8-nmeros

Jogo de 8 nmeros:
estados = cada possvel
configurao do tabuleiro
estado inicial = qualquer um
dos estados possveis
teste de objetivo = ordenado,
com branco na posio [3,3]
operadores = mover branco
(esquerda, direita, para cima e
para baixo)
custo da soluo = nmero de
passos da soluo

4 5 8
1 6
7 2 3

up

right

5 8
4 1 6
7 2 3
down

4 5 8
1
6
7 2 3

right

1 2 3
4 5 6
7 8

down

4 5 8
7 1 6
2 3

31

Algumas Aplicaes

32

Aplicaes de Busca: Toy Problems

Jogo das n rainhas

Jogo dos n nmeros (n-puzzle)

Criptoaritmtica

Torre de Hanoi

Palavras cruzadas

Canibais e missionrios

send
+ more
--------money

33

Aplicaes: Problemas Reais

Clculo de rotas (pathfinding)

rotas em redes de computadores


sistemas de planejamento de viagens
planejamento de rotas de avies
Caixeiro viajante
Jogos de computadores (rotas dos personagens)

Alocao (Scheduling)
Salas de aula
Mquinas industriais (job shop)

Projeto de VLSI
Cell layout
Channel routing

34

Aplicaes: Problemas Reais

Navegao de robs:

generalizao do problema da navegao


robs movem-se em espaos contnuos, com um
conjunto (infinito) de possveis aes e estados
- controlar os movimentos do rob no cho, e de seus braos e pernas
requer espao multi-dimensional

Montagem de objetos complexos por robs:

ordenar a montagem das diversas partes do objeto

etc...

35

Problemas com Informao Parcial

36

Problemas com informao Parcial

At agora s vimos problemas de estado nico

o agente sabe em que estado est e pode


determinar o efeito de cada uma de suas aes
- sabe seu estado depois de uma seqncia qualquer de aes

Soluo: seqncia de aes

Porm existem 3 outros tipos de problemas...

37

Problemas com Informao Parcial

Sensorless or conformant problem


Agente no sabe seu estado inicial (percepo deficiente)
Deve raciocinar sobre os conjuntos de estados
Soluo: seqncia de aes (via busca)

Problema de contingncia
Efeito das aes no-determinstico e/ou mundo parcialmente
observvel => novas percepes depois de ao
- ex. aspirador que suja ao sugar e/ou s percebe sujeira localmente

Soluo: rvore de deciso (via planejamento)

Problema exploratrio (on-line)


Espao de estados desconhecido
- ex. dirigir sem mapa

Soluo.... via aprendizagem por reforo

38

Problemas com Informao Parcial

Estado simples
Incio: 5, Soluo: [dir, suga]

Conformant problem

Percepo deficiente
Incio: {1,2,3,4,5,6,7,8}
Direita => {2,4,6,8}, Sugar => {4,8},...
Soluo: [dir, suga, esq, suga]

Problema de contingncia
Efeito das aes no-determinstico
Incio: [lado esq, sujo] = {1,3}
Soluo? Sugar => {5,7}, Dir => {6,8}, Sugar no 6 => 8 mas sugar no 8
=> 6
Soluo: [sugar, dir, se sujo sugar]
Soluo geral: [dir, se sujo suga, esq, se sujo suga]

39

Buscando Solues
Busca Cega

40

Busca em Espao de Estados

Uma vez o problema bem formulado... o estado final deve


ser buscado
Em outras palavras, deve-se usar um mtodo de busca para
saber a ordem correta de aplicao dos operadores que
lavar do estado inicial ao final
Isto feito por um processo de gerao (de estados
possveis) e teste (para ver se o objetivo est entre eles)
Uma vez a busca terminada com sucesso, s executar a
soluo (= conjunto ordenado de operadores a aplicar)

Busca em Espao de Estados:


Gerao e Teste

41

Fronteira do espao de estados


ns (estados) a serem expandidos no momento.

Algoritmo:
Obs: comea com a fronteira contendo o estado inicial do problema.

1. Selecionar o primeiro n (estado) da fronteira do espao de estados;


- se a fronteira est vazia, o algoritmo termina com falha.
2. Testar se o n um estado final (objetivo):
- se sim, ento retornar n - a busca termina com sucesso.
3. Gerar um novo conjunto de estados pela aplicao dos operadores
ao n selecionado;
4. Inserir os ns gerados na fronteira, de acordo com a estratgia de
busca usada, e voltar para o passo (1).

42

Exemplo: viajar de Jeremoabo a Cajazeiras


estado inicial =>

Jeremoabo

fronteira

Jeremoabo
canudos

Paulo Afonso

Aracaju

fronteira

Jeremoabo
canudos
Petrolina

Paulo Afonso

B. do S. Francisco

Aracaju

fronteira

Busca em Espao de Estados:


Implementao

Espaos de Estados

43

podem ser representados como uma rvore onde os estados


so ns e as operaes so arcos.

Os ns da rvore podem guardar mais informao do que


apenas o estado: estrutura de dados com pelo menos 5
componentes:
1. o estado correspondente
2. o seu n pai
3. o operador aplicado para gerar o n (a partir do pai)
4. a profundidade do n
5. o custo do n (desde a raiz)
6. ns-filhos
7. etc.

44

Busca em Espao de Estados:


implementao
Algoritmo:

Funo-Insere: controla a ordem de insero de ns na fronteira do espao de


estados.
funo Busca-Genrica (problema, Funo-Insere) retorna uma soluo ou falha
fronteira Faz-Fila (Faz-N (Estado-Inicial [problema] ) )
loop do
se fronteira est vazia ento retorna falha
n Remove-Primeiro (fronteira)
se Teste-Trmino [problema] aplicado a Estado [n] tiver
sucesso
ento retorna n
fronteira Funo-Insere (fronteira, Operadores [problema, n])
end

45

Mtodos de Busca

Busca exaustiva (sem informao ou cega)

No sabe qual o melhor n da fronteira a ser


expandido = menor custo de caminho desse n at
um n final (objetivo).

Busca heurstica (com informao)

Estima qual o melhor n da fronteira a ser


expandido com base em
funes heursticas => conhecimento

Busca Cega

Estratgias para determinar a ordem de ramificao dos ns:


1. Busca em largura/extenso
2. Busca de custo uniforme
3. Busca em profundidade
4. Busca com aprofundamento iterativo (retrocesso)

Direo da ramificao:
1. Do estado inicial para um estado final
2. De um estado final para o estado inicial
3. Busca bi-direcional

Critrios de Avaliao das Estratgias de Busca

Completa (Completeza)?

a estratgia sempre encontra uma soluo quando


existe alguma?

tima (Otimizao)?

a estratgia encontra a melhor soluo quando


existem solues diferentes?
- menor custo de caminho

Custo de tempo (Complexidade de Tempo)?

quanto tempo gasta para encontrar uma soluo?

Custo de memria (Complexidade de Espao)?

quanta memria necessria para realizar a busca?

Busca em Largura

Ordem de ramificao dos ns:

1. N raiz
2. Todos os ns de profundidade 1
3. Todos os ns de profundidade 2, etc

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

Busca-Genrica (problema, Insere-no-Fim)

Busca em Largura

Esta estratgia completa

tima ?
Sempre encontra a soluo mais rasa

que nem sempre a soluo de menor custo de


caminho, caso os operadores tenham valores
diferentes
- ex. ir para uma cidade D passando por B e C pode ser mais perto do que
passando s por E

Em outras palavras, tima se custo de caminho cresce com


a profundidade do n

O que ocorre quando todos os operadores tm o


mesmo custo (=1)

Busca em Largura

Def. Fator de ramificao da rvore de busca:


nmero de ns gerados a partir de cada n (b)

Custo de tempo:
se o fator de ramificao do problema = b, e a primeira soluo
para o problema est no nvel d,
ento o nmero mximo de ns gerados at se encontrar a
soluo = 1 + b + b2 + b3 + + bd
custo exponencial = O (bd).

Custo de memria:
problema mais crucial: a fronteira do espao de estados deve
permanecer na memria
logo, busca em largura s d bons resultados quando a
profundidade da rvore de busca pequena.

Busca de Custo Uniforme


(Dijkstras Search)

Estende a busca em largura:


expande o n da fronteira com menor custo de caminho at o
momento
cada operador pode ter um custo associado diferente, medido
pela funo g(n) que d o custo do caminho da origem ao n n

Na busca em largura: g(n) = profundidade (n)


Algoritmo:
funo Busca-de-Custo-Uniforme (problema)
retorna uma soluo ou falha

Busca-Genrica (problema, Insere-Ordem-Crescente)

Busca de Custo Uniforme

Cidades

53

Busca de Custo Uniforme


Fronteira do exemplo anterior

F = {S}
testa se S o estado objetivo, expande-o e guarda seus filhos
A, B e C ordenadamente na fronteira

F = {A, B, C}
testa A, expande-o e guarda seu filho GA ordenadamente
- obs.: o algoritmo de gerao e teste guarda na fronteira todos os ns
gerados, testando se um n o objetivo apenas quando ele retirado da
lista!

F= {B, GA, C}
testa B, expande-o e guarda seu filho GB ordenadamente

F= {GB, GA, C}

testa GB e para!

54

Busca de Custo Uniforme

Esta estratgia completa

tima se

g (sucessor(n)) g (n)
- custo de caminho no mesmo caminho no decresce
- i.e., no tem operadores com custo negativo

caso contrrio, teramos que expandir todo o


espao de estados em busca da melhor
soluo.
- Ex. Seria necessrio expandir tambm o n C do exemplo, pois o prximo
operador poderia ter custo associado = -13, por exemplo, gerando um
caminho mais barato do que atravs de B

Custo de tempo e de memria

teoricamente, igual ao da Busca em Largura

Busca em Profundidade

Ordem de ramificao dos ns:


sempre expande o n no nvel mais profundo da rvore:
1. n raiz
2. primeiro n de profundidade 1
3. primeiro n de profundidade 2, etc.
Quando um n final no soluo, o algoritmo volta para
expandir os ns que ainda esto na fronteira do espao de
estados (backtracking)

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

Busca-Genrica (problema, Insere-no-Comeo)

Busca em Profundidade

Busca em Profundidade

Esta estratgia no completa nem tima


Esta estratgia deve ser evitada quando as rvores geradas so
muito profundas ou geram caminhos infinitos.

Custo de memria:
necessita armazenar apenas b.m ns para um espao de
estados com fator de ramificao b e profundidade m, onde
m pode ser maior que d (profundidade da 1a. soluo).

Custo de tempo:

O(bm), no pior caso.


Para problemas com vrias solues, esta estratgia pode ser
bem mais rpida do que busca em largura.

Busca com Aprofundamento Iterativo

Evita o problema de caminhos muito longos ou infinitos


impondo um limite mximo (l) de profundidade para os
caminhos gerados.

l d, onde l o limite de profundidade e d a


profundidade da primeira soluo do problema

Esta estratgia tenta limites com valores crescentes, partindo


de zero, at encontrar a primeira soluo

fixa profundidade = i, executa busca


se no chegou a um objetivo, recomea busca com
profundidade = i + n (n qualquer)
piora o tempo de busca, porm melhora o custo de
memria!

Busca com Aprofundamento Iterativo

Combina as vantagens de busca em largura com busca em


profundidade.
tima e completa
com n = 1 e operadores com custos iguais

Custo de memria:
necessita armazenar apenas b.d ns para um espao de estados
com fator de ramificao b e limite de profundidade d

Custo de tempo:

O(bd)

Bons resultados quando o espao de estados grande e de


profundidade desconhecida.

Busca com Aprofundamento Iterativo

Busca Aprofundamento Interativo

Busca em Profundidade limitada

Comparando Estratgias de Busca Exaustiva

Critrio

Largura

Custo
Uniforme

Profundidade

Tempo

bd

bd

bm

Aprofundamento
Iterativo
bd

Espao

bd

bd

bm

bd

Otima?

Sim

Sim*

No

Sim

Completa?

Sim

Sim

No

Sim

Evitar Gerao de Estados


Repetidos

Problema geral em Busca


expandir estados presentes em caminhos j explorados

inevitvel quando existe operadores reversveis


ex. encontrar rotas, canibais e missionrios, 8-nmeros, etc.
a rvore de busca potencialmente infinita

Idia
podar (prune) estados repetidos, para gerar apenas a parte
da rvore que corresponde ao grafo do espao de estados
(que finito!)
mesmo quando esta rvore finita, evitar estados repetidos
pode reduzir exponencialmente o custo da busca

Evitar Gerao de Estados


Repetidos

Exemplo:
(m + 1) estados no espao => 2m caminhos na rvore
Espao de estados

rvore de busca

Questes
Como evitar expandir estados presentes em caminhos j
explorados?
Em ordem crescente de eficcia e custo computacional?

Evitando operadores reversveis

Se os operadores so reversveis:
conjunto de predecessores do n = conjunto de
sucessores do n
porm, esses operadores podem gerar rvores
infinitas!

A seguir, 3 solues com diferentes nveis de


eficcia e custo de implementao...

Evitar Estados Repetidos: solues


1. No retornar ao estado pai
2. No retorna a um ancestral
3. No gerar qualquer estado que j tenha sido criado antes
(em qualquer ramo)

requer que todos os estados gerados permaneam na


memria: custo O(bd)
pode ser implementado mais eficientemente com
hash tables
quando encontra n igual tem de escolher o melhor
(menor custo de caminho at ento)

Sensorless: Prob. sem Sensores

Referncias

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


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

69

Potrebbero piacerti anche