Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estratégias de Busca sem Informaçãosem Informação Prof. Pedro Luiz Santos Serra Introdução � Busca sem informação (busca cega) ���� estratégias sem nenhuma informação adicional às apresentadas na formulação do problema. Geram sucessores e distinguem um estado objetivo de um estado não- objetivo. Busca com informação ���� estratégias que distinguem Prof. Pedro L. S. Serra 2 � Busca com informação ���� estratégias que distinguem um estado-não-objetivo “mais promissor” de outro. Também conhecida como busca heurística. � Todas as estratégias de busca se distinguem pela ordem em que os nós são expandidos. Busca em Extensão � O nó raiz é expandido primeiro, em seguida todos os sucessores do nó raiz são expandidos, depois os sucessores destes nós e assim por diante. � Pode ser implementada chamando-se BUSCA-EM- ÁRVORE com uma borda vazia que seja uma fila do tipo FIFO, assegurando-se que os nós visitados primeiro, Prof. Pedro L. S. Serra 3 FIFO, assegurando-se que os nós visitados primeiro, serão expandidos primeiro. Busca em Extensão � Completeza: a busca em extensão é completa. Se o nó- objetivo mais raso estiver em alguma profundidade finita d, a busca o encontrará após expandir todos os nós mais rasos (desde que o fator de ramificação b seja finito). � Otimização: Prof. Pedro L. S. Serra 4 � Otimização: � o nó-objetivo mais raso não é, necessariamente o nó ótimo. � A busca em extensão será ótima se o custo do caminho for uma função não-decrescente da profundidade � Ex.: todas ações tem o mesmo custo. Busca em Extensão � Complexidade de tempo e espaço: � Espaço de estados hipotético � Cada estado tem b sucessores. � Raíz � b nós no primeiro nível; � Cada nó gera outros b nós no segundo nível, totalizando b2 nós no segundo nível; � Cada um desses nós gera outros b nós no terceiro nível, totalizando b3 nós. Prof. Pedro L. S. Serra 5 totalizando b3 nós. � Suponha que a solução esteja na profundidade d. O número total de nós gerados é: b + b2 + b3 + ... + bd +( bd+1 – b) = O(bd+1) � Todo nó gerado deve permanecer na memória �a complexidade de espaço é igual à complexidade de tempo (mais um nó para a raiz). Busca em Extensão � Ex.: Tempo e Memória para um algoritmo de busca em extensão para um fator de ramificação b=10. Prof. Pedro L. S. Serra 6 Busca de custo uniforme � Não se importa com o número de passos que um caminho tem, mas apenas com seu custo total. � Pode ficar paralizada em um laço de repetição infinito se um nó que tenha ação de custo zero levando de volta ao mesmo estado. � Completeza: O algorítmo é completo uma vez que o Prof. Pedro L. S. Serra 7 � Completeza: O algorítmo é completo uma vez que o custo de cada passo seja maior ou igual a alguma constante positiva e pequena ε. � Otimização: O ítem anterior garante que o algoritmo é ótimo. Busca em Profundidade Prof. Pedro L. S. Serra 8 Busca em Profundidade � Pode ser implementada por BUSCA-EM-ÁRVORE com uma lista LIFO (Pilha). � Requisitos de memória modestos ���� Necessário armazenar um único caminho da raiz até um nó de folha (juntamente com os nós irmãos não expandidos restantes de cada nó no caminho). Prof. Pedro L. S. Serra 9 restantes de cada nó no caminho). � Uma vez expandido, um nó pode ser removido, uma vez que todos os seus descendentes foram explorados. � Exige apenas o armazenamento de b.m+1 nós. b � fator de ramificação m � profundidade máxima. Busca em Profundidade Limitada � Trata-se de uma variação do modelo de busca em profundidade com o estabelecimento de um limite de profundidade predeterminado l. � Visa a solução do problema de caminhos infinitos na busca em profundidade, no entanto também introduz uma fonte adicional de incompleteza se escolhermos Prof. Pedro L. S. Serra 10 uma fonte adicional de incompleteza se escolhermos l < d. � Nós da profundidade l são tratados como se não tivessem sucessores. � Complexidade de tempo: O(bl). � Complexidade de espaço: O(bl) Busca em Profundidade Limitada Prof. Pedro L. S. Serra 11 Busca em Profundidade Limitada � A busca em profundidade limitada pode se basear no conhecimento que se tem do problema. Por exemplo: � No mapa da Romênia há 20 cidades. Portanto, sabe-se que existe uma solução e deve ter o comprimento 19 no caso mais longo � l=19 é uma escolha possível. � No entanto sabemos (através de um prévio estudo do Prof. Pedro L. S. Serra 12 � No entanto sabemos (através de um prévio estudo do mapa) que qualquer cidade pode ser alcançada a partir de qualquer outra cidade em no máximo 9 passos. Esse número é conhecido por diâmetro e a partir dele pode-se estabelecer um limite melhor de profundidade proporcionando maior eficiência do algorítmo. Busca em Aprofundamento iterativo � Também conhecido por busca em profundidade por aprofundamento iterativo ou busca em profundidade iterativa; � Combina os benefícios da busca em profundidade e da busca em extensão. Prof. Pedro L. S. Serra 13 Busca em Aprofundamento iterativo Prof. Pedro L. S. Serra 14 Busca em Aprofundamento Iterativo � Tem como principais características: � O aumento gradual do limite – primeiro 0 – depois 1 – depois 2 – e assim por diante até encontrar um objetivo; � O objetivo ocorrerá quando o limite de profundidade “d” for alcançado (a profundidade do nó objetivo mais raso); � O algoritmo é completo quando o número de ramificações for finito; Prof. Pedro L. S. Serra 15 finito; � O algoritmo é ótimo quando o custo de caminho é uma função não decrescente da profundidade do nó; � Embora pareça um desperdício pela geração do estado várias vezes, o custo deste recurso não é muito alto, pois, os nós no nível inferior (profundidade d) são gerados uma vez. Os nós do penúltimo nível, duas e assim por diante até os filhos da raiz, que são gerados d vezes. Busca em Aprofundamento Iterativo � O número total de nós gerados é: N(BAI) = (d).b + (d-1)b2 + ... + (1).bd���� O(bd) � Na busca em extensão, o número de nós gerados é: N(BE) = b + b2 + b3 + ... + (bd+1 – b) � Na extensão são gerados alguns nós na profundidade Prof. Pedro L. S. Serra 16 � Na extensão são gerados alguns nós na profundidade b+1, enquanto que no aprofundamento iterativo não. � Exemplo: para b=10 e d=5, tem-se: N(BAI) = 50 + 400 + 3000 + 20000 + 100000 = 125450 N(BE) = 10 + 100 + 1000 + 10000 + 100000 + 999990 = 1111100 Comparação entre as estratégias de busca Prof. Pedro L. S. Serra 17
Compartilhar