Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/19/10 04:56:06 (14 years ago)
Author:
swagner
Message:

Continued to implement TSP tour visualization (#924)

File:
1 edited

Legend:

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

    r3099 r3107  
    7070      get { return EvaluatorParameter; }
    7171    }
     72    public OptionalValueParameter<ITSPSolutionsVisualizer> VisualizerParameter {
     73      get { return (OptionalValueParameter<ITSPSolutionsVisualizer>)Parameters["Visualizer"]; }
     74    }
     75    IParameter IProblem.VisualizerParameter {
     76      get { return VisualizerParameter; }
     77    }
    7278    public OptionalValueParameter<DoubleValue> BestKnownQualityParameter {
    7379      get { return (OptionalValueParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
     
    108114      get { return EvaluatorParameter.Value; }
    109115    }
     116    public ITSPSolutionsVisualizer Visualizer {
     117      get { return VisualizerParameter.Value; }
     118      set { VisualizerParameter.Value = value; }
     119    }
     120    ISolutionsVisualizer IProblem.Visualizer {
     121      get { return VisualizerParameter.Value; }
     122    }
    110123    public DoubleValue BestKnownQuality {
    111124      get { return BestKnownQualityParameter.Value; }
     
    122135      RandomPermutationCreator creator = new RandomPermutationCreator();
    123136      TSPRoundedEuclideanPathEvaluator evaluator = new TSPRoundedEuclideanPathEvaluator();
     137      BestPathTSPTourVisualizer visualizer = new BestPathTSPTourVisualizer();
    124138
    125139      Parameters.Add(new ValueParameter<BoolValue>("Maximization", "Set to false as the Traveling Salesman Problem is a minimization problem.", new BoolValue(false)));
     
    129143      Parameters.Add(new ValueParameter<IPermutationCreator>("SolutionCreator", "The operator which should be used to create new TSP solutions.", creator));
    130144      Parameters.Add(new ValueParameter<ITSPEvaluator>("Evaluator", "The operator which should be used to evaluate TSP solutions.", evaluator));
     145      Parameters.Add(new OptionalValueParameter<ITSPSolutionsVisualizer>("Visualizer", "The operator which should be used to visualize TSP solutions.", visualizer));
    131146      Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this TSP instance."));
    132147
     
    135150      ParameterizeSolutionCreator();
    136151      ParameterizeEvaluator();
     152      ParameterizeVisualizer();
    137153
    138154      Initialize();
     
    164180        EvaluatorChanged(this, EventArgs.Empty);
    165181    }
     182    public event EventHandler VisualizerChanged;
     183    private void OnVisualizerChanged() {
     184      if (VisualizerChanged != null)
     185        VisualizerChanged(this, EventArgs.Empty);
     186    }
    166187    public event EventHandler OperatorsChanged;
    167188    private void OnOperatorsChanged() {
     
    187208      ParameterizeSolutionCreator();
    188209      ParameterizeEvaluator();
     210      ParameterizeVisualizer();
    189211      ParameterizeOperators();
    190212      OnSolutionCreatorChanged();
     
    192214    private void SolutionCreator_PermutationParameter_ActualNameChanged(object sender, EventArgs e) {
    193215      ParameterizeEvaluator();
     216      ParameterizeVisualizer();
    194217      ParameterizeOperators();
    195218    }
    196219    private void EvaluatorParameter_ValueChanged(object sender, EventArgs e) {
    197220      ParameterizeEvaluator();
     221      ParameterizeVisualizer();
    198222      ClearDistanceMatrix();
    199223      OnEvaluatorChanged();
     224    }
     225    private void VisualizerParameter_ValueChanged(object sender, EventArgs e) {
     226      ParameterizeVisualizer();
     227      OnVisualizerChanged();
    200228    }
    201229    private void MoveGenerator_TwoOptMoveParameter_ActualNameChanged(object sender, EventArgs e) {
     
    223251      SolutionCreator.PermutationParameter.ActualNameChanged += new EventHandler(SolutionCreator_PermutationParameter_ActualNameChanged);
    224252      EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged);
     253      VisualizerParameter.ValueChanged += new EventHandler(VisualizerParameter_ValueChanged);
    225254    }
    226255    private void InitializeOperators() {
     
    257286      }
    258287    }
     288    private void ParameterizeVisualizer() {
     289      Visualizer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
     290      if (Visualizer is ICoordinatesTSPSolutionsVisualizer)
     291        ((ICoordinatesTSPSolutionsVisualizer)Visualizer).CoordinatesParameter.ActualName = CoordinatesParameter.Name;
     292      if (Visualizer is IPathCoordinatesTSPSolutionsVisualizer)
     293        ((IPathCoordinatesTSPSolutionsVisualizer)Visualizer).PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName;
     294    }
    259295    private void ParameterizeOperators() {
    260296      foreach (IPermutationCrossover op in Operators.OfType<IPermutationCrossover>()) {
Note: See TracChangeset for help on using the changeset viewer.