Você está na página 1de 55

Agentes que Fazem Busca

Prof. Srgio R. P. da Silva Profa. Josiane M. P. Ferreira

Texto base: Stuart Russel e Peter Norving - Inteligncia Artificial cap. 3 David Poole, Alan Mackworth e Randy Goebel - Computational Intelligence A logical approach cap. 4
1

Agentes que resolvem problemas

Agentes inteligentes devem agir de forma que o ambiente passe por um sequncia de estados que maximizam a sua medida de desempenho. Esta descrio muito geral e difcil de traduzir em uma implementao de sucesso para um agente. Esta tarefa pode ser simplificada se o agente tiver um objetivo.

Tarefas para a resoluo de problemas

Passos:

Formulao do OBJETIVO Formulao do PROBLEMA


Decidir quais aes e estados considerar

Busca
Dada uma sequncias de aes, qual a melhor?

Execuo

Formulao Busca Execuo


3

Estrutura bsica de um agente resolvedor de problemas


Funo agente-resoluo-problemas-simples(percepo) retorna ao entrada: percepo, uma percepo var estticas: seq, uma seqncia de aes, inicialmente vazia estado, uma descrio do estado atual do mundo objetivo, um objetivo, inicialmente nulo problema, uma formulao de problema estado ATUALIZAR-ESTADO(estado, percepo) Se seq est vazia ento faa objetivo problema FORMULAR-OBJETIVO (estado) FORMULAR-PROBLEMA (estado,objetivo)

seq BUSCA(problema) ao PRIMEIRO(seq) seq RESTO(seq) retornar aco


4

Problemas de representao de conhecimento

O que existe em um estado?

As manchas solares so relevantes para predizer o valor das aes no mercado? A cor da camisa de um jogador de xadrez relevante na escolha da prxima jogada?

Em que nvel de abstrao ou detalhe deve-se descrever o mundo.

Um nvel muito fino far perder a viso floresta pelas das rvores. Um nvel muito alto e perderemos detalhes crticos para resolver o problema.

O nmero de estados depende da representao e do nvel de abstrao escolhidos.

Problemas bem definidos e solues

Um problema de busca definido por:

Estado inicial, o estado em que o agente comea Uma descrio da aes possveis (Funo sucessor), uma forma de gerar potenciais solues Teste de objetivo, que determina se um dado estado ou no um estado objetivo Custo de um caminho, uma funo que atribui uma medida de custo a um determinado caminho.

Espao de Estados

O estado inicial e a funo sucessor definem implicitamente o espao de estados o conjunto de todos os estados acessveis a partir do estado inicial Forma um grafo (nem sempre explcito) em que os ns so estados e os arcos so as aes Um caminho no espao de estados uma seqncia de estados conectados por uma seqncia de aes

Tipo de problemas (1)

Problemas com um nico estado:

Quando possvel calcular exatamente que estados estaremos aps uma seqncia de aes.

Problemas com mltiplos estados:

Quando sabemos os efeitos das aes mas temos acesso limitado ao estado que encontra-se o ambiente.

Problemas de contingncia:

As aes realizadas pelo agente podem resultar em efeitos no esperados (no determinstico), no h como fazer uma rvore que garanta o resultado.

Problemas de explorao:

Quando o agente no tem informaes sobre o efeitos de suas aes, tem apenas do que foi aprendido anteriormente pela explorao do problema.
8

Tipo de problemas (2)

Problemas de estado nico


O agente sabe em que estado est. O agente sabe o que cada uma das aes fazem. O agente calcular exatamente o que fazer.

Problemas de mltiplos estados

O agente sabe o que cada uma das aes fazem.

Problemas de contingncia

O agente deve usar os sensores enquanto age. A soluo uma rvore de aes ou uma poltica. s vezes pode ser vivel o entrelaamento (agir antes de buscar).

Problemas de explorao

O espao de estados desconhecido.


9

Exemplo

Estado nico

Incio no estado 5

Mltiplos estados

Incio em
{1, 2, 3, 4, 5, 6, 7, 8)

Ao Direita
{2, 4, 6, 8}

Contingncia

Ao Aspirar
Pode sujar um carpete limpo

Sensoriamento
Local Sujo ou no

10

Espao de estados em problemas de estado nico

11

Espao de estado em problemas de mltiplos estados

12

Exemplos de problemas

Miniproblemas

Se destinam a ilustrar ou exercitar diversos mtodos de resoluo de problemas Podem ter uma descrio concisa e exata Podem ser usados por diversos buscadores, para se comparar o desempenho dos algoritmos

13

Mundo do aspirador de p

Estados possveis: Os 8 ao lado Estado inicial: Um dos 8 estados Funo sucessor: Gera os estados vlidos que resultam da tentativa de executar as trs aes possveis (esq, dir, asp) Teste de objetivo: Verifica se todos os quadrados esto limpos Custo do caminho: Cada passo custa 1 e o custo do caminho o nmero de passos do caminho Um ambiente com n posies tem n2n estados
14

O problema de quebra-cabea
2 1 7

8 6

3 4 5 3 6

1 4 7

2 5 8

Estados: Matriz 3x3 com a especificao da posio de cada smbolo de 1-8 e o branco Estado Inicial: qualquer um estados especificados acima Funo sucessor: gera os estados vlidos resultantes das quatro aes mover o espao vazio para dir, esq, cima, baixo Teste de objetivo: verifica se o estado corresponde ao estado objetivo Custo do caminho: Nmero de passos do caminho (custo 1 por passo)
15

O problema das 8 rainhas

Estados: Qualquer arranjo de 0 a 8 rainhas no tabuleiro Estado inicial: nenhuma rainha no tabuleiro Funo sucessor: Colocar uma rainha em uma casa Teste de Objetivo: 8 rainhas esto no tabuleiro. Nenhuma est sendo atacada. Custo do Caminho: Zero 3x1014 possveis seqncias a serem investigadas

16

O problema das 8 rainhas

Estados: n rainhas (n de 0 a 8) no tabuleiro, uma por coluna nas n colunas mais a esquerda, sem ataques Funo sucessor: Colocar uma rainha em uma casa cuja coluna seja a primeira esquerda que no esteja ameaada por outra rainha 2057 possveis seqncias a serem investigadas A formulao do problema FUNDAMENTAL!!!

17

Cripto-aritmtica

Estados: Algumas letras trocadas por dgitos Estado inicial: nenhum nmero atribudo a uma letra Funo sucessor: Trocar todas as ocorrncias de uma letra por um dgito que ainda no esteja sendo usado Teste de Objetivo: Somente dgitos e a soma est correta Custo do Caminho: Zero. Todas as solues so igualmente vlidas FORTY + TEN + TEN ----SIXTY 29786 + 850 + 850 ----31486

F = 2, O = 9, R = 7

18

Missionrios e Canibais

Estados:

uma seqncia de trs nmeros representando


<missionrios, canibais, barco>

Estado inicial: <3,3,1> Funo sucessor:


Levar 1 missionrio e 1 canibal, Levar 2 missionrios, Levar 2 canibais, Levar 1 missionrio, Levar 1 canibal

Teste de Objetivo: verificar se o estado igual a <0, 0, 0> (estado objetivo) Custo do Caminho: nmero de passagens pelo rio
19

Busca [1]

1 3 6 4 7

2 5 8

1 8 7

3 4

Geralmente no temos um algoritmo para resolver um problema, mas somente uma especificao do que uma soluo
Temos que buscar pela soluo

Busca uma enumerao de um conjunto de potenciais solues parciais para um problema, de tal forma que se possa verificar se elas so solues de verdade

Para realizarmos uma busca precisamos de:


Uma definio de uma soluo potencial. Um mtodo de gerar potenciais solues, de preferncia de uma forma inteligente. Uma forma de verificar se uma soluo potencial de fato uma 20 soluo.

Busca em Grafos

Existem muitas formas de representar um problema como um grafo, mas duas formas merecem ateno:

Grafo do Espao de Estados: no qual um n representa um Estados estado do mundo e um arco representa uma mudana de um estado para outro no mundo.
Ex: problema das 8 rainhas mudar uma rainha de linha gera um novo estado

Grafo do Espao de Problemas: no qual um n representa um Problemas problema a ser resolvido e um arco representa decomposies alternativas do problemas.
Ex: problema das 8 rainhas colocar uma rainha na n-sima coluna sem gerar conflito com as outras que j esto no tabuleiro gera um novo estado
21

Busca em Grafos [1]

Um grafo consiste de um conjunto de ns N e um conjunto de pares ordenados de ns A, denominados de arcos (ou arestas) O n n2 um vizinho do n n1 se existe um arco de n1 para n2. Isto , se <n1, n2> A Um caminho uma seqncia de ns <n0, n1, . . . , nk> tais que <ni1,.ni> A Dado um conjunto de ns iniciais e um conjunto de ns objetivos, uma soluo um caminho de um n inicial a um objetivos n objetivo
22

Estados X Ns

O estado uma representao de uma configurao fsica. O n uma estrutura de dados. Estados no tm pais, filhos, profundidade ou custo;

23

Busca em Grafos [2]

Algoritmo de busca genrico:

Dado um grafo, um conjunto de ns iniciais e de ns objetivos, explore os caminhos de forma incremental a partir dos ns iniciais.

Mantenha um fronteira de caminhos a partir do n inicial que j tenha sido explorada. Com o avano da busca, a fronteira expande sobre os ns no explorados at que um n objetivo encontrado A forma como a fronteira expandida define a estratgia de busca
24

Resoluo de problemas pela busca em grafos

25

Estratgias de busca

A funo de explorao (ou funo sucessor) cria novos ns usando os operadores do problema para criar os estados correspondentes. Direo da expanso: 1. Do estado inicial para um estado final (busca dirigida por dados ou encadeamento para frente). 2. De um estado final para o estado inicial (busca baseada em objetivo ou encadeamento para trs). 3. Busca bi-direcional ( realizada nas duas direes ao mesmo tempo).
26

Encadeamento para frente

27

Encadeamento para trs

28

Busca Bidirecional

Busca em duas direes:


Para frente, a partir do n inicial, e Para trs, a partir do n final (objetivo)

A busca pra quando os dois processos geram um mesmo estado intermedirio. possvel utilizar estratgias diferentes em cada direo da busca.

29

Algoritmo Geral para Busca em Grafos


entrada: um grafo, um conjunto de ns inicias, um procedimento booleano objetivo(n) que testa se n um n objetivo. fronteira := {s : s um n inicial}; enquanto fronteira no for vazia: selecione e remova o caminho <n0, . . . , nk> da fronteira; se objetivo(nk)

retorne <n0, . . . , nk>;


para cada vizinho n de nk

adicione <n0, . . . , nk, n> a fronteira;


fim_enquanto.
30

Algoritmo de Busca em Grafos: pressuposies

Assumimos que depois que o algoritmo de busca retornou uma resposta, ele pode ser questionado por mais respostas e o procedimento continuar. O n que selecionado da fronteira em cada estgio faz parte da definio da estratgia de busca. Os vizinhos definem o grafo. O procedimento objetivo(n) define o que uma soluo.

31

Critrios de avaliao das estratgias de busca [1]

Completude (completeza):

A estratgia sempre encontra uma soluo quando existe alguma? Quanto tempo gasta para encontrar uma soluo? Normalmente medida em termos do nmero de ns expandidos. Quanta memria necessria para realizar a busca? Normalmente medida pelo tamanho mximo que a lista de ns abertos (fronteira) assume durante a busca. A estratgia encontra a melhor soluo quando existem solues diferentes?
Menor custo de caminho

Custo do tempo:

Custo de memria:

Qualidade/otimicidade:

32

Critrios de avaliao das estratgias de busca [2]

O fator de ramificao de um n o seu nmero de vizinhos. As complexidades de tempo e espao so medidas em termos de:

b : Fator de ramificao mximo da rvore de busca. d : Profundidade da soluo de menor custo. m : Profundidade mxima do espao de estados (pode ser ).

33

Busca Desinformada

Busca em profundidade Busca em largura Busca pelo custo mnimo Busca Gulosa

34

Busca em Profundidade

A busca em profundidade trata a fronteira como uma pilha. pilha Ela sempre seleciona um dos ltimos elementos adicionados a fronteira. Se a fronteira [p1, p2, . . .]

p1 selecionado. Os caminhos que estendem p1 so adicionados na frente da pilha (antes de p2). p2 somente selecionado quando todos os caminhos partindo de p1 j foram explorados.
35

Busca em profundidade - Exemplo


Considere o seguinte problema:
Estado inicial: A Funo sucessor:
O estado A gera os estados B e C O estado B gera os estados D e E O estado C gera os estados F e G O estado D gera os estados H e I O estado E gera os estados J e K O estado F gera os estados L e M O estado G gera os estados N e O Os estados H, I, J, K, L, M, N e O no geram sucessores

Estado objetivo: M Custo do caminho: zero

Representao de cada n da fronteira:


no(ltimo estado, [caminho], custo)

Fronteira inicial: [no(A, [A], 0)]


36

Exemplo onde M o n objetivo


Fronteira inicial: [no(A, [A], 0)] O estado A no o objetivo. Fronteira aps expandir o estado A: [no(B, [A, B], 0), no(C, [A, C], 0)] O estado B no o objetivo. Fronteira aps expandir o estado B: [no(D, [A, B, D], 0), no(E, [A, B, E], 0), no(C, [A, C], 0)] O estado D no o objetivo. Fronteira aps expandir o estado D: [no(H, [A, B, D, H], 0), no(I, [A, B, D, I], 0), no(E, [A, B, E], 0), no(C, [A, C], 0)] O estado H no o objetivo. Fronteira aps expandir o estado H (sem filhos): [no(I, [A, B, D, I], 0), no(E, [A, B, E], 0), no(C, [A, C], 0)] O estado I no o objetivo. Fronteira aps expandir o estado I (sem filhos): [no(E, [A, B, E], 0), no(C, [A, C], 0)] O estado E no o objetivo. Fronteira aps expandir o estado E: [no(J, [A, B, E, J], 0), no(K, [A, B, E, K], 0), no(C, [A, C], 0)] O estado J no o objetivo. Fronteira aps expandir o estado J (sem filhos): [no(K, [A, B, E, K], 0), no(C, [A, C], 0)]
37

Exemplo onde M o n objetivo


O estado K no o objetivo. Fronteira aps expandir o estado K (sem filhos): [no(C, [A, C], 0)] O estado C no o objetivo. Fronteira aps expandir o estado C: [no(F, [A, C, F], 0), no(G, [A, C, G], 0)] O estado F no o objetivo. Fronteira aps expandir o estado F: [no(L, [A, C, F, L], 0), no(M, [A, C, F, M], 0), no(G, [A, C, G], 0)] O estado L no o objetivo. Fronteira aps expandir o estado L (sem filhos): [no(M, [A, C, F, M], 0), no(G, [A, C, G], 0)] O estado M o objetivo. A busca para tendo como soluo o caminho: [A, C, F, M]

38

rvore de busca

O algoritmo de busca gera como resultado implcito uma rvore de busca:

39

Algoritmo para Busca em Profundidade


entrada:
um grafo, um conjunto de ns inicias, um procedimento booleano objetivo(n) que testa se n um n objetivo.

fronteira := {s : s um n inicial}; enquanto fronteira no for vazia:


selecione e remova o primeiro n da fronteira que contm o caminho <n0, . . . , nk>; se objetivo(nk)
retorne <n0, . . . , nk>;

para cada vizinho n de nk


adicione um n contendo o caminho <n0, . . . , nk, n> no incio da fronteira;

fim_enquanto.
40

Complexidade da busca em profundidade

A busca em profundidade no d garantias de parada em grafos infinitos ou grafos com ciclos.

Por isso ela no completa

Ela tambm segue um caminho at encontrar o objetivo ou ficar sem sada

Por isso ela tambm no tima

A complexidade de espao linear no tamanho do caminho que est sendo explorado

41

Busca em largura

Busca em largura trata a fronteira como um fila. Ela sempre seleciona um dos elementos mais antigos adicionados a fronteira. Se a fronteira [p1, p2, . . . , pr]:

p1 selecionado. Seus vizinhos so adicionados no final da fila, depois de pr . p2 selecionado depois.

42

Busca em largura - Exemplo


Considere o seguinte problema:
Estado inicial: A Funo sucessor:
O estado A gera os estados B e C O estado B gera os estados D e E O estado C gera os estados F e G O estado D gera os estados H e I O estado E gera os estados J e K O estado F gera os estados L e M O estado G gera os estados N e O Os estados H, I, J, K, L, M, N e O no geram sucessores

Estado objetivo: M Custo do caminho: zero

Representao de cada n da fronteira:


no(ltimo estado, [caminho], custo)

Fronteira inicial: [no(A, [A], 0)]


43

Exemplo onde D o n objetivo


Fronteira inicial: [no(A, [A], 0)] O estado A no o objetivo. Fronteira aps expandir o estado A: [no(B, [A, B], 0), no(C, [A, C], 0)] O estado B no o objetivo. Fronteira aps expandir o estado B: [no(C, [A, C], 0), no(D, [A, B, D], 0), no(E, [A, B, E], 0)] O estado C no o objetivo. Fronteira aps expandir o estado C: [no(D, [A, B, D], 0), no(E, [A, B, E], 0), no(F, [A, C, F], 0), no(G, [A, C, G], 0),] O estado D o objetivo. A busca para tendo como soluo o caminho: [A, B, D]

44

Algoritmo para Busca em Largura


entrada:
um grafo, um conjunto de ns inicias, um procedimento booleano objetivo(n) que testa se n um n objetivo.

fronteira := {s : s um n inicial}; enquanto fronteira no for vazia:


selecione e remova o primeiro n da fronteira que contm o caminho <n0, . . . , nk>; se objetivo(nk)
retorne <n0, . . . , nk>;

para cada vizinho n de nk


adicione um n contendo o caminho <n0, . . . , nk, n> no fim da fronteira;

fim_enquanto.
45

Complexidade da Busca em largura

Se o fator de ramificao de todos os ns finito, a busca em largura garante achar uma soluo se ela existir.

Por isso ela completa

garantido achar o caminho com menor nmero de arcos.

Por isso ela tima quando todos os arcos tm o mesmo custo

A complexidade de tempo exponencial no tamanho do caminho: bn, onde b o fator de ramificao, e n o tamanho do caminho. A complexidade de espao exponencial no tamanho do caminho: bn.
46

Busca pelo Menor Custo Primeiro

Algumas vezes existem custos associados com os arcos. O custo de um caminho a somatria dos custos de seus arcos.

custo(<n0, . . . , nk>) =

Em cada estgio, a busca pelo menor custo primeiro seleciona o caminho na fronteira com o menor custo. A fronteira uma fila de prioridade ordenada pelo custo do caminho. Ela acha o caminho de menor custo at um n objetivo. Quando os custos dos arcos so iguais busca em largura.
47

Busca pelo Menor Custo Primeiro Exemplo

Considere o seguinte problema:


Estado inicial: S Funo sucessor:


O estado S gera os estados A(custo=1), B(custo=5) e C(custo=15) O estado A gera o estado G(custo=10) O estado B gera o estado G(custo=5) O estado C gera o estado G(custo=5) O estado G no gera sucessores

Estado objetivo: G

Representao de cada n da fronteira: no(ltimo estado, [caminho], custo) Fronteira inicial: [no(S, [S], 0)]

48

Busca pelo Menor Custo Primeiro Exemplo


Fronteira inicial: [no(S, [S], 0)] O estado S no o objetivo. Fronteira aps expandir o estado S: [no(A, [S, A], 1), no(B, [S, B], 5), no(C, [S, C], 15)] O estado A no o objetivo. Fronteira aps expandir o estado A: [no(B, [S, B], 5), no(A, [S, A, G], 11), [no(C, [S, C], 15)] O estado B no o objetivo. Fronteira aps expandir o estado B: [no(G, [S, B, G], 10), no(A, [S, A, G], 11), [no(C, [S, C], 15)] O estado G o objetivo. A busca para tendo como resultado o caminho: [S, B, G] com custo = 10

49

Busca pelo Menor Custo Primeiro

50

Algoritmo para Busca pelo Menor Custo Primeiro


entrada:
um grafo, um conjunto de ns inicias, um procedimento booleano objetivo(n) que testa se n um n objetivo.

fronteira := {s : s um n inicial}; enquanto fronteira no for vazia:


selecione e remova o primeiro n da fronteira que contm o caminho <n0, . . . , nk>; se objetivo(nk)
retorne <n0, . . . , nk>;

para cada vizinho n de nk


adicione um n contendo o caminho <n0, . . . , nk, n> na fronteira sempre em ordem crescente de custo do caminho

fim_enquanto.

51

Complexidade da Busca pelo Menor Custo Primeiro

Se nenhum operador tiver custo negativo, a busca pelo menor custo primeiro garante encontrar a melhor soluo

Por isso ela completa e tima

garantido encontrar a soluo com o menor caminho A complexidade de tempo e espao exponencial no nmero de caminhos com custo menor que o custo da soluo tima

Que pode ser bem maior do que bn

52

Exerccio: Resolva o problema dos Missionrios e Canibais


Represente os estados da forma: <M,C,B> Funo sucessor:


Levar 1 missionrio e 1 canibal, Levar 2 missionrios, Levar 2 canibais, Levar 1 missionrio, Levar 1 canibal

Resolva por busca em largura e por busca em profundidade

53

Exerccio
Resolva o problema abaixo utilizando busca em profundidade, largura e melhor custo primeiro
Considere o problema de encontrar um caminho entre a cidade de Arad e Bucareste, na Romnia. Utilizando a matriz de distncias do prximo slide

54

55