A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade."— Transcrição da apresentação:

1 Agentes Resolvedores de problemas II

2 SI 20052 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

3 SI 20053 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)

4 SI 20054 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 + b 2 + b 3 +... + b d = exponencial em d Custo de Memória: O(b d ) – 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.

5 SI 20055 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: profundidadenóstempomemória 211000,11 seg1 MB 4111.10011 seg106 MB 610 7 19 min10 GB 810 9 31 horas1 TeraB 1010 1 129 dias101 TeraB 1210 13 35 anos10 PentaB 1410 15 3.523 anos1 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)

6 SI 20056 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.

7 SI 20057 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 G 11 G 10 A C 1 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)

8 SI 20058 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 b d.

9 SI 20059 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.

10 SI 200510 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)

11 SI 200511 Busca em profundidade

12 SI 200512 Busca em profundidade

13 SI 200513 Busca em profundidade

14 SI 200514 Busca em profundidade

15 SI 200515 Busca em profundidade

16 SI 200516 Busca em profundidade

17 SI 200517 Busca em profundidade

18 SI 200518 Busca em profundidade

19 SI 200519 Busca em profundidade

20 SI 200520 Busca em profundidade

21 SI 200521 Busca em profundidade

22 SI 200522 Busca em profundidade

23 SI 200523 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 = b d ) 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(b m ) 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

24 SI 200524 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.

25 SI 200525 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(b l ), onde l é o limite de profundidade Memória: O(b l ) Alguns problemas sugerem um valor de l. (20 cidades => l =19)

26 SI 200526 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

27 SI 200527 Busca com Profundidade Interativa

28 SI 200528 Busca com Profundidade Interativa

29 SI 200529 Busca com Profundidade Interativa

30 SI 200530 Busca com Profundidade Interativa

31 SI 200531 Busca com Profundidade Interativa Completude: Sim Otimalidade: Sim Tempo: O(b d ) – 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

32 SI 200532 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

33 SI 200533 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(b d/2 ) Memória: O(b d/2 ) Para b=10 e d=6 temos 22.200 nós gerados, contra os 11.111.100

34 SI 200534 Comparação das Estratégias de Busca Sim 1,2 Sim 1 SimNãosim 1,2 sim 1 Completa ? Sim 3,4 sim 3 Não SimSim 3 Otima? O(b d/2 )O(bd) O(b l ) O(bm)>>b d Espaço O(b d/2 )O(b d ) O(b l ) O(b m )O(b d + 1 ) Tempo Bidirecional (se aplicável) Profundi dade Interativ a Profund idade limitada Profund idade Custo Uniform e Largur a 1 – completa se b é finito 2 – completa se o custo do passo é >= c, para c positivo 3 – ótima se o custo dos passos são todos idênticos 4 – se ambos os sentidos utilizam busca em largura

35 SI 200535 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

36 SI 200536 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 4 d folhas porém 2d 2 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

37 SI 200537 Busca em grafo Função BUSCA-EM-GRAFO (problema, borda) retorna uma solução ou falha fechado <- um conjunto vazio borda <- INSERIR(CRIAR-NÓ(ESTADO- INICIAL[problema]),borda) repita se VAZIA?(borda) então retornar falha nó <- REMOVER-PRIMEIRO(borda) se TESTAR-OBJETIVO[problema](ESTADO[nó]) então retornar SOLUÇÃO(nó) se ESTADO[nó] não está em fechado então adicionar ESTADO[nó] a fechado borda<-INSERIR-TODOS(EXPANDIR(nó, problema),borda)

38 SI 200538 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


Carregar ppt "Agentes Resolvedores de problemas II. SI 20052 Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade."

Apresentações semelhantes


Anúncios Google