Maximização de Funções usando Simulated Annealing Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/prof/marcone
Definição do Problema O problema consiste em maximizar funções contínuas em um intervalo qualquer, utilizando uma representação que permita trabalhar com uma precisão p definida pelo usuário.
Vantagens do Método Heurístico Não faz restrição ao tipo de função a otimizar. Permite encontrar ótimos (ou valores próximos aos ótimos) de funções não diferenciáveis.
Implementação Determina o número de bits necessários para que a precisão de representação do número real seja no mínimo p: n >= [ln(xmax – xmin) – ln p] / ln 2 Gera um vetor binário v aleatório Converte o vetor binário em um valor decimal dentro do intervalo [xmin, xmax] (vide sexto slide) Aplica o SA, fazendo movimentos de troca no valor de um bit do vetor v.
Função exemplo sinc(x)= 1 para x = 0. Determinar o valor máximo da função f dada a seguir no intervalo [-2, 2]: f(x)=0.4 +sinc(4x) + 1.1sinc(4x +2) + 0.8sinc(6x-2) + 0.7sinc(6x-4). sinc(x)= 1 para x = 0. sinc(x)= sen(πx)/ πx para x <> 0.
Cálculo de x x = xmin +[ xmax - xmin]. b / int_maximo em que: b = valor inteiro (base dez) correspondente à representação do vetor binário v, o qual indica a solução corrente s; int_maximo = valor inteiro (base dez) correspondente à máxima representação inteira do vetor binário v, sendo o mesmo definido de acordo com a precisão escolhida.
Cálculo de x
Resultados: