Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/05/10 00:48:18 (14 years ago)
Author:
swagner
Message:

Worked on refactoring of algorithm analysis and tracing (#999)

  • adapted GA and TSP
  • removed stuff related to visualizers
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs

    r3504 r3616  
    7171      get { return EvaluatorParameter; }
    7272    }
    73     public OptionalValueParameter<ITSPSolutionsVisualizer> VisualizerParameter {
    74       get { return (OptionalValueParameter<ITSPSolutionsVisualizer>)Parameters["Visualizer"]; }
    75     }
    76     IParameter IProblem.VisualizerParameter {
    77       get { return VisualizerParameter; }
    78     }
    7973    public OptionalValueParameter<DoubleValue> BestKnownQualityParameter {
    8074      get { return (OptionalValueParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
     
    118112      get { return EvaluatorParameter.Value; }
    119113    }
    120     public ITSPSolutionsVisualizer Visualizer {
    121       get { return VisualizerParameter.Value; }
    122       set { VisualizerParameter.Value = value; }
    123     }
    124     ISolutionsVisualizer IProblem.Visualizer {
    125       get { return VisualizerParameter.Value; }
    126     }
    127114    public DoubleValue BestKnownQuality {
    128115      get { return BestKnownQualityParameter.Value; }
     
    133120      set { BestKnownSolutionParameter.Value = value; }
    134121    }
    135     private List<IPermutationOperator> operators;
     122    private List<IOperator> operators;
    136123    public IEnumerable<IOperator> Operators {
    137       get { return operators.Cast<IOperator>(); }
     124      get { return operators; }
     125    }
     126    private BestTSPSolutionAnalyzer Analyzer {
     127      get { return operators.OfType<BestTSPSolutionAnalyzer>().FirstOrDefault(); }
    138128    }
    139129    #endregion
     
    143133      RandomPermutationCreator creator = new RandomPermutationCreator();
    144134      TSPRoundedEuclideanPathEvaluator evaluator = new TSPRoundedEuclideanPathEvaluator();
    145       BestPathTSPTourVisualizer visualizer = new BestPathTSPTourVisualizer();
    146135
    147136      Parameters.Add(new ValueParameter<BoolValue>("Maximization", "Set to false as the Traveling Salesman Problem is a minimization problem.", new BoolValue(false)));
     
    151140      Parameters.Add(new ValueParameter<IPermutationCreator>("SolutionCreator", "The operator which should be used to create new TSP solutions.", creator));
    152141      Parameters.Add(new ValueParameter<ITSPEvaluator>("Evaluator", "The operator which should be used to evaluate TSP solutions.", evaluator));
    153       Parameters.Add(new OptionalValueParameter<ITSPSolutionsVisualizer>("Visualizer", "The operator which should be used to visualize TSP solutions.", visualizer));
    154142      Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this TSP instance."));
    155143      Parameters.Add(new OptionalValueParameter<Permutation>("BestKnownSolution", "The best known solution of this TSP instance."));
     
    166154      ParameterizeSolutionCreator();
    167155      ParameterizeEvaluator();
    168       ParameterizeVisualizer();
    169156
    170157      Initialize();
     
    221208        EvaluatorChanged(this, EventArgs.Empty);
    222209    }
    223     public event EventHandler VisualizerChanged;
    224     private void OnVisualizerChanged() {
    225       if (VisualizerChanged != null)
    226         VisualizerChanged(this, EventArgs.Empty);
    227     }
    228210    public event EventHandler OperatorsChanged;
    229211    private void OnOperatorsChanged() {
     
    249231      ParameterizeSolutionCreator();
    250232      ParameterizeEvaluator();
    251       ParameterizeVisualizer();
     233      ParameterizeAnalyzer();
    252234      ParameterizeOperators();
    253235      OnSolutionCreatorChanged();
     
    255237    private void SolutionCreator_PermutationParameter_ActualNameChanged(object sender, EventArgs e) {
    256238      ParameterizeEvaluator();
    257       ParameterizeVisualizer();
     239      ParameterizeAnalyzer();
    258240      ParameterizeOperators();
    259241    }
     
    262244      ParameterizeEvaluator();
    263245      UpdateMoveEvaluators();
    264       ParameterizeVisualizer();
     246      ParameterizeAnalyzer();
    265247      ClearDistanceMatrix();
    266248      OnEvaluatorChanged();
    267249    }
    268250    private void Evaluator_QualityParameter_ActualNameChanged(object sender, EventArgs e) {
    269       ParameterizeVisualizer();
    270     }
    271     private void VisualizerParameter_ValueChanged(object sender, EventArgs e) {
    272       ParameterizeVisualizer();
    273       OnVisualizerChanged();
     251      ParameterizeAnalyzer();
    274252    }
    275253    private void MoveGenerator_InversionMoveParameter_ActualNameChanged(object sender, EventArgs e) {
     
    298276      EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged);
    299277      Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
    300       VisualizerParameter.ValueChanged += new EventHandler(VisualizerParameter_ValueChanged);
    301278    }
    302279
    303280    private void InitializeOperators() {
    304       operators = new List<IPermutationOperator>();
    305       operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>());
     281      operators = new List<IOperator>();
     282      operators.Add(new BestTSPSolutionAnalyzer());
     283      ParameterizeAnalyzer();
     284      operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>().Cast<IOperator>());
    306285      ParameterizeOperators();
    307286      UpdateMoveEvaluators();
     
    344323      }
    345324    }
    346     private void ParameterizeVisualizer() {
    347       if (Visualizer != null) {
    348         Visualizer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
    349         if (Visualizer is ICoordinatesTSPSolutionsVisualizer)
    350           ((ICoordinatesTSPSolutionsVisualizer)Visualizer).CoordinatesParameter.ActualName = CoordinatesParameter.Name;
    351         if (Visualizer is IPathCoordinatesTSPSolutionsVisualizer)
    352           ((IPathCoordinatesTSPSolutionsVisualizer)Visualizer).PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName;
     325    private void ParameterizeAnalyzer() {
     326      if (Analyzer != null) {
     327        Analyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
     328        Analyzer.CoordinatesParameter.ActualName = CoordinatesParameter.Name;
     329        Analyzer.PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName;
     330        Analyzer.ResultsParameter.ActualName = "Results";
    353331      }
    354332    }
Note: See TracChangeset for help on using the changeset viewer.