/// <summary>
        /// Starts the Optimization process
        /// </summary>
        private void ExecuteBruteForceOptimization()
        {
            // Clear any existing details
            OptimizationStatisticsCollection.Clear();

            // Reset Iteration Count
            BruteForceParameters.TotalIterations     = 0;
            BruteForceParameters.CompletedIterations = 0;
            BruteForceParameters.RemainingIterations = 0;

            // Notify listener to start execution
            EventSystem.Publish <BruteForceParameters>(BruteForceParameters);
        }
 /// <summary>
 /// Displays results obtained from Brute Force optimization
 /// </summary>
 /// <param name="optimizationStatistics">Inidividual Brute Force iteration results</param>
 private void DisplayOptimizationStatistics(OptimizationStatistics optimizationStatistics)
 {
     _currentDispatcher.Invoke(DispatcherPriority.Normal, (Action)(() => OptimizationStatisticsCollection.Add(optimizationStatistics)));
 }