count = 0; for (j=0;j<m_numAttribs;j++) {
count = countFeatures(temp);; /*	for (j=0;j<m_numAttribs;j++) {
  private boolean checkBest() throws Exception {    int i,j,count,lowestCount = m_numAttribs;    double b = -Double.MAX_VALUE;    GABitSet localbest = null;    BitSet temp;    boolean converged = false;    if (m_maxFitness - m_minFitness > 0) {      // find the best in this population      for (i=0;i<m_popSize;i++) {	if (m_population[i].getObjective() > b) {	  b = m_population[i].getObjective();	  localbest = m_population[i];	}       }    } else {      // look for the smallest subset      for (i=0;i<m_popSize;i++) {	temp = m_population[i].getChromosome();	count = 0;	for (j=0;j<m_numAttribs;j++) {	  if (temp.get(j)) {	    count++;	  }	}	if (count < lowestCount) {	  lowestCount = count;	  localbest = m_population[i];	  b = localbest.getObjective();	}      }      converged = true;    }    // count the number of features in localbest    count = 0;    temp = localbest.getChromosome();    for (j=0;j<m_numAttribs;j++) {      if (temp.get(j)) {	count++;      }    }    // compare to the best found so far    if (m_best == null) {      m_best = (GABitSet)localbest.clone();      m_bestFeatureCount = count;    } else if (b > m_best.getObjective()) {      m_best = (GABitSet)localbest.clone();      m_bestFeatureCount = count;    } else if (Utils.eq(m_best.getObjective(), b)) {      // see if the localbest has fewer features than the best so far      if (count < m_bestFeatureCount) {	m_best = (GABitSet)localbest.clone();	m_bestFeatureCount = count;      }    }    return converged;  }