Changeset 3659


Ignore:
Timestamp:
05/06/10 00:47:32 (12 years ago)
Author:
swagner
Message:

Worked on refactoring of algorithm analysis and tracing (#999)

  • removed SubScopesSubScopesLookupParameter
  • adapted SubScopesLookupParameter and renamed it into ScopeTreeLookupParameter
Location:
trunk/sources
Files:
2 added
1 deleted
53 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.EvolutionStrategy/3.3/EvolutionStrategyMainLoop.cs

    r3620 r3659  
    4444      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    4545    }
    46     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    47       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     46    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     47      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4848    }
    4949    public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     
    106106      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    107107      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    108       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     108      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    109109      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    110110      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "µ (mu) - the size of the population."));
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/GeneticAlgorithmMainLoop.cs

    r3616 r3659  
    4444      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    4545    }
    46     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    47       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     46    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     47      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4848    }
    4949    public ValueLookupParameter<IOperator> SelectorParameter {
     
    9494      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    9595      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    96       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     96      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    9797      Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
    9898      Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs

    r3650 r3659  
    4949      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    5050    }
    51     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    52       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     51    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     52      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    5353    }
    5454    public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     
    115115      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    116116      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    117       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     117      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    118118      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    119119      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfIslands", "The number of islands."));
     
    193193      resultsCollector2.Name = "Reference Island Results";
    194194      resultsCollector2.CopyValue = new BoolValue(false);
    195       resultsCollector2.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
     195      resultsCollector2.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
    196196      resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    197197
  • trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs

    r3654 r3659  
    4949      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    5050    }
    51     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    52       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     51    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     52      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    5353    }
    5454    public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     
    142142      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    143143      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    144       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     144      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    145145      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    146146      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfIslands", "The number of islands."));
     
    236236      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    237237      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
    238       resultsCollector1.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
     238      resultsCollector1.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
    239239      resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
    240240
    241241      resultsCollector2.Name = "Reference Island Results";
    242242      resultsCollector2.CopyValue = new BoolValue(false);
    243       resultsCollector2.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
     243      resultsCollector2.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("IslandResults", "Result set for each island", "Results"));
    244244      resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    245245
  • trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs

    r3650 r3659  
    4343      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    4444    }
    45     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    46       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     45    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     46      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4747    }
    4848    public ValueLookupParameter<IOperator> SelectorParameter {
     
    104104      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    105105      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    106       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     106      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    107107      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    108108      Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
  • trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainOperator.cs

    r3611 r3659  
    4343      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    4444    }
    45     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    46       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     45    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     46      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4747    }
    4848    public ValueLookupParameter<IOperator> SelectorParameter {
     
    9898      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    9999      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    100       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     100      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    101101      Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
    102102      Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
  • trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs

    r3658 r3659  
    5555      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    5656    }
    57     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    58       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     57    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     58      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    5959    }
    6060    public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     
    124124      Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator."));
    125125      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    126       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     126      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    127127      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    128128      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfVillages", "The initial number of villages."));
     
    234234      resultsCollector2.Name = "Reference Village Results";
    235235      resultsCollector2.CopyValue = new BoolValue(false);
    236       resultsCollector2.CollectedValues.Add(new SubScopesLookupParameter<ResultCollection>("VillageResults", "Result set for each village", "Results"));
     236      resultsCollector2.CollectedValues.Add(new ScopeTreeLookupParameter<ResultCollection>("VillageResults", "Result set for each village", "Results"));
    237237      resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    238238
  • trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuNeighborhoodAnalyzer.cs

    r3658 r3659  
    2929namespace HeuristicLab.Algorithms.TabuSearch {
    3030  public class TabuNeighborhoodAnalyzer : SingleSuccessorOperator, IAnalyzer {
    31     public SubScopesLookupParameter<BoolValue> IsTabuParameter {
    32       get { return (SubScopesLookupParameter<BoolValue>)Parameters["IsTabu"]; }
     31    public ScopeTreeLookupParameter<BoolValue> IsTabuParameter {
     32      get { return (ScopeTreeLookupParameter<BoolValue>)Parameters["IsTabu"]; }
    3333    }
    3434    public LookupParameter<PercentValue> PercentTabuParameter {
     
    4141    public TabuNeighborhoodAnalyzer()
    4242      : base() {
    43       Parameters.Add(new SubScopesLookupParameter<BoolValue>("IsTabu", "A value that determines if a move is tabu or not."));
     43      Parameters.Add(new ScopeTreeLookupParameter<BoolValue>("IsTabu", "A value that determines if a move is tabu or not."));
    4444      Parameters.Add(new LookupParameter<PercentValue>("PercentTabu", "Indicates how much of the neighborhood is tabu."));
    4545      Parameters.Add(new LookupParameter<ResultCollection>("Results", "The result collection where the value should be stored."));
  • trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSelector.cs

    r3521 r3659  
    9191      Parameters.Add(new ValueLookupParameter<BoolValue>("Aspiration", "Whether the default aspiration criterion should be used or not. The default aspiration criterion accepts a tabu move if it results in a better solution than the best solution found so far.", new BoolValue(true)));
    9292      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "Whether the problem is a maximization or minimization problem (used to decide whether a solution is better"));
    93       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("MoveQuality", "The quality of the move."));
    94       Parameters.Add(new SubScopesLookupParameter<BoolValue>("MoveTabu", "The tabu status of the move."));
     93      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("MoveQuality", "The quality of the move."));
     94      Parameters.Add(new ScopeTreeLookupParameter<BoolValue>("MoveTabu", "The tabu status of the move."));
    9595      Parameters.Add(new ValueLookupParameter<BoolValue>("CopySelected", "True if the selected move should be copied.", new BoolValue(false)));
    9696      Parameters.Add(new LookupParameter<BoolValue>("EmptyNeighborhood", "Will be set to true if the neighborhood didn't contain any non-tabu moves, otherwise it is set to false."));
  • trunk/sources/HeuristicLab.Analysis/3.3/BestAverageWorstQualityCalculator.cs

    r3376 r3659  
    5353      : base() {
    5454      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the current problem is a maximization problem, otherwise false."));
    55       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value contained in each sub-scope which represents the solution quality."));
     55      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value contained in each sub-scope which represents the solution quality."));
    5656      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestQuality", "The quality value of the best solution."));
    5757      Parameters.Add(new ValueLookupParameter<DoubleValue>("AverageQuality", "The average quality of all solutions."));
  • trunk/sources/HeuristicLab.Analysis/3.3/BestQualityMemorizer.cs

    r3376 r3659  
    4747      : base() {
    4848      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the current problem is a maximization problem, otherwise false."));
    49       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value contained in each sub-scope which represents the solution quality."));
     49      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value contained in each sub-scope which represents the solution quality."));
    5050      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestQuality", "The quality value of the best solution."));
    5151    }
  • trunk/sources/HeuristicLab.Analysis/3.3/MinAverageMaxValueCalculator.cs

    r3623 r3659  
    4949    public MinAverageMaxValueCalculator()
    5050      : base() {
    51       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Value", "The value contained in each sub-scope for which the minimum, average and maximum should be calculated."));
     51      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in each sub-scope for which the minimum, average and maximum should be calculated."));
    5252      Parameters.Add(new ValueLookupParameter<DoubleValue>("MinValue", "The minimum of the value."));
    5353      Parameters.Add(new ValueLookupParameter<DoubleValue>("AverageValue", "The average of the value."));
  • trunk/sources/HeuristicLab.Analysis/3.3/PopulationBestAverageWorstQualityAnalyzer.cs

    r3658 r3659  
    3939      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    4040    }
    41     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    42       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     41    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     42      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4343    }
    4444    public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     
    8181      #region Create parameters
    8282      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    83       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     83      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    8484      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    8585      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestQuality", "The best quality value found in the current run."));
  • trunk/sources/HeuristicLab.Analysis/3.3/PopulationMinAverageMaxValueAnalyzer.cs

    r3658 r3659  
    3636  public sealed class PopulationMinAverageMaxValueAnalyzer : AlgorithmOperator, IAnalyzer {
    3737    #region Parameter properties
    38     public SubScopesLookupParameter<DoubleValue> ValueParameter {
    39       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Value"]; }
     38    public ScopeTreeLookupParameter<DoubleValue> ValueParameter {
     39      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Value"]; }
    4040    }
    4141    public ValueLookupParameter<DoubleValue> MinValueParameter {
     
    6565    private void Initialize() {
    6666      #region Create parameters
    67       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Value", "The value contained in each solution which should be analyzed."));
     67      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in each solution which should be analyzed."));
    6868      Parameters.Add(new ValueLookupParameter<DoubleValue>("MinValue", "The minimum of the value."));
    6969      Parameters.Add(new ValueLookupParameter<DoubleValue>("AverageValue", "The average of the value."));
  • trunk/sources/HeuristicLab.Analysis/3.3/PopulationQualityAnalyzer.cs

    r3658 r3659  
    3939      get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; }
    4040    }
    41     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    42       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     41    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     42      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4343    }
    4444    public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
     
    7272      #region Create parameters
    7373      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    74       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
     74      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution."));
    7575      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestKnownQuality", "The best known quality value found so far."));
    7676      Parameters.Add(new ValueLookupParameter<DoubleValue>("BestQuality", "The best quality value found in the current run."));
     
    9696      bestQualityMemorizer2.QualityParameter.ActualName = "Quality";
    9797
    98       dataTableValuesCollector.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Quality", null, "Quality"));
     98      dataTableValuesCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", null, "Quality"));
    9999      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    100100      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
     
    106106      qualityDifferenceCalculator.SecondQualityParameter.ActualName = "BestQuality";
    107107
    108       resultsCollector.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Quality", null, "Quality"));
     108      resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", null, "Quality"));
    109109      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    110110      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
  • trunk/sources/HeuristicLab.Analysis/3.3/PopulationValueAnalyzer.cs

    r3658 r3659  
    3636  public sealed class PopulationValueAnalyzer : AlgorithmOperator, IAnalyzer {
    3737    #region Parameter properties
    38     public SubScopesLookupParameter<DoubleValue> ValueParameter {
    39       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Value"]; }
     38    public ScopeTreeLookupParameter<DoubleValue> ValueParameter {
     39      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Value"]; }
    4040    }
    4141    public ValueLookupParameter<DataTable> ValuesParameter {
     
    5656    private void Initialize() {
    5757      #region Create parameters
    58       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Value", "The value contained in each solution which should be analyzed."));
     58      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in each solution which should be analyzed."));
    5959      Parameters.Add(new ValueLookupParameter<DataTable>("Values", "The data table to store the values."));
    6060      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The results collection where the analysis values should be stored."));
     
    6565      ResultsCollector resultsCollector = new ResultsCollector();
    6666
    67       dataTableValuesCollector.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Value", null, "Value"));
     67      dataTableValuesCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, "Value"));
    6868      dataTableValuesCollector.DataTableParameter.ActualName = "Values";
    6969
    70       resultsCollector.CollectedValues.Add(new SubScopesLookupParameter<DoubleValue>("Value", null, "Value"));
     70      resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, "Value"));
    7171      resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Values"));
    7272      resultsCollector.ResultsParameter.ActualName = "Results";
  • trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/BinaryVectorCrossover.cs

    r3520 r3659  
    4242    }
    4343    public ILookupParameter<ItemArray<BinaryVector>> ParentsParameter {
    44       get { return (SubScopesLookupParameter<BinaryVector>)Parameters["Parents"]; }
     44      get { return (ScopeTreeLookupParameter<BinaryVector>)Parameters["Parents"]; }
    4545    }
    4646    public ILookupParameter<BinaryVector> ChildParameter {
     
    5151      : base() {
    5252      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
    53       Parameters.Add(new SubScopesLookupParameter<BinaryVector>("Parents", "The parent vectors which should be crossed."));
     53      Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("Parents", "The parent vectors which should be crossed."));
    5454      Parameters.Add(new LookupParameter<BinaryVector>("Child", "The child vector resulting from the crossover."));
    5555    }
  • trunk/sources/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/Crossovers/MultiBinaryVectorCrossover.cs

    r3593 r3659  
    5252    public MultiBinaryVectorCrossover()
    5353      : base() {
    54       Parameters.Add(new SubScopesLookupParameter<BinaryVector>("Parents", "The parent binary vector which should be crossed."));
     54      Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("Parents", "The parent binary vector which should be crossed."));
    5555      ParentsParameter.ActualName = "BinaryVector";
    5656      Parameters.Add(new LookupParameter<BinaryVector>("Child", "The child binary vector resulting from the crossover."));
  • trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/Crossovers/MultiIntegerVectorCrossover.cs

    r3593 r3659  
    5252    public MultiIntegerVectorCrossover()
    5353      : base() {
    54       Parameters.Add(new SubScopesLookupParameter<IntegerVector>("Parents", "The parent integer vector which should be crossed."));
     54      Parameters.Add(new ScopeTreeLookupParameter<IntegerVector>("Parents", "The parent integer vector which should be crossed."));
    5555      ParentsParameter.ActualName = "IntegerVector";
    5656      Parameters.Add(new LookupParameter<IntegerVector>("Child", "The child integer vector resulting from the crossover."));
  • trunk/sources/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/IntegerVectorCrossover.cs

    r3520 r3659  
    4242    }
    4343    public ILookupParameter<ItemArray<IntegerVector>> ParentsParameter {
    44       get { return (SubScopesLookupParameter<IntegerVector>)Parameters["Parents"]; }
     44      get { return (ScopeTreeLookupParameter<IntegerVector>)Parameters["Parents"]; }
    4545    }
    4646    public ILookupParameter<IntegerVector> ChildParameter {
     
    5151      : base() {
    5252      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
    53       Parameters.Add(new SubScopesLookupParameter<IntegerVector>("Parents", "The parent vectors which should be crossed."));
     53      Parameters.Add(new ScopeTreeLookupParameter<IntegerVector>("Parents", "The parent vectors which should be crossed."));
    5454      Parameters.Add(new LookupParameter<IntegerVector>("Child", "The child vector resulting from the crossover."));
    5555    }
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/Crossovers/MultiPermutationCrossover.cs

    r3593 r3659  
    5252    public MultiPermutationCrossover()
    5353      : base() {
    54       Parameters.Add(new SubScopesLookupParameter<Permutation>("Parents", "The parent permutations which should be crossed."));
     54      Parameters.Add(new ScopeTreeLookupParameter<Permutation>("Parents", "The parent permutations which should be crossed."));
    5555      ParentsParameter.ActualName = "Permutation";
    5656      Parameters.Add(new LookupParameter<Permutation>("Child", "The child permutation resulting from the crossover."));
  • trunk/sources/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationCrossover.cs

    r3376 r3659  
    4242    }
    4343    public ILookupParameter<ItemArray<Permutation>> ParentsParameter {
    44       get { return (SubScopesLookupParameter<Permutation>)Parameters["Parents"]; }
     44      get { return (ScopeTreeLookupParameter<Permutation>)Parameters["Parents"]; }
    4545    }
    4646    public ILookupParameter<Permutation> ChildParameter {
     
    5151      : base() {
    5252      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
    53       Parameters.Add(new SubScopesLookupParameter<Permutation>("Parents", "The parent permutations which should be crossed."));
     53      Parameters.Add(new ScopeTreeLookupParameter<Permutation>("Parents", "The parent permutations which should be crossed."));
    5454      ParentsParameter.ActualName = "Permutation";
    5555      Parameters.Add(new LookupParameter<Permutation>("Child", "The child permutation resulting from the crossover."));
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/BlendAlphaBetaCrossover.cs

    r3376 r3659  
    5050    /// The quality of the parents.
    5151    /// </summary>
    52     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    53       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     52    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     53      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    5454    }
    5555    /// <summary>
     
    7373      : base() {
    7474      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "Whether the problem is a maximization problem or not."));
    75       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The quality values of the parents."));
     75      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality values of the parents."));
    7676      Parameters.Add(new ValueLookupParameter<DoubleValue>("Alpha", "The value for alpha.", new DoubleValue(0.75)));
    7777      Parameters.Add(new ValueLookupParameter<DoubleValue>("Beta", "The value for beta.", new DoubleValue(0.25)));
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/HeuristicCrossover.cs

    r3376 r3659  
    4747    /// The quality of the parents.
    4848    /// </summary>
    49     public SubScopesLookupParameter<DoubleValue> QualityParameter {
    50       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
     49    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
     50      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
    5151    }
    5252
     
    5858      : base() {
    5959      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "Whether the problem is a maximization problem or not."));
    60       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The quality values of the parents."));
     60      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality values of the parents."));
    6161    }
    6262
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/MultiRealVectorCrossover.cs

    r3593 r3659  
    5555    public MultiRealVectorCrossover()
    5656      : base() {
    57       Parameters.Add(new SubScopesLookupParameter<RealVector>("Parents", "The parent real vector which should be crossed."));
     57      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("Parents", "The parent real vector which should be crossed."));
    5858      ParentsParameter.ActualName = "RealVector";
    5959      Parameters.Add(new LookupParameter<RealVector>("Child", "The child real vector resulting from the crossover."));
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/RealVectorCrossover.cs

    r3376 r3659  
    4343    }
    4444    public ILookupParameter<ItemArray<RealVector>> ParentsParameter {
    45       get { return (SubScopesLookupParameter<RealVector>)Parameters["Parents"]; }
     45      get { return (ScopeTreeLookupParameter<RealVector>)Parameters["Parents"]; }
    4646    }
    4747    public ILookupParameter<RealVector> ChildParameter {
     
    5555      : base() {
    5656      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic crossover operators."));
    57       Parameters.Add(new SubScopesLookupParameter<RealVector>("Parents", "The parent vectors which should be crossed."));
     57      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("Parents", "The parent vectors which should be crossed."));
    5858      Parameters.Add(new LookupParameter<RealVector>("Child", "The child vector resulting from the crossover."));
    5959      Parameters.Add(new ValueLookupParameter<DoubleMatrix>("Bounds", "The lower and upper bounds of the real vector."));
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/StrategyParameters/StdDevStrategyVectorCrossover.cs

    r3450 r3659  
    4848      : base() {
    4949      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
    50       Parameters.Add(new SubScopesLookupParameter<RealVector>("ParentStrategyParameter", "The strategy parameters to cross."));
     50      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("ParentStrategyParameter", "The strategy parameters to cross."));
    5151      Parameters.Add(new LookupParameter<RealVector>("StrategyParameter", "The crossed strategy parameter."));
    5252      ParentsParameter.ActualName = "StrategyParameter";
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Analyzers/PopulationMinAvgMaxTreeSizeAnalyzer.cs

    r3651 r3659  
    6262    public PopulationMinAvgMaxTreeSizeAnalyzer()
    6363      : base() {
    64       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression tree whose size should be calculated."));
    65       Parameters.Add(new SubScopesLookupParameter<DoubleValue>(SymbolicExpressionTreeSizeParameterName, "The tree size of the symbolic expression tree."));
     64      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression tree whose size should be calculated."));
     65      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>(SymbolicExpressionTreeSizeParameterName, "The tree size of the symbolic expression tree."));
    6666      Parameters.Add(new ValueLookupParameter<DataTable>(SymbolicExpressionTreeSizesParameterName, "The data table to store the tree sizes."));
    6767      Parameters.Add(new ValueLookupParameter<VariableCollection>(ResultsParameterName, "The results collection where the analysis values should be stored."));
  • trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.3/Crossovers/SymbolicExpressionTreeCrossover.cs

    r3534 r3659  
    4242    private const string FailedCrossoverEventsParameterName = "FailedCrossoverEvents";
    4343    public ILookupParameter<ItemArray<SymbolicExpressionTree>> ParentsParameter {
    44       get { return (SubScopesLookupParameter<SymbolicExpressionTree>)Parameters[ParentsParameterName]; }
     44      get { return (ScopeTreeLookupParameter<SymbolicExpressionTree>)Parameters[ParentsParameterName]; }
    4545    }
    4646    public ILookupParameter<SymbolicExpressionTree> ChildParameter {
     
    5656    protected SymbolicExpressionTreeCrossover()
    5757      : base() {
    58       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(ParentsParameterName, "The parent symbolic expression trees which should be crossed."));
     58      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(ParentsParameterName, "The parent symbolic expression trees which should be crossed."));
    5959      Parameters.Add(new LookupParameter<SymbolicExpressionTree>(ChildParameterName, "The child symbolic expression tree resulting from the crossover."));
    6060      Parameters.Add(new ValueParameter<IntValue>(FailedCrossoverEventsParameterName, "The number of failed crossover events (child is an exact copy of a parent)", new IntValue()));
  • trunk/sources/HeuristicLab.Operators/3.3/SubScopesSorter.cs

    r3376 r3659  
    3636    private string actualName;
    3737
    38     public SubScopesLookupParameter<DoubleValue> ValueParameter {
    39       get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Value"]; }
     38    public ScopeTreeLookupParameter<DoubleValue> ValueParameter {
     39      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Value"]; }
    4040    }
    4141    public ValueLookupParameter<BoolValue> DescendingParameter {
     
    5151    public SubScopesSorter()
    5252      : base() {
    53       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Value", "The values contained in each sub-scope acording which the sub-scopes of the current scope are sorted."));
     53      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The values contained in each sub-scope acording which the sub-scopes of the current scope are sorted."));
    5454      Parameters.Add(new ValueLookupParameter<BoolValue>("Descending", "True if the sub-scopes should be sorted in descending order, otherwise false."));
    5555      Parameters.Add(new ScopeParameter("CurrentScope", "The current scope whose sub-scopes are sorted."));
  • trunk/sources/HeuristicLab.Optimization.Operators/3.3/WeightedParentsQualityComparator.cs

    r3413 r3659  
    5353      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, false otherwise"));
    5454      Parameters.Add(new LookupParameter<DoubleValue>("LeftSide", "The quality of the child."));
    55       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("RightSide", "The qualities of the parents."));
     55      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("RightSide", "The qualities of the parents."));
    5656      Parameters.Add(new LookupParameter<BoolValue>("Result", "The result of the comparison: True means Quality is better, False means it is worse than parents."));
    5757      Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactor", "Determines if the quality should be compared to the better parent (1.0), to the worse (0.0) or to any linearly interpolated value between them."));
  • trunk/sources/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj

    r3437 r3659  
    9292      <DependentUpon>ConstrainedValueParameterView.cs</DependentUpon>
    9393    </Compile>
     94    <Compile Include="ScopeTreeLookupParameterView.cs">
     95      <SubType>UserControl</SubType>
     96    </Compile>
     97    <Compile Include="ScopeTreeLookupParameterView.Designer.cs">
     98      <DependentUpon>ScopeTreeLookupParameterView.cs</DependentUpon>
     99    </Compile>
    94100    <Compile Include="ValueLookupParameterView.cs">
    95101      <SubType>UserControl</SubType>
  • trunk/sources/HeuristicLab.Parameters/3.3/HeuristicLab.Parameters-3.3.csproj

    r3634 r3659  
    8686    <None Include="HeuristicLabParametersPlugin.cs.frame" />
    8787    <Compile Include="ConstrainedValueParameter.cs" />
    88     <Compile Include="SubScopesSubScopesLookupParameter.cs" />
    8988    <Compile Include="OptionalConstrainedValueParameter.cs" />
    9089    <Compile Include="ValueParameter.cs" />
  • trunk/sources/HeuristicLab.Parameters/3.3/SubScopesLookupParameter.cs

    r3634 r3659  
    2121
    2222using System;
     23using System.Collections.Generic;
     24using System.Linq;
    2325using HeuristicLab.Common;
    2426using HeuristicLab.Core;
     
    2729namespace HeuristicLab.Parameters {
    2830  /// <summary>
    29   /// A generic parameter representing instances of type T which are collected from or written to the sub-scopes of the current scope.
     31  /// A generic parameter representing instances of type T which are collected from or written to scope tree.
    3032  /// </summary>
    31   [Item("SubScopesLookupParameter<T>", "A generic parameter representing instances of type T which are collected from or written to the sub-scopes of the current scope.")]
     33  [Item("ScopeTreeLookupParameter<T>", "A generic parameter representing instances of type T which are collected from or written to scope tree.")]
    3234  [StorableClass]
    33   public class SubScopesLookupParameter<T> : LookupParameter<ItemArray<T>> where T : class, IItem {
    34     public SubScopesLookupParameter() : base() { }
    35     public SubScopesLookupParameter(string name) : base(name) { }
    36     public SubScopesLookupParameter(string name, string description) : base(name, description) { }
    37     public SubScopesLookupParameter(string name, string description, string actualName) : base(name, description, actualName) { }
     35  public class ScopeTreeLookupParameter<T> : LookupParameter<ItemArray<T>> where T : class, IItem {
     36    [Storable]
     37    private int depth;
     38    public int Depth {
     39      get { return depth; }
     40      set {
     41        if (value < 0) throw new ArgumentException("Depth must be larger than or equal to 0.");
     42        if (depth != value) {
     43          depth = value;
     44          OnDepthChanged();
     45        }
     46      }
     47    }
     48
     49    public ScopeTreeLookupParameter()
     50      : base() {
     51      depth = 1;
     52    }
     53    public ScopeTreeLookupParameter(string name)
     54      : base(name) {
     55      depth = 1;
     56    }
     57    public ScopeTreeLookupParameter(string name, string description)
     58      : base(name, description) {
     59      depth = 1;
     60    }
     61    public ScopeTreeLookupParameter(string name, string description, string actualName)
     62      : base(name, description, actualName) {
     63      depth = 1;
     64    }
     65    [StorableConstructor]
     66    protected ScopeTreeLookupParameter(bool deserializing) : base(deserializing) { }
     67
     68    public override IDeepCloneable Clone(Cloner cloner) {
     69      ScopeTreeLookupParameter<T> clone = (ScopeTreeLookupParameter<T>)base.Clone(cloner);
     70      clone.depth = depth;
     71      return clone;
     72    }
    3873
    3974    protected override IItem GetActualValue() {
    4075      string name = LookupParameter<ItemArray<T>>.TranslateName(Name, ExecutionContext);
    41       IScope scope = ExecutionContext.Scope;
    42       ItemArray<T> values = new ItemArray<T>(scope.SubScopes.Count);
     76
     77      IEnumerable<IScope> scopes = new IScope[] { ExecutionContext.Scope };
     78      for (int i = 0; i < depth; i++)
     79        scopes = scopes.Select(x => (IEnumerable<IScope>)x.SubScopes).Aggregate((a, b) => a.Concat(b));
     80
     81      List<T> values = new List<T>();
    4382      IVariable var;
    4483      T value;
    45 
    46       for (int i = 0; i < values.Length; i++) {
    47         scope.SubScopes[i].Variables.TryGetValue(name, out var);
     84      foreach (IScope scope in scopes) {
     85        scope.Variables.TryGetValue(name, out var);
    4886        if (var != null) {
    4987          value = var.Value as T;
     
    5492                            typeof(T).GetPrettyName())
    5593            );
    56           values[i] = value;
     94          values.Add(value);
    5795        }
    5896      }
    59       return values;
     97      return new ItemArray<T>(values);
    6098    }
    6199    protected override void SetActualValue(IItem value) {
     
    68106
    69107      string name = LookupParameter<ItemArray<T>>.TranslateName(Name, ExecutionContext);
    70       IScope scope = ExecutionContext.Scope;
     108
     109      IEnumerable<IScope> scopes = new IScope[] { ExecutionContext.Scope };
     110      for (int i = 0; i < depth; i++)
     111        scopes = scopes.Select(x => (IEnumerable<IScope>)x.SubScopes).Aggregate((a, b) => a.Concat(b));
     112
     113      if (scopes.Count() != values.Length) throw new InvalidOperationException("Number of values is not equal to number of scopes.");
     114
     115      int j = 0;
    71116      IVariable var;
     117      foreach (IScope scope in scopes) {
     118        scope.Variables.TryGetValue(name, out var);
     119        if (var != null) var.Value = values[j];
     120        else scope.Variables.Add(new Variable(name, values[j]));
     121        j++;
     122      }
     123    }
    72124
    73       for (int i = 0; i < values.Length; i++) {
    74         scope.SubScopes[i].Variables.TryGetValue(name, out var);
    75         if (var != null) var.Value = values[i];
    76         else scope.SubScopes[i].Variables.Add(new Variable(name, values[i]));
    77       }
     125    public event EventHandler DepthChanged;
     126    protected virtual void OnDepthChanged() {
     127      EventHandler handler = DepthChanged;
     128      if (handler != null) handler(this, EventArgs.Empty);
    78129    }
    79130  }
  • trunk/sources/HeuristicLab.Problems.ArtificialAnt/3.3/Analyzers/PopulationBestAntTrailAnalyzer.cs

    r3631 r3659  
    5959      : base() {
    6060      Parameters.Add(new LookupParameter<BoolMatrix>("World", "The world with food items for the artificial ant."));
    61       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>("SymbolicExpressionTree", "The artificial ant solutions from which the best solution should be visualized."));
    62       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the artificial ant solutions which should be visualized."));
     61      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>("SymbolicExpressionTree", "The artificial ant solutions from which the best solution should be visualized."));
     62      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the artificial ant solutions which should be visualized."));
    6363      Parameters.Add(new LookupParameter<AntTrail>("BestSolution", "The visual representation of the best ant trail."));
    6464      Parameters.Add(new LookupParameter<IntValue>("MaxTimeSteps", "The maximal time steps that the artificial ant has available to collect all food items."));
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/PopulationBestSymbolicRegressionSolutionAnalyzer.cs

    r3651 r3659  
    7979    public PopulationBestSymbolicRegressionSolutionAnalyzer()
    8080      : base() {
    81       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
     81      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
    8282      Parameters.Add(new LookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used for the analysis of symbolic expression trees."));
    8383      Parameters.Add(new LookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data for which the symbolic expression tree is a solution."));
    8484      Parameters.Add(new LookupParameter<DoubleValue>(UpperEstimationLimitParameterName, "The upper estimation limit that was set for the evaluation of the symbolic expression trees."));
    8585      Parameters.Add(new LookupParameter<DoubleValue>(LowerEstimationLimitParameterName, "The lower estimation limit that was set for the evaluation of the symbolic expression trees."));
    86       Parameters.Add(new SubScopesLookupParameter<DoubleValue>(QualityParameterName, "The qualities of the symbolic regression trees which should be analyzed."));
     86      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>(QualityParameterName, "The qualities of the symbolic regression trees which should be analyzed."));
    8787      Parameters.Add(new LookupParameter<SymbolicRegressionSolution>(BestSolutionParameterName, "The best symbolic regression solution."));
    8888      Parameters.Add(new LookupParameter<DoubleValue>(BestSolutionQualityParameterName, "The quality of the best symbolic regression solution."));
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/PopulationSymbolicRegressionModelQualityAnalyzer.cs

    r3652 r3659  
    8989      : base() {
    9090      Parameters.Add(new LookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used to calculate the output values of the symbolic expression tree."));
    91       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
     91      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
    9292      Parameters.Add(new LookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data containing the input varaibles for the symbolic regression problem."));
    9393      Parameters.Add(new LookupParameter<ResultCollection>(ResultsParameterName, "The result collection where the best symbolic regression solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/PopulationSymbolicRegressionVariableFrequencyAnalyzer.cs

    r3651 r3659  
    6868    public PopulationSymbolicRegressionVariableFrequencyAnalyzer()
    6969      : base() {
    70       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
     70      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
    7171      Parameters.Add(new LookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data containing the input varaibles for the symbolic regression problem."));
    7272      Parameters.Add(new ValueLookupParameter<DataTable>(VariableFrequenciesParameterName, "The data table to store the variable frequencies."));
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/PopulationValidationBestScaledSymbolicRegressionSolutionAnalyzer.cs

    r3651 r3659  
    9090    public PopulationValidationBestScaledSymbolicRegressionSolutionAnalyzer()
    9191      : base() {
    92       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
     92      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
    9393      Parameters.Add(new LookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used for the analysis of symbolic expression trees."));
    9494      Parameters.Add(new LookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data for which the symbolic expression tree is a solution."));
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Symbolic/VariableFrequencyAnalyser.cs

    r3531 r3659  
    6464    public VariableFrequencyAnalyser()
    6565      : base() {
    66       Parameters.Add(new SubScopesLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees that should be analyzed."));
     66      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees that should be analyzed."));
    6767      Parameters.Add(new LookupParameter<DataAnalysisProblemData>(DataAnalysisProblemDataParameterName, "The problem data on which the for which the symbolic expression tree is a solution."));
    6868      Parameters.Add(new LookupParameter<DoubleMatrix>(VariableFrequenciesParameterName, "The relative variable reference frequencies aggregated over the whole population."));
  • trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/MultiPopulationBestKnapsackSolutionAnalyzer.cs

    r3658 r3659  
    7070    public MultiPopulationBestKnapsackSolutionAnalyzer()
    7171      : base() {
    72       Parameters.Add(new SubScopesLookupParameter<ItemArray<BinaryVector>>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
     72      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<BinaryVector>>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
    7373      Parameters.Add(new LookupParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack."));
    7474      Parameters.Add(new LookupParameter<IntArray>("Weights", "The weights of the items."));
    7575      Parameters.Add(new LookupParameter<IntArray>("Values", "The values of the items."));
    7676     
    77       Parameters.Add(new SubScopesLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the knapsack solutions which should be visualized."));
     77      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the knapsack solutions which should be visualized."));
    7878      Parameters.Add(new LookupParameter<KnapsackSolution>("BestSolution", "The best knapsack solution."));
    7979      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the knapsack solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.Knapsack/3.3/Analyzers/PopulationBestKnapsackSolutionAnalyzer.cs

    r3658 r3659  
    7070    public PopulationBestKnapsackSolutionAnalyzer()
    7171      : base() {
    72       Parameters.Add(new SubScopesLookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
     72      Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("BinaryVector", "The knapsack solutions from which the best solution should be visualized."));
    7373      Parameters.Add(new LookupParameter<IntValue>("KnapsackCapacity", "Capacity of the Knapsack."));
    7474      Parameters.Add(new LookupParameter<IntArray>("Weights", "The weights of the items."));
    7575      Parameters.Add(new LookupParameter<IntArray>("Values", "The values of the items."));
    7676     
    77       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized."));
     77      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the knapsack solutions which should be visualized."));
    7878      Parameters.Add(new LookupParameter<KnapsackSolution>("BestSolution", "The best knapsack solution."));
    7979      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the knapsack solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/MultiPopulationBestOneMaxSolutionAnalyzer.cs

    r3658 r3659  
    6161    public MultiPopulationBestOneMaxSolutionAnalyzer()
    6262      : base() {
    63       Parameters.Add(new SubScopesLookupParameter<ItemArray<BinaryVector>>("BinaryVector", "The Onemax solutions from which the best solution should be visualized."));
     63      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<BinaryVector>>("BinaryVector", "The Onemax solutions from which the best solution should be visualized."));
    6464
    65       Parameters.Add(new SubScopesLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the Onemax solutions which should be visualized."));
     65      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the Onemax solutions which should be visualized."));
    6666      Parameters.Add(new LookupParameter<OneMaxSolution>("BestSolution", "The best Onemax solution."));
    6767      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the Onemax solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.OneMax/3.3/Analyzers/PopulationBestOneMaxSolutionAnalyzer.cs

    r3658 r3659  
    6161    public PopulationBestOneMaxSolutionAnalyzer()
    6262      : base() {
    63       Parameters.Add(new SubScopesLookupParameter<BinaryVector>("BinaryVector", "The Onemax solutions from which the best solution should be visualized."));
     63      Parameters.Add(new ScopeTreeLookupParameter<BinaryVector>("BinaryVector", "The Onemax solutions from which the best solution should be visualized."));
    6464
    65       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the Onemax solutions which should be visualized."));
     65      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the Onemax solutions which should be visualized."));
    6666      Parameters.Add(new LookupParameter<OneMaxSolution>("BestSolution", "The best Onemax solution."));
    6767      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the Onemax solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs

    r3658 r3659  
    6161    public MultiPopulationBestSingleObjectiveTestFunctionSolutionAnalyzer()
    6262      : base() {
    63       Parameters.Add(new SubScopesLookupParameter<ItemArray<RealVector>>("RealVector", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
     63      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<RealVector>>("RealVector", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
    6464
    65       Parameters.Add(new SubScopesLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the SingleObjectiveTestFunction solutions which should be visualized."));
     65      Parameters.Add(new ScopeTreeLookupParameter<ItemArray<DoubleValue>>("Quality", "The qualities of the SingleObjectiveTestFunction solutions which should be visualized."));
    6666      Parameters.Add(new LookupParameter<SingleObjectiveTestFunctionSolution>("BestSolution", "The best SingleObjectiveTestFunction solution."));
    6767      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the SingleObjectiveTestFunction solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.TestFunctions/3.3/Analyzers/PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer.cs

    r3658 r3659  
    6161    public PopulationBestSingleObjectiveTestFunctionSolutionAnalyzer()
    6262      : base() {
    63       Parameters.Add(new SubScopesLookupParameter<RealVector>("RealVector", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
     63      Parameters.Add(new ScopeTreeLookupParameter<RealVector>("RealVector", "The SingleObjectiveTestFunction solutions from which the best solution should be visualized."));
    6464
    65       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the SingleObjectiveTestFunction solutions which should be visualized."));
     65      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the SingleObjectiveTestFunction solutions which should be visualized."));
    6666      Parameters.Add(new LookupParameter<SingleObjectiveTestFunctionSolution>("BestSolution", "The best SingleObjectiveTestFunction solution."));
    6767      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the SingleObjectiveTestFunction solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/MultiPopulationBestTSPSolutionAnalyzer.cs

    r3658 r3659  
    6464      : base() {
    6565      Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the cities."));
    66       Parameters.Add(new SubScopesSubScopesLookupParameter<Permutation>("Permutation", "The TSP solutions given in path representation from which the best solution should be analyzed."));
    67       Parameters.Add(new SubScopesSubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the TSP solutions which should be analyzed."));
     66      Parameters.Add(new ScopeTreeLookupParameter<Permutation>("Permutation", "The TSP solutions given in path representation from which the best solution should be analyzed."));
     67      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the TSP solutions which should be analyzed."));
    6868      Parameters.Add(new LookupParameter<PathTSPTour>("BestSolution", "The best TSP solution."));
    6969      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the best TSP solution should be stored."));
  • trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/Analyzers/PopulationBestTSPSolutionAnalyzer.cs

    r3658 r3659  
    6262      : base() {
    6363      Parameters.Add(new LookupParameter<DoubleMatrix>("Coordinates", "The x- and y-Coordinates of the cities."));
    64       Parameters.Add(new SubScopesLookupParameter<Permutation>("Permutation", "The TSP solutions given in path representation from which the best solution should be analyzed."));
    65       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The qualities of the TSP solutions which should be analyzed."));
     64      Parameters.Add(new ScopeTreeLookupParameter<Permutation>("Permutation", "The TSP solutions given in path representation from which the best solution should be analyzed."));
     65      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the TSP solutions which should be analyzed."));
    6666      Parameters.Add(new LookupParameter<PathTSPTour>("BestSolution", "The best TSP solution."));
    6767      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the best TSP solution should be stored."));
  • trunk/sources/HeuristicLab.Selection/3.3/ConditionalSelector.cs

    r3413 r3659  
    3232  [StorableClass]
    3333  public class ConditionalSelector : Selector {
    34     public SubScopesLookupParameter<BoolValue> ConditionParameter {
    35       get { return (SubScopesLookupParameter<BoolValue>)Parameters["Condition"]; }
     34    public ScopeTreeLookupParameter<BoolValue> ConditionParameter {
     35      get { return (ScopeTreeLookupParameter<BoolValue>)Parameters["Condition"]; }
    3636    }
    3737    public ValueParameter<BoolValue> CopySelectedParameter {
     
    4646    public ConditionalSelector()
    4747      : base() {
    48       Parameters.Add(new SubScopesLookupParameter<BoolValue>("Condition", "The boolean variable based on which the scopes are selected into a true scope-branch and a false scope-branch."));
     48      Parameters.Add(new ScopeTreeLookupParameter<BoolValue>("Condition", "The boolean variable based on which the scopes are selected into a true scope-branch and a false scope-branch."));
    4949      Parameters.Add(new ValueParameter<BoolValue>("CopySelected", "The parameter that decides whether the selected scopes should be copied or moved.", new BoolValue(true)));
    5050    }
  • trunk/sources/HeuristicLab.Selection/3.3/GenderSpecificSelector.cs

    r3413 r3659  
    8989      #region Create parameters
    9090      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem."));
    91       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The quality of the solutions."));
     91      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality of the solutions."));
    9292      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfSelectedSubScopes", "The number of scopes that should be selected."));
    9393      Parameters.Add(new ValueLookupParameter<BoolValue>("CopySelected", "True if the scopes should be copied, false if they should be moved.", new BoolValue(true)));
  • trunk/sources/HeuristicLab.Selection/3.3/RandomReplacer.cs

    r3601 r3659  
    5353    public RandomReplacer()
    5454      : base() {
    55       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The quality of a solution."));
     55      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality of a solution."));
    5656      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    5757      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator to use."));
  • trunk/sources/HeuristicLab.Selection/3.3/SingleObjectiveSelector.cs

    r3376 r3659  
    5656      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfSelectedSubScopes", "The number of sub-scopes which should be selected."));
    5757      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the current problem is a maximization problem, otherwise false."));
    58       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The quality value contained in each sub-scope which is used for selection."));
     58      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality value contained in each sub-scope which is used for selection."));
    5959    }
    6060  }
  • trunk/sources/HeuristicLab.Selection/3.3/WorstReplacer.cs

    r3601 r3659  
    5050    public WorstReplacer()
    5151      : base() {
    52       Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The quality of a solution."));
     52      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The quality of a solution."));
    5353      Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false."));
    5454
Note: See TracChangeset for help on using the changeset viewer.