Inteligência Artificial

Documentos relacionados
Outras estratégias de Busca. February 27, 2017

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

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

Algoritmos Genéticos. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

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

11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados

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

Introdução a Algoritmos Genéticos

Inteligência Artificial

Buscas Informadas ou Heurísticas - Parte III

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

Capítulo 4 Secção 1. Livro

Inteligência Artificial

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

4 Métodos Existentes. 4.1 Algoritmo Genético

Algoritmos Genéticos

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

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Aprendizado por Reforço usando Aproximação

1. Computação Evolutiva

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Optimização Não-linear

Busca Local. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

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 *

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

3 Algoritmos Genéticos

Técnicas de Inteligência Artificial

Optimização Não-linear

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

Regressão Polinomial e Simbólica

1. Computação Evolutiva

Aprendizado por Reforço

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

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

Técnicas Inteligência Artificial

METAHEURÍSTICA Encontrar soluções boas ou até mesmo ótima

Computação Evolutiva. Aula 4 Usando AEs Prof. Tiago A. E. Ferreira

Algoritmos Evolutivos Canônicos

Otimização com Algoritmos Evolutivos

Algoritmos Genéticos

Algoritmos Genéticos

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

Métodos de pesquisa e Optimização

INF 1771 Inteligência Artificial

Sistemas de Apoio à Decisão Optimização V 2.0, V.Lobo, EN/ISEGI, 2011

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

1. Computação Evolutiva

Técnicas de Inteligência Artificial

Busca em Espaço de Estados a

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ ALGORITMOS GENÉTICOS. Metaheurísticas de Buscas

Um Estudo Empírico de Métodos Hiper-Heurísticos

3 Algoritmos Genéticos

Revisão sobre Busca 1

Introdução aos Algoritmos Genéticos

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO

Técnicas Inteligência Artificial

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

Computação Evolutiva Parte 1

Algoritmos Genéticos. Indivíduos em uma população competem por recursos e parceiros. Os indivíduos mais bem sucedidos em cada competição vão produzir

4 Metáforas de Optimização

Iterated Local Search. Helena R. Lorenço, Olivier Martinz and THOMAS STUTZLE

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

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

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Estratégias Evolutivas EEs. Prof. Juan Moisés Mauricio Villanueva

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

Codificação das variáveis: binária Iniciação da população: aleatória Avaliação: função aptidão Operadores. Critério de parada: número de gerações

Algoritmos Genéticos 1

Inteligência Artificial

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.

Problema de Satisfação de Restrições

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Métodos modernos de pesquisa e Optimização

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

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

Inteligência Artificial

INTELIGÊNCIA ARTIFICIAL

Otimização. Unidade 6: Algoritmo Genético. Jaime Arturo Ramírez. 7. Teoria do processo evolutivo num GA. 8. Aspectos avançados

Exemplo de Aplicação de Algoritmos Genéticos. Prof. Juan Moisés Mauricio Villanueva cear.ufpb.br/juan

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

Aplicação da Metaheurística Algoritmos Genéticos na solução do problema das n Rainhas

Sistemas de Apoio à Decisão Optimização V 1.0, V.Lobo, EN/ISEGI, 2005

Max Pereira. Inteligência Artificial

3 Otimização Aplicada a Reconstituição de Acidentes

Procura Informada. Capítulo 4

Inteligência Artificial

GAs são indicados em problemas complexos de otimização- onde se busca uma solução melhor:

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

Algoritmos Evolutivos para Otimização

Modelos Evolucionários e Tratamento de Incertezas

GA Conceitos Básicos. Capítulo 3 Prof. Ricardo Linden

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Pesquisa Operacional Aplicada à Mineração

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Transcrição:

Inteligência Artificial Fabrício Olivetti de França 07 de Junho de 2018 1

Heurísticas e Meta-Heurísticas 2

Heurística Heurística, derivada do grego encontrar ou descobrir, são técnicas para encontrar a solução de um problema sem garantia de obter algum ótimo (nem mesmo local) ou que seja racional. 3

Heurística Objetivo de obter um alvo imediato (ex.: colocar a rainha da coluna i na fileira de menor número de ataques). 4

Heurística George Pólya enumera algumas dicas para criar uma heurística e tentar resolver um problema (How to Solve it, 1945): Se não consegue entender o problema, desenhe uma imagem ou diagrama representativo. Se não consegue chegar do estado inicial até uma solução, tente partir da solução e chegar ao estado inicial. Se o problema é abstrato, crie um exemplo concreto. Tente resolver um problema mais genérico primeiro (possivelmente menos restritivo). 5

Heurística Métodos heurísticos tem a vantagem de serem adaptáveis para problemas que não temos um ambiente totalmente observável, apresente aleatoriedades, com espaço de estados muito grande e sem objetivo definido (dada uma métrica de qualidade). 6

Heurística Uma forma simples de busca heurística é a Busca Local que, em certas condições, garante encontrar um ótimo local em tempo tratável e utilizando memória constante. 7

Busca Local 8

Busca Local A Busca Local parte de uma solução inicial qualquer e, iterativamente, caminha para soluções vizinhas até um ponto de convergência. 9

Busca Local Na Busca Local, os passos para chegar até a solução tipicamente não são guardados em memória, ou seja, apenas tem por objetivo encontrar uma solução sem saber os passos que levaram até ela. 10

Busca Local Para aplicar um algoritmo de busca local precisamos definir o espaço de estados como uma função f S R que mapeia um estado a um valor numérico indicando a qualidade desse estado. 11

Busca Local objective function global maximum shoulder local maximum flat local maximum current state state space

Busca Local Um algoritmo de busca local é dito completo se sempre encontra um estado final (se existir); ele é dito ótimo se sempre encontra o melhor dos estados finais. 13

Exercício Imagine que em nosso Grid World aplicamos a seguinte busca local: Inicia com uma política aleatória Verifica cada vizinho como a alteração da política para apenas um estado Se pelo menos um vizinho for melhor que a política atual, substitua a política atual pelo melhor vizinho

Exercício A avaliação é feita pela simulação da política partindo do estado inicial limitando o número de passos em 100. Ela é uma busca local completa? Ela é ótima?

Exercício Considere agora um algoritmo que gera uma nova política aleatória em cada passo. Ela é uma busca local completa? Ela é ótima?

Hill-climbing O algoritmo de busca local hill-climbing ou de maior subida simplesmente repete iterativamente os passos: Avalia todoso os vizinhos do estado atual Caminha para o estado vizinho de maior valor, se maior que o atual E para quando não existem mais vizinhos melhores. 17

Hill-climbing A ideia geral do algoritmo é o de escalar uma montanha pelo lado mais íngrime, ou seja, de subida mais rápida. 18

Hill-climbing para 8-Rainhas Vamos definir o estado do problema das 8-rainhas como a lista de fileiras contendo uma rainha em cada coluna: 1 2 3 4 5 6 7 8 5 6 7 4 5 6 7 6 19

Hill-climbing para 8-Rainhas Esse estado representa esse tabuleiro: 18 13 13 13 18 13 13 13 17 17 18 18 13 17 18 20

Hill-climbing para 8-Rainhas Um estado vizinho é definido como alterar um dos números de nosso estado, movendo uma rainha para outra fileira: 1 2 3 4 5 6 7 8 5 6 7 4 5 6 7 6 1 2 3 4 5 6 7 8 5 1 7 4 5 6 7 6 21

Hill-climbing para 8-Rainhas Definimos como função-objetivo o número de pares de rainhas se atacando, com isso conseguimos mensurar o valor de cada estado vizinho: 18 13 13 13 18 13 13 13 17 17 18 18 13 17 18 22

Hill-climbing para 8-Rainhas Qual o valor da função-objetivo para esse estado? 18 13 13 13 18 13 13 13 17 17 18 18 13 17 18 23

Hill-climbing para 8-Rainhas Escolhendo sucessivamente o vizinho de menor valor (estamos minimizando), qual o estado final? eventualmente chegamos em um ótimo local com valor f(s) = 1: 18 13 13 13 18 13 13 13 17 17 18 18 13 17 18 24

Hill-climbing para 8-Rainhas Escolhendo sucessivamente o vizinho de menor valor (estamos minimizando), eventualmente chegamos em um ótimo local com valor f(s) = 1: 25

Hill-climbing para 8-Rainhas Para esse problema, considerando diferentes estados inicias, ele consegue chegar na solução em % dos casos. Por outro lado, ele chega em um estado final utilizando, em média, apenas 4 passos. 26

Hill-climbing para 8-Rainhas Alterando o algoritmo para permitir fazer uma mudança para um estado vizinho de mesmo valor quando nenhum vizinho melhor é encontrado, aumenta as chances de sucesso para 94%, porém elevando o número de passos médios para até 64 nos piores casos. 27

Hill-climbing Estocástico Escolhe aleatoriamente um dos vizinhos dentre aqueles melhores que o estado atual. A escolha pode ser proporcional a quanto melhora. 28

Hill-climbing com Reinício Aleatório Aplica o Hill-climbing em diferentes estados iniciais e retorna a melhor solução obtida. Essa estratégia consegue resolver o problema de 3 milhões de rainhas em menos de um minuto! 29

Recozimento Simulado O algoritmo de Hill-climbing é incompleto pois, dado um estado inicial, está limitado a vizinhança de seu ótimo local. 30

Recozimento Simulado Por outro lado, um algoritmo de caminhante aleatório é completo pois pode chegar em qualquer estado do espaço de estados, porém é ineficiente. 31

Recozimento Simulado Um meio termo é definido pelo algoritmo de Recozimento Simulado (Simulated Annealing). 32

Recozimento Simulado A ideia é que a escolha do próximo estado seja aleatória, se esse estado for melhor que o atual, é aceito, caso contrário ele substitui o atual com probabilidade e E T, sendo ΔE a diferença entre a função-objetivo desse estado com o estado atual e uma T a temperatura que é reduzida a cada iteração. 33

Recozimento Simulado O comportamento inicial do algoritmo é de ser mais permissivo quanto a piora do estado mas, com o passar das iterações, ele tende a aceitar apenas estados que apresentam melhoras. Se a temperatura for diminuída devagar o suficiente, esse algoritmo encontra o ótimo global com probabilidade se aproximando de 1. 34

Recozimento Simulado def SimulatedAnnealing(): s0 = solucaoinicial() T = 100 while T > eps: s = estadovizinhoaleatorio(s0) if f(s) > f(s0): s0 = s else: if random() <= exp((f(s)-f(s0))/t): s0 = s T = reduz(t) 35

Algoritmo Genético O Algoritmo Genético é uma meta-heurística populacional da família de Algoritmos Bio-Inspirados. Os Algoritmos Bio-Insprados são técnicas heurísticas inspiradas em fenômenos biológicos ou comportamentos observados na natureza. 36

Algoritmo Genético Especificamente, o Algoritmo Genético tem como inspiração o processo de recombinação e mutação do material genético durante o processo de reprodução. 37

Algoritmo Genético Cada solução é denominada de indivíduo e codifica um estado do problema. Essa codificação é denominada cromossomo. O algoritmo trabalha com um conjunto de soluções denominada população. 38

Algoritmo Genético Em cada passo do algoritmo, os indivíduos da população passam por um processo de recombinação (também denominado cruzamento). Os novos indivíduos passam por um processo de mutação, que altera uma pequena parte da solução e, finalmente, o conjunto de indivíduos pais e filhos são combinados e selecionados para gerar uma nova população. 39

Cruzamento O cruzamento tem o objetivo de formar novas soluções com a melhor parte de duas ou mais soluções da população. Ela seleciona n > 1 indivíduos e gera n novos indivíduos (denominados filhos) como a recombinação das partes dos indivíduos pais: 0 1 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 40

Mutação No processo de mutação, alguns poucos elementos da solução são alteradas aleatoriamente. Esse procedimento tem o objetivo de escapar de possíveis ótimos locais causando perturbações aleatória no estado representado pela solução: 0 1 0 0 1 1 0 1 0 1 1 1 41

Seleção Dada uma população de n indivíduos, o procedimento de seleção junta a população atual com a população filha gerada nos passos anteriores formando um conjunto de m > n indivíduos. Dessa população, são selecionados n indivíduos para formar a população da próxima iteração. 42

Seleção O procedimento mais utilizado de seleção é o torneio, nele dois ou mais indivíduos são selecionados aleatoriamente e o melhor deles é escolhido para fazer parte da próxima população. Esse processo é repetido n vezes até completar o conjunto de soluções. 43

Schema A ideia básica do funcionamento do Algoritmo Genético é a de que o processo de recombinação e a pressão seletiva do procedimento de seleção faz com que, com o passar das iterações, indivíduos com boas soluções parciais sejam mantidos na população e sua recombinação eventualmente levam a uma solução boa. 44

Schema No problema das 8 Rainhas, imagine a solução parcial 2, 4, 6,, essa solução não contém nenhum par de rainhas se atacando. Tal solução pode ser um bom bloco construtor para soluções completas que resolvam o problema. 45

Schema Imagine agora a solução parcial, 1, 5, 7, da mesma forma nenhum par de rainhas se atacam. Considere a combinação da solução parcial anterior com essa, teremos 2, 4, 6,,, 1, 5, 7. Nenhum par de rainhas se atacam, com essa solução parcial precisaríamos apenas resolver a posição das duas rainhas do meio para então encontrar a solução do problema. 46

8 Rainhas 24748552 24 31% 32752411 32748552 327482 32752411 23 29% 24748552 24752411 24752411 2444 20 26% 32752411 327524 322524 32543213 11 % 2444 244411 244417 (a) Initial Population (b) Fitness Function (c) Selection (d) Crossover (e) Mutation 47

8 Rainhas + = 48

Algoritmo Genético Em resumo o Algoritmo Genético pode ser definido como: def GA(): P = solucoesaleatorias(n) while naoconvergiu(): P = cruzamento(p) P = mutacao(p ) P = seleciona(p, P ) return melhor(p) 49

8-Puzzle Ao definirmos a representação, o procedimento de cruzamento e mutação para um determinado problema de busca, não só podemos implementar um algoritmo genético como também qualquer um dos algoritmos de busca local descritos anteriormente. 50

8-Puzzle Defina a representação, cruzamento e mutação para o problema 8-Puzzle. 51

8-Puzzle Representação: a quantidade de movimentos no pior caso desse problema é 31, o conjunto de ações pode ser definido utilizando dois bits: 00 (para cima), 01 (para baixo), 10 (para esquerda), 11 (para direita). 52

8-Puzzle Nosso cromossomo pode ser representado por um vetor de 62 bits, com isso o cruzamento é feito da mesma forma como ilustrada acima e a mutação é a simples troca de um bit. 53

8-Puzzle Outra possibilidade é a de codificar simbolicamente os movimentos em um vetor de tamanho 31, sendo que o cruzamento permanece o mesmo, mas a mutação se torna a troca de um símbolo por um outro. Qual a vantagem em relação a anterior? 54

8-Puzzle A função-objetivo pode ser a distância do estado final após seguir a sequência de instruções ao estado-alvo. 55

Grid World No nosso problema do Grid World podemos buscar por uma política ótima representando nossa solução como um vetor de posições equivalente a cada coordenada. Cada posição apresenta uma direção que deve ser seguida. 3 +1 2 1 1 1 2 3 4 56

Grid World Nossa função-objetivo é definida pela utilidade esperada ao seguir essa política em n simulações. 57

Super Mario World Como vocês fariam para o jogo Super Mario World? 58

Estratégias Evolutivas Um algoritmo relacionado ao Algoritmo Genético é a heurística Estratégias Evolutivas, criada inicialmente para trabalhar com problemas cujos estados são representados por valores contínuos. 59

Estratégias Evolutivas As Estratégias Evolutivas seguem um padrão similar ao anterior, elas são caracterizadas como ES(μ/ρ, λ) ou ES(μ/ρ + λ). Sendo: μ o número de soluções em uma população ρ quantas soluções serão escolhidas para o cruzamento λ o número de soluções-filhas criadas A, indica que apenas os filhos participarão do processo de seleção enquanto na estratégia + tanto a população pai como a filha são consideradas durante o processo. 60

Estratégias Evolutivas Uma solução no algoritmo ES é representado por um vetor de variáveis contínuas que correponde as variáveis do problema: x1 x2 x3 0.5-1.1 3.2 61

Estratégias Evolutivas O cruzamento mais comum é feito como a média ponderada de diferentes soluções, para duas solucões-pais: f = αp 1 + (1 α)p 2 Sendo 0 α 1 escolhido aleatoriamente. 62

Estratégias Evolutivas A mutação é uma perturbação aleatória pequena na solução, comumente com a soma de um vetor aleatório com distribuição gaussiana: f = f + N(0, 1) 63

Grid World Para o Grid World, podemos utilizar um vetor contínuo com elementos representando o valor de utilidade de cada estado. A função-objetivo é definida como a execução de n tentativas de seguir a política ótima para aquele vetor de utilidades. 64

Conclusão Em situações que lidamos com incerteza ou que o problema de busca por uma solução é intratável, podemos utilizar algoritmos de busca local ou busca heurística para encontrar uma solução, mesmo que sem garantia de obter o ótimo global. 65