public static void printBestRoots() {
    for (int i = 0; i < HEIGHT; i++) {

      for (Type t : types.values()) {
        FunctionTree[] roots = bestRoots.getRoots(t.getName(), i);
        for (FunctionTree r : roots) {
          if (r != null) { // このnullチェックは必要
            System.out.print("i= " + i + ", ");
            System.out.print("ret_t_of_f= " + t.getName() + ", ");
            System.out.print("f= " + r.getRoot().getFunction().getName() + ", ");
            System.out.print("parent_t_of_f= " + r.getRoot().getFunction().getParentClass() + ", ");
            System.out.print("tree= " + r.toCompleteMethodString() + ", ");
            System.out.print("e= " + r.getEvaluationValue());
            System.out.println("");
          }
        }
        //				int count = bestRoots.getSizeOfRoots(t.getName(), i);
        //				if(roots.length > 0)
        //					System.out.println(i + ", "+ t.getName() + ", " + count);
      }
      System.out.println("");
    }
  }