Algoritmo Genético
Por: cardososisabel18 • 26/5/2016 • Projeto de pesquisa • 2.999 Palavras (12 Páginas) • 325 Visualizações
Nome: Isabel dos Santos Cardoso.
RA: B74971-7.
Curso: Ciência da Computação.
Disciplina: IA.
Semestre: 4º Semestre.
public class ExRainhas {
private static int Totalrainhas = 8;
private static Random = new Random();
private static boolean Erro = false;
private static int MaiorIteracoes = 0;
private static int finalIteracoes = 0;
public static void main(String[] args) {
}
// Comeca com populacao fixo de 10 elementos
Set populacao = new HashSet();
criaPopulacao(populacao);
double mutacaoP = 0.10;
int totaliteracoes = 400000;
String elementoMelhor = null;
boolean Solucionado = false;
int melhorAceitacao = 0;
int i = 0;
int counter = 0;
for (i = 0; i < totaliteracoes; i++) {
elementoMelhor = GeneticoAlg(populacao, mutacaoP,
melhorAceitacao);
int aceitaAlg = aceitacao(elementoMelhor);
if (aceitaAlg > melhorAceitacao) {
mutacaoP = 0.10;
counter = 0;
println("novo aceitacao = " + aceitaAlg);
melhorAceitacao = aceitaAlg;
if (aceitaAlg == MAX_aceitacao) {
Solucionado = true;
break;
}
} else {
counter++;
if (counter > 1000) {
mutacaoP = 0.30;
} else if (counter > 2000) {
mutacaoP = 0.50;
} else if (counter > 5000) {
populacao.clear();
criaPopulacao(populacao);
mutacaoP = 0.10;
melhorAceitacao = -1;
}
}
}
if (Solucionado) {
println("Para melhor solucao " + i + " iteracoes");
println("REsolvido em =" + elementoMelhor);
println("Status de aceitacao =" + aceitacao(elementoMelhor));
} else {
System.out.println("Para elementos apos " "não há solucção"+ i
+ " iteracoes");
System.out.println("Melhor Elemento =" + elementoMelhor);
System.out.println("Status de aceitacao =" + melhoraceitacao(elementoMelhor));
Erro = true;
}
finalIteracoes += i;
if (i > MaiorIteracoes)
totaliteracoes = i;
}
private static void criarPopulacao(Set populacao) {
while (populacao.size() < 10) {
String elementoI = gerarIndividuo(8);
println("Elemento =" + elementoI);
populacao.add(elementoI);
}
}
//Mantem a melhor populacao e devolve o melhor elemento
private static String GeneticoAlg(Set populacao,
double mutacaoP, int aceitaNew) {
String melhor = null;
...