private void checarSolucoes() { double avaliacao; piorAvaliacao = melhorAvaliacao = formigas[0].getAvaliacao(); for (Formiga formiga : formigas) { avaliacao = formiga.getAvaliacao(); if (melhorAvaliacao > avaliacao) { melhorAvaliacao = avaliacao; melhorSolucao = formiga.exibirCaminho(); } if (piorAvaliacao < avaliacao) { piorAvaliacao = avaliacao; piorSolucao = formiga.exibirCaminho(); } } }
private void atualizarFeromonio() { int tam = taxaFeromonio.length; double q = estrategia.getQ(); double qtdFeromDepositar, avaliacao; for (int i = 0; i < tam; i++) { qtdFeromDepositar = .0; for (Formiga formiga : formigas) { if (formiga.comtemNoVisitado(i) == true) { avaliacao = formiga.getAvaliacao(); qtdFeromDepositar += q / (avaliacao == 0 ? 1 : avaliacao); } } taxaFeromonio[i] += qtdFeromDepositar; } }
// Integrar avaliação com estrategia do testador private void avaliarSolucoes() { double total = .0; for (Formiga formiga : formigas) { Iterator<Integer> it = formiga.getNosVisitados().iterator(); int no; int soma = 0; while (it.hasNext()) { no = it.next().intValue(); soma += no; } formiga.setAvaliacao(soma); total += soma; } this.media = total / formigas.length; for (Formiga formiga : formigas) { formiga.setAvaliacao(Math.abs(formiga.getAvaliacao() - media)); } }