Ir ao conteúdo
  • Cadastre-se

Pseudocódigo para JAVA - Simulated Annealing


Posts recomendados

Alguém poderia por favor passar o pseudocódigo abaixo para a linguagem JAVA:

 

  • S0 → Configuração Inicial (Entrada);
  • Si → Configuração da Iteração i;
  • S → Configuração Final;
  • T0 → Temperatura Inicial;
  • Ti → Temperatura na Iteração i;
  • M → Número máximo de iterações (Entrada);
  • P → Número máximo de Perturbações por iteração (Entrada);
  • L → Número máximo de sucessos por iteração (Entrada);
  • α → Factor de redução da temperatura (Entrada);
  • f(Si) → Valor da função objetivo correspondente á configuração Si;
  • nSucesso → Contador de sucesso em uma iteração;
  • i e j → Variáveis de controle de Loops.

Além dos indicadores acima, consideremos as seguintes funções:

  • Perturba(S) → Função que realiza uma perturbação na Solução S;
  • Randomiza() → Função que gera um número aleatório no intervalo [0,1];
  • TempInicial() → Função que calcula a temperatura inicial;

Pseudo-Código Simulated Annealing
Inicio
/* Entradas do Algoritmo */
Ler (S0, M, P, L, α)
/* Inicialização das variáveis */
S = S0
T0 = TempInicial()
T = T0
j = 1
/*Loop principal – Verifica se foram atendidas as condições de termino do algoritmo*/
Repita

i = 1 nSucesso = 0 /*Loop Interno – Realização de perturbação em uma iteração*/ Repita Si = Perturba(S) ∆Fi = f(Si) – f(S) /*Teste de aceitação de uma nova solução*/ Se (∆fi ≤ 0) ou (exp(-∆fi/T) > Randomiza()) então S= Si nSucesso = nSucesso + 1 Fim-se i = i + 1 Até (nSucesso ≥ L) ou (i > P) /*Actualização da Temperatura*/ T = α.T /*Actualização do Contador de iterações*/ j = j + 1

Até (nSucesso = 0) ou (j > M)
/*Saída do Algoritmo*/
Imprima(S)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...