Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1
Principais Tópicos 3. Resolução de problemas por meio de busca 3.1. Introdução à busca 3.2. Busca não-informada 3.3. Busca informada 3.4. Além da busca clássica 3.4.1. Introdução à otimização 3.4.2. Técnicas clássicas utilizadas em otimização 3.4.3. Classes de problemas 3.4.4. Algoritmos Genéticos 3.5. Busca competitiva 2
Outro exemplo de técnicas utilizadas em otimização Metaheurísticas 3.4.4. Algoritmos Genéticos Procedimento de alto nível usado para encontrar, gerar ou selecionar uma heurística que pode prover uma solução suficientemente boa em problemas de otimização com informação incompleta ou imperfeita e/ou com limitada capacidade computacional Podem, nestes problemas, encontrar boas soluções mais eficientemente que métodos tradicionais Amostram soluções do espaço de soluções em problemas em que este é muito grande para ser completamente examinado Assim, quando a capacidade de computação é limitada, não garantem necessariamente que o ótimo global será encontrado 3
Metaheurísticas Podem utilizar pouca informação sobre o problema a ser resolvido Podem, portanto, serem utilizadas em uma grande variedade de problemas Muitas metaheurísticas utilizam métodos estocásticos para vasculhar o espaço de soluções Exemplos: Simulated Annealing (Recozimento Simulado) Computação Evolutiva» Metaheurísticas populacionais (Exemplo: Algoritmos Genéticos) 4
Algoritmos Genéticos (AGs) Métodos adaptativos que são utilizados para a resolução de problemas de busca e otimização A inspiração inicial vem da Evolução por Seleção Natural Podem evoluir soluções para problemas do mundo real Problemas devem ser adequadamente codificados Deve haver uma forma de avaliar as soluções apresentadas https://www.youtube.com/watch?v=bbt0imn77zg 5
Exemplos de aplicações de Computação Evolutiva https://www.youtube.com/watch?v=u2t77mqmjiy https://www.youtube.com/watch?v=qv6uvoq0f44&feature=youtu.be 6
Mitchell, M. Complexity: A Guided Tour. Oxford University Press, 2009, p. 130. 7
Algoritmos Genéticos Utilizam uma população de soluções candidatas (indivíduos) Otimização ocorre em várias gerações A cada geração Mecanismos de seleção selecionam os indivíduos mais aptos Operadores de reprodução geram novos indivíduos 8
Em que os AGs são diferentes dos métodos de otimização tradicionais? O conjunto de parâmetros em um AG é codificado Os AGs não trabalham diretamente com os parâmetros AGs utilizam funções de avaliação para guiar o processo de busca, e não suas derivadas ou outras informações adicionais AGs podem utilizar regras de transição probabilísticas AGs podem permitir a mudança dos parâmetros durante o processo de otimização Mudando assim a característica do processo de busca (heurística) AGs buscam os ótimos através de uma população de pontos, e não de um ponto único 9
População inicial População final Avaliação População atual Seleção Reprodução 10
Algoritmo Genético Básico Início inicialize a população avalie a população inicial repita se critério de convergência for satisfeito interrompa fim se selecione indivíduos para a nova população aplique mutação e cruzamento nos indivíduos selecionados avalie os indivíduos da nova população fim repita Fim 11
Elementos População Codificação Função de avaliação Reprodução 12
População 3.4.4. Algoritmos Genéticos Formada por indivíduos» Possíveis soluções para um dado problema» Codificados em cromossomos strings (vetores) Apesar de algumas implementações considerarem indivíduos com mais de um cromossomo, o AG padrão considera que um indivíduo é formado por apenas um cromossomo» Cada elemento do cromossomo do AG é chamado de gene Os genes podem assumir valores ou símbolos ( alelos ) 13
População 3.4.4. Algoritmos Genéticos Existe geralmente um número fixo de indivíduos em uma população Em cada geração, a população velha é substituída por uma população nova (com novos indivíduos) Pop. antiga (ger. i) Pop. nova (ger. i +1) Ind. 1 (ger. i) Ind. 1 (ger. i+1) Ind. 2 (ger. i) Ind. 2 (ger. i+1) Ind. N (ger. i) Ind. N (ger. i+1) 14
Codificação 3.4.4. Algoritmos Genéticos Genes são combinados para formar strings ou vetores Exemplo: x i = [ 2 1 8 0 3 ] T 2 1 8 0 3 15
Codificação Genes podem ser representados por: Números Binários ( 0 ; 1 ) São tradicionalmente usados Exemplo: x i = [ 0 1 0 1 1 1 ] T Podem ser utilizados para codificar outras representações» Inteiros. Exemplo: x i = [ 0 1 0 ] T pode codificar o número inteiro 2» Reais» Caracteres: BCD, ASCII,...» Etc... 16
Codificação 3.4.4. Algoritmos Genéticos Genes podem ser representados por: Números Inteiros (... ; -1 ; 0 ; 1 ; 2 ;...) Exemplo: x i = [ -1 10 2-3 -98 1 ] T Números Reais Exemplo: x i = [ -1,23 10,65 2,99 ] T Caracteres ( A ; B ;... ) Exemplo: x i = [ t e s t e ] T Outros combinação de outras representações números complexos etc... 17
Função de Avaliação 3.4.4. Algoritmos Genéticos Também conhecida como Função de Aptidão (ou Função Custo ou Função de Fitness) Mede o grau de aptidão (fitness) da solução (indivíduo) É aplicada ao fenótipo do indivíduo O genótipo deve ser decodificado para que a aptidão do indivíduo seja calculada. Exemplo» genótipo: x i = [ 0 1 0 1] T» fenótipo: z i = 0x2 3 + 1x2 2 + 0x2 1 + 1x2 0 = 5» aptidão: f (z i ) = 1 / (1 + z i 2 ) = 0,0385 18
Função de Avaliação Cada problema tem sua própria função de avaliação Dada de acordo com os requisitos para a solução do problema Exemplo: projeto de ponte» Menor custo» Menor tempo de construção» Maior capacidade de carga 19
Função de Avaliação 3.4.4. Algoritmos Genéticos Muitas vezes, a função de avaliação não é conhecida (ou é difícil de ser computada com precisão) Deve ser possível, no entanto, obter a aptidão do indivíduo através do seu genótipo A aptidão de um indivíduo é importantíssima no processo de otimização Define quais indivíduos serão selecionados para se reproduzirem, gerando a nova população 20
Seleção Existem diversos métodos para a seleção de indivíduos para a fase de reprodução Exemplos: Elitismo Método da Roleta Torneio 21
Seleção Elitismo Indivíduos com maior aptidão são automaticamente selecionados Utilizado para que os melhores indivíduos não desapareçam do processo de otimização Geralmente, além de selecionar os melhores indivíduos, evita que estes sofram modificações pelos operadores genéticos 22
Seleção Método da Roleta A seleção natural Trabalha com probabilidades» As vezes, um indivíduo muito bom não sobrevive porque algum processo externo o afetou Escolhe preferencialmente, embora não exclusivamente, indivíduos com maior aptidão» Indivíduos mais aptos têm mais chances de serem reproduzidos» As vezes, um indivíduo muito bom pode ser filho do cruzamento de um indivíduo bom com um ruim 23
Seleção Método da Roleta Indivíduos com maior aptidão tem mais chances de serem reproduzidos A probabilidade de um indivíduo ser escolhido para se reproduzir é dada por sua aptidão relativa Aptidão do indivíduo normalizada pela soma das aptidões de todos os indivíduos da população f r z i N f j 1 f z i z j 24
Método da Roleta baseado em Aptidão Relativa x i z i f (z i ) f r (z i ) x 5 x 1 x 1 10110 22 2,23 0,14 x 4 x 2 11000 24 7,27 0,47 x 3 11110 30 1,05 0,07 x 3 x 2 x 4 01001 9 3,35 0,21 x 5 00110 6 1,69 0,11 25
Seleção Método da Roleta Indivíduos são escolhidos pelo método da roleta até que o número máximo de indivíduos permitido em uma população seja alcançado O nível de diversidade da população é maior quando o método da roleta é empregado (em relação ao elitismo) No entanto, mesmo no método da roleta, o nível de diversidade da população decresce no decorrer do processo de otimização 26
Reprodução 3.4.4. Algoritmos Genéticos Aplicado após a seleção de indivíduos Permite a obtenção de novos indivíduos O operadores genéticos de reprodução mais comuns são Crossover (cruzamento ou recombinação) Mutação 27
Reprodução 3.4.4. Algoritmos Genéticos Crossover Recombinação de características dos pais durante a reprodução Permite que as próximas gerações herdem essas características Troca trechos dos cromossomos de dois indivíduos escolhidos durante a seleção Ocorre com uma probabilidade definida pela taxa de crossover p c Para cada par de indivíduos selecionados, gera-se um número aleatório com distribuição uniforme Ocorre crossover no par dado se o valor deste número for menor que p c 28
Reprodução 3.4.4. Algoritmos Genéticos Crossover Permite a exploração rápida do espaço de busca Exemplo Crossover de um ponto» Troca trechos (entre os dois cromossomos) delimitados por um ponto escolhido aleatoriamente 29
Crossover de 1 ponto Ponto de crossover Pai 1 Pai 2 0 1 0 0 0 1 1 Pais 0 0 1 0 1 0 1 Filho A Filho B 0 1 0 0 1 0 1 Filhos 0 0 1 0 0 1 1 30
Reprodução Mutação Gera diversidade genética Altera aleatoriamente um ou mais genes no cromossomo Assegura que a probabilidade de atingir qualquer ponto do espaço de busca nunca será zero 31
Reprodução 3.4.4. Algoritmos Genéticos Mutação» Aplicada a cada gene de cada indivíduo após o crossover com uma taxa de mutação p m Para cada gene de cada indivíduo selecionado, gera-se um número aleatório com distribuição uniforme Ocorre mutação no gene dado se o valor deste número for menor que p m» Taxa de mutação é geralmente pequena Ex.: p m = 0,01 Gene tem probabilidade de 1% de sofrer mutação 32
Reprodução 3.4.4. Algoritmos Genéticos Mutação A alteração depende da representação do gene Binária» O gene mutado recebe a negação de seu antigo valor (ou seja, se era igual a 0 fica igual a 1 e se era igual a 1 fica igual a zero) Inteiro ou Real» O gene pode ser mutado para receber qualquer valor entre os seus limites máximos e mínimos (distribuição uniforme)» O gene pode ser mutado adicionando um valor aleatório com distribuição normal com média zero e desvio padrão σ» O gene pode ser mutado para receber um acréscimo ou decréscimo no ser valor corrente 33
Mutação Binária Antes da mutação 0 1 0 0 0 1 1 Após a mutação 0 1 1 0 0 1 1 34
Convergência Se o AG estiver corretamente implementado, a população deve evoluir em gerações sucessivas Aptidão do melhor indivíduo e da média da população devem aumentar em direção a um ótimo global 35
-0,58-0,72-0,86-1 -0,62-0,44-0,24-0,02-0,16-0,3 0,14 0,12 0,52 0,26 0,9 0,68 0,54 0,4 0,96 0,82 3.4.4. Algoritmos Genéticos f (x,y) 1 0,8 0,6 0,4 0,2 0-0,2-0,4-0,6-0,8-1 Genótipo: x y y x 36
Critérios de Parada Tempo de execução Número de gerações Valor de aptidão mínimo e/ou médio Convergência Nas últimas k iterações não houve melhora nas aptidões 37
População Inicial Geralmente a população inicial é aleatória» Necessidade de executar o algoritmo várias vezes (com diferentes sementes aleatórias) Conhecimento pode ser inserido 38
Algumas áreas de aplicação Otimização de função numérica Otimização combinatória Ex.: Projetos Aprendizado de Máquina Determinação dos parâmetros de Redes Neurais Artificiais Bioinformática Ex.: Determinação de estrutura terciária de proteínas Determinação de Árvores Filogenéticas 39
Algumas áreas de aplicação Artes Ex.: Música Artes Gráficas http://evonet.lri.fr/ http://evonet.lri.fr/ http://evonet.lri.fr/ 40
Exercício 3.14. Considere que deseja-se colocar em um recipiente vários objetos escolhidos entre N objetos cujos pesos e valores são conhecidos. Os objetos no recipiente devem ser escolhidos de tal forma que a soma dos valores seja o máximo, desde que o peso total não ultrapasse o limite C. Suponha, por exemplo, que existam 9 objetos, cujos pesos e valores são dados na tabela, e que C=150 kg. Uma possível solução seria colocar no recipiente os objetos a, b, c, d, e, f, g, o que daria um peso total de 144 kg e um valor total de R$ 147. Objeto Peso (kg) Valor (R$) a 9 11 b 34 32 c 15 18 d 27 27 e 7 5 f 34 36 g 18 18 h 43 42 i 42 43 Projete um Algoritmo Genético para resolver este problema de otimização. a. Defina a codificação a ser utilizada b. Defina os operadores de reprodução que serão utilizados c. Defina o mecanismo de seleção que será utilizado d. Defina a função de avaliação (fitness) a ser utilizada. Justifique todas as suas escolhas. 3.4.4. Algoritmos Genéticos 41
Sugestão de Leitura Capítulo 4, Seção 4.1.4 do livro: RUSSEL, S. J. & NORVIG, P. (2013). Inteligência Artificial, 3ª ed., Campus. 42