Ejemplo n.º 1
0
  private void execute() {
    // step 1
    System.out.println("step 1");
    init();
    while (t < T_MAX) {
      // step 2
      System.out.println("step 2");
      for (CenterObject center : centers) {
        center.setFitness(getFitness(center));
      }

      // step 3
      System.out.println("step 3");
      Float f = getF();
      System.out.println("F is: " + f);
      for (CenterObject center : centers) {
        vCenters.add(getMutant(center, f));
      }

      // step 4
      System.out.println("step 4");
      for (int index = 0; index < centers.size(); index++) {
        CenterObject center = centers.get(index);
        uCenters.add(getCross(center, index));
      }

      // step 5
      System.out.println("step 5");
      for (CenterObject uCenterObject : uCenters) {
        uCenterObject.setFitness(getFitness(uCenterObject));
      }
      for (int i = 0; i < centers.size(); i++) {
        if (uCenters.get(i).getFitness() < centers.get(i).getFitness()) {
          centers.set(i, uCenters.get(i));
        }
      }

      // step 6
      System.out.println("step 6");
      t++;
    }

    // step 7
    System.out.println("step 7");
    float minFit = Float.MAX_VALUE;
    int pos = 0;
    for (int i = 0; i < centers.size(); i++) {
      if (centers.get(i).getFitness() < minFit) {
        minFit = centers.get(i).getFitness();
        pos = i;
      }
    }
    System.out.println("Center Index:" + pos);

    CenterObject co = originalCenters.get(pos);
    for (DataObject obj : co.getObjs()) {
      System.out.println(obj);
    }
  }