Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/16/10 21:29:10 (15 years ago)
Author:
abeham
Message:

updated tabu search #840

Location:
trunk/sources/HeuristicLab.Problems.TSP/3.3
Files:
6 added
1 deleted
2 edited

Legend:

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

    r3066 r3074  
    8989    <Compile Include="Interfaces\ITSPCoordinatesPathEvaluator.cs" />
    9090    <Compile Include="Interfaces\ITSPEvaluator.cs" />
     91    <Compile Include="Interfaces\ITSPMoveEvaluator.cs" />
    9192    <Compile Include="Interfaces\ITSPPathEvaluator.cs" />
    9293    <Compile Include="HeuristicLabProblemsTSPPlugin.cs" />
    93     <Compile Include="MoveEvaluators\TwoOptMoveTSPEvaluator.cs">
     94    <Compile Include="Interfaces\ITSPPathMoveEvaluator.cs" />
     95    <Compile Include="MoveEvaluators\TwoOptMoveTSPRoundedEuclideanPathEvaluator.cs" />
     96    <Compile Include="MoveEvaluators\TSPPathMoveEvaluator.cs" />
     97    <Compile Include="MoveEvaluators\TSPMoveEvaluator.cs" />
     98    <Compile Include="MoveEvaluators\TwoOptMoveTSPCoordinatesPathEvaluator.cs">
    9499      <SubType>Code</SubType>
    95100    </Compile>
  • trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs

    r3066 r3074  
    196196      OnEvaluatorChanged();
    197197    }
     198    private void MoveGenerator_TwoOptMoveParameter_ActualNameChanged(object sender, EventArgs e) {
     199      string name = ((ILookupParameter<TwoOptMove>)sender).ActualName;
     200      foreach (ITwoOptPermutationMoveOperator op in Operators.OfType<ITwoOptPermutationMoveOperator>()) {
     201        if (!(op is IMoveGenerator)) op.TwoOptMoveParameter.ActualName = name;
     202      }
     203    }
     204    private void MoveGenerator_ThreeOptMoveParameter_ActualNameChanged(object sender, EventArgs e) {
     205      string name = ((ILookupParameter<ThreeOptMove>)sender).ActualName;
     206      foreach (IThreeOptPermutationMoveOperator op in Operators.OfType<IThreeOptPermutationMoveOperator>()) {
     207        if (!(op is IMoveGenerator)) op.ThreeOptMoveParameter.ActualName = name;
     208      }
     209    }
    198210    #endregion
    199211
     
    228240        ParameterizeOperators();
    229241      }
     242      InitializeMoveGenerators();
    230243    }
    231244    private void ParameterizeOperators() {
     
    237250        op.PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName;
    238251      }
    239     }
     252      foreach (IPermutationMoveOperator op in Operators.OfType<IPermutationMoveOperator>()) {
     253        op.PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName;
     254      }
     255      foreach (ITSPPathMoveEvaluator op in Operators.OfType<ITSPPathMoveEvaluator>()) {
     256        op.CoordinatesParameter.ActualName = CoordinatesParameter.Name;
     257        op.DistanceMatrixParameter.ActualName = DistanceMatrixParameter.Name;
     258        op.UseDistanceMatrixParameter.ActualName = UseDistanceMatrixParameter.Name;
     259      }
     260    }
     261    private void InitializeMoveGenerators() {
     262      foreach (ITwoOptPermutationMoveOperator op in Operators.OfType<ITwoOptPermutationMoveOperator>()) {
     263        if (op is IMoveGenerator) {
     264          op.TwoOptMoveParameter.ActualNameChanged += new EventHandler(MoveGenerator_TwoOptMoveParameter_ActualNameChanged);
     265        }
     266      }
     267      foreach (IThreeOptPermutationMoveOperator op in Operators.OfType<IThreeOptPermutationMoveOperator>()) {
     268        if (op is IMoveGenerator) {
     269          op.ThreeOptMoveParameter.ActualNameChanged += new EventHandler(MoveGenerator_ThreeOptMoveParameter_ActualNameChanged);
     270        }
     271      }
     272    }
     273
    240274    private void ClearDistanceMatrix() {
    241275      DistanceMatrixParameter.Value = null;
Note: See TracChangeset for help on using the changeset viewer.