static void ReportSolution(ISimulatedAnnealingSubject solution, ISimulatedAnnealingDriverStatistics stats)
 {
     // System.Console.SetCursorPosition(0, 0);
     System.Console.Write(solution);
     System.Console.WriteLine();
     System.Console.WriteLine("Solution Iteration:{0,19}", stats.Iterations);
     System.Console.WriteLine("Better Solutions Taken:{0,15}", stats.BetterSolutionsTaken);
     System.Console.WriteLine("Worse Solutions Taken:{0,16}", stats.WorseSolutionsTaken);
 }
 public void Randomize(ISimulatedAnnealingSubject subject)
 {
     subject.Randomize();
 }
 private void ThereIsANewSolution(ISimulatedAnnealingSubject newSolution)
 {
     Solution = newSolution;
     SolutionReport = newSolution.ToString();
     _bestSolutionScore = Solution.Score;
     OnNewSolution();
 }