final CalculateScore calculateScore, final double startTemp,
final double stopTemp, final int cycles) {
super(TrainingImplementationType.Iterative);
if( !(network instanceof MLRegression) ) {
throw new TrainingError("Simulated annealing requires the MLMethod to support MLRegression.");
}
this.network = network;
this.calculateScore = calculateScore;
this.anneal = new NeuralSimulatedAnnealingHelper(this);