Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/11/17 11:57:56 (6 years ago)
Author:
abeham
Message:

#1614: finished wiring

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GQAP.cs

    r15504 r15506  
    4848    public override bool Maximization { get { return false; } }
    4949
     50    [Storable]
     51    private bool initialized; // ABE: helper variable that defines if the constructor has completed
     52
    5053    #region Parameter Descriptions
    5154    public static readonly string BestKnownQualityDescription = "The best known quality (if available).";
     
    8891      : base(original, cloner) {
    8992      RegisterEventHandlers();
     93      initialized = original.initialized;
    9094    }
    9195    public GQAP() : base() {
     
    97101      InitializeOperators();
    98102      RegisterEventHandlers();
     103      initialized = true;
     104      Parameterize();
    99105    }
    100106
     
    343349    protected override void OnOperatorsChanged() {
    344350      base.OnOperatorsChanged();
     351      if (!initialized) return;
    345352      Parameterize();
    346353    }
    347354    protected override void OnEncodingChanged() {
    348355      base.OnEncodingChanged();
     356      if (!initialized) return;
    349357      Parameterize();
    350358    }
     
    397405      Operators.RemoveAll(x => x is ISingleObjectiveMoveEvaluator);
    398406      Operators.AddRange(ApplicationManager.Manager.GetInstances<IGQAPMoveEvaluator>());
    399       Operators.Add(new HammingSimilarityCalculator());
    400       Operators.Add(new QualitySimilarityCalculator());
     407      Operators.Add(new HammingSimilarityCalculator() { SolutionVariableName = Encoding.Name, QualityVariableName = Evaluator.QualityParameter.ActualName });
     408      Operators.Add(new QualitySimilarityCalculator() { SolutionVariableName = Encoding.Name, QualityVariableName = Evaluator.QualityParameter.ActualName });
    401409     
    402410      Operators.Add(new PopulationSimilarityAnalyzer(Operators.OfType<ISolutionSimilarityCalculator>()));
    403       Parameterize();
    404411    }
    405412
    406413    private void Parameterize() {
    407414      var operators = Operators.Union(new IOperator[] { SolutionCreator, Evaluator }).ToArray();
    408      
     415      Encoding.ConfigureOperators(operators.OfType<IOperator>());
     416      foreach (var op in operators.OfType<IAssignmentAwareGQAPOperator>()) {
     417        op.AssignmentParameter.ActualName = Encoding.Name;
     418        op.AssignmentParameter.Hidden = true;
     419      }
    409420      foreach (var op in operators.OfType<IBestKnownQualityAwareGQAPOperator>()) {
    410421        op.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
Note: See TracChangeset for help on using the changeset viewer.