Estratégias de Busca Cega

Documentos relacionados
Estratégias de Busca Cega

Inteligência Artificial

Os problemas de IA empregam heurísticas, basicamente, em duas situações:

Métodos de Busca. Inteligência Artificial. Busca Heurística. Busca Heurística. Prof. Ms. Luiz Alberto Contato:

lnteligência Artificial

Busca Heurística - Informada

Prof. Dr. Jaime Simão Sichman Prof. Dra. Anna Helena Reali Costa

Métodos de Busca. Estratégias de Busca Cega

3. Resolução de problemas por meio de busca

Inteligência Artificial

Métodos de Busca Informada (best first search) Capítulo 4 Parte I

Busca Cega (Exaustiva) e Heurística. Busca Aula 2

Procura Informada. Capítulo 4

Inteligência Artificial

MAC425/5739 Inteligência Artificial 3. Busca informada

Busca com informação e exploração. Inteligência Artificial. Busca pela melhor escolha. Romênia com custos em km. Busca com informação (ou heurística)

Tópicos Especiais: Inteligência Artificial BUSCA COM INFORMAÇÃO E EXPLORAÇÃO

Inteligência Artificial

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Busca heurística

Busca com informação e exploração. Inteligência Artificial

Busca Heurística. Profa. Josiane M. P. Ferreira

Buscas Informadas ou Heurísticas - Parte I

Estratégias informadas de Busca. March 3, 2016

Inteligência Artificial

Buscas Informadas ou Heurísticas - Parte II

Busca com informação e exploração. Inteligência Artificial. Busca pela melhor escolha. Romênia com custos em km 9/13/2010

Estratégias de Busca: Métodos Informados. March 9, 2015

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3

Aula 05 Busca com informação

Inteligência Artificial

INF 1771 Inteligência Artificial

Estratégias informadas de Busca. February 19, 2018

Revisão sobre Busca 1

Cap. 4 Busca com Informações e Exploração. do livro de Russel e Norvig

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Técnicas Inteligência Artificial

Procura Informada. Capítulo 4

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.1

Procura Informada. Capítulo 4

Estratégias de Procura Informadas

Inteligência Artificial (SI 214) Aula 4 Resolução de Problemas por meio de Busca Heurística

Técnicas Inteligência Artificial

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

Agentes de Procura Procura Estocástica. Capítulo 3: Costa, E. e Simões, A. (2008). Inteligência Artificial Fundamentos e Aplicações, 2.ª edição, FCA.

Buscas Não Informadas (Cegas) - Parte I

Inteligência Artificial

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Redes Neurais (Inteligência Artificial)

Buscas Informadas ou Heurísticas - Parte III

Resolução de Problemas através de Busca. Prof. Júlio Cesar Nievola PPGIA - PUC-PR

Inteligência Artificial 04. Busca Sem Informação (Cega) Capítulo 3 Russell & Norvig; Seções 3.4 e 3.5

PCS Inteligência Artificial

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Inteligência Computacional

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Heurística Curso de Análise e Desenvolvimento de Sistemas INTELIGÊNCIA ARTIFICIAL PROFESSOR FLÁVIO MURILO

Resolução de problemas por meio de busca. Inteligência Artificial. Formulação de problemas. Estratégias de busca

Resolução de Problemas

INF 1771 Inteligência Artificial

BCC204 - Teoria dos Grafos

Resolução de Problemas de Busca

Inteligência Artificial

Agentes de Procura Procura Heurística. Capítulo 3: Costa, E. e Simões, A. (2015). Inteligência Artificial Fundamentos e Aplicações, 3.ª edição, FCA.

REDES NEURAIS / INTELIGÊNCIA ARTIFICIAL LISTA DE EXERCÍCIOS 6

*Capítulo 3 (Russel & Norvig)

Inteligência Artificial - IA

Resolução de Problemas: Busca Heurística

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Agentes baseados em metas Capítulo 3 Parte I

Busca em Espaço de Estados a

Busca no espaço de estados

Agentes que resolvem problemas através de busca Capítulo 3 Parte I

Resolução de problemas por meio de busca. Inteligência Artificial. Busca. Exemplo: Romênia. Exemplo: Romênia 8/23/2010

BUSCA CEGA OU SEM INFORMAÇÃO (parte 2 Resolução de problemas por busca) *Capítulo 3 (Russel & Norvig)

Inteligência Artificial

Tópicos Especiais: Inteligência Artificial

RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA (PARTE 1) *Capítulo 3 (Russel & Norvig)

SISTEMAS INTELIGENTES 1 PROF. TACLA/UTFPR/CPGEI-PPGCA

3. Resolução de problemas por meio de busca

Métodos de Busca: Busca sem Informação. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

meio de busca Seções 3.1, 3.2 e 3.3

INF 1771 Inteligência Artificial

Inteligência Artificial

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.4 e 3.5

Sistemas Inteligentes Lista de Exercícios sobre Busca e Agentes Inteligentes

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Jogos com Oponentes. March 7, 2018

Inteligência Artificial

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 02 Prof. Vitor Hugo Ferreira

Transcrição:

Estratégias de Busca Cega Encontram soluções para problemas pela geração sistemática de novos estados, que são comparados ao objetivo. São ineficientes na maioria dos casos: utilizam apenas o custo de caminho do nó atual ao nó inicial (função g(n)) para decidir qual o próximo nó da fronteira a ser expandido. Essa medida nem sempre conduz a busca na direção do objetivo.

Estratégias de Busca Heurística Utilizam conhecimento específico do problema que pode ser usada para guiar o processo de busca. Aplicam uma função que avalia a um nó particular e prediz a qualidade dos seus nós sucessores: A função avaliação f(n) estima o custo de caminho do nó atual até o objetivo mais próximo utilizando uma função heurística. A função heurística h(n) estima o custo do caminho mais barato do estado atual até o estado final mais próximo. f(n) = g(n) + h(n)

Os problemas de IA empregam heurísticas, basicamente, em duas situações: 1. Um problema pode não ter uma solução exata por causa das ambiguidades inerentes na sua formulação ou pela disponibilidade dos dados. Exemplos: Diagnóstico médico, Sistemas de visão. 2. Um problema pode ter uma solução exata, mas o custo computacional para encontrá-la pode ser proibitivo. Exemplo: Jogo de xadrez.

Uma heurística é apenas uma conjectura informada sobre o próximo passo a ser tomado na solução de um problema. A heurística é baseada na experiência e na intuição. Uma heurística pode levar um algoritmo de busca a uma solução sub-ótima ou, inclusive, levá-lo a não conseguir encontrar uma solução. As heurísticas podem falhar. George Polya define heurística como o estudo dos métodos e das regras de descoberta e invenção (Polya, 1945) relacionada com o termo grego original, o verbo eurisco ( Eu descubro ). Quando Arquimedes emergiu de seu famoso banho segurando a coroa de ouro, ele gritou Eureka! ( Eu descobri! ).

Exemplo... Porção do espaço de estados para o jogo-da-velha 9 8 N 0 de caminhos = 9! 5 7...

Exemplo... Os primeiros três níveis do espaço de estados do jogo-da-velha reduzidos por simetria. 3 movimentos iniciais: Para o canto Para o centro de um lado Para o centro da grade 6

Exemplo... A heurística do maior número de vitórias aplicada aos primeiros filhos do jogo-da-velha. Maior número de vitórias: maior número de linhas, colunas e diagonais ainda disponíveis.

Exemplo Espaço de estados reduzido heuristicamente para o jogo-da-velha. 8

Classes de algoritmos para Busca Heurística: 1. Busca pela melhor escolha (Best-First search): Greedy best-first search (Busca gulosa pela melhor escolha) A* 2. Busca com limite de memória (Memory Bounded Search): IDA* (Iterative Deepening A*) RBFS (Busca recursiva de melhor escolha) SMA* (Simplified Memory-Bounded A*)

Algoritmo geral: Busca pela Melhor Escolha - BME (Best-first search) Seleciona para expansão o nó que tiver o menor custo estimado até a meta (objetivo), segundo uma função de avaliação f(n). Tipicamente f(n) usa uma função heurística h(n) = custo estimado do caminho mais econômico do nó n até um nó objetivo (Restrição inicial: se n é um nó objetivo, h(n) = 0).

Uma forma de uso da informação heurística sobre um problema consiste em computar estimativas numéricas para os nós no espaço de estados; Uma estimativa indica o quanto um nó é promissor com relação ao alcance de um nó-objetivo; A ideia é continuar a busca sempre a partir do nó mais promissor no conjunto de candidatos; O programa de busca do melhor caminho (escolha) é baseado neste princípio.

A Busca do melhor caminho pode ser derivada de um refinamento da busca em largura. A Busca em largura sempre escolhe para expansão os menores caminhos-candidatos (isto é, os nós extremos menos profundos da busca). A Busca do melhor caminho refina este princípio calculando uma estimativa heurística para cada candidato e escolhe para expansão o melhor candidato de acordo com esta estimativa.

Greedy best-first search (Busca gulosa pela melhor escolha) Tenta expandir o nó mais próximo à meta, na suposição de que isso provavelmente levará a uma solução rápida. Avalia nós para expandir com base unicamente na função heurística: f(n) = h(n) Exemplo: encontrar a melhor rota (rota mais curta) de uma cidade a outra, num mapa usando a Função heurística h DLR (n) (DLR: distância em linha reta entre as cidades e a cidade-meta).

Exemplo: Localização de rotas na Romênia, usando h DLR (n) f(n) = h DLR (n) Objetivo: Bucareste Um mapa rodoviário simplificado de parte da Romênia. 14

Exemplo: Localização de rotas na Romênia, usando h DLR (n) f(n) = h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando h DLR (n) f(n) = h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando h DLR (n) f(n) = h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando h DLR (n) f(n) = h DLR (n) Objetivo: Bucareste

Exemplo Passo a Passo... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta h DLR. Os nós são identificados por seus valores de h.

Exemplo Passo a Passo... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta h DLR. Os nós são identificados por seus valores de h.

Exemplo Passo a Passo... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta h DLR. Os nós são identificados por seus valores de h.

Exemplo Passo a Passo... Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta h DLR. Os nós são identificados por seus valores de h.

Fases de uma busca gulosa pela melhor escolha para Bucareste, usando-se a heurística de distância em linha reta h DLR. Os nós são identificados por seus valores de h.

Busca pela melhor escolha - Busca Gulosa Não é completa Pode entrar em ciclos e não encontrar a solução se não detectar estados repetidos; Pode se perder em um caminho infinito e nunca retroceder para tentar outras opções. Não é ótima No exemplo encontrou caminho (Arad, Sibiu, Fagaras, Bucareste) que é 32km maior que (Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucareste) Dependendo do problema e da qualidade da heurística a complexidade pode ter uma redução substancial.

BME mais famoso : Busca A* Objetivo: Minimizar o custo total estimado da solução. Função de avaliação: f(n) = g(n) + h(n) g(n) = custo do caminho (distância) do nó inicial ao nó n h(n) = custo estimado do caminho (distância ) de menor custo de n ao nó final f(n) = custo estimado da solução de menor custo que passa por n. A* expande o nó de menor valor de f na fronteira do espaço de estados.

Exemplo: Localização de rotas na Romênia, usando a Busca A* f(n) = g(n) + h DLR (n) Objetivo: Bucareste Um mapa rodoviário simplificado de parte da Romênia.

Exemplo: Localização de rotas na Romênia, usando a Busca A* f(n) = g(n) + h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando a Busca A* f(n) = g(n) + h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando a Busca A* f(n) = g(n) + h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando a Busca A* f(n) = g(n) + h DLR (n) Objetivo: Bucareste

Exemplo: Localização de rotas na Romênia, usando a Busca A* f(n) = g(n) + h DLR (n) Objetivo: Bucareste

Exemplo Passo a Passo...

Exemplo Passo a Passo...

Exemplo Passo a Passo...

Exemplo Passo a Passo...

Exemplo Passo a Passo...

Exemplo Passo a Passo

Estágios em uma busca A* por Bucareste. Os nós estão rotulados f = g + h. Os valores de h são distâncias em linha reta para Bucareste. 38

A função heurística h(n) deve satisfazer as seguintes condições, para que a busca A* seja ótima: Admissibilidade. Consistência

Admissibilidade Uma heurística é admissível se nunca superestima o custo de atingir o objetivo. Como g(n) é o custo real para atingir n ao longo do caminho atual e f(n) = g(n)+h(n) então f(n) nunca irá a superestimar o verdadeiro custo de uma solução ao longo do caminho atual através de n A distância em linha reta é uma heurística admissível, pois, o caminho mais curto entre dois pontos quaisquer é uma linha reta Um algoritmo de busca que garantidamente encontre um percurso ideal para um objetivo, se este existir, é chamado de admissível (Nilsson, N. K. Principles of Artificial Intelligence, Morgan-Kaufmann, 1980).

Admissibilidade h(n) é o estimador, se ele for perfeito então A* convergirá imediatamente para o objetivo Se o valor de h(n) for sempre zero, a busca será controlada por g(n). Se o valor de g(n) também for zero, a estratégia da busca será aleatória. Se o valor de g(n) sempre for 1, a busca será em amplitude E se h(n) não for nem perfeito nem zero? O algoritmo A* encontrará o caminho ideal (determinado por g(n)) para o objetivo, se este existir, desde que se garanta que h(n) não superestime o custo da busca.

Admissibilidade Para cada nó está indicado f(n) = g(n)+h(n) Ao subestimar f(b) jogam-se fora os esforços Mas, foi descoberto que B estava distante do objetivo e voltou-se para experimentar outro percurso.

Admissibilidade O algoritmo expandiu até G para obter um caminho de solução cujo comprimento é 4. Supondo que exista um caminho direto de D até uma solução, dando um caminho de comprimento 2, este nunca será encontrado, pois f(d) foi superestimado. Ao superestimar f(d), se fez parecer D tão ruim que se pode encontrar uma outra solução, pior, sem nunca expandir D.

Consistência Uma heurística h(n) será consistente se, para cada nó n e para cada sucessor n de n gerado por uma ação a, o custo estimado de alcançar o objetivo de n não for maior do que o custo do passo de chegar a n mais o custo estimado de alcançar o objetivo de n h( n) c( n,a,n') h( n') Desigualdade triangular: cada um dos lados de um triangulo não pode ser mais longo que a soma dos outros dois lados.

Consistência Exemplo: A distancia em linha reta h(n) de Neamt a Urzeni (objetivo) não é maior que o custo g(n) de Neamt a Iasi + custo h(n ) de Iasi a Urzeni, portanto a heurística é consistente.

Desempenho do A* A* é completa e ótima: nenhum outro algoritmo ótimo garante expandir menos nós que A*. A* expande todos os nós com f(n) C* C* é o custo do caminho de solução ótima A* pode expandir alguns nós no contorno objetivo (f(n) = C*) antes de selecionar um nó objetivo.

Desempenho do A* Custo de tempo: Crescimento exponencial do número de nós com o comprimento da solução(complexidade temporal). Custo memória: O (b d ) O maior problema é a complexidade espacial, guarda todos os nós gerados na memória, para possibilitar o backtracking. Assim, A* não é aplicável em muitos problemas de grande escala. Usa-se variantes que encontram soluções subótimas.

A* define Contornos f(n) C*, nós no interior de um contorno dado tem custos de f menores ou iguais ao valor de contorno.

Para reduzir os requisitos de memória para A* adapta-se a ideia de profundidade iterativa para o contexto de busca heurística : IDA* (Iterative Deepening A*) Igual ao profundidade iterativa, porém seu limite é dado pela função de avaliação ou f-custo (g+h), e não pela profundidade (d).

IDA* (Iterative Deepening A*) igual ao profundidade iterativa, porém seu limite é dado pela função de avaliação ou f-custo (g+h), e não pela profundidade (d). A cada iteração, o valor de corte é o menor f-custo de qualquer nó que excedeu o corte na iteração anterior. Prático para problemas com custos de passo unitário. Tem a mesmas dificuldades dos custos de valor real que a versão iterativa de custo uniforme.

RBFS (Busca recursiva de melhor escolha) Algoritmo recursivo simples, tenta imitar a operação de busca pela melhor escolha (BFS), mas usando apenas um espaço linear de memória Estrutura similar ao de busca em profundidade Ao invés de continuar indefinidamente seguindo o caminho atual, utiliza a variáveis f-limite para acompanhar o f-valor do melhor caminho alternativo disponível de qualquer nó ancestral do nó atual

RBFS (Busca recursiva de melhor escolha) Se o nó atual exceder esse limite, a recursão reverte para o caminho alternativo Com a reversão da recursão, substitui o f-valor de cada nó ao longo do caminho por um valor de backup o melhor f-valor de seus filhos O RBFS lembra o f-valor das melhores folhas da sub-árvore esquecida e pode, portanto, decidir se vale a pena re-expandir a sub-árvore algum tempo mais tarde

RBFS (Busca recursiva de melhor escolha)

RBFS (Busca recursiva de melhor escolha)

RBFS (Busca recursiva de melhor escolha)

A RBFS é mais eficiente do que a IDA*, mas também tem a geração excessiva de um mesmo nó. Ambas sofrem por usarem pouca memória e esquecem o que fizeram. SMA* (Simplified Memory-Bounded A*) Similar ao A*, expande a melhor folha até que a memória esteja cheia Como não pode adicionar novo nó, suprime o pior nó folha O RBFS faz o backup do nó esquecido em seu pai. O ancestral de uma subárvore esquecida conhece a qualidade do melhor caminho daquela subárvore. Com essa informação, o SMA* regenera a subárvore somente quando todos os outros caminhos foram mostrados como piores do que o caminho que ele esqueceu.

Solução de problemas usando técnicas de busca heurística: dificuldades em definir e usar a função de avaliação não consideram conhecimento genérico do mundo (ou senso comum ) Função de avaliação: compromisso (conflito) entre tempo gasto na seleção de um nó e redução do espaço de busca Achar o melhor nó a ser expandido a cada passo pode ser tão difícil quanto o problema da busca em geral.

Como escolher uma boa função heurística h? h depende de cada problema particular. h deve ser admissível não superestimar o custo real da solução Exemplo: jogo dos 8 números um número pode mover-se de A para B se A é adjacente a B e B está vazio busca exaustiva: 4 5 8 solução média em 22 passos fator de ramificação médio: 3 3 22 estados possíveis 9!/2 (controlando os estados repetidos) 1 6 7 2 3

Distância de Manhattan: distância de quarteirões ou distância de táxi. Recebeu o nome pois define a menor distância possível que um carro é capaz de percorrer numa malha urbana reticulada ortogonal, como se encontram em zonas como Manhattan. Algumas heurísticas possíveis: h 1 = n 0 de elementos em posições erradas h 1 = 8 h 2 = soma das distâncias de cada elemento à posição final - objetivo (city block distance - Manhattan distance) h 2 = 3+1+2+2+2+3+3+2=18

2 8 3 1 6 4 (4) 7 5 Exemplo: Espaço de estados gerado com h 1 (n) (para cada estado está indicado entre parênteses o valor da função heurística): 2 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 (5) (3) 2 8 3 1 4 7 6 5 2 3 1 8 4 7 6 5 (3) (3) 2 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 (6) (4) Estado Inicial Estado Objetivo 8 3 2 1 4 7 6 5 (3) 2 8 3 7 1 4 6 5 (4) 2 3 1 8 4 7 6 5 (2) 2 3 1 8 4 7 6 5 (4) 2 8 3 1 6 4 7 5 1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 (1) Neste exemplo não são considerados os nós que aparecem por mais de uma vez. 1 2 3 8 4 7 6 5 (0) 60 1 2 3 7 8 4 6 5 (2)

2 8 3 1 6 4 (5) 7 5 Exemplo: Espaço de estados gerado com h 2 (n) 2 8 3 1 6 4 7 5 (6) 2 8 3 1 4 7 6 5 (4) 2 8 3 1 6 4 7 5 (6) 2 8 3 1 4 7 6 5 (5) 2 3 1 8 4 7 6 5 (3) 2 8 3 1 4 7 6 5 (5) Estado Inicial 2 8 3 1 6 4 Estado Objetivo 1 2 3 8 4 2 3 1 8 4 7 6 5 (2) 2 3 1 8 4 7 6 5 (4) 7 5 7 6 5 1 2 3 8 4 7 6 5 (1) 1 2 3 8 4 7 6 5 (0) 61 1 2 3 7 8 4 6 5 (2)

h i domina h k h(n) i h k (n), n no espaço de estados No exemplo anterior: h 2 domina h 1, Isso pode ser traduzido na forma: A heurística 2 é melhor que a heurística 1, pois terá um menor fator de ramificação. Desde que h 1 e h 2 não superestimem o custo real.

Caso existam muitas funções heurísticas para o mesmo problema, e nenhuma delas domine as outras, usa-se uma heurística composta: h (n) = max(h 1 (n), h 2 (n),,h m (n))