Esempio n. 1
0
  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();
      }
    }
  }
Esempio n. 2
0
  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;
    }
  }
Esempio n. 3
0
  // 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));
    }
  }