code: private double probabilityFunction(double AS, int m, int maxIter) {
  
  		double prob = (C + AS) / (C * Math.sqrt(m));
  		double norm = (1 - (m * 1.0) / maxIter); // Normalization factor
  		return Math.min(Math.max(prob * norm, 0.0), 1.0);
  	}
docs: Calculates the probability of accepting a bad move given the iteration
  step and the score change.
  <p>
  Function: p=(C-AS)/(C*sqrt(step)) Added a normalization factor so that
  the probability approaches 0 when the maxIter is reached.