Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/27/12 15:21:20 (12 years ago)
Author:
jkarder
Message:

#1331:

  • added operators for the VehicleRouting problem
  • minor code improvements
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs

    r8121 r8346  
    178178
    179179    private void AttachProblemInstanceEventHandlers() {
    180       var solutionCreatorParameter = SolutionCreatorParameter as ConstrainedValueParameter<IVRPCreator>;
    181       solutionCreatorParameter.ValidValues.Clear();
    182 
    183180      if (ProblemInstance != null) {
    184181        EvaluatorParameter.Value = ProblemInstance.SolutionEvaluator;
    185         IVRPCreator defaultCreator = null;
    186         foreach (IVRPCreator creator in Operators.Where(o => o is IVRPCreator)) {
    187           solutionCreatorParameter.ValidValues.Add(creator);
    188           if (creator is Encodings.Alba.RandomCreator)
    189             defaultCreator = creator;
    190         }
    191         if (defaultCreator != null)
    192           solutionCreatorParameter.Value = defaultCreator;
    193 
    194182        ProblemInstance.EvaluationChanged += new EventHandler(ProblemInstance_EvaluationChanged);
    195183      }
     
    246234
    247235    private void InitializeOperators() {
     236      var solutionCreatorParameter = SolutionCreatorParameter as ConstrainedValueParameter<IVRPCreator>;
     237      solutionCreatorParameter.ValidValues.Clear();
     238
    248239      Operators.Clear();
    249240
     
    252243        ProblemInstance.Operators.Concat(
    253244          ApplicationManager.Manager.GetInstances<IGeneralVRPOperator>().Cast<IOperator>()).OrderBy(op => op.Name));
     245        Operators.Add(new VRPSimilarityCalculator());
     246
     247        IVRPCreator defaultCreator = null;
     248        foreach (IVRPCreator creator in Operators.Where(o => o is IVRPCreator)) {
     249          solutionCreatorParameter.ValidValues.Add(creator);
     250          if (creator is Encodings.Alba.RandomCreator)
     251            defaultCreator = creator;
     252        }
     253        if (defaultCreator != null)
     254          solutionCreatorParameter.Value = defaultCreator;
    254255      }
    255256
     
    263264        }
    264265      }
    265     }
     266      if (ProblemInstance != null) {
     267        foreach (ISingleObjectiveImprovementOperator op in Operators.OfType<ISingleObjectiveImprovementOperator>()) {
     268          op.SolutionParameter.ActualName = SolutionCreator.VRPToursParameter.ActualName;
     269          op.SolutionParameter.Hidden = true;
     270        }
     271        foreach (ISingleObjectivePathRelinker op in Operators.OfType<ISingleObjectivePathRelinker>()) {
     272          op.ParentsParameter.ActualName = SolutionCreator.VRPToursParameter.ActualName;
     273          op.ParentsParameter.Hidden = true;
     274        }
     275        foreach (VRPSimilarityCalculator op in Operators.OfType<VRPSimilarityCalculator>()) {
     276          op.SolutionVariableName = SolutionCreator.VRPToursParameter.ActualName;
     277          op.QualityVariableName = ProblemInstance.SolutionEvaluator.QualityParameter.ActualName;
     278          op.ProblemInstance = ProblemInstance;
     279        }
     280      }
     281    }
     282
    266283    #endregion
    267284
Note: See TracChangeset for help on using the changeset viewer.