Busca com Informação e Exploração “Busca heurística”

Slides:



Advertisements
Apresentações semelhantes
Inteligência Artificial
Advertisements

Inteligência Artificial
Inteligência Artificial
Busca Otimizada Subida da Encosta (Hill Climbing)
Busca com Informação Busca com informação Busca Gulosa Busca A*
Disciplina: Inteligência Artificial
Programação Linear Método Simplex
Inteligência Artificial I
Inteligência Artificial
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Meta - heurísticas Prof. Aurora
Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná
Busca informada (heurística) Parte 2
1 Inventando Funções Heurísticas Como escolher uma boa função heurística h? h depende de cada problema particular. h deve ser admissível não superestimar.
1 Busca Heurística - Informada Estratégias de Busca Exaustiva (Cega) encontram soluções para problemas pela geração sistemática de novos estados, que são.
Dárlinton B. Feres Carvalho
Inteligência Computacional para Otimização
Busca Heurística - Informada
Busca Cega (Exaustiva)
Busca Heurística - Informada
Inventando Funções Heurísticas
Solução de problemas por meio de busca
Busca com informação e exploração
Missionários e Canibais
Buscando Soluções Busca Heurística.
Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Meta - heurísticas Prof. Aurora
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Estratégias de Busca com informação e exploração
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Resolução de problemas por meio de busca
Busca com informação e exploração
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Introdução aos Agentes Inteligentes Busca Heurística (Informada)
Disciplina: Métodos de Computação Inteligente – 1
Busca iterativa (otimização)
Introdução aos Agentes Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Busca Cega (Exaustiva) e Heurística
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
Inteligência Artificial
Tópicos em Sistemas Inteligentes
Resolução de Problemas por meio de Busca
Patrícia A. Jaques (orientadora)‏
Busca Combinatorial e Métodos de Heurística
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Programação Dinâmica.
Problemas NP-completos e Programação Dinâmica
Jacques Robin Humberto César Brandão de Oliveira
Busca com Informação e Exploração “Busca heurística”
Métodos Construtivos x Aprimoramento
Inventando Funções Heurísticas
Busca Heurística - Informada
Busca Competitiva Disciplina: Inteligência Artificial
Disciplina: Inteligência Artificial Universidade de Itaúna
Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega
Principais Tópicos Introdução Métodos de busca Busca cega
Ao final desta aula, a gente deve...
1 Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização)
Busca Cega (Exaustiva) e Heurística
Estratégias Busca Heurística (Informada)
Sistemas Inteligentes Busca Cega (Exaustiva)
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Transcrição da apresentação:

Busca com Informação e Exploração “Busca heurística” Eduardo Araujo Oliveira eao@cin.ufpe.br Patricia Endo pte@cin.ufpe.br

Busca heurística - Escopo Definição Estratégias de busca com Informação Funções heurísticas Algoritmos de busca local e problemas de otimização Busca local em espaço contínuo Agente de busca on-line e ambientes desconhecidos

Problema da busca cega Se a combinação de caminhos até o objetivo for exponencial a busca cega dificilmente encontrará a resposta do problema em um tempo polinomial.

Instância Como encontrar um barco perdido? Não podemos procurar no oceano inteiro... Informações relevantes: Velocidade do vento; Direção do vento; ...

Definição Como na busca cega, utiliza a definição do problema para efetuar a busca. Utiliza conhecimento específico do problema (informações) Não procura a melhor solução do problema, procura uma boa solução, ou simplesmente alguma solução.

Busca gulosa pela melhor escolha Estratégia: tenta expandir o nó supostamente mais próximo a origem (heurística), através de uma estimativa; Avalia nós através da função h(n) h(n) depende do problema

Exemplo Objetivo: Encontrar um bom caminho de Arad à Bucareste. h(n) = distância em linha reta do nó n até o objetivo (Bucareste)

Busca pela melhor escolha

Busca pela melhor escolha

Busca pela melhor escolha

Busca pela melhor escolha

Busca pela melhor escolha

Características da Busca Gulosa pela melhor escolha Não é ótima; É incompleta, pois pode entrar em loops infinitos;

Busca A* Avalia a combinação de duas funções: f(n) = g(n) + h(n); onde: g(n) é o custo real da origem até o nó n; h(n) é a distância em linha reta do objetivo até o nó n.

A*: Características Desde que h(n) não superestime o custo para alcançar o objetivo, A* é ótima. Completa. A* expande o nó de menor valor de f na fronteira do espaço de estados. Olha o futuro sem esquecer do passado, armazenando todos os caminhos anteriores.

A*

A*

A*

A*

Comportamento Custo de tempo: exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo Custo memória: O(bd) guarda todos os nós expandidos na memória para possibilitar o backtracking Eficiência ótima só expande nós com f(n)  f*, onde f* é o custo do caminho ótimo

A* de aprofundamento iterativo (AIA*) Igual ao aprofundamento iterativo, sua principal diferença é que seu limite é dado pela função de avaliação (f) (contornos), e não pela profundidade (d).

Busca heurística com limite de memória BRPM – Busca recursiva pelo melhor Semelhante a busca recursiva em profundidade; Diferença: Não desce indefinidamente. Ela controla a recursão pelo valor de f. Se existir algum nó em um dos ancestrais que ofereça melhor estimativa que o nó atual, a recursão retrocede e a busca continua no caminho alternativo.

BRPM Arad 366 Arad Sibiu 393 447 Fagaras Oradea R. Vilcea 413 415 526 Pitesti Sibiu 417 553

BRPM Arad 366 Arad Sibiu 393 447 Fagaras Oradea R. Vilcea 417 415 526 Bucareste 591 450

BRPM Arad 366 Arad Sibiu 393 447 Fagaras Oradea R. Vilcea 417 450 526 Pitesti Sibiu 417 553 Bucareste R. Vilcea 418 607

A* Limitado pela memória simplificado (LMSA*) Utiliza toda a memória disponível; Quando a memória está cheia, ele elimina o pior nó folha (maior custo de f) para continuar a busca.

A* Limitado pela memória simplificado (LMSA*) É completo, se a profundidade do nó objetivo mais raso for menor que o tamanho da memória. É ótimo se qualquer solução ótima for alcançável.

Funções heurísticas O desempenho da busca está totalmente relacionado a qualidade da função heurística utilizada. Como medir a qualidade de uma função heurística?

Exatidão heurística Uma maneira de caracterizar a exatidão heurística é através do fator de ramificação efetiva (b*). Considere N o número de nós gerados para alcançar o objetivo, e d a profundidade da solução. Então: N = 1 + b* + (b*)2 + ... + (b*)d Uma boa função heurística terá b* bem próximo de 1.

Exemplo 7 2 4 5 6 8 3 1 h1 = o número de blocos em posições erradas H2 = a soma das distâncias de suas posições objetivo Estado inicial 1 2 3 4 5 6 7 8 Estado objetivo

Funções heurísticas Se o custo real para alcançar n é 150. h1(n) = 56; //heurística 1 h2(n) = 140; //heurística 2 h2(n) >= h1(n); Dizemos que h2 domina h1. 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 h1 e h2 não superestimem o custo real.

Funções heurísticas 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 Existem estratégias genéricas para definir h: Relaxar restrições do problema; Resolver subproblemas de maneira exata.

Exemplo de problema relaxado Um bloco pode se mover do quadrado A para o quadrado B se A é horizontal ou verticalmente adjacente a B e B é vazio. Um bloco pode se mover do quadrado A para o quadrado B, se A é adjacente a B Um bloco pode se mover do quadrado A para B, se B está vazio Um bloco pode se mover do quadrado A para o quadrado B

Exemplo de subproblema * 2 4 3 1 1 2 3 4 * Estado objetivo Estado inicial

Busca com Informação e Exploração “Busca heurística” Busca LOCAL

Busca local Existem problemas, que o caminho até a solução é irrelevante: N-rainhas; Caixeiro Viajante Preocupação apenas com o estado corrente e estados vizinhos.

Vantagens de algoritmos de busca local Utilizam pouquíssima memória (geralmente constante); Freqüentemente encontram boa soluções em espaços de busca infinitos (contínuos) – para os quais, os algoritmos globais são inadequados. As heurísticas da busca local não estimam a distância do estado atual até o objetivo: Vantajoso para problemas nos quais não é trivial estimar esta distância.

Os algoritmos de busca local Estado Corrente; Problemas de Otimização;

Topologia de Espaço de Estados Máximo global Função objetivo Planície Máximo local Máximo local (plano) Espaço de estados

Subida da encosta Algoritmo básico Função Subida-de-Encosta(problema) retorna um estado Entrada: problema, um problema Variáveis locais: corrente : Nó vizinho: Nó corrente = criar-NO(EstadoInicial[problema]) Repita vizinho = acharMelhorSucessor(corrente) se vizinho.funcaoObjetivo <= corrente.funcaoObjetivo então retornar corrente; fim se corrente = vizinho; Fim repita

Diagrama de Atividades

Subida da encosta “Hill Climbing” O algoritmo procura o pico, onde nenhum vizinho tem valor mais alto. “Subindo o everest na neblina com amnésia” PASSO

Subida da Encosta Exemplo Porco Espinho ou Ourico

Exemplo: N-Rainhas

Exemplo: 8-Rainhas Estado inicial: colocação aleatória de uma rainha por coluna Operador: mudar um rainha de posição h = número de pares de rainha que se atacam Taxa de sucesso em encontrar solução ótima: 14% O que fazer quando não há melhor vizinho Passos “laterais” Limite de 100 passos laterais consecutivos permite atingir taxa de 94% O que fazer quando há muitos vizinhos igualmente melhor Seleção aleatória

Subida da encosta “Hill Climbing” Move na direção do incremento da função, terminando quando acha um pico 􀂄 Guloso: steepest ascent 􀂄 Problemas 􀂉 Máximos Locais; 􀂄 Máximo local plano; 􀂄 Planícies.

Variantes da Subida na encosta Subida de encosta estocástica: gera vários sucessores (vizinhança – N(S)), e escolhe ao acaso, um que ofereça melhora na função objetivo. Subida de encosta pela primeira escolha: O primeiro sucessor de N(S) gerado que oferece melhora, passa a ser o novo estado corrente. É muito utilizada quando cada estado possui milhares de sucessores. Subida de encosta com reinício aleatório: “se não tiver sucesso na primeira vez, continue tentando”. Gera estados iniciais ao acaso, parando ao encontrar um objetivo.

Subida na encosta Análise O algoritmo é completo? SIM, para problemas de otimizacao (onde cada NO tratado e’ um estado completo, uma solucao) NÃO, para problemas onde os NOS não são estados completos E.g. jogo dos 8-numeros O algoritmo é ótimo? TALVEZ, quando iterações suficientes forem permitidas...

Simulated Annealing Simula o processo de arrefecimento dos materiais – Arrefecimentos lentos conduzem a produtos mais puros, sem imperfeições Normalmente é interpretado como o algoritmo de busca local com os melhores resultados

Simulated Annealing Adaptação da Subida na encosta Pode adotar um estado que oferece perda (encosta abaixo). Capaz de fugir de máximos locais.

Simulated Annealing É necessário definir: – Uma função objetivo/custo – Qual o espaço de soluções S – Uma vizinhança sobre o espaço de soluções N(s0) – Função de redução de temperatura – Uma temperatura inicial T0

Temperatura no SA A temperatura, T0 inicialmente selecionada deve ser elevada Durante o processo de procura da solução, a temperatura vai decrescendo com base numa função de redução de temperatura O processo de pesquisa da solução repete-se até que a temperatura seja tão pequena que mais nenhum movimento seja aceito e o sólido esteja no seu estado fundamental

Algoritmo funcao RECOZIMENTO-SIMULADO(problema, escalonamento) retorna SOLUCAO entradas: problema, um problema escalonamento, um mapeamento de tempo para “temperatura” variaveis locais: corrente, um NO proximo, um NO T, uma “temperatura” que controla a prob. de passos descendentes corrente = CRIAR-NO (Estado-Inicial[problema]) para t =1 ate infinito faca T = escalonamento[t] se T = 0 entao retornar corrente proximo = um sucessor de corrente selecionado ao acaso ∆E = VALOR[proximo] – VALOR[corrente] se ∆E > 0 entao corrente = proximo senao corrente = proximo somente com probabilidade e ^ ∆E/T

Diagrama de Atividades

Aceitação Como a temperatura diminui com o decorrer das iterações, a probabilidade de aceitação também diminui, o que faz com que não sejam aceitos movimentos descendentes na função objetivo

Criterios de Parada O número máximo de iterações admitidas na resolução do problema A temperatura, quando esta tomar valores tão pequenos que não permitam mais nenhuma alteração na solução

Exemplo da Mochila Objetivo do problema – Maximizar o benefício face a capacidade de peso admitido pela mochila Dados do problema: – Capacidade máxima da mochila: b=23

Inicializacao Inicialização: Selecionar uma solução s0 qualquer: s0= (0 1 0 1 0) com valor f(s0)=6 Selecionar uma temperatura inicial T>0: T0 = 31 Selecionar uma função de redução de temperatura (escalonamento) Tk=αTk-1 com 0 ≤ α ≤ 1 (Função Geométrica) Nesta aplicação foi considerado o valor de α =0,8 Selecionar o número máximo de iterações admitida: Nmax=3

Exemplo da Mochila Selecionar um vizinho de s0 qualquer: ∑ j=1 ate 5, Wj Sj = 4+5+9=18 < 23 f(s)=2+2+4=8 ∆E = f(s)-f(s0)=8-6=2>0 ( Aceita-se a solução gerada s) T1=α*T0=0,8*31=24,8 • Contador =contador+1=0+1=1 – A nova solução admitida é: • s0= (1 1 0 1 0) com f(s0)=8

Exemplo da Mochila – Passo2 Selecionar um vizinho de s0 qualquer: • s=(1 1 1 1 0) ∑ j=1 ate 5, Wj Sj = 4+5+7+9 = 25 >23 (Não pertence à região admissível) • s=(1 0 0 1 0) ∑ j=1 ate 5, Wj Sj = 4+9= 13<23 f(s)=2+4=6 ∆E = f(s)-f(s0)=6-8=-2<0 (∆E < 0, calcula-se valor aleatório x  U[0,1]) » x=0,43 » exp- (∆E/T1)=exp-(2/24,8)=0,923 » Como x<exp-(δ/T1) então não se rejeita s • contador = contador +1=1+1=2 • T2=α*T1=0,8*24,8=19,84

Exemplo da Mochila – Passo3 ∑ j=1 ate 5, Wj Sj = 4+9+6= 19<23 f(s)=2+4+4=10 ∆E = f(s)-f(s0)=10-6=4>0 (Aceita-se a solução gerada s) contador=contador+1=2+1=3 e Nmax=3 logo verifica-se um dos critérios de paragem Solução final considerada: s0=(1 0 0 1 1) com f(s0)=10

Conclusao do Exemplo do SA • O decréscimo permitido no valor da função objetivo levou a uma solução melhor; •Verificou-se um decréscimo lento na temperatura; • Se nas restrições iniciais o número de iterações fosse muito elevado, o processo da busca da solução iria ser feito até que o valor da temperatura fosse muito perto de zero de forma a não serem permitidas mais mudanças.

Exemplo da Mochila no Subida na Encosta Calculo do menor peso na mochila: Estado inicial = 0 1 0 1 0 F = soma dos beneficios entre cada NO, na ordem escolhida Operadores = permutar dois NOS quaisquer do caminho Restricao = somente caminhos conectados sao estados validos Estado final = NO onde valor de F e’ minimo E1 = { 0 1 0 1 0 } F(01010) = 6 E2 = { 1 1 0 1 0 } F(11010) = 8!

Vantagens X Desvantagens É necessário um conhecimento profundo do problema para ajustar os parâmetros convenientemente Os parâmetros mais adequados para uma dada aplicação só podem ser estabelecidos por experimentação Tanto a temperatura inicial como a forma de arrefecimento influenciam os resultados finais Não é possível saber se a melhor solução encontrada é o ótimo global Permite encontrar soluções próximas da ótima, com um esforço computacional baixo 2. Método de busca local fácil de adaptar 3. Permite a degradação temporária da função objetivo 4. Converge para a solução ótima

Busca on-line Diferença entre agente off-line e on-line Off-line: calcula uma solução completa antes de entrar no mundo real e depois executam a solução sem recorrer as suas percepções On-line: opera pela intercalação de computação e ação. Executa uma ação, observa o ambiente e calcula a próxima ação

Busca on-line Problema de exploração O agente no estado de ignorância usa suas ações como experimentos para determinar o que fazer em seguida. Exemplos: Um robô colocado num novo edifício e tem que explorá-lo para elaborar um mapa que possa ser usado com a finalidade de ir de A para B. A descoberta gradual de um bebê de como o mundo funciona

Agentes de busca on-line Visão do agente Ações (s): retorna todas as ações permitidas do estado s Testa-objetivo (s) Custo (s,a,s´)

Agentes de busca on-line O agente não tem acesso prévio ao estado sucessor s´, nem ao valor do custo de s para s´ Memoriza e atualiza o espaço de estados Só pode expandir um nó que ele ocupa fisicamente

Exemplo Problema de labirinto simples Espaço de estados desconhecidos Inicia em S e tem que alcançar G

Busca on-line em profundidade Off-line: A medida que os nós são expandidos, eles são retirados da borda e a busca retorna para o nó seguinte mais raso que ainda tem sucessores inexplorados. On-line: O agente tem que regressar fisicamente.

Busca on-line em profundidade Armazena um mapa das relações entre ações e estados. Resultado [a, s] O agente mantém uma tabela, para cada estado, que lista os estados predecessores que o agente ainda não regressou. Se o agente esgotar todos os estados que ele pode regressar, a busca estará completa.

Hill-climbing Pelo fato de manter apenas um estado corrente na memória, já é um algoritmo de busca on-line. Fica paralisada (máximos locais) Reinícios aleatórios não podem ser usados, pois o agente não tem como se transportar para um novo estado.

Hill-climbing Alternativa: Percurso aleatório para explorar ambiente Desde que o espaço seja finito, encontra um objetivo ou completa a exploração Porém, o processo pode ser muito lento

ATRA* Aprendizado em Tempo Real A* Adição de memória em vez de aleatoriedade Armazena a melhor estimativa atual H(s) O agente vai para o nó vizinho mais promissor e atualiza o nó anterior: H(s) = C(s,a,s’) + H(s’)

ATRA*

ATRA*

ATRA*

ATRA*

ATRA*

UML Heuristic Search Class Diagram

* * * * * * * * * * * goal = true implies full = true Problem PbGraph State initial: Boolean goal: Boolean * Partial State Problem Full State Problem * * suc PbArc action:string cost: real PbNode * * all suc from partial state to partial state except suc to goal state MethodNode expanded:Boolean * suc * Path MethodArc * * * * MethodGraph PathSolution OptimalPathSolution NodeSolution OptimalNodeSolution Method search(pb: Problem):Solution gensuc(n:Node):Node[*] getFringe(g:MethodGraph):Node[*] Solution OptimalSolution PathSolution.last().PbNode.State.goal = true OneShotMethod IterativeMethod ExhaustiveMethod HeuristicMethod DFS BFS IterativeDeepening LocalMethod GlobalMethod

Busca heurística Dúvidas?