UNIBRATEC Ensino Superior e Tcnico em Informtica DSI
UNIBRATEC – Ensino Superior e Técnico em Informática DSI – Desenvolvimento de Sistemas Inteligentes 1 Capítulo – Conceitos Básicos Busca 1 sem Informação Saturday, December 5, 5, 2020
6 UNIBRATEC – Ensino Superior e Técnico em Informática DSI – Desenvolvimento de Sistemas Inteligentes Busca sem Informação ou Busca Cega 1. 2. 3. 4. 5. 6. 7. Prof. Frederico Brito Fernandes unibratec@fredbf. com 8. 2 Capítulo – Conceitos Básicos Busca 1 sem Informação 9. Definição Estudos de Caso Busca em Largura Busca por Custo Uniforme Busca em Profundidade Busca com Profundidade Limitada Busca com Profundidade Interativa Busca Bidirecional Comparação Saturday, December 5, 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (1) Busca sem Informação: definição • Um problema de busca é: – Aquele que é resolvido através da busca do melhor estado (ou caminho) em todo o espaço de estados. – Ex: chegar à Areia saindo de JP • Discutiremos sobre algoritmos de busca em árvore Ex: Busca Mamanguape Areia CG JP Ex: Busca em Largura 50 FIM 40 20 Baía da Traição 60 50 Guarabira 40 Esperança 50 90 120 JP INÍCIO Mamanguape CG Guarabira Areia Esperança • Um problema de busca sem informação é: – Aquele que não possui informação do melhor caminho para chegar na solução. Ex: saindo de João Pessoa, não temos idéia de que direção está o objetivo (apesar de CG estar a 120 km, é a melhor direção) 3 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (1) Busca sem Informação : definição • Um problema de busca é: – Aquele que é resolvido através da busca do melhor estado (ou caminho) em todo o espaço de estados. Origem Destino Dist. em Linha Reta (km) – Ex: chegar à Areia saindo de JP Mamanguape Areia CG Baía da Traição 50 FIM 40 20 60 50 Guarabira 40 Esperança 50 90 120 JP INÍCIO JP Areia 134 BT Areia 155 Mamanguape Areia 130 Guarabira Areia 89 Esperança Areia 53 CG Areia 35 Areia 0 • Um problema de busca com informação é: – Aquele que possui informação do melhor caminho para chegar na solução. Ex: indo pra CG, gasto 120 km de percurso + distância em linha reta até Areia (35 km) = 155 km 4 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (1) Busca: critérios de análise • Como determinar que um algoritmo é melhor do que outro? – Ex: para esse exemplo, é melhor usar Busca em Largura ou em Profundidade? • Mamanguape Areia CG JP Ex: Busca em Largura 50 FIM 40 20 Baía da Traição Discutiremos sobre algoritmos de busca em árvore Ex: Busca 60 50 Guarabira 40 Esperança 50 90 JP 120 INÍCIO Mamanguape CG Guarabira Areia Esperança Critérios de Análise • O algoritmo Busca em Largura. . . 5 a) É completo? (ele sempre acha a solução, se existir? ) b) É ótimo? (ele acha a melhor solução? ) c) Leva quanto tempo para achar a solução? (tempo) d) Produz quantos nós? (memória) Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (1) Busca: critérios de análise • Dado o algoritmo: Geração da Árvore: Missao. Bregareia(){ cidade = JP faça cidade. Anterior = cidade JP Mamanguape 20 cidade=proxima. Cidade(menor. Distância, nao. Visitada) cidade. visitada=true se (cidade=ja. Visitada ou cidade=FIM) cidade=cidade. Anterior enquanto (cidade Areia) } Baía da Mamanguape 20 Traição FIM CG 6 Mamanguape 50 Guarabira 40 X Esperança 50 CG 30 Areia 50 Areia 30 50 60 50 Guarabira 40 Esperança 50 90 120 Busca sem Informação O algoritmo Missao. Bregareia. . . INÍCIO JP a) É completo? (ele acha a solução, se existir? ) b) É ótimo? (ele acha a melhor solução? ) c) Leva quanto tempo? d) Produz quantos nós? Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (1) Busca: critérios de análise • Completude: A estratégia sempre encontra uma solução quando existe alguma? • Custo do tempo: Quanto tempo gasta para encontrar uma solução? Normalmente medida em termos do número de nós gerados. • Custo de memória: Quanta memória é necessária para realizar a busca? Normalmente medida pelo tamanho máximo que a lista de nós abertos assume durante a busca. • Qualidade/otimalidade (optimality): A estratégia encontra a melhor solução quando existem soluções diferentes? • menor custo de caminho • As complexidades de tempo e espaço são medidas em termos de: – b : fator de ramificação máximo da árvore de busca. – d : profundidade do nó objetivo menos profundo. – m : profundidade máxima de qualquer caminho no espaço de estados. 7 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (1) Busca sem Informação: algoritmos • Terminologia: – Borda: é a coleção de nós que foram gerados mas não expandidos (nós abertos). Também conhecido como franja – Nó Folha: qualquer elemento da borda (sem sucessores na árvore) – Estratégia de Busca: função que seleciona o próximo nó a ser expandido da borda • Algoritmos de Busca Desinformada: – – – 8 Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade Limitada Busca em Profundidade Interativa Busca Bidirecional Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (2) Estudo de Caso 1: Missão Bregareia • Problema do menor caminho – Objetivo: • Ir pro Bregareia, saindo de João Pessoa – Ações: Mamanguape • Próxima cidade – Usando Busca. . . • • • 9 Areia Busca sem Informação 30 Baía da Traição 50 FIM Em Largura Por Custo Uniforme CG Em Profundidade Limitada Em Profundidade Interativa Bidirecional 20 60 50 Guarabira 40 Esperança 50 90 120 Saturday, December 5, 2020 João INÍCIO Pessoa
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (2) Estudo de Caso 2: problema dos sapos • Problema dos sapos: – Objetivo: • Faça com que os machos fiquem na direita e as fêmeas na esquerda – Ações: • Pular para frente, e duas pedras no máximo M 1 10 M 2 M 3 Busca sem Informação – Usando Busca. . . • • • Em Largura Por Custo Uniforme Em Profundidade Limitada Em Profundidade Interativa Bidirecional F 3 F 2 Saturday, December 5, 2020 F 1
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (2) Estudo de Caso 3: menor caminho Início objetivo 11 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 12 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 13 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 2 14 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 2 15 Busca sem Informação 3 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 2 16 Busca sem Informação 3 4 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 2 3 4 5 17 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 2 5 18 Busca sem Informação 3 4 6 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (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 • Borda organizada como uma fila (FIFO) 1 2 5 19 Busca sem Informação 3 6 4 7 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (3) Busca em Largura: análise • 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ó (ou seja, quando todos os caminhos tiverem o mesmo custo) • Custo de Tempo: 1 + b 2 + b 3 +. . . + bd + (bd+1 -b) = O(bd+1) • Custo de Memória: O(bd+1) – guarda todos os nós na memória • Grande quantidade de espaço e tempo exigida. Pode facilmente gerar 1 MB de nós que devem ser guardados. 1 2 3 d 5 20 6 b = número máximo de filhos 4 (ou fator de ramificação) d = altura do nó ótimo 7 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (3) Busca em Largura: análise • Para um fator de ramificação b=10, e supondo que 1000 nós podem ser gerados por segundo, temos: 1+b 2+(b 3 -b) = 1+10+100+(1000 -10) = 1101 profundidade memória 2 nós tempo 1100 0, 11 seg 111. 100 11 seg Cada nó tem 1 KB 1 MB 4 106 MB 6 107 19 min 109 31 horas 1011 129 dias 1013 35 anos 10 GB 8 1 Tera. B 10 101 Tera. B 12 21 10 Penta. B 14 Busca sem Informação Saturday, December 5, 2020 1015 3. 523 anos
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (4) Busca por Custo Uniforme • Expande o nó de menor custo ainda não expandidos (pelo custo do caminho – g(n)) • Encontra a solução mais barata porque os nós mais baratos são expandidos primeiro • Borda é organizada em ordem crescente pelo custo do caminho de cada nó S 1 S 5 A B 15 10 5 G 5 C 22 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (4) Busca por Custo Uniforme • Expande o nó de menor custo ainda não expandidos (pelo custo do caminho – g(n)) • Encontra a solução mais barata porque os nós mais baratos são expandidos primeiro • Borda é organizada em ordem crescente pelo custo do caminho de cada nó 1 S 5 A B 15 1 10 5 G A S 5 B 15 C 23 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (4) Busca por Custo Uniforme • Expande o nó de menor custo ainda não expandidos (pelo custo do caminho – g(n)) • Encontra a solução mais barata porque os nós mais baratos são expandidos primeiro • Borda é organizada em ordem crescente pelo custo do caminho de cada nó 1 S 5 A B 15 1 10 5 G 5 C 24 Busca sem Informação A S 5 B 15 C 11 G Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (4) Busca por Custo Uniforme • Expande o nó de menor custo ainda não expandidos (pelo custo do caminho – g(n)) • Encontra a solução mais barata porque os nós mais baratos são expandidos primeiro • Borda é organizada em ordem crescente pelo custo do caminho de cada nó 1 S 5 A B 15 1 10 5 G 5 C 25 Busca sem Informação A S 5 B 11 G 15 C 10 G Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (4) Busca por Custo Uniforme • Expande o nó de menor custo ainda não expandidos (pelo custo do caminho – g(n)) • Encontra a solução mais barata porque os nós mais baratos são expandidos primeiro • Borda é organizada em ordem crescente pelo custo do caminho de cada nó 1 S 5 A B 15 1 10 5 G 5 C 26 Busca sem Informação A S 5 B 11 G 15 C 10 G Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (4) 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 (pode ser muito maior que O(bd)) • Custo Memória: quantidade de nós com g <= custo da solução ótima • Otimalidade: Sim. • Espaço e tempo continuam sendo um problema 1 S 5 A B 15 10 5 G A 5 C 27 1 S 5 B 11 G Busca sem Informação 15 C 10 G b = número máximo de filhos (ou fator de ramificação) g = custo do nó ótimo Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 28 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 29 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 30 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 31 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 32 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 33 5 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 34 6 5 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 35 5 6 7 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 36 5 6 7 Busca sem Informação 8 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 37 5 9 6 7 Busca sem Informação 8 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) 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 • Borda organizada como uma pilha (LIFO) 1 2 3 4 38 5 9 6 7 Busca sem Informação 10 8 Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (5) Busca em profundidade • • Completude: Sim, somente se o espaço de estados não tiver laços Custo Memória: Armazena somente um caminho simples da raiz até a folha. 1 – Para um fator de ramificação b e uma profundidade máxima de m armazena bm nós (busca em largura = bd) • Custo Tempo: O(bm) no pior caso -> examinar todos os ramos – Terrível se m é muito maior que (m - profundidade máxima de nó) • • Otimalidade: Não Necessita de um espaço de busca finito e não cíclico 4 2 3 qq 5 9 6 d 7 10 m 8 b = número máximo de filhos (ou fator de ramificação) m = altura máxima da árvore Esteja certo de que entende que m d 39 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (6) 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) 40 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (7) 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 41 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (7) Busca com Profundidade Interativa 42 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (7) Busca com Profundidade Interativa 43 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (7) Busca com Profundidade Interativa 44 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (7) Busca com Profundidade Interativa 45 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (7) Busca com Profundidade Interativa • • Completude: Sim Otimalidade: Sim (se o custo do caminho for uma função não decrescente da profundidade do nó, ou seja, quando todos os caminhos tiverem o mesmo custo) Tempo: O(bd) – alguns nós podem ser gerados várias vezes. Mas isso acontecerá nos níveis superiores 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 b = número máximo de filhos (ou fator de ramificação) d = altura do nó ótimo 46 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (8) 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 47 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (8) 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. 100 da busca em largura 48 Busca sem Informação Saturday, December 5, 2020
DSI – Desenvolvimento de Sistemas Inteligentes Prof. Frederico Brito Fernandes (9) Comparação das Estratégias de Busca Largura Custo Uniforme Profundidade limitada Profundidade Interativa Bidirecional (se aplicável) Tempo O(bd + 1) O(bm) O(bl) O(bd/2) Espaço >>bd O(bm) O(bd/2) Otima? Sim 3 Sim Não O(bl) Não sim 3 Sim 3, 4 Completa? sim 1, 2 Não Sim 1, 2 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 49 Busca sem Informação Saturday, December 5, 2020
- Slides: 49