principais tópicos introdução métodos de busca busca cega busca em profundidade busca em...

Post on 07-Apr-2016

233 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Principais Tópicos• Introdução• Métodos de busca• Busca cega• Busca em profundidade• Busca em amplitude

(largura)• Busca heurística• Hill Climbing• Busca em feixe• Busca melhor-primeiro

Problema:• Suponha que você quer descobrir o

caminho de uma cidade (S) para uma outra (G) usando um mapa

Para encontrar o melhor caminho, dois custosdiferentes devem ser considerados:• Custo computacional gasto para encontrar um

caminho• Custo de “viagem” decorrente da utilização destecaminho Possíveis situações:• Viagem frequente: Vale a pena gastar algum

tempo para encontrar um bom caminho• Viagem rara e difícil de achar um caminho: bastaencontrar um caminho

• Problema pode ser representado por uma rede (grafo)• Ao percorrer uma rede, deve-se evitar visitar o mesmo

nó• mais de uma vez• Representa um ciclo, o que significa que loops infinitos

podem• ocorrer• Solução: remover loops• Remoção de loops• Solução: traçar todos os caminhos possíveis até não

poder estender nenhum deles sem criar um loop• Vide próxima imagem

• Um sistema de IA pode resolver problemas damesma forma:• Ele sabe onde ele está (conjunto de informações

iniciais)• Ele sabe onde deseja ir (estado objetivo)

• Resolver problema em IA envolve busca do estadoobjetivo (paradigma de resolução de problemas)• Forma simplificada de raciocínio Simples sistemas de IA reduzem raciocínio à busca

• Problemas de busca sãofrequentemente descritos utilizandodiagramas de árvores de busca• Árvores semânticas onde cada nó denota

um passo no caminho do nó inicial parao nó objetivo

• Nó inicial (I) = onde a busca começa• Nó objetivo (O) = onde ela termina

• Objetivo: Encontrar um caminho queligue o nó inicial a um nó objetivo

• Problema de busca• Entrada:• Descrição dos nós inicial e objetivo• Procedimento que produz os sucessores de um

dado nó• Saída:• Sequência válida de nós, iniciando com o nó

inicial e terminando com o nó objetivo• Exemplo: palavras cruzadas

• Definições importantes:• Profundidade: número de ligações entre um dado

nó e o nó inicial• Amplitude: número de sucessores (filhos) de um

nó• Nó raíz: Nó que não tem pai (ascendente)• Nó folha: nó que não tem filhos (descendentes)• Nó objetivo: nó que satisfaz o problema

• Definições importantes:• Caminho parcial: caminho onde o nó final (folha)

não é um objetivo• Caminho final ou completo: caminho onde o nó

final é um nó objetivo• Expandir um nó: gerar as crianças de um nó• Em busca, você aprende como encontrar um

caminho entre o nó inicial e o nó objetivo

• Problemas da operação de busca• Com o aumento do tamanho da árvore de busca e

do número de possíveis caminhos, o tempo de busca aumenta

• Existem várias formas de reduzir o tempo de busca, alguns dos quais serão discutidos mais adiante

• Possíveis situações• Mais de um nó objetivo• Mais de um nó inicial

• Nestas situações• Encontrar qualquer caminho de um nó inicial para

um nó objetivo• Encontrar melhor caminho

Algoritmo básico de busca1 Definir um conjunto L de nós iniciais;2 Se L é vazio

Então Busca não foi bem sucedidaSenão Escolher um nó n de L;

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Adicionar a L todos os filhos de n, rotulando cada um com o seu caminho até o nó inicial;

Voltar ao passo 2

Algoritmos de busca• Existem vários algoritmos de busca diferentes• O que os distingue é a maneira como o nó n é escolhido

no passo 2• Métodos de busca

Busca cega: escolha depende da posição do nó nalista (escolhe o primeiro elemento)

• Busca heurística: escolha utiliza informações específicas do domínio para ajudar na decisão

• Maneira mais direta de encontrar uma solução:• Visitar todos os caminhos possíveis, sem repetir um

mesmo nó• Busca cega não utiliza informações sobre o problema para

guiar a busca• Estratégia de busca exaustivamente aplicada até

uma solução ser encontrada (ou falhar)

• Ex.: suponha que você deseja encontrar o melhor caminho de Recife a São Paulo• Utilizando um mapa de estradas sem as distâncias• Seu caminho começa em Recife (ponto de partida) e

termina em São Paulo (objetivo)

Busca cega• Existe um grande número de técnicas• Busca em Profundidade (BP)• A árvore é examinada de cima para baixo• Aconselhável nos casos onde os caminhos

improdutivos não são muito longos• Busca em Amplitude (BA)• A árvore é examinada da esquerda para a direita• Aconselhável quando o número de ramos (filhos)

dos nós não é muito grande (não vale a pena quando os nós objetivos estão em um mesmo nível)

• Algoritmo BP1 Definir um conjunto L de nós iniciais2 Se L é vazio

Então Busca não foi bem sucedidaSenão Seja n o primeiro nó de L;

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Adicionar ao início de L todos os filhos de n, rotulando cada um com o seu caminho até o nó inicial;Voltar ao passo 2;

Algoritmo BA1 Definir um conjunto L de nós iniciais2 Se L é vazio

Então Busca não foi bem sucedidaSenão Seja n o primeiro nó de L;

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Adicionar ao final de L todos os filhos de n, rotulando cada um com o seu caminho até o nó inicial;Voltar ao passo 2;

BA versus BP• BP e BA não precisam ser realizadas em uma ordem

específica• Memória utilizada pelas duas técnicas• BP: precisa armazenar todos os filhos não visitados

entre nó atual e nó inicial• BA: antes de examinar nó a uma profundidade d, é

necessário examinar e armazenar todos os nós a uma profundidade d - 1

• BP geralmente utiliza menos memória

BA versus BP• Quanto ao tempo• BP é geralmente mais rápida

• Melhor busca depende da árvore• Quando não se conhece a árvore, pode-se buscar um

compromisso entre BA e BP• Busca não determinística (BN)• Combina BA com BP

Busca não determinística• Escolhe aleatoriamente o nó da árvore a ser expandido• Tiro no escuro

• Provavelmente vantajosa apenas para árvores muito pequenas, com uns poucos ramos infinitos• Alternativa válida se BP e BA são impraticáveis

Algoritmo BN1 Definir um conjunto L de nós iniciais2 Se L é vazio

Então Busca não foi bem sucedidaSenão Seja n o primeiro nó de L;

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Adicionar em posições aleatórias de L todos os filhos de n, rotulando cada um com o seu caminho até o nó inicial;Voltar ao passo 2;

Busca• Busca cega não é eficiente• É necessário limitar de alguma forma o espaço de busca

para torná-la mais rápida e eficiente• Busca seria mais eficiente se as escolhas pudessem ser

ordenadas• Escolhas mais promissores seriam exploradas antes• Em várias situações é possível determinar um

ordenamento razoável• Alternativas podem ser ordenadas através de

heurísticas

Busca• Exemplo• Imagine que você está em uma cidade, e quer pegar

um trem para casa, mas não sabe qual deve pegar• Se você morasse na zona Norte, naturalmente ignoraria

todos os trens que fossem para o sul• Se você morasse na zona Sul, naturalmente ignoraria

todos os trens que fossem para o Norte• Estas heurísticas ajudam a limitar a busca

Busca• Heurísticas• Humanos utilizariam “macetes”ou dicas • Em IA,estas “dicas” são chamadas de heurísticas• Busca heurística

• Métodos de busca heurística• Busca hill climbing• Busca em feixe• Busca melhor-primeiro

Busca heurística• Observação• Tempo gasto avaliando uma função heurística deve ser

recuperado por uma redução correspondente no espaço de pesquisa

• Atividade nível base: esforço gasto tentando resolver o problema

• Atividade nível meta: trabalho gasto decidindo como resolver o problema

• Por que escolher e usar regras heurísticas quando é mais rápido executar uma busca cega?

Busca heurística• Observação (cont.)• Existe um trade-off atividade no nível base versus

atividade no nível meta• Busca eficiente: tempo gasto no nível meta é

recuperado com reduções no tempo necessário para o nível base

• As vezes pode ser melhor definir um novo espaço de busca

Funcionamento – Hill Climbing• Procurar entre os nós próximos, aquele mais perto do

objetivo• Seleciona o filho do nó mais próximo do objetivo,

segundo uma medida heurística• “Raio de visão” limitado à proximidade do nó atual

• Semelhante à otimização de função• Procurar a combinação de valores dos parâmetros que

fazem com que a função assuma o maior valor

Hill ClimbingExemplo de funcionamento• Imagine que você queira escalar uma montanha e: • Está fazendo uma neblina forte• Você possui apenas um altímetro e uma bússola• Procurar o ponto mais alto em um terreno durante uma

caminhada• Alternativa: dá um passo em cada possível direção e

escolher aquela em que você sobe mais

Hill ClimbingCaracterísticas• Funciona como BP, mas escolhe o filho de acordo com sua

“distância” ao objetivo• Quanto melhor a medida heurística, mais eficiente é a

busca• Quantidade maior de conhecimento leva a uma redução

no tempo de busca• Ex.: Suponha que a medida utilizada seja a distância física

ao nó objetivo

Algoritmo Hill Climbing1 Definir um conjunto L de nós iniciais classificados de acordo com suasdistâncias ao nó objetivo (em ordem crescente)2 Se L é vazio

Então Busca não foi bem sucedidaSenão seja n o primeiro nó de L;

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Ordenar os filhos de n em ordem crescente, de acordo com suas distâncias ao nó objetivo Adicionar ao início de L todos os filhos de n, rotulandocada um com o seu caminho até o nó inicial;Voltar ao passo 2;

Hill ClimbingProblemas• Menor caminho da primeira para a segunda cidade pode

levar a uma outra mais distante • Opção 1: voltar atrás e tomar o segundo menor

caminho, etc• Este processo de “olhar para a frente e voltar atrás”

certamente leva tempo• Opção 2: incluir não determinismo• Número de passos, tamanho dos passos, direção

aleatórios• Opção 3: utilizar outros métodos heurísticos

Hill ClimbingProblemas• Máximo local• Existe um pico mais elevado, que não é

necessariamente o objetivo• Planície• Todos os pontos vizinhos levam ao mesmo valor

• Aresta (ponte)• Existe pelo menos uma direção que aumenta o

valor, mas nenhuma das transições possíveis segue esta direção

Busca em feixe (BF)Funcionamento• Assim como BA, progride nível a nível• Move para baixo apenas através dos M melhores nós

de cada nível • Outros nós do mesmo nível são ignorados• M é constante para todos os níveis

• Vantagens:• Reduz número de nós visitados• Escapa do problema de ramificação infinita

Algoritmo BF1 Definir um conjunto L de nós iniciais2 Se L é vazio

Então Busca não foi bem sucedidaSenão seja n o primeiro nó de L;

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Adicionar ao final de L os M melhores filhos de n, rotulando cada um com o seu caminho até o nó inicial;Voltar ao passo 2;

Busca Melhor-PrimeiroFuncionamento• Busca segue pelo melhor nó aberto (que ainda tem filho

para ser visitado)• Hill Climbing sem a restrição da busca em profundidade• Escolhe o melhor nó n da lista L• Geralmente encontra caminhos mais curtos que o Hill

Climbing• Sempre move em direção ao nó mais próximo do

objetivo, não importa onde ele esteja na árvore

Algoritmo Melhor-Primeiro1 Definir um conjunto L de nós iniciais2 Seja n o nó de L mais próximo do objetivo;

Se L é vazioEntão Busca não foi bem sucedida

3 Se n é um nó objetivoEntão Retornar caminho do nó inicial até n;

PararSenão Remover n de L;

Adicionar a L todos os filhos de n, rotulando cada um com o seu caminho até o nó inicial;

Voltar ao passo 2;

Observações• Perguntas a serem feitas antes de utilizar métodos de

busca:• Busca é a melhor maneira para resolver o problema?• Quais métodos de busca resolvem o problema?• Qual deles é o mais eficiente para este problema?

Conclusão• Definições básicas• Busca cega• Busca em profundidade• Busca em largura• Busca não determinística

• Busca heurística• Hill Climbing• Busca em Feixe• Busca Best first

top related