docs: public void doMutation(double probability, DoubleSolution solution)  {
      for (int i = 0; i < solution.getNumberOfVariables(); i++) {
        if (randomGenenerator.getRandomValue() < probability) {
          double rand = randomGenenerator.getRandomValue();
          double tmp = (rand - 0.5) * perturbation;
  
          tmp += solution.getVariableValue(i);
  
          if (tmp < solution.getLowerBound(i)) {
            tmp = solution.getLowerBound(i);
          } else if (tmp > solution.getUpperBound(i)) {
            tmp = solution.getUpperBound(i);
          }
  
          solution.setVariableValue(i, tmp);
        }
      }
    }