Procura Informada. Capítulo 4

Documentos relacionados
Capítulo 4 Secção 1. Livro

Estratégias de Procura Informadas

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

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 *

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

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

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

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

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

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

lnteligência Artificial

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)

BUSCA LOCAL (PARTE 4 Resolução de problemas por meio de busca) (C)Russell & Norvig, capítulo 4

MAC425/5739 Inteligência Artificial 3. Busca informada

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

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

Buscas Informadas ou Heurísticas - Parte III

INF 1771 Inteligência Artificial

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

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

Estratégias de Busca Cega

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

Estratégias de Busca Cega

Inteligência Artificial

Inteligência Artificial Alameda e Taguspark

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

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

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

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

Inteligência Artificial

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial

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

Buscas Informadas ou Heurísticas - Parte II

Inteligência Artificial

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

Inteligência Artificial

Inteligência Artificial Alameda e Taguspark

Busca Heurística - Informada

Redes Neurais (Inteligência Artificial)

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

Busca em Espaço de Estados a

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.

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

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

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

*Capítulo 3 (Russel & Norvig)

Inteligência Artificial: 3. Resolução de problemas por meio de busca. Capítulo 3 Russell e Norvig; Seções 3.1, 3.2 e 3.3

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

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

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

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

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.

Resolução de problemas por meio de busca. CAPÍTULO 3 - Russell

Busca Heurísticas e Meta-Heurístca

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

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

PROCURA E PLANEAMENTO

Sumário. Decisões óptimas em jogos (minimax) Cortes α-β Decisões imperfeitas em tempo real

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

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

INTELIGÊNCIA ARTIFICIAL 2008/09

Algoritmos de busca local e problemas de otimização

Inteligência Artificial

Sistemas Inteligentes / Inteligência Artificial, Outros Métodos de Procura

Buscas Informadas ou Heurísticas - Parte I

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

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

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

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

Tópicos Especiais: Inteligência Artificial

Inteligência Artificial - IA

Inteligência Artificial

Transcrição:

Procura Informada Capítulo 4

Livro Capítulo 4 Secções 1-3

Resumo Estratégias de procura informadas Gananciosa A* IDA* Melhor Primeiro Recursiva (RBFS) Heurísticas Algorítmos de procura local Hill-climbing Simulated annealing Local beam Genetic algorithms

Árvore de Procura Uma estratégia de procura determina a ordem de expansão dos nós As procuras informadas usam conhecimento específico do problema para determinar a ordem de expansão dos nós Tipicamente este conhecimento é incorporado sob a forma de heurísticas (estimativas)

Procura Melhor Primeiro Ideia: usar uma função de avaliação f(n) para cada nó f(n) usa conhecimento específico do problema O melhor nó é o que tem o menor valor de f(n) Expandir primeiro o nó folha que tem o menor valor de f(n) Implementação: Nós na fila de folhas ordenados por ordem crescente da função de avaliação Nós folha = {n 1, n 2, n 3, } f (n 1 ) f (n 2 ) f (n 3 ) Casos especiais: Procura Gananciosa Procura A *

Roménia f(n) = distância linha recta (km)

Procura gananciosa Função de avaliação f(n) = h(n) (heurística) = estimativa do custo do caminho desde n até ao objectivo e.g., h dlr (n) = distância em linha recta desde n até Bucareste Procura gananciosa expande o nó que parece estar mais próximo do objectivo

Procura Gananciosa: exemplo Nós folha = {Arad(366)}

Procura Gananciosa: exemplo Nós folha = {Sibiu(253),Timisoara(329), Zerind(374)}

Procura Gananciosa: exemplo Nós folha = {Fagaras(176), Rimnicu Vilcea(193), Timisoara(329), Arad(366), Zerind(374), Oradea(380)}

Procura Gananciosa: exemplo Nós folha = {Bucharest(0), Rimnicu Vilcea(193), Sibiu(253), Timisoara(329), Arad(366), Zerind(374), Oradea(380)}

Procura gananciosa: propriedades Completa? Não pode entrar em ciclo exº, Iasi Fagaras = Iasi, Neamt, Iasi, Tempo? O(r m ) mas uma boa heurística pode reduzi-lo dramaticamente Espaço? O(r m ) no pior caso mantém todos os nós em memória Óptima? Não Semelhante à procura em profundidade, mas mais exigente em memória (como a procura em largura)

Procura A * Ideia: evitar expandir caminhos que já têm um custo muito elevado Função de avaliação f(n) = g(n) + h(n) g(n) = custo desde o nó inicial até n h(n) = estimativa do custo deste n até um estado objectivo f(n) = estimativa do custo total da solução = caminho desde estado inicial até estado objectivo (passando por n)

Procura A*: exemplo Nós folha = {Arad(366)}

Procura A*: exemplo Nós folha = {Sibiu(393), Timisoara(447), Zerind(449)}

Procura A*: exemplo Nós folha = {Rimnicu Vilcea(413), Fagaras(415), Timisoara(447), Zerind(449), Arad(646),Oradea(671)}

Procura A*: exemplo Nós folha = {Fagaras(415), Pitesti(417), Timisoara(447), Zerind(449), Craiova(526), Sibiu(553), Arad(646), Oradea(671)}

Procura A*: exemplo Nós folha = {Pitesti(417), Bucharest(450), Timisoara(447), Zerind(449), Craiova(526), Sibiu(553), Sibiu(591), Arad(646), Oradea(671)}

Procura A*: exemplo Nós folha = {Bucharest(418), Bucharest(450), Timisoara(447), Zerind(449), Craiova(526), Sibiu(553), Sibiu(591), Rimnicu Vilcea(607), Craiova(615), Arad(646), Oradea(671)}

A* é óptima? Não! Aqui fica um contra exemplo... A 8=0+8 B C 8=4+4 9=4+5 D E 8=8+0 9=6+3 9=5+4 7=7+0 G é objectivo óptimo mas D é o objectivo encontrado... F G

Heurísticas admissíveis Uma heurística h(n) é admissível se para cada nó n se verifica h(n) h * (n), onde h * (n) é o custo real do caminho desde n até ao objectivo. Uma heurística admissível nunca sobrestima o custo de atingir o objectivo, i.e. é realista ou optimista Exemplo: h dlr (n) (nunca sobrestima a distância real em estrada) Teorema: se h(n) é admissível, então a procura em árvore A * é óptima

A * é Óptima (prova) Consideremos um nó objectivo não óptimo G 2 que já foi gerado mas não expandido (nó folha). Seja n um nó folha tal que n está no menor caminho para um nó objectivo óptimo G (com custo C*). h(g 2 ) = 0 porque G 2 é objectivo f(g 2 ) = g(g 2 ) + h(g 2 ) = g(g 2 ) > C* porque G 2 não é óptimo f(n) = g(n) + h(n) C* porque h é admissível Logo f(n) C* < f(g 2 ) e G 2 não será analisado antes de n e G

A * é Óptima A * expande os nós por ordem crescente do valor de f Gradualmente adiciona contornos/ curvas de nível" (à semelhança dos mapas topográficos) que identificam conjuntos de nós Contorno i tem todos os nós com f f i, com f i < f i+1

A* em grafo é óptima? Não, mesmo que a heurística seja admissível! Aqui fica um contra exemplo... A 7=0+7 5=4+1 B C 7=6+1 descartado! 8=7+1 objectivo óptimo C D 8=8+0 D 9=9+0 objectivo encontrado C(8) é descartado por causa de C(7) e o objectivo encontrado (D(9)) não é óptimo...

A* e Procura em Grafo A* com procura em grafo não é óptima com heurísticas admissíveis Pode ser descartado um nó que está no caminho que leva à solução óptima pelo facto de o mesmo nó já ter sido explorado no passado Pode passar a ser óptima se for mantido o registo dos caminhos e do valor de f(n) associados a todos os nós já explorados Um nó/caminho só é descartado se o valor de f(n) for maior do que o valor registado Caso contrário a heurística tem de ser consistente! Teorema: se h(n) é consistente, então A* usando procura em grafo é óptima

Heurísticas Consistentes Garantem que se existirem dois caminhos para chegar ao mesmo objectivo óptimo então o caminho de menor custo é sempre seguido em primeiro lugar Uma heurística é consistente se para cada nó n, para cada sucessor n' de n gerado por uma acção a temos, h(n) c(n,a,n') + h(n ) desigualdade triangular um lado de um triângulo não pode ser maior que a soma dos outros dois lados c(n,a,n') é o custo associado ao caminho de n a n através de a

Heurísticas Consistentes Uma heurística é consistente se para cada nó n, para cada sucessor n' de n gerado por uma acção a temos, h(n) c(n,a,n') + h(n') desigualdade triangular um lado de um triângulo não pode ser maior que a soma dos outros dois c(n,a,n') é o custo associado ao caminho de n a n através de a Se h é consistente, então temos f(n') = g(n') + h(n') = g(n) + c(n,a,n') + h(n') g(n) + h(n) f(n) Logo, o valor de f(n) nunca decresce ao longo de um caminho

Propriedades de A* Completa? Sim (excepto se o número de nós com f f(g) for infinito) Tempo? Exponencial Espaço? Exponencial: mantém todos os nós em memória (no pior caso) Óptima? Sim

A* Iterativa (IDA*) IDA*: Iterative Deepening A* Versão iterativa em profundidade da procura A* Em cada iteração é incrementado o valor limite para f(n); valor de f(n) superior ao limite n não é analisado Em cada nova iteração o valor limite é actualizado com o menor valor de f(n) para os nós não explorados na iteração anterior Não requer tanto espaço como A*

Implementação (I) Função IDA* (problema) devolve solução estático: f-limite, limite actual para f raiz, um nó raiz CriaNó(EstadoInicial[problema]) f-limite f(raiz) loop solução, f-limite ProcProfContorno(raiz,f-limite) se solução não é nil então devolve solução se f-limite = então devolve falha

Implementação (II) Função ProcProfContorno (nó,f-limite) devolve solução,prox-f estático: prox-f, próximo limite inicialmente se f(nó) > f-limite então devolve soluçãovazia, f(nó) se TesteObjectivo[problema](nó) então devolve solução,f-limite paracada nó s em sucessores(nó) solução,novo-f ProcProfContorno (s,f-limite) se solução não é nil então devolve solução,f-limite prox-f MIN(prox-f,novo-f) devolve nil,prox-f

IDA*: exemplo l=f(a)=4 l=f(b)=f(c)=5 l=f(d)=8 A 4=0+4 A 4=0+4 A 4=0+4 B C B 5=3+2 C 5=2+3 B 5=3+2 C 5=3+2 5=2+3 5=2+3 D E 8=8+0 9=6+3 D 8=8+0 D E 8=8+0 9=6+3

Melhor Primeiro Recursiva (RBFS) Melhor primeiro (A*) com espaço linear (em p) Semelhante à procura em profundidade (implementação recursiva) Para cada nó explorado, mantém registo do caminho alternativo com menor valor de f Se o valor de f para o nó actual excede o valor em memória, a recursão permite recuperar o melhor caminho alternativo Uma alteração corresponde a uma iteração IDA* Óptima se h(n) é admissível

Melhor Primeiro Recursiva: exemplo

Melhor Primeiro Recursiva: exemplo

Melhor Primeiro Recursiva: exemplo

Heurísticas Admissíveis E.g., para o 8-puzzle: h 1 (n) = número de peças mal colocadas h 2 (n) = soma da distância de Manhattan (i.e., nº de quadrados até à localização desejada para cada peça) h 1 (StartState) =? 8 h 2 (StartState) =? 3+1+2+2+2+3+3+2 = 18

Dominância Se h 2 (n) h 1 (n) para todos nós n (ambas admissíveis) então h 2 domina h 1 h 2 é melhor para a procura Expande menos nós porque não é tão optimista / está mais próxima da realidade Custo da procura (média do nº de nós expandidos): prof=12 Profundidade Iterativa = 3,644,035 nós A * (h 1 ) = 227 nós A * (h 2 ) = 73 nós prof=24 Profundidade Iterativa = muitos nós... A * (h 1 ) = 39,135 nós A * (h 2 ) = 1,641 nós

Heurísticas Admissíveis: como inventá-las? Um problema com menos restrições é chamado problema relaxado O custo de uma solução óptima para um problema relaxado pode ser usado como uma heurística admissível para o problema original Exemplo do 8-puzzle: Se as regras do 8-puzzle são relaxadas tal que uma peça se pode mover para qualquer posição, então h 1 (n) devolve a solução com o menor número de jogadas Se as regras são relaxadas tal que cada peça se pode mover para qualquer posição adjacente, então h 2 (n) devolve a solução com o menor número de jogadas

Procura Local Em muitos problemas de optimização, o caminho que leva ao objectivo é irrelevante; o próprio estado objectivo é a solução (e.g., n- rainhas) Nestes casos, podemos usar procura local Mantém um único estado actual ; caminhos não são memorizados Em cada iteração procura melhorar o estado actual; útil em optimização Tipicamente, um estado transita para estados vizinhos PROBLEMA: não é completa!

Examplo: N-rainhas Problema: Colocar as N rainhas numa matriz n n de modo que nenhuma esteja em posição de atacar as outras Estado inicial gerado aleatoriamente Novos estados gerados a partir de movimentos para estados vizinhos

Hill-climbing (trepa colinas) ou procura local ganaciosa É um simples ciclo que se move continuamente na direcção de um valor melhor. Termina quando nenhum sucessor tem valores melhores.

Hill-climbing É como subir o Evereste com nevoeiro cerrado e amnésia (AIMA)

Hill-climbing Problema: dependendo do estado inicial, pode ficar preso a um máximo local

Procura com o Hill-climbing no problema das 8 rainhas h = nº de pares de rainhas que se estão a atacar No tabuleiro apresentado: h = 17 Num tabuleiro objectivo: h = 0 Inteiros correspondem ao valor de h para sucessores resultantes de mover rainha na respectiva coluna ( 12)

Procura com o Hill-climbing no problema das 8 rainhas Função sucessor: mexer uma rainha para outra posição na mesma coluna. Tipicamente, o Hill-clibing escolhe aleatoriamente entre os melhores sucessores, se houver mais do que um.

Procura com o Hill-climbing no problema das 8 rainhas Mínimo local com h = 1 Qualquer sucessor tem valor de h superior Não encontrou solução e não evoluiu para outro estado

Hill Climbing No caso das 8-rainhas Começando num estado aleatório Só resolve 14% dos casos (necessita em média de 4 iterações) Nos restantes casos fica parado ao fim de 3 iterações (em média)

Variantes do Hill Climbing Stochastic Hill climbing: escolhe aleatoriamente de entre os melhores sucessores First-choice Hill Climbing: gera os sucessores aleatoriamente até encontrar o primeiro com valores melhores que o estado actual e é esse que é escolhido (conveniente se um estado tiver milhares de possíveis sucessores) Random-restart Hill Climbing: conduz uma séria de procuras a partir de diferentes estados iniciais, gerados aleatoriamente; pára quando se encontra o objectivo

Hill Climbing Apesar de tudo: Converge (ou não) rapidamente Por exemplo, o Random-restart Hill Climbing consegue encontrar uma solução para as n- rainhas, em menos de um minuto, mesmo para 3 milhões de rainhas.

Procura Simulated Annealing Ideia: escapar ao mínimos locais permitindo que se façam movimentos maus, mas vai gradualmente decrementando a sua frequência Em vez de escolher o melhor sucessor, escolhe um sucessor aleatoriamente que tipicamente é aceite se melhorar a situação Em Português: têmpera simulada Consegue-se provar que se temperatura T diminuir suficientemente devagar (em função do schedule), então a procura simulated annealing vai encontrar um máximo global com probabilidade próxima do 1

Simulated Annealing Metáfora: imaginar a tarefa de pôr uma bola de ping-pong no buraco mais profundo de uma superfície cheia de buracos Uma solução é deixar a bola ir parar a um mínimo local e depois abanar a superfície de modo a tirá-la do mínimo local Simulated annealing começa por abanar muito no início e depois vai abanando cada vez menos

Simulated Annealing

Local Beam (procura em banda) Guarda a referência a k estados, em vez de 1 Começa com k estados gerados aleatoriamente Em cada iteração, todos os sucessores dos k estados são gerados Se algum é um estado objectivo, pára; caso contrário escolhe os k melhores sucessores e repete

Procura Local Beam Atenção que este algoritmo é mais do que correr k Random-restart Hill Climbings em paralelo!! Não têm de ser escolhidos sucessores de todos os estados Se um estado gera vários bons sucessores e os outros k-1 estados não, os estados menos promissores são abandonados No entanto, também pode ter problemas: pode haver pouca diversidade nos k estados Stochastic Beam Search: k sucessores são escolhidos aleatoriamente

Algoritmos Genéticos Variante da stochastic beam search Começa com k estados gerados aleatoriamente (população) tal como procura em banda Um estado é representados como uma string sobre um alfabeto finito (geralmente {0,1}) O estado sucessor é gerado através da combinação de dois estados (pais) Produz a próxima geração de estados por selecção, cruzamento e mutação A função de avaliação (fitness function) dá valores mais altos aos melhores estados

Algoritmos Genéticos Fitness function (b): nº de pares de rainhas não atacantes (min = 0, max = (8 7)/2 = 28) Probabilidade de selecção (c) em função da fitness function Exº 24/(24+23+20+11) = 31%

Algoritmos Genéticos O ponto de cruzamento é escolhido aleatoriamente São criados os filhos (d) Cada estado sofre mutações aleatórias (e)

Algoritmos Genéticos: exº cruzamento e mutação 32752411 24748552 32748552 32748152

Algoritmos Genéticos Há ainda muito trabalho a fazer de modo a perceber em que condições e com que parâmetros é que os algoritmos genéticos se comportam bem