V.0, V.Lobo, EN/ISEGI, 0 ópicos Métodos modernos de pesquisa e Optimização Victor Lobo Introdução Métodos matemáticos clássicos Método de Monte Carlo Hill- Climbing Simulated Annealing Algoritmos Genéticos abu Search antos algoritmos novos!!! Introdução Propriedades de f(x) Problema de optimização Dada uma função f(x) encontrar o seu óptimo (máximo ou mínimo) Cada um faz a sua pesquisa!!! Problema de pesquisa Seja um ponto inicial Encontrar o óptimo da função f(x) Problema de pesquisa em paralelo Seja um conjunto de pontos iniciais Encontrar o óptimo da função 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 Gradiente Optimização com restrições Multiplicadores de Lagrange Optimização Inteira Investigação operacional Métodos heurísticos Hill- Climbing Simulated Annealing Algoritmos Genéticos abu Search Exemplos Outros Exemplos f sin ( ) ( x + y ) x, y = g( x, y) = 00( x ) ( ) ( x + y ) y + x 0-000 -000-000 x - - 0 0 y - - Problema das N- Rainhas Qual a função de optimização Problema de satisfação de restrições X i = {, L, N} X j X i j i X j X i ± ( j i) j i, j {, L, N} > 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,,t n )que minimize o custo mínimo n c iti i=
V.0, V.Lobo, EN/ISEGI, 0 Mais exemplos 0- 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 antos 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 Estado Conjunto dos descendentes Espaço de estados x Soluções Vizinhas x Solução inicial x 0 x x Relações de Vizinhaça Porque!!! Solução Vizinhança Espaço de soluções x 0 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 a N sem repetições Exemplo do operador Mudar duas das posições seleccionados aleatoriamente x x Método do gradiente Seja uma função f(x,, x n ) derivável. O mínimo de f(x,, x n ) é dado por t+ t f ( X ) x = x η i i xi X = X i =, L, n t = 0, L, t ( X ) X 0 X = X 0 ± η f = X O máximo de f(x,, x n ) é dado por t+ t f ( X ) xi = xi + η xi X = X i =, L, n t = 0, L, t Método do Gradiente Problema: maximizar f(x) em que f(x) é derivável Seleccionar uma solução inicial X 0 R n repita X = X 0 + η f ( X ) X = X 0 se f(x) > f(x 0 ) então X 0 = X até critério de paragem X 0 éa solução. Matemática!!!
V.0, V.Lobo, EN/ISEGI, 0 Hill-Climbing Hill-Climbing (ou stochastic hill-climbing) Problema: maximizar f(s) Seleccionar uma solução inicial s 0 S repita Seleccionar aleatoriamente s N(s 0 ) /* N(s 0 ) é a vizinhança de s0 */ se f(s) > f(s 0 ) então s 0 = s; Contador = 0; senão Contador = Contador + até critério de paragem s 0 é a solução. Exemplo do caixeiro viajante Solução Consideremos o espaço de soluções representados pela sequência de letras, em que só a primeira e a última são repetidas. O conjunto de vizinhança definida pela troca de duas letras Considere o ponto inicial ABCDEA E D A 0 9 9 9 C B ADBCEA ou AECBDA Problemas com o Hill-Climbing Pára nas seguintes situações Máximos locais Planaltos Arestas. Simulated Annealing
V.0, V.Lobo, EN/ISEGI, 0 Kirkpatrick (98) When optimising a very large system (i.e. a system with many degrees of freedom), instead of always going downhill, try to go downhill most of the time. Annealing Na física da matéria condensada refere-se como annealing o processo que se segue: Um sólido num banho quente é aquecido, aumentando a temperatura até um valor máximo. A essa temperatura, todo o material encontra-se na fase líquida e as partículas arrumam-se aleatoriamente A temperatura do banho quente é arrefecida suavemente, permitindo que todas as partículas se arrumem no estado de menor energia dessa estrutura. Em Português: Arrefecimento Simulado, Resfriado Simulado,... Algoritmo de Metropolis (9) Desenvolvido para simular a evolução de um sistema físico quente que tende para o estado de equilíbrio térmico. Em cada passo do algoritmo, um átomo do sistema é sujeito a um pequeno deslocamento aleatório. Calcula-se a variação E da energia do sistema. Se E < 0 o deslocamento é aceite. Se não o deslocamento só será aceite com uma probabilidade E onde é a temperatura p ( E) = e Função exp(-δ/) exp(-delta/) 0.8 0. 0. 0. 0 0 8 0 delta 0. 0 0 Simulated annealing Problema: minimizar f(s) Seleccionar uma solução inicial s0 S; uma temperatura inicial > 0; e uma função de redução de temperatura α repita repita Seleccionar aleatoriamente s N(s0) /* N(s0) é a vizinhança de s0 */ δ = f(s) - f(s0) se δ < 0 então s0 = s; Contador = 0; senão seja x um um número aleatório entre 0 e se x < exp(- δ/) então s0 = s ; Contador = Contador + até Contador = Nmax = α() até critério de paragem s0 é a solução. Algoritmos Genéticos
V.0, V.Lobo, EN/ISEGI, 0 Algoritmos Genéticos Esquema básico Baseado na simulação da dinâmica de populações A pesquisa é baseada em populações erminologia 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 P0 Selecção para a reprodução Substituição P P Reprodução Mutação P Operadores Selecção para a reprodução Selecção para reprodução Uniforme Roleta Integral orneio Reprodução ou Cross-over Depende do problema Cruzamento ponto Cruzamento de n pontos Mutação Depende do problema Inversão roca de dois genes Substituição Completa Parcial com selecção Uniforme Roleta orneio A hipótese de um indivíduo ser seleccionado para a reprodução é função do seu fitness Roleta Escolha aleatória e directamente proporcional ao seu fitness Integral Respeita a muito rigidamente o fitness relativo orneio Dois indivíduos seleccionados aleatoriamente disputam um torneio. O melhor passa. Um exemplo muito simples Encontrar o máximo da função f(x) = x no domínio [0, ] Qual a função de fitness? f(x) Como codificar? Utilizaremos uma codificação binária de bits Exemplo de cromossomas [00000] x = 0 [000] x = [0] x = 9 Processo de selecção para o exemplo (ª geração) Desc. Crom. X f(x) f i f f i f Selec. 00 9 0. 0.8 000 7 0.9.97 0000 8 0.0 0. 0 00 9 0.. Soma.00.0 Média 0..0 Máximo 0.9.97
V.0, V.Lobo, EN/ISEGI, 0 Cruzamento Cruzamento - Outro exemplo Ponto de cruzamento Sejam dois cromossomas de dimensão N. Seleccione-se aleatoriamente um ponto de corte do cromossoma ( (N- )). Cada um dos dois descendentes recebe informação genética de cada um dos pais Exemplo Cr - 000 Cr - 000 Seja o ponto de cruzamento Cr - 000 Cr - 000 Descendentes Desc - 00 Desc - 0000 pontos de cruzamento Semelhante ao caso anterior mas agora com a escolha de dois pontos de corte Exemplo Dois cromossomas pais Dois descendentes Processo de cruzamento para o exemplo (ª para ª geração) Processo de selecção para o exemplo (ª geração) Cromos. Cônjuge Ponto de Cruzamento Nova População Valor x f(x) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 79 0 0 0 0 0 0 Soma 7 Média 9 Desc. Soma Média Crom. 0 0 0 0 0 0 0 0 0 0 X 7 f(x) 79 f i f 0,08 0, 0, 0,.00 0, f i f 0,,, 0,8.0 Selec. 0 Máximo 79 Máximo 0,, Efeito de passagem de uma geração para outra ª Geração:, 9,, 8 ª Geração 7,,,.. n-ésima Geração (c/ mutação),,0,7 abu Search
V.0, V.Lobo, EN/ISEGI, 0 abu Search Exemplo do abu Search Algoritmo de pesquisa com um único ponto em memória Memoriza os últimos movimento abela de abu Proposto por Fred Glover (98, 990) Pretende-se construir um módulo de material isolante composto por 7 camadas de diferentes materiais Codificação 7 Operador de vizinhança rocar dois módulos entre si 7 abela de abu Iteração 0 7 abela de abu 7 7 f(x) = 0, 7,, 7 f(x) =, 0, - Iteração Iteração 7 f(x) = abela de abu 7,,, - 7 f(x) = 8 abela de abu 7, -, - 7, - 7 f(x) = 8 7, -, - 7 f(x) =, -7, -9
V.0, V.Lobo, EN/ISEGI, 0 Iteração - Aspiração Iteração 7 f(x) = 7 f(x) = 0 abela de abu 7,, 7, 0, -, - 7 f(x) = 0 abela de abu 7 7, 0, -, -, -, -8 Bibliografia Colin R, Reeves, Modern Heuristic echniques for Combinatorial Problems, McGraw-Hill David E. Goldberg, Genetic Algorithms in search Optimization & Machine Learning, Addison Wesley