Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/16/15 11:48:59 (9 years ago)
Author:
abeham
Message:

#2431:

  • branched relevant plugins
  • added analyzer to calculate quality vs evaluation first-hit graph
  • (also added results parameter)
Location:
branches/PerformanceComparison
Files:
2 added
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/PerformanceComparison/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj

    r12139 r12764  
    4141    <DebugType>full</DebugType>
    4242    <Optimize>false</Optimize>
    43     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     43    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    4444    <DefineConstants>DEBUG;TRACE</DefineConstants>
    4545    <ErrorReport>prompt</ErrorReport>
     
    5151    <DebugType>pdbonly</DebugType>
    5252    <Optimize>true</Optimize>
    53     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     53    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    5454    <DefineConstants>TRACE</DefineConstants>
    5555    <ErrorReport>prompt</ErrorReport>
     
    6262  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    6363    <DebugSymbols>true</DebugSymbols>
    64     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     64    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    6565    <DefineConstants>DEBUG;TRACE</DefineConstants>
    6666    <DebugType>full</DebugType>
     
    7171  </PropertyGroup>
    7272  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    73     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     73    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    7474    <DefineConstants>TRACE</DefineConstants>
    7575    <DocumentationFile>
     
    8484  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    8585    <DebugSymbols>true</DebugSymbols>
    86     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     86    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    8787    <DefineConstants>DEBUG;TRACE</DefineConstants>
    8888    <DebugType>full</DebugType>
     
    9393  </PropertyGroup>
    9494  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    95     <OutputPath>$(SolutionDir)\bin\</OutputPath>
     95    <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath>
    9696    <DefineConstants>TRACE</DefineConstants>
    9797    <DocumentationFile>
     
    107107    <Reference Include="ALGLIB-3.7.0, Version=3.7.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
    108108      <HintPath>..\..\bin\ALGLIB-3.7.0.dll</HintPath>
     109      <Private>False</Private>
     110    </Reference>
     111    <Reference Include="HeuristicLab.Collections-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     112      <SpecificVersion>False</SpecificVersion>
     113      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     114      <Private>False</Private>
     115    </Reference>
     116    <Reference Include="HeuristicLab.Common-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     117      <SpecificVersion>False</SpecificVersion>
     118      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     119      <Private>False</Private>
     120    </Reference>
     121    <Reference Include="HeuristicLab.Common.Resources-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     122      <SpecificVersion>False</SpecificVersion>
     123      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     124      <Private>False</Private>
     125    </Reference>
     126    <Reference Include="HeuristicLab.Core-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     127      <SpecificVersion>False</SpecificVersion>
     128      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
     129      <Private>False</Private>
     130    </Reference>
     131    <Reference Include="HeuristicLab.Data-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     132      <SpecificVersion>False</SpecificVersion>
     133      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     134      <Private>False</Private>
     135    </Reference>
     136    <Reference Include="HeuristicLab.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     137      <SpecificVersion>False</SpecificVersion>
     138      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     139      <Private>False</Private>
     140    </Reference>
     141    <Reference Include="HeuristicLab.Optimization.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     142      <SpecificVersion>False</SpecificVersion>
     143      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Operators-3.3.dll</HintPath>
     144      <Private>False</Private>
     145    </Reference>
     146    <Reference Include="HeuristicLab.Parameters-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     147      <SpecificVersion>False</SpecificVersion>
     148      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
     149      <Private>False</Private>
     150    </Reference>
     151    <Reference Include="HeuristicLab.Persistence-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     152      <SpecificVersion>False</SpecificVersion>
     153      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     154      <Private>False</Private>
     155    </Reference>
     156    <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     157      <SpecificVersion>False</SpecificVersion>
     158      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
    109159      <Private>False</Private>
    110160    </Reference>
     
    131181    <Compile Include="AlleleFrequencyAnalysis\AlleleFrequencyCollectionHistory.cs" />
    132182    <Compile Include="BestScopeSolutionAnalyzer.cs" />
     183    <Compile Include="DataVisualization\IndexedDataRow.cs" />
     184    <Compile Include="DataVisualization\IndexedDataTable.cs" />
    133185    <Compile Include="DataVisualization\ScatterPlotDataRowVisualProperties.cs" />
    134186    <Compile Include="DataVisualization\ScatterPlotDataRow.cs" />
     
    159211    <Compile Include="Properties\AssemblyInfo.cs" />
    160212    <Compile Include="QualityAnalysis\QualityDistributionAnalyzer.cs" />
     213    <Compile Include="QualityAnalysis\QualityVsEvaluationsAnalyzer.cs" />
    161214    <Compile Include="QualityAnalysis\ScaledQualityDifferenceAnalyzer.cs" />
    162215    <Compile Include="Statistics\BonferroniHolm.cs" />
     
    180233  </ItemGroup>
    181234  <ItemGroup>
    182     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    183       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    184       <Name>HeuristicLab.Collections-3.3</Name>
    185       <Private>False</Private>
    186     </ProjectReference>
    187     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    188       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    189       <Name>HeuristicLab.Common.Resources-3.3</Name>
    190       <Private>False</Private>
    191     </ProjectReference>
    192     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    193       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    194       <Name>HeuristicLab.Common-3.3</Name>
    195       <Private>False</Private>
    196     </ProjectReference>
    197     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    198       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    199       <Name>HeuristicLab.Core-3.3</Name>
    200       <Private>False</Private>
    201     </ProjectReference>
    202     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    203       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    204       <Name>HeuristicLab.Data-3.3</Name>
    205       <Private>False</Private>
    206     </ProjectReference>
    207     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    208       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    209       <Name>HeuristicLab.Operators-3.3</Name>
    210       <Private>False</Private>
    211     </ProjectReference>
    212     <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj">
    213       <Project>{25087811-F74C-4128-BC86-8324271DA13E}</Project>
    214       <Name>HeuristicLab.Optimization.Operators-3.3</Name>
    215       <Private>False</Private>
    216     </ProjectReference>
    217235    <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    218236      <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    219237      <Name>HeuristicLab.Optimization-3.3</Name>
    220       <Private>False</Private>
    221     </ProjectReference>
    222     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    223       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
    224       <Name>HeuristicLab.Parameters-3.3</Name>
    225       <Private>False</Private>
    226     </ProjectReference>
    227     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    228       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    229       <Name>HeuristicLab.Persistence-3.3</Name>
    230       <Private>False</Private>
    231     </ProjectReference>
    232     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    233       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    234       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    235238      <Private>False</Private>
    236239    </ProjectReference>
  • branches/PerformanceComparison/HeuristicLab.Analysis/3.3/QualityAnalysis/QualityVsEvaluationsAnalyzer.cs

    r12759 r12764  
    2020#endregion
    2121
     22using System;
    2223using HeuristicLab.Common;
    2324using HeuristicLab.Core;
     
    2829using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2930
    30 namespace HeuristicLab.Analysis.QualityAnalysis {
    31   [Item("ScaledQualityDifferenceAnalyzer", @"Calculates the quality value relative to a certain range given with a minimum and a maximum value.
    32 The difference lies in the interval [0;1] if the range [min;max] is as large as the observed quality values, otherwise the difference will become < 0 or > 1.
    33 A value towards 0 always means that it's closer to the better fitness value, while a value towards 1 means that it's closer to the worse fitness value.")]
     31namespace HeuristicLab.Analysis {
     32  [Item("QualityVsEvaluationsAnalyzer", @"Creates a plot of the solution quality with respect to the number of evaluated solutions.")]
    3433  [StorableClass]
    35   public class ScaledQualityDifferenceAnalyzer : SingleSuccessorOperator, IAnalyzer, ISingleObjectiveOperator {
     34  public class QualityVsEvaluationsAnalyzer : SingleSuccessorOperator, IAnalyzer, ISingleObjectiveOperator {
    3635    public virtual bool EnabledByDefault {
    37       get { return true; }
     36      get { return false; }
    3837    }
    3938
    40     public ILookupParameter<DoubleValue> QualityParameter {
    41       get { return (ILookupParameter<DoubleValue>)Parameters["Quality"]; }
     39    public ILookupParameter<DoubleValue> BestQualityParameter {
     40      get { return (ILookupParameter<DoubleValue>)Parameters["BestQuality"]; }
    4241    }
    43     public ILookupParameter<BoolValue> MaximizationParameter {
    44       get { return (ILookupParameter<BoolValue>)Parameters["Maximization"]; }
     42    public ILookupParameter<IntValue> EvaluatedSolutionsParameter {
     43      get { return (ILookupParameter<IntValue>)Parameters["EvaluatedSolutions"]; }
    4544    }
    46     public ILookupParameter<DoubleValue> ScaledDifferenceParameter {
    47       get { return (ILookupParameter<DoubleValue>)Parameters["ScaledDifference"]; }
    48     }
    49     public ILookupParameter<ResultCollection> ResultsParameter {
    50       get { return (ILookupParameter<ResultCollection>)Parameters["Results"]; }
    51     }
    52     public IValueLookupParameter<DoubleValue> MinimumQualityParameter {
    53       get { return (IValueLookupParameter<DoubleValue>)Parameters["MinimumQuality"]; }
    54     }
    55     public IValueLookupParameter<DoubleValue> MaximumQualityParameter {
    56       get { return (IValueLookupParameter<DoubleValue>)Parameters["MaximumQuality"]; }
     45    public IResultParameter<IndexedDataTable<int>> QualityVsEvaluationsParameter {
     46      get { return (IResultParameter<IndexedDataTable<int>>)Parameters["QualityVsEvaluations"]; }
    5747    }
    5848
    5949    [StorableConstructor]
    60     protected ScaledQualityDifferenceAnalyzer(bool deserializing) : base(deserializing) { }
    61     protected ScaledQualityDifferenceAnalyzer(ScaledQualityDifferenceAnalyzer original, Cloner cloner) : base(original, cloner) { }
    62     public ScaledQualityDifferenceAnalyzer()
     50    protected QualityVsEvaluationsAnalyzer(bool deserializing) : base(deserializing) { }
     51    protected QualityVsEvaluationsAnalyzer(QualityVsEvaluationsAnalyzer original, Cloner cloner) : base(original, cloner) { }
     52    public QualityVsEvaluationsAnalyzer()
    6353      : base() {
    64       Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value that should be compared."));
    65       Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, false otherwise."));
    66       Parameters.Add(new LookupParameter<DoubleValue>("ScaledDifference", "The value that describes whether the quality value lies towards the better quality in the range (<=0.5) or more towards the worse quality (> 0.5)."));
    67       Parameters.Add(new LookupParameter<ResultCollection>("Results", "The result collection where the difference will be stored (in addition to the scope)."));
    68       Parameters.Add(new ValueLookupParameter<DoubleValue>("MinimumQuality", "The lower bound of the quality range to which the quality is compared."));
    69       Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumQuality", "The upper bound of the quality range to which the quality is compared."));
     54      Parameters.Add(new LookupParameter<DoubleValue>("BestQuality", "The quality value that should be compared."));
     55      Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The quality value that should be compared."));
     56      Parameters.Add(new ResultParameter<IndexedDataTable<int>>("QualityVsEvaluations", "Data table containing the first hitting graph with evaluations as the x-axis."));
     57      QualityVsEvaluationsParameter.DefaultValue = new IndexedDataTable<int>("Quality vs Evaluations") {
     58        Rows = { new IndexedDataRow<int>("First-hit Graph") { VisualProperties = { ChartType = DataRowVisualProperties.DataRowChartType.StepLine } } }
     59      };
    7060    }
    7161
    7262    public override IDeepCloneable Clone(Cloner cloner) {
    73       return new ScaledQualityDifferenceAnalyzer(this, cloner);
     63      return new QualityVsEvaluationsAnalyzer(this, cloner);
    7464    }
    7565
    7666    public override IOperation Apply() {
    77       bool maximization = MaximizationParameter.ActualValue.Value;
    78       double quality = QualityParameter.ActualValue.Value, max = MaximumQualityParameter.ActualValue.Value, min = MinimumQualityParameter.ActualValue.Value;
    79       double difference;
     67      var bestQuality = BestQualityParameter.ActualValue.Value;
     68      var evaluations = EvaluatedSolutionsParameter.ActualValue.Value;
    8069
    81       difference = ((quality - min) / (max - min));
    82       if (maximization) difference = 1.0 - difference;
    83 
    84       DoubleValue differenceValue = ScaledDifferenceParameter.ActualValue;
    85       if (differenceValue == null) {
    86         differenceValue = new DoubleValue(difference);
    87         ScaledDifferenceParameter.ActualValue = differenceValue;
    88       } else differenceValue.Value = difference;
    89 
    90       ResultCollection results = ResultsParameter.ActualValue;
    91       if (results != null) {
    92         IResult r;
    93         if (!results.TryGetValue(ScaledDifferenceParameter.TranslatedName, out r)) {
    94           r = new Result(ScaledDifferenceParameter.TranslatedName, differenceValue);
    95           results.Add(r);
    96         }
    97       }
     70      var dataTable = QualityVsEvaluationsParameter.ResultValue;
     71      dataTable.Rows["First-hit Graph"].Values.Add(Tuple.Create(evaluations, bestQuality));
    9872
    9973      return base.Apply();
Note: See TracChangeset for help on using the changeset viewer.