Free cookie consent management tool by TermsFeed Policy Generator

Changeset 8407


Ignore:
Timestamp:
08/03/12 12:02:08 (12 years ago)
Author:
jkarder
Message:

#1247:

  • fixed event handling
  • adjusted types
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs

    r8406 r8407  
    100100      get { return (ValueParameter<IntValue>)Parameters["MaximumGenerations"]; }
    101101    }
    102     public IConstrainedValueParameter<ISolutionSimilarityCalculator> SimilarityCalculatorParameter {
    103       get { return (IConstrainedValueParameter<ISolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }
     102    public IConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator> SimilarityCalculatorParameter {
     103      get { return (IConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator>)Parameters["SimilarityCalculator"]; }
    104104    }
    105105    #endregion
     
    166166      set { MaximumGenerationsParameter.Value = value; }
    167167    }
    168     public ISolutionSimilarityCalculator SimilarityCalculator {
     168    public ISingleObjectiveSolutionSimilarityCalculator SimilarityCalculator {
    169169      get { return SimilarityCalculatorParameter.Value; }
    170170      set { SimilarityCalculatorParameter.Value = value; }
     
    218218      Parameters.Add(new ValueParameter<MultiAnalyzer>("Analyzer", "The operator used to analyze each generation.", new MultiAnalyzer()));
    219219      Parameters.Add(new ValueParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntValue(1000)));
    220       Parameters.Add(new ConstrainedValueParameter<ISolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions."));
     220      Parameters.Add(new ConstrainedValueParameter<ISingleObjectiveSolutionSimilarityCalculator>("SimilarityCalculator", "The operator used to calculate the similarity between two solutions."));
    221221
    222222      RandomCreator randomCreator = new RandomCreator();
     
    351351      ParameterizeSelectors();
    352352      ParameterizeAnalyzers();
     353      ParameterizeSimilarityCalculators();
    353354    }
    354355    #endregion
     
    431432      }
    432433    }
     434    private void ParameterizeSimilarityCalculators() {
     435      foreach (ISingleObjectiveSolutionSimilarityCalculator calc in SimilarityCalculatorParameter.ValidValues) {
     436        calc.QualityVariableName = Problem.Evaluator.QualityParameter.ActualName;
     437      }
     438    }
    433439    private void UpdateCrossovers() {
    434440      ICrossover oldCrossover = CrossoverParameter.Value;
     
    472478    }
    473479    private void UpdateSimilarityCalculators() {
    474       ISolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value;
     480      ISingleObjectiveSolutionSimilarityCalculator oldSimilarityCalculator = SimilarityCalculatorParameter.Value;
    475481      SimilarityCalculatorParameter.ValidValues.Clear();
    476       ISolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISolutionSimilarityCalculator>().FirstOrDefault();
    477 
     482      ISingleObjectiveSolutionSimilarityCalculator defaultSimilarityCalculator = Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>().FirstOrDefault();
     483
     484      SimilarityCalculatorParameter.ValidValues.Add(new QualitySimilarityCalculator { QualityVariableName = Problem.Evaluator.QualityParameter.ActualName });
    478485      SimilarityCalculatorParameter.ValidValues.Add(new BlindSimilarityCalculator());
    479       SimilarityCalculatorParameter.ValidValues.Add(new QualitySimilarityCalculator());
    480 
    481       foreach (ISolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISolutionSimilarityCalculator>())
     486
     487      foreach (ISingleObjectiveSolutionSimilarityCalculator similarityCalculator in Problem.Operators.OfType<ISingleObjectiveSolutionSimilarityCalculator>())
    482488        SimilarityCalculatorParameter.ValidValues.Add(similarityCalculator);
    483489
    484490      if (oldSimilarityCalculator != null) {
    485         ISolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType());
     491        ISingleObjectiveSolutionSimilarityCalculator similarityCalculator = SimilarityCalculatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSimilarityCalculator.GetType());
    486492        if (similarityCalculator != null) SimilarityCalculatorParameter.Value = similarityCalculator;
    487493        else oldSimilarityCalculator = null;
Note: See TracChangeset for help on using the changeset viewer.