320 likes | 462 Views
UPE – Caruaru – Sistemas de Informação Disciplina: Inteligência Artificial Prof.: Paulemir G. Campos. Métodos de Busca Heurística. Este material é uma adaptação do original elaborado por Ana Emília (UFPE / CIn, 2003). Roteiro da Aula. Estratégias de Busca com Informação Funções Heurísticas
E N D
UPE – Caruaru – Sistemas de InformaçãoDisciplina: Inteligência ArtificialProf.: Paulemir G. Campos Métodos de Busca Heurística Este material é uma adaptação do original elaborado por Ana Emília (UFPE/CIn, 2003)
Roteiro da Aula • Estratégias de Busca com Informação • Funções Heurísticas • Algoritmos de Busca Local e Problemas de Otimização • Referências
Busca Heurística: Estratégia • Como encontrar um barco perdido? • não podemos procurar no oceano inteiro... • Essa função de avaliação estima o custo de caminho do nó atual ao objetivo mais próximo utilizando uma função heurística. • Qual dos nós supostamente é o mais próximo do objetivo? Estratégias de busca heurística utilizam conhecimentoespecífico do problema na escolha do próximo nó a ser expandido e aplicam uma função de avaliação a cada nó na fronteira do espaço de estados.
Busca Heurística:Função Heuristica Função heurística h(n) • estima o custo do caminho entre o nó n e o objetivo • depende do problema Exemplo: • encontrar a rota mais barata de Jeremoabo a Cajazeiras • hdd(n) = distância direta entre o nó n e o nó final. Como escolher uma boa função heurística? • ela deve ser admissível i.e., nunca superestimar o custo real da solução • Distância direta (hdd) é admissível porque o caminho mais curto entre dois pontos é sempre uma linha reta
Busca Heurística- Busca pela melhor escolha Busca genérica onde o nó de menor custo “aparente” na fronteira do espaço de estados é expandido primeiro Duas abordagens básicas: 1. Busca Gulosa (Greedy search) 2. Algoritmo A*
Busca Heurística- Busca pela melhor escolha - Busca Gulosa • Semelhante à busca em profundidade com backtracking • Tenta expandir o nó mais próximo ao nó final com base na estimativa feita pela função heurística h. • Custo de busca é minimizado • não expande nós fora do caminho • Escolhe o caminho que é mais econômico à primeira vista • Não é ótima... (semelhante à busca em profundidade) • porque só olha para o futuro! • ... nem é completa: • pode entrar em “loop” se não detectar a expansão de estados repetidos • pode tentar desenvolver um caminho infinito • Custo de tempo e memória: O(bd) • guarda todos os nós expandidos na memória
Busca Heurística- Busca pela melhor escolha - Busca Gulosa Distância em linha reta para Bucharest:
Busca Heurística- Busca pela melhor escolha - Algoritmo A* • Tenta minimizar o custo total da solução combinando: • Busca Gulosa • econômica, porém não é completa nem ótima • Busca de Custo Uniforme • ineficiente, porém completa e ótima • Função de avaliação: • f(n) = g(n) + h(n), onde g(n) = distância de n ao nó inicial e 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. • Olha o futuro sem esquecer do passado! • Se h é admissível, f(n) nunca irá superestimar o custo real da melhor solução através de n. • Neste caso, pode-se encontrar a rota de fato mais curta entre Arad e Bucarest.
Distância em linha reta para Bucharest: 75 + 374 239 239 + 178 220 140 + 253 118 + 329 220 + 193 317 317 + 98 418 366 455 336 + 160 Busca Heurística- Busca pela melhor escolha - Algoritmo A*Como procurar a solução de um problema?Busca Heurística- Busca pela melhor escolha - Algoritmo A* 449 417 393 447 413 415 496
Busca Heurística- Define Contornos . f(n) f* (f é admissível) . fator de expansão próximo de 1
Busca Heurística- Busca pela melhor escolha - Algoritmo A*: análise do comportamento • 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 • 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 • f é não decrescente • nenhum outro algoritmo ótimo garante expandir menos nós.
Busca HeurísticaBusca com Limite de Memória Memory Bounded Search • Adaptação da técnica de aprofundamento iterativo ao conceito de busca heurística, com a finalidade de reduzir as exigências de memória do A*. • IDA* (Iterative Deepening A*) • 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). • necessita de menos memória do que A* mas continua ótima • RBFS*(Recursive Best-First-Search) • Limita o best-first-search através da utilização de um espaço linear. • Semelhante ao busca em profundidade recursiva. • Mantém no nó corrente a melhor alternativa a partir do ancestral do nó corrente. • SMA* (Simplified Memory-Bounded A*) • O número de nós guardados em memória é fixado previamente • Conforme vai avançando, descarta os piores • Mantém no nó corrente a melhor alternativa a partir do ancestral do nó corrente. • É completa e ótima se a memória alocada for suficiente • Atividade constante da paginação causando a degradação do desempenho do sistema.
Função Heurística: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 o custo real da solução • 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 5 8 1 6 7 2 3 Busca Heurística:(1) Relaxando o problema • Problema Relaxado: • versão simplificada do problema original, onde os operadores são menos restritivos • 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 320 estados possíveis • média de 3 de fator de expansão e 20 passos • 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)
Heurística : para jogo 8 números • 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=2+3+3+2+4+2+0+2=18) • Manhattan Distance d de dois pontos (x,y) e (u,v), d = |x-u| + |y-v|
Busca Heurística:(2) Usando informação estatística • Funções heurísticas podem ser “melhoradas” com informação estatística: • Cada solução ótima para o problema dos 8 números oferece exemplos, os quais podem ser aprendidos. • Um algoritmo de aprendizagem pode ser utilizados para predizer h(n) para os outros estados. • Utilização de características dos estados que são relevantes na avaliação, objetivando melhorar os resultados oferecidos pelo algoritmo de busca. • ex: Número de números fora do lugar ajuda a predizer a distância do estado atual até o estado alvo.
Busca Heurística :Qualidade da função heurística • 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*)2 + ... + (b*)d , onde N = total de nós expandidos para uma instância de problema d = profundidade da solução; • 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* muitopróximode 1.
Busca Heurística :Experimento com 100 problemas • Uma boa função heurística terá o b* muito próximo de 1.
Busca Heurística : Busca Local • Este espaço pode ser visto como uma superfície com vales e cumes • O caminho até o objetivo não importa. • Partida: solução inicial. • Iteração: melhoria sucessiva da solução corrente através de uma busca na sua vizinhança. • Parada: primeiro ótimo local encontrado (não existe solução melhor na vizinhança) • Heurística : utilizada para obter uma solução melhor na vizinhança. • Hill-Climbing (Subida da Encosta) • Estocástico • Simulated Annealing (Têmpera Simulada) • Local Beam Search (Busca em Feixe Local) • Estocástico • Algoritmos Genéticos
Busca Heurística :Problemas de Otimização • Os estados podem ser representados sobre uma superfície (igual a função de avaliação) • a altura de qualquer ponto na superfície corresponde a sua avaliação • O algoritmo se “move” pela superfície em busca de pontos mais altos/baixos • o ponto mais alto/baixo (máximo/mínimo global) corresponde à solução ótima
E1 = {N1, N2, N3, N4, N5} f(e1) = 10 • e3 = {N1, N2, N4, N3, N5} • f(e3) = 9 • e4 = {N1, N2, N3, N5, N4} • f(e4) = 12 • e2 = {N2, N1, N3, N4, N5} • f(e2) = 14 • e5 = {N4, N2, N1, N3, N5} • f(e5) = 10 Busca Heurística : Exemplo de Subida da Encosta: TSP (Caixeiro viajante) • O algoritmo não mantém uma árvore de busca: • guarda apenas o estado atual e sua avaliação • É simplesmente um “loop” que se move na direção crescente (para maximizar) ou decrescente (para minimizar) da função de avaliação • Cálculo da menor rotas com 5 nós: • estado inicial = (N1, N2, N3, N4, N5) • f = soma das distâncias diretas entre cada nó, na ordem escolhida (admissível!) • operadores = permutar dois nós quaisquer do caminho • restrição = somente caminhos conectados são estados válidos • estado final = nó onde valor de f é mínimo • e6 = {N5, N2, N4, N3, N1} • f(e6) = 11
Busca Heurística :Subida da Encosta • O algoritmo move-se sempre na direção que apresenta maior taxa de variação para f • Isso pode acarretar em 3 problemas: 1. Máximos locais 2. Planícies (platôs) 3. Encostas e picos
Busca Heurística :Subida da Encosta: análise • O algoritmo é completo? • SIM, uma vez que cada nó tratado pelo algoritmo é sempre um estado completo (uma solução) • O algoritmo é ótimo? • TALVEZ, quando iterações suficientes forem permitidas... • 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
Busca Heurística : Resfriamento/Recozimento Simulado. • Este algoritmo é semelhante à Subida da Encosta com grau de aleatoriedade porém sem reiniciar a busca • o algoritmo admite retroceder para situações piores com certa probabilidade que diminui com o tempo • Apesar de aumentar o tempo de busca, essa estratégia consegue escapar dos máximos locais • Analogia com cozimento de vidros ou metais: • processo de resfriar um líquido gradualmente até ele se solidificar
Busca Heurística :Local Beam Search • Este algoritmo guarda k estados na memória ao invés de apenas um. • Ele começa com k estados gerados randomicamente. • Em cada passo todos os sucessores de todos os k estados são gerados. • Se algum deles é o objetivo, o algoritmo para. • Caso contrário, é selecionado os k melhores sucessores e o processo é repetido. • Compartilhamento de informações de bons sucessores. • Abandono de sucessores ruins. • Problemas com pouca variação dos k estados(Versão mais simples). • Variação: Estocático Bean Search.
11101011011010 X1, X2, …, Xn 1437 gene fitness variáveis de decisão cromossomo Busca Heurística :Algoritmo Genético • Trabalham com uma população de soluções, em vez de uma só solução. • Terminologia
Busca Heurística :Algoritmos Genéticos:Como funcionam? • 1) Inicializa aleatoriamente uma população com N indivíduos • 2) Calcula fitness de todos os indivíduos da população • 3) Cria uma nova população através do operador de seleção • 4) Efetua “crossing-over” entre cada par de indivíduos • 5) Efetua mutação em cada gene, com probabilidade Pm • 6) Volta ao passo 2)
Busca Heurística :Algoritmos Genéticos • Critérios de Parada • Máxima aptidão atingida. • Número máximo de gerações. • Pouca diversidade na população. • Permanece sem melhorar a aptidão.
Algoritmo Genético Esquema Geral de Funcionamento
Antes de recombinar Depois de recombinar 1110100111 010 1110100111 100 pai filho 1 0011011010 100 0011011010 010 mãe filho 2 Antes de mutação Depois de mutação 1100101111 1100101101 gene 9 sofreu uma mutação Busca Heurística :Algoritmos Genéticos: Exemplo de Recombinação (Crossing-over) e Mutação • Com probabilidade Pm, mudar um gene de 0 para 1, ou de 1 para 0. • Este operador costuma ser usado com uma probabilidade muito baixa (ex: 0.001). • É útil para manter a diversidade na população
Busca Heurística :Algoritmos Genéticos:Recombinação,Esquema • Recombinação • De pares muito diferentes, produz muita diversidade. • A recombinação de blocos de genes eleva a granularidade da busca. • Esquema: • Blocos de genes localizados mais a esquerda • 246***** • Cromossomos que começam com este bloco de genes 246 são chamados de instancias. • Se a média da aptidão(fitness) das instancias crescer, significa dizer que o número das instancias também irá crescer na população. • Essa informação terá utilidade se existir um relacionamento entreos componentes do esquema.(ex: 8 rainhas). • Exige uma cuidadosa engenharia de representação.
Referências • Russel, S. e Norvig, P. Inteligência Artificial. Tradução de: “Artificial Intelligence: A Modern Approach”, 2 ed. Editora Campus, 2004. (Capítulo 4, seções 4.1, 4.2 e 4.3).