Changeset 15506 for branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GQAP.cs
- Timestamp:
- 12/11/17 11:57:56 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GQAP.cs
r15504 r15506 48 48 public override bool Maximization { get { return false; } } 49 49 50 [Storable] 51 private bool initialized; // ABE: helper variable that defines if the constructor has completed 52 50 53 #region Parameter Descriptions 51 54 public static readonly string BestKnownQualityDescription = "The best known quality (if available)."; … … 88 91 : base(original, cloner) { 89 92 RegisterEventHandlers(); 93 initialized = original.initialized; 90 94 } 91 95 public GQAP() : base() { … … 97 101 InitializeOperators(); 98 102 RegisterEventHandlers(); 103 initialized = true; 104 Parameterize(); 99 105 } 100 106 … … 343 349 protected override void OnOperatorsChanged() { 344 350 base.OnOperatorsChanged(); 351 if (!initialized) return; 345 352 Parameterize(); 346 353 } 347 354 protected override void OnEncodingChanged() { 348 355 base.OnEncodingChanged(); 356 if (!initialized) return; 349 357 Parameterize(); 350 358 } … … 397 405 Operators.RemoveAll(x => x is ISingleObjectiveMoveEvaluator); 398 406 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 }); 401 409 402 410 Operators.Add(new PopulationSimilarityAnalyzer(Operators.OfType<ISolutionSimilarityCalculator>())); 403 Parameterize();404 411 } 405 412 406 413 private void Parameterize() { 407 414 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 } 409 420 foreach (var op in operators.OfType<IBestKnownQualityAwareGQAPOperator>()) { 410 421 op.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
Note: See TracChangeset
for help on using the changeset viewer.