A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Resolução de Problemas por meio de Busca Prof. Alexandre Monteiro Recife.

Apresentações semelhantes


Apresentação em tema: "1 Resolução de Problemas por meio de Busca Prof. Alexandre Monteiro Recife."— Transcrição da apresentação:

1 1 Resolução de Problemas por meio de Busca Prof. Alexandre Monteiro Recife

2 Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n /gtalk: n Site: n Celular: (81)

3 3 Buscando Soluções Busca Heurística = Conhecimento

4 4 Busca Heurística ou Informada n 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: -são capazes de calcular apenas o custo de caminho do nó atual ao nó inicial (função g), para decidir qual o próximo nó da fronteira a ser expandido. -essa medida não necessariamente conduz a busca na direção do objetivo. Como encontrar um barco perdido? -não podemos procurar no oceano inteiro...

5 5 Busca Heurística n Estratégias de Busca Heurística utilizam conhecimento específico do problema na escolha do próximo nó a ser expandido barco perdido -correntes marítimas, vento, etc... n Aplica de uma função de avaliação a cada nó na fronteira do espaço de estados essa função estima o custo de caminho do nó atual até o objetivo mais próximo utilizando uma função heurística n Heurística do grego heuriskein, encontrar, descobrir introduzida em IA por George Polya em 1957 (livro How to Solve It) é conhecimento e, por isso, marcou quebra da IA com a pesquisa operacional

6 6 Funções Heurísticas n Função heurística (h) estima o custo do caminho mais barato do estado atual até o estado final mais próximo. são específicas para cada problema n Exemplo: encontrar a rota mais curta entre duas cidades h dd (n) = distância direta entre o nó n e o nó final. n Como escolher uma boa função heurística? ela deve ser admissível, i.e., nunca superestimar o custo real da solução ex. distância direta (h dd ) é admissível porque o caminho mais curto entre dois pontos é sempre uma linha reta

7 7 Busca pela Melhor Escolha (BME) Best-First Search n Busca genérica onde o nó de menor custo “aparente” na fronteira do espaço de estados é expandido primeiro n Duas abordagens básicas: 1. Busca Gulosa (Greedy search) 2. Algoritmo A* e suas variantes n Algoritmo: Função-InsereFunção-Avaliação Função-Insere - ordena nós com base na Função-Avaliação Busca-Melhor-EscolhaFunção-Avaliação função Busca-Melhor-Escolha (problema,Função-Avaliação) retorna uma solução Busca-GenéricaFunção-Insere Busca-Genérica (problema, Função-Insere)

8 8 Busca Gulosa n Semelhante à busca em profundidade com backtracking n Tenta expandir o nó mais próximo do nó final com base na estimativa feita pela função heurística h(n). n Função-Avaliação = Função Heurística h(n) n Algoritmo: Busca-Gulosa função Busca-Gulosa (problema) retorna uma solução ou falha Busca-Melhor-Escolha Busca-Melhor-Escolha (problema, h)

9 Exemplo: Ir de Arad a Bucharest

10 Busca Gulosa...

11 11 Busca Gulosa n Custo de busca mínimo! No exemplo, não expande nós fora do caminho n Porém não é ótima: No exemplo escolhe o caminho que é mais econômico à primeira vista, via Fagaras porém, existe um caminho mais curto via Rimnicu Vilcea n Não é completa: pode entrar em loop se não detectar a expansão de estados repetidos pode tentar desenvolver um caminho infinito n Custo de tempo e memória: O(b d )

12 12 Algoritmo A* n É ainda a técnica de busca mais usada n Tenta minimizar o custo total da solução combinando: Busca Gulosa: econômica, porém não é completa nem ótima Busca de Custo Uniforme (Djikstra): ineficiente, porém completa e ótima n Função de avaliação: f (n) = g (n) + h (n) g (n) = distância de n ao nó inicial h (n) = distância estimada de n ao nó final A* expande o nó de menor valor de f na fronteira do espaço de estados.

13 13 Algoritmo A* n Se h é admissível, f (n) nunca irá superestimar o custo real da melhor solução através de n. n Algoritmo: Busca-A* função Busca-A* (problema) retorna uma solução ou falha Busca-Melhor-Escolha Busca-Melhor-Escolha (problema, g+h)

14 14 Algoritmo A* : exemplo Ir de Arad a Bucharest

15 Algoritmo A*: outro exemplo Viajar de Arad a Bucharest

16 Usando A*

17 17 Algoritmo A*: análise do comportamento n A estratégia é completa e ótima n Custo de tempo: exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo -o fator de expansão fica próximo de 1 n Custo memória: O (b d ) guarda todos os nós expandidos na memória -para possibilitar o backtracking n Eficiência ótima só expande nós com f(n)  f*, onde f* é o custo do caminho ótimo -f é não decrescente nenhum outro algoritmo ótimo garante expandir menos nós

18 18 A* define Contornos. fator de expansão próximo de 1

19 19 Busca com Limite de Memória Memory Bounded Search n IDA* (Iterative Deepening A*) igual ao aprofundamento iterativo, porém seu limite é dado pela função de avaliação (f) (contornos), e não pela profundidade (d). necessita de menos memória do que A* mas continua ótima n SMA* (Simplified Memory-Bounded A*) O número de nós guardados em memória é fixado previamente -conforme vai avançando, descarta os piores nós (embora guarde informações a respeito deles) e atualiza os melhores valores dos caminhos É completa e ótima se a memória alocada for suficiente

20 IDA* - Iterative Deepening A* 20

21 21 SMA* (Simplified Memory-Bounded A*)

22 Busca - Funções Heurísticas e Algoritmos de Melhorias Interativas 22

23 23 Inventando Funções Heurísticas n Como escolher uma boa função heurística h? n h depende de cada problema particular. n h deve ser admissível não superestimar o custo real da solução n Existem estratégias genéricas para definir h: 1) Relaxar restrições do problema; 2) Usar informação estatística; 3) Identificar os atributos mais relevantes do problema 4) “Aprender” a heurística pela experiência -Aprendizagem de máquina

24 24 n Problema Relaxado: versão simplificada do problema original, onde os operadores são menos restritivos n Exemplo: jogo dos 8 números: operador original: um número pode mover-se de A para B se A é adjacente a B e B está vazio busca exaustiva  3 20 estados possíveis -Fator de ramificação  3 e d  20 passos n Operadores relaxados: 1. um número pode mover-se de A para B (h1) 2. um número pode mover-se de A para B se A é adjacente a B (h2) (1) Relaxando o problema

25 Estratégias para definir h (1) Relaxando o problema n O custo de uma solução ótima para um problema relaxado é sempre uma heurística admissível para o problema original. n Existem softwares capazes de gerar automaticamente problemas relaxados Se o problema for definido em uma linguagem formal n Existem também softwares capazes de gerar automaticamente funções heurísticas para problemas relaxados n Ex.: CPLEX

26 26 (2) Usando informação estatística n Funções heurísticas podem ser “melhoradas” com informação estatística: executar a busca com um conjunto de treinamento (e.g., 100 configurações diferentes do jogo), e computar os resultados. se, em 90% dos casos, quando h (n) = 14, a distância real da solução é 18, então, quando o algoritmo encontrar 14 para o resultado da função, vai substituir esse valor por 18. n Informação estatística expande menos nós, porém elimina admissibilidade: em 10% dos casos do problema acima, a função de avaliação poderá superestimar o custo da solução, não sendo de grande auxílio para o algoritmo encontrar a solução mais barata.

27 27 (3) Usando atributos/características n Características do problema podem ser usadas para mensurar o quão se está próximo da solução n ex. xadrez número de peças de cada lado somatório dos pesos das peças de cada lado (Peão-1,..., Rainha-9) número de peças sob ataque n Quando não se conhece a importância das características, pode-se aprendê-las (w 1 f 1 +w 2 f w n f n )

28 28 Qualidade da função heurística n Qualidade da função heurística: medida através do fator de expansão efetivo (b*). b* é o fator de expansão de uma árvore uniforme com N nós e nível de profundidade d N = 1 + b* + (b*) (b*) d, onde N = total de nós expandidos para uma instância de problema d = profundidade da solução; n Mede-se empiricamente a qualidade de h a partir do conjunto de valores experimentais de N e d. uma boa função heurística terá o b* muito próximo de 1. n Se o custo de execução da função heurística for maior do que expandir nós, então ela não deve ser usada. uma boa função heurística deve ser eficiente

29 29 n Heurísticas possíveis h1 = no. de elementos fora do lugar (h1=7) h2 = soma das distâncias de cada número à posição final (h2= =18) -Manhattan Distance d de dois pontos (x,y) e (u,v), d = |x-u| + |y-v| Heurísticas para jogo 8 números

30 30 Escolhendo Funções Heurísticas n É sempre melhor usar uma função heurística com valores mais altos, contanto que ela seja admissível. ex. h2 melhor que h1 h i domina h k  h i (n)  h k (n)  n no espaço de estados h 2 domina h 1 no exemplo anterior n 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)) Assim definida, h é admissível e domina cada função h i individualmente

31 Estratégias para definir h (2) Aprendendo a heurística Estratégias para definir h (2) Aprendendo a heurística n Definindo h com aprendizagem automática (1) Criar um corpus de exemplos de treinamento Resolver um conjunto grande de problemas -e.g., 100 configurações diferentes do jogo dos 8 números Cada solução ótima para um problema provê exemplos -Cada exemplo consiste em um par -(estado no caminho “solução”, custo real da solução a partir daquele ponto) 31

32 Estratégias para definir h (2) Aprendendo a heurística Estratégias para definir h (2) Aprendendo a heurística (2) Treinar um algoritmo de aprendizagem indutiva Que então será capaz de prever o custo de outros estados gerados durante a execução do algoritmo de busca 32

33 Experimento com 100 problemas Uma boa função heurística terá o b* muito próximo de 1. 33

34 Na sequencia.... n Algoritmos de Melhorias Iterativas 34

35 Algoritmos de Melhorias Iterativas n Dois exemplos clássicos Subida da encosta (Hill-Climbing) Têmpera simulada (Simulated Annealing) 35

36 Algoritmos de Melhorias Iterativas (Iterative Improvement Algorithms) n Idéia geral começar com um estado inicial -configuração completa, solução aceitável e tentar melhorá-lo iterativamente E.g., ajustar a imagem da TV com antena interna n Os estados são representados sobre uma superfície (gráfico) a altura de qualquer ponto na superfície corresponde à função de avaliação do estado naquele ponto 36

37 Exemplo de Espaço de Estados 37

38 Algoritmos de Melhorias Iterativas n O algoritmo se “move” pela superfície em busca de pontos mais altos Objetivos (onde a função de avaliação é melhor) -Objetivos são estados mais adequados n O ponto mais alto corresponde à solução ótima máximo global -nó onde a função de avaliação atinge seu valor máximo n Aplicações: problemas de otimização por exemplo, linha de montagem, rotas, etc. 38

39 Algoritmos de Melhorias Iterativas n Esses algoritmos guardam apenas o estado atual, e não vêem além dos vizinhos imediatos do estado Contudo, muitas vezes são os melhores métodos para tratar problemas reais muito complexos. n Duas classes de algoritmos: Subida da Encosta ou Gradiente Ascendente -Hill-Climbing -só faz modificações que melhoram o estado atual. Têmpera Simulada -Simulated Annealing -pode fazer modificações que pioram o estado temporariamente para fugir de máximos locais 39

40 Subida da Encosta - Hill-Climbing n O algoritmo não mantém uma árvore de busca: guarda apenas o estado atual e sua avaliação n É simplesmente um “loop” que se move na direção crescente da função de avaliação -para maximizar ou na direção decrescente da função de avaliação -para minimizar -Pode ser o caso se a função de avaliação representar o custo, por exemplo... 40

41 Subida da Encosta: algoritmo Hill-Climbing n função Hill-Climbing (problema) retorna uma solução variáveis locais: atual (o nó atual), próximo (o próximo nó) Estado-Inicial do P atual  Estado-Inicial do Problema loop do próximo  sucessor do nó atual de maior/menor valor (i.e., expande nó atual e seleciona seu melhor filho) ValorValor se Valor[próximo], para minimizar) então retorna nó atual (o algoritmo pára) atual  próximo end 41

42 Exemplo de Subida da Encosta Cálculo da menor rota com 5 nós n estado inicial = (N1, N2, N3, N4, N5) n f = soma das distâncias diretas entre cada nó, na ordem escolhida (admissível!) n operadores = permutar dois nós quaisquer do caminho n restrição = somente caminhos conectados são estados válidos n estado final = nó onde valor de f é mínimo n e1 = {N1, N2, N3, N4, N5} f(N1, N2, N3, N4, N5) = 10 n e2 = {N2, N1, N3, N4, N5} f(N2, N1, N3, N4, N5) = 14 n e3 = {N2, N1, N4, N3, N5} f(N2, N1, N3, N4, N5) = 9!!! 42

43 Subida da Encosta Problemas n O algoritmo move-se sempre na direção que apresenta maior taxa de variação para f n Isso pode levar a 3 problemas: 1. Máximos locais 2. Planícies (platôs) 3. Encostas e picos 43

44 Subida da Encosta Máximos locais n Os máximos locais são picos mais baixos do que o pico mais alto no espaço de estados máximo global - solução ótima n Nestes casos, a função de avaliação leva a um valor máximo para o caminho sendo percorrido a função de avaliação é menor para todos os filhos do estado atual, apesar de o objetivo estar em um ponto mais alto -essa função utiliza informação “local” e.g., xadrez: -eliminar a Rainha do adversário pode levar o jogador a perder o jogo. 44

45 Subida da Encosta Máximos locais n O algoritmo pára no máximo local só pode mover-se com taxa crescente de variação de f -restrição do algoritmo Exemplo de taxa de variação negativa -Jogo dos 8 números: -mover uma peça para fora da sua posição correta para dar passagem a outra peça que está fora do lugar tem taxa de variação negativa!!! 45

46 Subida da Encosta Platôs (Planícies) n Uma região do espaço de estados onde a função de avaliação dá o mesmo resultado todos os movimentos são iguais (taxa de variação zero) -f(n) = f(filhos(n)) n O algoritmo pára depois de algumas tentativas Restrição do algoritmo n Exemplo: jogo 8-números em algumas situações, nenhum movimento possível vai influenciar no valor de f, pois nenhum número vai chegar ao seu objetivo. 46

47 Subida da Encosta Encostas e Picos n Apesar de o algoritmo estar em uma direção que leva ao pico (máximo global), não existem operadores válidos que conduzam o algoritmo nessa direção Os movimentos possíveis têm taxa de variação zero ou negativa -restrição do problema e do algoritmo n Exemplo: cálculo de rotas quando é necessário permutar dois pontos e o caminho resultante não está conectado. 47

48 Subida da Encosta Problemas - solução n Nos casos apresentados, o algoritmo chega a um ponto de onde não faz mais progresso n Solução: reinício aleatório (random restart) O algoritmo realiza uma série de buscas a partir de estados iniciais gerados aleatoriamente Cada busca é executada -até que um número máximo estipulado de iterações seja atingido, ou -até que os resultados encontrados não apresentem melhora significativa O algoritmo escolhe o melhor resultado obtido com as diferentes buscas. -Objetivo!!! 48

49 Subida da Encosta: análise n O algoritmo é completo? SIM, para problemas de otimização -uma vez que cada nó tratado pelo algoritmo é sempre um estado completo (uma solução) NÃO, para problemas onde os nós não são estados completos -e.g., jogo dos 8-números -semelhante à busca em profundidade n O algoritmo é ótimo? TALVEZ, para problemas de otimização - quando iterações suficientes forem permitidas... NÃO, para problemas onde os nós não são estados completos 49

50 Subida da Encosta: análise n O sucesso deste método depende muito do formato da superfície do espaço de estados: se há poucos máximos locais, o reinício aleatório encontra uma boa solução rapidamente caso contrário, o custo de tempo é exponencial. 50

51 Têmpera Simulada -Simulated Annealing n Este algoritmo é semelhante à Subida da Encosta, porém oferece meios para escapar de máximos locais quando a busca fica “presa” em um máximo local, o algoritmo não reinicia a busca aleatoriamente ele retrocede para escapar desse máximo local esses retrocessos são chamados de passos indiretos n Apesar de aumentar o tempo de busca, essa estratégia consegue escapar dos máximos locais 51

52 Têmpera Simulada n Analogia com cozimento de vidros ou metais: processo de resfriar um líquido gradualmente até ele se solidificar n O algoritmo utiliza um mapeamento de resfriamento de instantes de tempo (t) em temperaturas (T). 52

53 Têmpera Simulada n Nas iterações iniciais, não escolhe necessariamente o “melhor” passo, e sim um movimento aleatório: se a situação melhorar, esse movimento será sempre escolhido posteriormente; caso contrário, associa a esse movimento uma probabilidade de escolha menor do que 1. n Essa probabilidade depende de dois parâmetros, e decresce exponencialmente com a piora causada pelo movimento, e  E/T, onde:  E = Valor[próximo-nó] - Valor[nó-atual] T = Temperatura 53

54 Têmpera Simulada: algoritmo função Anelamento-Simulado (problema, mapeamento) retorna uma solução variáveis locais: atual, próximo, T (temperatura que controla a probabilidade de passos para trás) Faz-NóEstado-Inicial atual  Faz-Nó(Estado-Inicial[problema]) for t  1 to  do T  mapeamento[t] Se T = 0 então retorna atual próximo  um sucessor de atual escolhido aleatoriamente ValorValor  E  Valor[próximo] - Valor[atual] Se  E > 0 então atual  próximo senão atual  próximo com probabilidade = e -  E/T 54

55 Têmpera Simulada n Para valores de T próximos de zero a expressão  E/T cresce a expressão e -  E/T tende a zero a probabilidade de aceitar um valor de próximo menor que corrente tende a zero o algoritmo tende a aceitar apenas valores de próximo maiores que corrente n Conclusão com o passar do tempo (diminuição da temperatura), este algoritmo passa a funcionar como Subida da Encosta 55

56 Têmpera Simulada n Implementação (dica) Gerar número aleatório entre (0,1) e comparar com o valor da probabilidade Se número sorteado < probabilidade, aceitar movimento para trás n Análise O algoritmo é completo O algoritmo é ótimo se o mapeamento de resfriamento tiver muitas entradas com variações suaves -isto é, se o mapeamento diminui T suficientemente devagar no tempo, o algoritmo vai encontrar um máximo global ótimo. 56

57 57 Heurística... por toda IA n A noção de heurística sempre foi além da busca e de uma formalização via função de um estado n Heurística escolha, prioridade, estratégia na busca de uma solução razoável onde não há solução ótima ou recurso para determiná-la No dia a dia: heurística para dirigir, namorar, estudar,... n Em IA: em todas as áreas como conhecimento de controle ex. escolha de regras a serem disparadas (SBC) ex. escolha de viés de generalização (aprendizagem)...

58 58 Referências n T. Mitchell. Machine Learning. McGraw Hill, New York, n Stuart Russell and Peter Norvig, Artificial Intelligence - A Modern Approach. Prentice Hall, 1995.


Carregar ppt "1 Resolução de Problemas por meio de Busca Prof. Alexandre Monteiro Recife."

Apresentações semelhantes


Anúncios Google