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

Post on 07-Apr-2016

233 views 3 download

Transcript of Principais Tópicos Introdução Métodos de busca Busca cega Busca em profundidade Busca em...

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