Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou...

38
Agentes Resolvedores de problemas II

Transcript of Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou...

Page 1: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

Agentes Resolvedores de problemas II

Page 2: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 2

Tipos de Busca Desinformada Busca em Largura (ou extensão)

Busca por Custo Uniforme

Busca em Profundidade

Busca em Profundidade Limitada

Busca em Profundidade Interativa

Busca Bidirecional

Page 3: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 3

Busca em Largura Expande os nós mais rasos ainda não expandidos Todos os nós de profundidade d são expandidos antes dos

nós de profundidade d+1 Fila: coloca os nós gerados no fim da fila (FIFO)

Page 4: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 4

Busca em Largura Completude: Sim encontra o mais raso, se o fator de

ramificação b é finito

Otimalidade: Sim, se o custo do caminho for uma função não decrescente da profundidade do nó. Caso contrário não é ótima.

Custo de Tempo: 1 + b + b2 + b3 + ... + bd = exponencial em d

Custo de Memória: O(bd) – guarda todos os nós na memória

Grande quantidade de espaço e tempo exigida. Pode facilmente gerar 1MB de nós que devem ser guardados.

Page 5: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 5

Analisando a busca em largura Para um fator de ramificação b=10, e supondo que 1000 nós

podem ser gerados por segundo, temos:

profundidade nós tempo memória2 1100 0,11 seg 1 MB4 111.100 11 seg 106 MB6 107 19 min 10 GB8 109 31 horas 1 TeraB10 101 129 dias 101 TeraB12 1013 35 anos 10 PentaB14 1015 3.523 anos 1 exaB

Requisitos de memória são problemas maiores do que o tempo de execução

Problemas de busca de complexidade exponencial não podem ser resolvidos por métodos sem informação (exceto os menores)

Page 6: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 6

Exercício Resolva o problema do mapa por busca em largura. Defina estados, a função sucessor, o teste de objetivo e o

custo do caminho.

Page 7: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 7

Busca por Custo Uniforme Expande o nó de menor custo ainda não expandidos (pelo

custo do caminho – g(n)) Se comporta como a busca em largura com g(n)=constante Encontra a solução mais barata porque os nós mais baratos

são expandidos primeiro Fila: insere os nós gerados em ordem crescente pelo custo do

caminho

S

A

C

B G

1 10

15 5

5 5

S

G11

G10

A C1 5 15

B

Fila/custo/fechado

A(1)

B(5)

C(15)

A(1) x

B(5)

G(11)

C(15)

A(1) x

B(5) x

G(10)

G(11)

C(15)

A(1) x

B(5) x

G(10) x

G(11)

C(15)

Page 8: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 8

Busca por Custo Uniforme Completude: Sim, se nenhum operador tiver custo negativo

Custo Tempo: quantidade de nós com g <= custo da solução ótima

Custo Memória: quantidade de nós com g <= custo da solução ótima

Otimalidade: Sim.

Espaço e tempo continuam sendo um problema pode se muito maior que bd.

Page 9: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 9

Exercícios Resolva o problema do mapa através de busca por custo

uniforme. Defina estados, a função sucessor, o teste de objetivo e o

custo do caminho.

Page 10: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 10

Busca em profundidade Expande o nó mais profundo ainda não expandido Quando encontra um nó que não pode ser expandido, volta

para expandir os outros dos níveis mais rasos Os nós que foram expandidos e não tem descendentes na

borda podem ser tirados da memória Fila: insere o nó gerado no inicio da fila (LIFO - pilha)

Page 11: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 11

Busca em profundidade

Page 12: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 12

Busca em profundidade

Page 13: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 13

Busca em profundidade

Page 14: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 14

Busca em profundidade

Page 15: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 15

Busca em profundidade

Page 16: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 16

Busca em profundidade

Page 17: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 17

Busca em profundidade

Page 18: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 18

Busca em profundidade

Page 19: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 19

Busca em profundidade

Page 20: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 20

Busca em profundidade

Page 21: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 21

Busca em profundidade

Page 22: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 22

Busca em profundidade

Page 23: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 23

Busca em profundidade Completude: Não. Falha se o espaço de estados for infinito ou

com loops

Custo Memória: Armazena somente um caminho simples da raiz até a folha. Para um fator de ramificação b e uma profundidade máxima de m

armazena bm nós (busca em largura = bd)

Para um nó objetivo com profundidade d=12 e supondo que os nós na mesma profundidade não tenham sucessores exige 118kb ao invés dos 10Pb da busca em largura

Custo Tempo: O(bm) no pior caso -> examinar todos os ramos Terrível se m é muito maior que d (m - profundidade máxima de qq

nó)

Otimalidade: Não

Necessita de um espaço de busca finito e não cíclico

Page 24: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 24

Exercícios Resolva o problema do mapa por busca em profundidade Defina estados, a função sucessor, o teste de objetivo e o

custo do caminho.

Page 25: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 25

Busca com Profundidade Limitada Evita os problemas da busca em profundidade impondo um

corte na profundidade de caminho

Problema => escolher a profundidade correta

Completude: Sim. Se a solução existente estiver em uma

profundidade d<l, ela é encontrada

Otimalidade: Não. A solução ótima pode estar em outra subárvore

Tempo: O(bl), onde l é o limite de profundidade

Memória: O(bl) Alguns problemas sugerem um valor de l. (20 cidades => l

=19)

Page 26: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 26

Busca com Profundidade Interativa Tenta todos os possíveis limites de profundidade, começando

pelo 0.

Combina os benefícios da busca em largura e em profundidade

Ordem de expansão parecida com a busca em largura

Alguns nós podem ser expandidos múltiplas vezes

Page 27: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 27

Busca com Profundidade Interativa

Page 28: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 28

Busca com Profundidade Interativa

Page 29: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 29

Busca com Profundidade Interativa

Page 30: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 30

Busca com Profundidade Interativa

Page 31: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 31

Busca com Profundidade Interativa Completude: Sim

Otimalidade: Sim

Tempo: O(bd) – alguns nós podem ser gerados várias vezes. Mas isso acontecerá nos níveis superirores que normalmente têm poucos nós

Memória: O(bd)

Preferida quando o espaço de busca é muito grande e a profundidade da solução não é conhecida

Tempo comparação com a busca em largura com b=10 e d=5

Prof. Interativa = 123.450 nós gerados Largura = 1.111.100 nós gerados

É o método de busca sem informação preferido quando existe um espaço de busca grande e a profundidade da solução não é conhecida

Page 32: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 32

Busca Bidirecional

Busca em duas direções:

Para frente, a partir do nó inicial, e

Para trás, a partir do nó final (objetivo)

A busca pára quando os dois processos geram o mesmo nó

Problema: verificar antes de cada expansão se o nó não pertence à borda da outra busca

É possível utilizar estratégias diferentes em cada direção da busca

Os operadores devem ser reversíveis

Page 33: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 33

Busca Bidirecional

A comparação de cada nó antes da expansão pode ser feita em tempo constante utilizando uma tabela hash

Completude: Sim

Otimalidade: Sim

Tempo: O(bd/2)

Memória: O(bd/2)

Para b=10 e d=6 temos 22.200 nós gerados, contra os 11.111.100

Page 34: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 34

Comparação das Estratégias de Busca

Sim1,2Sim1SimNãosim1,2sim1Completa?

Sim3,4sim3NãoNãoSimSim3Otima?

O(bd/2)O(bd)O(bl)O(bm)>>bd>>bd Espaço

O(bd/2)O(bd)O(bl)

O(bm)O(bd + 1)O(bd +

1)Tempo

Bidirecional (se aplicável)

Profundidade Interativa

Profundidade limitada

Profundidade

Custo Uniforme

Largura

1 – completa se b é finito2 – completa se o custo do passo é >= c, para c positivo3 – ótima se o custo dos passos são todos idênticos4 – se ambos os sentidos utilizam busca em largura

Page 35: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 35

Estados Repetidos Como evitar desperdiçar tempo expandindo estados que já

foram expandidos antes? Para alguns problemas os estados repetidos são inevitáveis:

problemas em que os operadores são reversíveis A árvore de busca para estes problemas é infinita, mas

evitando os estados repetidos, ela se torna finita

Page 36: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 36

Estados Repetidos Se o espaço de estados for uma malha retangular, cada estado tem 4

sucessores A árvore de busca que inclui os estado repetidos tem 4d folhas porém 2d2

estados distintos

Para d=20, isso seria 1 trilhão de nós, mas cerca e 800 estados distintos

Estados repetidos podem fazer o problema solúvel se tornar insolúvel, se o algoritmo de busca não os detectar

Para isso o algoritmo de busca em árvore pode ser modificado para incluir:

Uma estrutura de dados = lista fechada – que contém os nós expandidos

Os nós ainda não expandidos às vezes são chamados de lista aberta

Se o nó atual corresponder a um nó da lista fechada, ele não será expandido Este algoritmo de BUSCA-EM-GRAFO ém muito mais eficiente do que BUSCA-

EM-ARVORE

Page 37: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 37

Busca em grafoFunção BUSCA-EM-GRAFO (problema, borda) retorna uma

solução ou falhafechado <- um conjunto vazioborda <- INSERIR(CRIAR-NÓ(ESTADO-INICIAL[problema]),borda)

repitase VAZIA?(borda) então retornar falhanó <- REMOVER-PRIMEIRO(borda)se TESTAR-OBJETIVO[problema](ESTADO[nó]) então retornar SOLUÇÃO(nó)

se ESTADO[nó] não está em fechado entãoadicionar ESTADO[nó] a fechadoborda<-INSERIR-TODOS(EXPANDIR(nó, problema),borda)

Page 38: Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.

SI 2005 38

Busca em grafo Pode não ser ótimo porque descarta um caminho recém-

descoberto

Se esse caminho for melhor do que o anterior então a busca pode perder uma solução ótima

Se utilizarmos busca em largura e busca por custo uniforme com passos de custo constante, a busca em grafo continua sendo ótima

A busca em grafo por aprofundamento iterativo precisa de outras verificações para garantir a otimalidade

A busca em profundidade e a busca por aprofundamento iterativo não tem mais o requisito de tempo linear, pois todos os nós fechados são guardados