Free cookie consent management tool by TermsFeed Policy Generator

Changeset 3095


Ignore:
Timestamp:
03/18/10 02:17:56 (14 years ago)
Author:
swagner
Message:

Finished best and best known quality handling (#920)

Location:
trunk/sources
Files:
2 added
7 edited

Legend:

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

    r3080 r3095  
    6666      get { return (ConstrainedValueParameter<ICrossover>)Parameters["Crossover"]; }
    6767    }
    68     private ValueParameter<DoubleValue> MutationProbabilityParameter {
    69       get { return (ValueParameter<DoubleValue>)Parameters["MutationProbability"]; }
     68    private ValueParameter<PercentValue> MutationProbabilityParameter {
     69      get { return (ValueParameter<PercentValue>)Parameters["MutationProbability"]; }
    7070    }
    7171    private OptionalConstrainedValueParameter<IManipulator> MutatorParameter {
     
    101101      set { CrossoverParameter.Value = value; }
    102102    }
    103     public DoubleValue MutationProbability {
     103    public PercentValue MutationProbability {
    104104      get { return MutationProbabilityParameter.Value; }
    105105      set { MutationProbabilityParameter.Value = value; }
     
    139139      Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction."));
    140140      Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions."));
    141       Parameters.Add(new ValueParameter<DoubleValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new DoubleValue(0.05)));
     141      Parameters.Add(new ValueParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new PercentValue(0.05)));
    142142      Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));
    143143      Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite solutions which are kept in each generation.", new IntValue(1)));
  • trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGAMainLoop.cs

    r3080 r3095  
    5656      get { return (ValueLookupParameter<IOperator>)Parameters["Crossover"]; }
    5757    }
    58     public ValueLookupParameter<DoubleValue> MutationProbabilityParameter {
    59       get { return (ValueLookupParameter<DoubleValue>)Parameters["MutationProbability"]; }
     58    public ValueLookupParameter<PercentValue> MutationProbabilityParameter {
     59      get { return (ValueLookupParameter<PercentValue>)Parameters["MutationProbability"]; }
    6060    }
    6161    public ValueLookupParameter<IOperator> MutatorParameter {
     
    9898      Parameters.Add(new ValueLookupParameter<IOperator>("Selector", "The operator used to select solutions for reproduction."));
    9999      Parameters.Add(new ValueLookupParameter<IOperator>("Crossover", "The operator used to cross solutions."));
    100       Parameters.Add(new ValueLookupParameter<DoubleValue>("MutationProbability", "The probability that the mutation operator is applied on a solution."));
     100      Parameters.Add(new ValueLookupParameter<PercentValue>("MutationProbability", "The probability that the mutation operator is applied on a solution."));
    101101      Parameters.Add(new ValueLookupParameter<IOperator>("Mutator", "The operator used to mutate solutions."));
    102102      Parameters.Add(new ValueLookupParameter<IOperator>("Evaluator", "The operator used to evaluate solutions."));
     
    110110      VariableCreator variableCreator = new VariableCreator();
    111111      BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer();
     112      BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();
    112113      BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator();
    113114      DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector();
     115      QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    114116      ResultsCollector resultsCollector = new ResultsCollector();
    115117      SubScopesSorter subScopesSorter1 = new SubScopesSorter();
     
    130132      IntCounter intCounter = new IntCounter();
    131133      Comparator comparator = new Comparator();
    132       BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();
     134      BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer();
     135      BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer();
    133136      BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator();
    134137      DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector();
     138      QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator();
    135139      ConditionalBranch conditionalBranch = new ConditionalBranch();
    136140
    137141      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0)));
    138142
    139       bestQualityMemorizer1.BestQualityParameter.ActualName = "Best Quality";
     143      bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality";
    140144      bestQualityMemorizer1.MaximizationParameter.ActualName = "Maximization";
    141145      bestQualityMemorizer1.QualityParameter.ActualName = "Quality";
    142146
    143       bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "Current Average Quality";
    144       bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "Current Best Quality";
     147      bestQualityMemorizer2.BestQualityParameter.ActualName = "BestKnownQuality";
     148      bestQualityMemorizer2.MaximizationParameter.ActualName = "Maximization";
     149      bestQualityMemorizer2.QualityParameter.ActualName = "Quality";
     150
     151      bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality";
     152      bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality";
    145153      bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = "Maximization";
    146154      bestAverageWorstQualityCalculator1.QualityParameter.ActualName = "Quality";
    147       bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "Current Worst Quality";
    148 
    149       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality"));
    150       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality"));
    151       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality"));
    152       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality"));
     155      bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality";
     156
     157      dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
     158      dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
     159      dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
     160      dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    153161      dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    154162      dataTableValuesCollector1.DataTableParameter.ActualName = "Qualities";
    155163
     164      qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
     165      qualityDifferenceCalculator1.FirstQualityParameter.ActualName = "BestKnownQuality";
     166      qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
     167      qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";
     168
    156169      resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    157       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality"));
    158       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality"));
    159       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality"));
    160       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality"));
     170      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
     171      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
     172      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
     173      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    161174      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
     175      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));
     176      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));
    162177      resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));
    163178      resultsCollector.ResultsParameter.ActualName = "Results";
     
    199214      comparator.RightSideParameter.ActualName = "MaximumGenerations";
    200215
    201       bestQualityMemorizer2.BestQualityParameter.ActualName = "Best Quality";
    202       bestQualityMemorizer2.MaximizationParameter.ActualName = "Maximization";
    203       bestQualityMemorizer2.QualityParameter.ActualName = "Quality";
    204 
    205       bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "Current Average Quality";
    206       bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "Current Best Quality";
     216      bestQualityMemorizer3.BestQualityParameter.ActualName = "BestQuality";
     217      bestQualityMemorizer3.MaximizationParameter.ActualName = "Maximization";
     218      bestQualityMemorizer3.QualityParameter.ActualName = "Quality";
     219
     220      bestQualityMemorizer4.BestQualityParameter.ActualName = "BestKnownQuality";
     221      bestQualityMemorizer4.MaximizationParameter.ActualName = "Maximization";
     222      bestQualityMemorizer4.QualityParameter.ActualName = "Quality";
     223
     224      bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageQuality";
     225      bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestQuality";
    207226      bestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = "Maximization";
    208227      bestAverageWorstQualityCalculator2.QualityParameter.ActualName = "Quality";
    209       bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "Current Worst Quality";
    210 
    211       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality"));
    212       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality"));
    213       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality"));
    214       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality"));
     228      bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstQuality";
     229
     230      dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
     231      dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
     232      dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
     233      dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    215234      dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, "BestKnownQuality"));
    216235      dataTableValuesCollector2.DataTableParameter.ActualName = "Qualities";
     236
     237      qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
     238      qualityDifferenceCalculator2.FirstQualityParameter.ActualName = "BestKnownQuality";
     239      qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
     240      qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality";
    217241
    218242      conditionalBranch.ConditionParameter.ActualName = "Terminate";
     
    222246      OperatorGraph.InitialOperator = variableCreator;
    223247      variableCreator.Successor = bestQualityMemorizer1;
    224       bestQualityMemorizer1.Successor = bestAverageWorstQualityCalculator1;
     248      bestQualityMemorizer1.Successor = bestQualityMemorizer2;
     249      bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1;
    225250      bestAverageWorstQualityCalculator1.Successor = dataTableValuesCollector1;
    226       dataTableValuesCollector1.Successor = resultsCollector;
     251      dataTableValuesCollector1.Successor = qualityDifferenceCalculator1;
     252      qualityDifferenceCalculator1.Successor = resultsCollector;
    227253      resultsCollector.Successor = subScopesSorter1;
    228254      subScopesSorter1.Successor = selector;
     
    249275      mergingReducer.Successor = intCounter;
    250276      intCounter.Successor = comparator;
    251       comparator.Successor = bestQualityMemorizer2;
    252       bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator2;
     277      comparator.Successor = bestQualityMemorizer3;
     278      bestQualityMemorizer3.Successor = bestQualityMemorizer4;
     279      bestQualityMemorizer4.Successor = bestAverageWorstQualityCalculator2;
    253280      bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector2;
    254       dataTableValuesCollector2.Successor = conditionalBranch;
     281      dataTableValuesCollector2.Successor = qualityDifferenceCalculator2;
     282      qualityDifferenceCalculator2.Successor = conditionalBranch;
    255283      conditionalBranch.FalseBranch = subScopesSorter1;
    256284      conditionalBranch.TrueBranch = null;
  • trunk/sources/HeuristicLab.Analysis/3.3/DataTableValuesCollector.cs

    r3080 r3095  
    5858        table.Rows.TryGetValue(param.Name, out row);
    5959        if (row == null) {
    60           row = new DataRow(param.Name);
     60          row = new DataRow(param.Name, param.Description);
    6161          row.Values.Add(data.Value);
    6262          table.Rows.Add(row);
  • trunk/sources/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj

    r2997 r3095  
    8686    <Compile Include="BestAverageWorstQualityCalculator.cs" />
    8787    <Compile Include="BestQualityMemorizer.cs" />
     88    <Compile Include="QualityDifferenceCalculator.cs" />
    8889    <Compile Include="DataRow.cs" />
    8990    <Compile Include="HeuristicLabAnalysisPlugin.cs" />
  • trunk/sources/HeuristicLab.Data/3.3/HeuristicLab.Data-3.3.csproj

    r3054 r3095  
    104104    <Compile Include="Comparison.cs" />
    105105    <Compile Include="ComparisonType.cs" />
     106    <Compile Include="PercentValue.cs" />
    106107    <Compile Include="DateTimeValue.cs" />
    107108    <Compile Include="DoubleArray.cs" />
  • trunk/sources/HeuristicLab.Operators/3.3/ResultsCollector.cs

    r3017 r3095  
    4949          var.Value = (IItem)param.ActualValue;
    5050        else
    51           results.Add(new Variable(param.Name, param.ActualValue));
     51          results.Add(new Variable(param.Name, param.Description, param.ActualValue));
    5252      }
    5353      return base.Apply();
  • trunk/sources/HeuristicLab.Operators/3.3/VariableCreator.cs

    r3017 r3095  
    5151          var.Value = (IItem)param.ActualValue.Clone();
    5252        else
    53           CurrentScope.Variables.Add(new Variable(param.Name, (IItem)param.ActualValue.Clone()));
     53          CurrentScope.Variables.Add(new Variable(param.Name, param.Description, (IItem)param.ActualValue.Clone()));
    5454      }
    5555      return base.Apply();
Note: See TracChangeset for help on using the changeset viewer.