Métodos de pesquisa e Optimização Victor Lobo Importância para os SAD Definir o caminho a tomar depois de se ter trabalhado os dados 1ª Fase: Analisar os dados disponíveis Visualização OLAP, relatórios Clustering 2ª Fase: Prever a evolução do sistema Regressão Classificação 3ª Fase: Escolher a linha de acção óptima Algoritmos de PESQUISA E OPTIMIZAÇÃO
Introdução Problema de optimização Dada uma função f(x) Encontrar o seu óptimo (máximo ou mínimo), variando o valor de x Cada um faz a sua pesquisa!!! Problema de pesquisa Seja um ponto inicial x 0 Encontrar o óptimo da função f(x) (ou pelo menos não violar as restrições), experimentando diversos valores de x i, obtidos a partir do ponto inicial Problema de pesquisa em paralelo Seja um conjunto de pontos iniciais Encontrar o óptimo da função f(x) Propriedades de f(x) Domínio R n I n Sub conjunto de R n ou de I n Símbolos Propriedades de f(x) Diferenciável Não diferenciável Optimização Matemática Métodos de gradiente Optimização com restrições Multiplicadores de Lagrange Optimização Inteira Vários em Investigação operacional Métodos heurísticos Hill-Climbing Simulated Annealing Tabu Search Monte Carlo Algoritmos Genéticos
Exemplos f 2 2 sin ( ) ( x + y ) x, y 2 2 ( x + y ) = g( x, y) = 100( x 2 y) + ( 1 x) 2 0-1000 -2000-3000 2 1 y 2 1 0 0 x -1-2 -1-2 Exemplos Encontrar o caminho mais curto para visitar N cidades Problema clássico do Caixeiro Viajante (TSP) Paradigma para os problemas NP-Completos Muitas instâncias do TSP: criptografia, controlo de qualidadem, etc,etc Encontrar o plano de investimentos a fazer sequencialmente que maximiza o lucro Definir o horário de trabalho de equipas que garante a melhor cobertura das necessidades com o menor custo Equipas de pilotos, turnos de operadores de call-centers
Outros Exemplos Problema das N- Rainhas Qual a função de optimização Problema de satisfação de restrições X i = X j X X j i, j { 1, L, N} i j i X i ± ( j i) { 1, L, N} j > i Assignment Problem Um conjunto de n pessoas é capaz de realizar n tarefas. O custo da pessoa i fazer a tarefa j é c ij. Encontrar a atribuição de tarefas (t 1,,t n )que minimize o custo mínimo n i= 1 c iti Mais exemplos 0-1 Knapsack problem Um conjunto de n itens deve ser empacotado numa mochila com capacidade de C unidades. Existem v i unidades de cada item i e usa c i unidades de capacidade. Determine o subconjunto I de items que podem ser empacotados de modo a maximizar tal que máximo v i i I ci C i I Tantos problemas giros!!!
Mais outro exemplo Coloração de um grafo Um grafo é definido por um conjunto de nós, alguns dos quais estão ligados entre si através de arcos. Dois nós ligados por um arco são designados por adjacentes. O problema da coloração de um grafo é atribuir cores a cada um dos nós de tal modo que dois nós adjacentes não tenham a mesma cor. O objectivo é encontrar o número mínimo de cores capazes de colorir um grafo. Uma nova terminologia Porque!!! Estado Solução Conjunto dos descendentes Vizinhança Espaço de estados Espaço de soluções Solução inicial x 0 x 1 x 4 Soluções Vizinhas x 2 x 3 Relações de Vizinhaça x 0 x 1 x 2
Codificação dos estados e operadores Domínios em R n Codificação: vector com um ponto em R n Cálculo dos descendentes Orientada: Método do gradiente Não orientada: Adicionar vector aleatório por exemplo gaussiano Domínios simbólicos Problema das N-rainhas Exemplos de codificação Vector de inteiros de 1 a N sem repetições Exemplo do operador Mudar duas das posições seleccionados aleatoriamente Algoritmos Genéticos
Utilização em SAD Definir uma função de custo Pode não ser analítica! Definir o que é um cromossoma Definir operadores de crossover/mutação Utilização em SAD Problema da codificação Determinante!!! Razão de sucesso/insucesso Bastante problem dependent Difícil ter software genérico para resolver qualquer problema Diferentes operadores de mutação/crossover
Algoritmos Genéticos Baseado na simulação da dinâmica de populações A pesquisa é baseada em populações Terminologia População - conjunto de descrições de indivíduos Cromossoma - descrição de um indivíduo Gene - Posição dentro do cromossoma Alelo - Valor existente no gene fitness - medida de adaptação do individuo ao meio ambiente Parte da área de Evolutionary Computation Esquema básico Selecção para a reprodução P1 Reprodução P0 P2 Substituição P3 Mutação
Operadores 1)Selecção para reprodução Uniforme Roleta Integral Torneio 2)Reprodução ou Cross-over Depende do problema Cruzamento 1 ponto Cruzamento de n pontos 3) Mutação Depende do problema Inversão Troca de dois genes 4) Substituição Completa Parcial com selecção Uniforme Roleta Torneio Elitismo 1) Selecção para a reprodução Calcular a fitness (robustez, ou adaptação) de cada indivíduo A probabilidade de um indivíduo ser seleccionado para a reprodução é função do seu fitness A função de fitness é a função que é maximizada! Roleta Escolha aleatória e directamente proporcional ao seu fitness Integral Respeita a muito rigidamente o fitness relativo Torneio Dois indivíduos seleccionados aleatoriamente disputam um torneio. O melhor passa.
2) Cruzamento entre cromossomas 1 Ponto de cruzamento Sejam dois cromossomas de dimensão N. Seleccione-se aleatoriamente um ponto de corte do cromossoma (1 (N- 1)). Cada um dos dois descendentes recebe informação genética de cada um dos pais Exemplo Cr 1-11101001 Cr 2-10101101 Seja o ponto de cruzamento 5 Cr 1-11101001 Cr 2-10101101 Descendentes Desc 1-11101101 Desc 2-10101001 Cruzamento - Outro exemplo 2 pontos de cruzamento Semelhante ao caso anterior mas agora com a escolha de dois pontos de corte Exemplo Dois cromossomas pais Dois descendentes
3) Mutação aleatória Trocar aleatoriamente bits 11101001 -> 11101011 Taxa de mutação Muito alta -> busca quase aleatória Muito baixa -> não aparecem alelos novos Aprendizagem Lamarckiana Utilizar optimização determinística sobre os cromossomas As características que são passadas à descendência são melhores que as originais 4) Substituição da população Completa A velha geração desaparece Com elitismo Os melhores da geração anterior passam sempre para a seguinte (não se perdem boas soluções) Outros métodos Torneio, roleta, etc
Um exemplo muito simples Encontrar o máximo da função f(x) = x 2 no domínio [0, 31] Qual a função de fitness? f(x) Como codificar? Utilizaremos uma codificação binária de 5 bits Exemplo de cromossomas [00000] x = 0 [01100] x = 12 [11101] x = 29 Processo de selecção para o exemplo (1ª geração) Desc. Crom. X f(x) f i f f i f Selec. 1 01101 13 169 0.14 0.58 1 2 11000 24 576 0.49 1.97 2 3 01000 8 64 0.06 0.22 0 4 10011 19 361 0.31 1.23 1 Soma 1.00 4.0 Média 0.25 1.0 Máximo 0.49 1.97
Processo de cruzamento para o exemplo (1ª para 2ª geração) Cromos. Cônjuge Ponto de Cruzamento Nova População Valor x f(x) 0 1 1 0 1 2 4 0 1 1 0 0 12 144 1 1 0 0 0 1 4 1 1 0 0 1 25 625 1 1 0 0 0 4 2 1 1 0 1 1 27 729 1 0 0 1 1 3 2 1 0 0 0 0 16 256 Soma 1754 Média 439 Máximo 729 Processo de selecção para o exemplo (2ª geração) Desc. Crom. X f(x) f i f f i f Selec. 1 0 1 1 0 0 12 144 0,08 0,33 0 2 1 1 0 0 1 25 625 0,36 1,43 1 3 1 1 0 1 1 27 729 0,42 1,66 2 4 1 0 0 0 0 16 256 0,15 0,58 1 Soma 1.00 4.0 Média 0,25 1 Máximo 0,42 1,66
Efeito de passagem de uma geração para outra 1ª Geração: 24, 19, 13, 8 2ª Geração 27, 25, 16, 12.. n-ésima Geração (c/ mutação) 31,31,30,27 Algumas questões Como lidar com restrições? Hard restrictions Os operadores cruzamento e mutação têm que gerar indivíduos viáveis Soft restrictions Todos os indivíduos são considerados, mas os inviáveis têm uma forte penalização de fitness Misturas entre vários tipos de algorítmos Genéticos para gerar pontos de partida para outras heurísticas Modelo das ilhas Convergência prematura
Problema do Caixeiro Viajante Visitar N cidades percorrendo a mínima distância possível Cromossoma: Sequência de cidades 1=Londres, 2=Roma, 3=Paris Cromossoma (solução) = [1 4 2 5 6 3 ] Operadores Crossover com recombinação (para que todas as cidades sejam visitadas * * Progenitor 1 (3 5 7 2 1 6 4 8) Progenitor 2 (2 5 7 6 8 1 3 4) Filho (8 5 7 2 1 6 3 4) (por recombinação ) Mutação Trocar dois bits (8 5 7 2 1 6 3 4) -> (8 5 3 2 1 6 7 4)
30 cidades geradas aletoriamente 120 100 80 y 60 40 20 0 0 10 20 30 40 50 60 70 80 90 100 x Solução i (Distância = 941) TSP30 (Performance = 941) 120 100 80 y 60 40 20 0 0 10 20 30 40 50 60 70 80 90 100 x
Solução j (Distância = 800) 44 62 69 67 78 64 62 54 42 50 40 40 38 21 35 67 60 60 40 42 50 99 y TSP30 (Performance = 800) 120 100 80 60 40 20 0 0 10 20 30 40 50 60 70 80 90 100 x Solução k (Distância = 652) 120 TSP30 (Performance = 652) 100 80 y 60 40 20 0 0 10 20 30 40 50 60 70 80 90 100 x
Melhor solução (Distância = 420) 42 38 35 26 21 35 32 7 38 46 44 58 60 69 76 78 71 69 67 62 84 94 y TSP30 Solution (Performance = 420) 120 100 80 60 40 20 0 0 10 20 30 40 50 60 70 80 90 100 x Evolução com as gerações TSP30 - Overview of Perform ance 1800 1600 1400 1200 Distance 1000 800 600 400 200 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 Generations (1000) Best Worst Average
Software Matlab Gatool Interface gráfico, que permite usar quaisquer funções de fitness/ cruzamento/ selecção Goat SuGaL Bibliografia Colin R, Reeves, Modern Heuristic Techniques for Combinatorial Problems, McGraw-Hill David E. Goldberg, Genetic Algorithms in search Optimization & Machine Learning, Addison Wesley