/** Call the strategies before an iteration. */
  public void preIteration() {

    this.iteration++;

    for (final Strategy strategy : this.strategies) {
      strategy.preIteration();
    }
  }
 /**
  * Training strategies can be added to improve the training results. There are a number to choose
  * from, and several can be used at once.
  *
  * @param strategy The strategy to add.
  */
 public void addStrategy(final Strategy strategy) {
   strategy.init(this);
   this.strategies.add(strategy);
 }
 /** Call the strategies after an iteration. */
 public void postIteration() {
   for (final Strategy strategy : this.strategies) {
     strategy.postIteration();
   }
 }