code: public List<Node> apply(List<Node> selectedCandidates, Random rng)
      {
          List<Node> evolved = new ArrayList<Node>(selectedCandidates.size());
          for (Node node : selectedCandidates)
          {
              evolved.add(probability.nextEvent(rng) ? node.simplify() : node);
          }
          return evolved;
      }
docs: Simplify the expressions represented by the candidates.  Each expression
  is simplified according to the configured probability.
  @param selectedCandidates The individuals to evolve.
  @param rng A source of randomness.
  @return The (possibly) simplified candidates.