Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/12/12 16:42:17 (12 years ago)
Author:
jkarder
Message:

#1331:

  • added analyzer
  • added parameters and adjusted parameter types
  • corrected ReferenceSetUpdateMethod
  • changed access levels
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/ScatterSearchMainLoop.cs

    r7722 r7724  
    4747      get { return (LookupParameter<IntValue>)Parameters["MaximumIterations"]; }
    4848    }
     49    internal LookupParameter<BoolValue> MaximizationParameter {
     50      get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
     51    }
    4952    internal LookupParameter<IntValue> SampleSizeParameter {
    5053      get { return (LookupParameter<IntValue>)Parameters["SampleSize"]; }
     
    5962      get { return (LookupParameter<IntValue>)Parameters["NumberOfHighQualitySolutions"]; }
    6063    }
     64    internal LookupParameter<DoubleValue> QualityParameter {
     65      get { return (LookupParameter<DoubleValue>)Parameters["Quality"]; }
     66    }
     67    internal LookupParameter<DoubleValue> BestKnownQualityParameter {
     68      get { return (LookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
     69    }
     70    internal LookupParameter<DoubleValue> MoveQualityParameter {
     71      get { return (LookupParameter<DoubleValue>)Parameters["MoveQuality"]; }
     72    }
    6173    internal LookupParameter<VariableCollection> ResultsParameter {
    6274      get { return (LookupParameter<VariableCollection>)Parameters["Results"]; }
     75    }
     76    internal LookupParameter<IOperator> MoveEvaluatorParameter {
     77      get { return (LookupParameter<IOperator>)Parameters["MoveEvaluator"]; }
     78    }
     79    internal LookupParameter<IOperator> MoveGeneratorParameter {
     80      get { return (LookupParameter<IOperator>)Parameters["MoveGenerator"]; }
     81    }
     82    internal LookupParameter<IOperator> MoveMakerParameter {
     83      get { return (LookupParameter<IOperator>)Parameters["MoveMaker"]; }
    6384    }
    6485    internal LookupParameter<IMultiAnalyzer> AnalyzerParameter {
     
    80101      set { MaximumIterationsParameter.ActualValue = value; }
    81102    }
     103    public BoolValue Maximization {
     104      get { return MaximizationParameter.ActualValue; }
     105      set { MaximizationParameter.ActualValue = value; }
     106    }
    82107    public IntValue SampleSize {
    83108      get { return SampleSizeParameter.ActualValue; }
     
    96121      set { NumberOfHighQualitySolutionsParameter.ActualValue = value; }
    97122    }
     123    public DoubleValue Quality {
     124      get { return QualityParameter.ActualValue; }
     125      set { QualityParameter.ActualValue = value; }
     126    }
     127    public DoubleValue BestKnownQuality {
     128      get { return BestKnownQualityParameter.ActualValue; }
     129      set { BestKnownQualityParameter.ActualValue = value; }
     130    }
     131    public DoubleValue MoveQuality {
     132      get { return MoveQualityParameter.ActualValue; }
     133      set { MoveQualityParameter.ActualValue = value; }
     134    }
    98135    public VariableCollection Results {
    99136      get { return ResultsParameter.ActualValue; }
    100137      set { ResultsParameter.ActualValue = value; }
     138    }
     139    public IOperator MoveEvaluator {
     140      get { return MoveEvaluatorParameter.ActualValue; }
     141      set { MoveEvaluatorParameter.ActualValue = value; }
     142    }
     143    public IOperator MoveGenerator {
     144      get { return MoveGeneratorParameter.ActualValue; }
     145      set { MoveGeneratorParameter.ActualValue = value; }
     146    }
     147    public IOperator MoveMaker {
     148      get { return MoveMakerParameter.ActualValue; }
     149      set { MoveMakerParameter.ActualValue = value; }
    101150    }
    102151    public IMultiAnalyzer Analyzer {
     
    120169      Parameters.Add(new LookupParameter<IntValue>("Iterations", "The number of iterations performed."));
    121170      Parameters.Add(new LookupParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed."));
     171      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    122172      Parameters.Add(new LookupParameter<IntValue>("SampleSize", "Number of moves that MultiMoveGenerators should create. This is ignored for Exhaustive- and SingleMoveGenerators."));
    123173      Parameters.Add(new LookupParameter<IntValue>("PopulationSize", "The size of the population."));
    124174      Parameters.Add(new LookupParameter<IntValue>("ReferenceSetSize", "The size of the reference set."));
    125175      Parameters.Add(new LookupParameter<IntValue>("NumberOfHighQualitySolutions", "The number of high quality solutions that should be added to the reference set."));
     176      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     177      Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "The problem's best known quality value found so far."));
     178      Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The value which represents the quality of a move."));
    126179      Parameters.Add(new LookupParameter<IOperator>("SolutionCreator", "The operator which is used to create new solutions."));
    127180      Parameters.Add(new LookupParameter<IOperator>("Evaluator", "The operator which is used to evaluate new solutions. This operator is executed in parallel, if an engine is used which supports parallelization."));
     
    143196      IntCounter interationsCounter = new IntCounter();
    144197      LocalSearchImprovementOperator localImprovementOperator = new LocalSearchImprovementOperator();
     198      Placeholder analyzer = new Placeholder();
    145199      Placeholder solutionImprover = new Placeholder();
    146200      Placeholder solutionEvaluator = new Placeholder();
     
    204258      interationsCounter.Successor = resultsCollector;
    205259
     260      analyzer.Name = "Analyzer";
     261      analyzer.OperatorParameter.ActualName = "Analyzer";
     262
    206263      solutionImprover.Name = "SolutionImprover";
    207264      solutionImprover.OperatorParameter.ActualName = "LocalImprovementOperator";
     
    214271      populationRebuildMethod.Successor = subScopesProcessor3;
    215272
     273      resultsCollector.CopyValue = new BoolValue(false);
    216274      resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>(IterationsParameter.Name));
     275      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(BestKnownQualityParameter.Name, null, BestKnownQualityParameter.Name));
    217276      resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
    218277      resultsCollector.Successor = iterationsChecker;
     
    221280
    222281      solutionCombinationMethod.Successor = subScopesProcessor2;
     282
     283      solutionPoolUpdateMethod.Successor = analyzer;
    223284
    224285      solutionsCreator.Name = "DiversificationGenerationMethod";
     
    257318
    258319    public override IOperation Apply() {
     320      if (MoveGeneratorParameter.ActualValue == null || MoveEvaluatorParameter.ActualValue == null || MoveMakerParameter.ActualValue == null)
     321        return null;
    259322      return base.Apply();
    260323    }
Note: See TracChangeset for help on using the changeset viewer.