Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/10/15 09:57:29 (9 years ago)
Author:
pfleck
Message:

#2269 merged trunk

Location:
branches/ALPS
Files:
21 edited
4 copied

Legend:

Unmodified
Added
Removed
  • branches/ALPS

  • branches/ALPS/HeuristicLab.Optimization

    • Property svn:mergeinfo set to (toggle deleted branches)
      /branches/HLScript/HeuristicLab.Optimizationmergedeligible
      /stable/HeuristicLab.Optimizationmergedeligible
      /trunk/sources/HeuristicLab.Optimizationmergedeligible
      /branches/1721-RandomForestPersistence/HeuristicLab.Optimization10321-10322
      /branches/Algorithms.GradientDescent/HeuristicLab.Optimization5516-5520
      /branches/Benchmarking/sources/HeuristicLab.Optimization6917-7005
      /branches/Classification-Extensions/HeuristicLab.Optimization11687-11761
      /branches/CloningRefactoring/HeuristicLab.Optimization4656-4721
      /branches/CodeEditor/HeuristicLab.Optimization11700-11806
      /branches/DataAnalysis Refactoring/HeuristicLab.Optimization5471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Optimization5815-6180
      /branches/DataAnalysis/HeuristicLab.Optimization4458-4459,​4462,​4464
      /branches/DataPreprocessing/HeuristicLab.Optimization10085-11101
      /branches/GP.Grammar.Editor/HeuristicLab.Optimization6284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Optimization5060
      /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.Optimization6123-9799
      /branches/LogResidualEvaluator/HeuristicLab.Optimization10202-10483
      /branches/NET40/sources/HeuristicLab.Optimization5138-5162
      /branches/ParallelEngine/HeuristicLab.Optimization5175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Optimization7568-7810
      /branches/ProgrammableProblem/HeuristicLab.Optimization11573-11959
      /branches/QAPAlgorithms/HeuristicLab.Optimization6350-6627
      /branches/Restructure trunk solution/HeuristicLab.Optimization6828
      /branches/RuntimeOptimizer/HeuristicLab.Optimization8943-9078
      /branches/ScatterSearch (trunk integration)/HeuristicLab.Optimization7787-8333
      /branches/SlaveShutdown/HeuristicLab.Optimization8944-8956
      /branches/SpectralKernelForGaussianProcesses/HeuristicLab.Optimization10204-10479
      /branches/SuccessProgressAnalysis/HeuristicLab.Optimization5370-5682
      /branches/Trunk/HeuristicLab.Optimization6829-6865
      /branches/UnloadJobs/HeuristicLab.Optimization9168-9215
      /branches/VNS/HeuristicLab.Optimization5594-5752
      /branches/histogram/HeuristicLab.Optimization5959-6341
  • branches/ALPS/HeuristicLab.Optimization/3.3/Algorithms/Algorithm.cs

    r11171 r11975  
    227227    public virtual void CollectResultValues(IDictionary<string, IItem> values) {
    228228      values.Add("Execution Time", new TimeSpanValue(ExecutionTime));
    229       CollectResultsRecursively("", Results, values);
    230     }
    231 
    232     private void CollectResultsRecursively(string path, ResultCollection results, IDictionary<string, IItem> values) {
    233       foreach (IResult result in results) {
    234         values.Add(path + result.Name, result.Value);
    235         ResultCollection childCollection = result.Value as ResultCollection;
    236         if (childCollection != null) {
    237           CollectResultsRecursively(path + result.Name + ".", childCollection, values);
    238         }
    239       }
     229      Results.CollectResultValues(values);
    240230    }
    241231
  • branches/ALPS/HeuristicLab.Optimization/3.3/Algorithms/EngineAlgorithm.cs

    r11171 r11975  
    159159      if ((engine != null) && (operatorGraph.InitialOperator != null)) {
    160160        ExecutionContext context = null;
    161         if (Problem != null) context = new ExecutionContext(context, Problem, globalScope);
     161        if (Problem != null) {
     162          foreach (var item in Problem.ExecutionContextItems)
     163            context = new ExecutionContext(context, item, globalScope);
     164        }
    162165        context = new ExecutionContext(context, this, globalScope);
    163166        context = new ExecutionContext(context, operatorGraph.InitialOperator, globalScope);
  • branches/ALPS/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj

    r11677 r11975  
    120120  </ItemGroup>
    121121  <ItemGroup>
     122    <Compile Include="Algorithms\BasicAlgorithm.cs" />
     123    <Compile Include="BasicProblems\BasicProblem.cs" />
     124    <Compile Include="BasicProblems\Encoding.cs" />
     125    <Compile Include="BasicProblems\Individuals\Individual.cs" />
     126    <Compile Include="BasicProblems\Individuals\MultiEncodingIndividual.cs" />
     127    <Compile Include="BasicProblems\Individuals\SingleEncodingIndividual.cs" />
     128    <Compile Include="BasicProblems\Interfaces\IEncoding.cs" />
     129    <Compile Include="BasicProblems\Interfaces\IEncodingOperator.cs" />
     130    <Compile Include="BasicProblems\Interfaces\IMultiEncodingOperator.cs" />
     131    <Compile Include="BasicProblems\Interfaces\IMultiObjectiveProblemDefinition.cs" />
     132    <Compile Include="BasicProblems\Interfaces\internal\IMultiObjectiveAnalysisOperator.cs" />
     133    <Compile Include="BasicProblems\Interfaces\internal\IMultiObjectiveEvaluationOperator.cs" />
     134    <Compile Include="BasicProblems\Interfaces\internal\INeighborBasedOperator.cs" />
     135    <Compile Include="BasicProblems\Interfaces\internal\ISingleObjectiveAnalysisOperator.cs" />
     136    <Compile Include="BasicProblems\Interfaces\internal\ISingleObjectiveEvaluationOperator.cs" />
     137    <Compile Include="BasicProblems\Interfaces\IProblemDefinition.cs" />
     138    <Compile Include="BasicProblems\Interfaces\ISingleObjectiveMoveOperator.cs" />
     139    <Compile Include="BasicProblems\Interfaces\ISingleObjectiveProblemDefinition.cs" />
     140    <Compile Include="BasicProblems\MultiEncoding.cs" />
     141    <Compile Include="BasicProblems\MultiObjectiveBasicProblem.cs" />
     142    <Compile Include="BasicProblems\Operators\MultiEncodingCreator.cs" />
     143    <Compile Include="BasicProblems\Operators\MultiEncodingCrossover.cs" />
     144    <Compile Include="BasicProblems\Operators\MultiEncodingManipulator.cs" />
     145    <Compile Include="BasicProblems\Operators\MultiEncodingOperator.cs" />
     146    <Compile Include="BasicProblems\Operators\MultiObjectiveAnalyzer.cs" />
     147    <Compile Include="BasicProblems\Operators\MultiObjectiveEvaluator.cs" />
     148    <Compile Include="BasicProblems\Operators\SingleObjectiveAnalyzer.cs" />
     149    <Compile Include="BasicProblems\Operators\SingleObjectiveEvaluator.cs" />
     150    <Compile Include="BasicProblems\Operators\SingleObjectiveImprover.cs" />
     151    <Compile Include="BasicProblems\Operators\SingleObjectiveMoveEvaluator.cs" />
     152    <Compile Include="BasicProblems\Operators\SingleObjectiveMoveGenerator.cs" />
     153    <Compile Include="BasicProblems\Operators\SingleObjectiveMoveMaker.cs" />
     154    <Compile Include="BasicProblems\SingleObjectiveBasicProblem.cs" />
    122155    <Compile Include="Interfaces\ILocalImprovementAlgorithmOperator.cs" />
     156    <Compile Include="Interfaces\IMultiObjectiveOperator.cs" />
     157    <Compile Include="Interfaces\ISingleObjectiveOperator.cs" />
    123158    <Compile Include="Interfaces\ISingleObjectivePathRelinker.cs" />
    124159    <Compile Include="Interfaces\ISingleObjectiveImprovementOperator.cs" />
     
    245280      <Private>False</Private>
    246281    </ProjectReference>
     282    <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
     283      <Project>{23da7ff4-d5b8-41b6-aa96-f0561d24f3ee}</Project>
     284      <Name>HeuristicLab.Operators-3.3</Name>
     285      <Private>False</Private>
     286    </ProjectReference>
    247287    <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    248288      <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/IMultiObjectiveEvaluator.cs

    r11171 r11975  
    2727  /// An interface which represents an evaluation operator for multi-objective optimization problems.
    2828  /// </summary>
    29   public interface IMultiObjectiveEvaluator : IEvaluator {
     29  public interface IMultiObjectiveEvaluator : IEvaluator, IMultiObjectiveOperator {
    3030    ILookupParameter<DoubleArray> QualitiesParameter { get; }
    3131  }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/IMultiObjectiveSelector.cs

    r11171 r11975  
    2727  /// An interface which represents a selection operator for selecting solutions of multi-objective optimization problems.
    2828  /// </summary>
    29   public interface IMultiObjectiveSelector : ISelector {
     29  public interface IMultiObjectiveSelector : ISelector, IMultiObjectiveOperator {
    3030    ILookupParameter<BoolArray> MaximizationParameter { get; }
    3131    ILookupParameter<ItemArray<DoubleArray>> QualitiesParameter { get; }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/IProblem.cs

    r11171 r11975  
    3131    IEnumerable<IItem> Operators { get; }
    3232
     33
     34    IEnumerable<IParameterizedItem> ExecutionContextItems { get; }
    3335    event EventHandler OperatorsChanged;
    3436    event EventHandler Reset;
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleMoveGenerator.cs

    r11171 r11975  
    2121
    2222namespace HeuristicLab.Optimization {
    23   public interface ISingleMoveGenerator : IMoveGenerator {
     23  public interface ISingleMoveGenerator : IMoveGenerator, ISingleObjectiveOperator {
    2424  }
    2525}
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectiveEvaluator.cs

    r11171 r11975  
    2727  /// An interface which represents an evaluation operator for single-objective optimization problems.
    2828  /// </summary>
    29   public interface ISingleObjectiveEvaluator : IEvaluator {
     29  public interface ISingleObjectiveEvaluator : IEvaluator, ISingleObjectiveOperator {
    3030    ILookupParameter<DoubleValue> QualityParameter { get; }
    3131  }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectiveImprovementOperator.cs

    r11171 r11975  
    2626  /// An interface which represents an operator for improvement of a single objective solution.
    2727  /// </summary>
    28   public interface ISingleObjectiveImprovementOperator : IImprovementOperator {
     28  public interface ISingleObjectiveImprovementOperator : IImprovementOperator, ISingleObjectiveOperator {
    2929    IValueLookupParameter<IItem> SolutionParameter { get; }
    3030  }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectiveMoveEvaluator.cs

    r11171 r11975  
    2424
    2525namespace HeuristicLab.Optimization {
    26   public interface ISingleObjectiveMoveEvaluator : IOperator {
     26  public interface ISingleObjectiveMoveEvaluator : IOperator, ISingleObjectiveOperator {
    2727    ILookupParameter<DoubleValue> QualityParameter { get; }
    2828    ILookupParameter<DoubleValue> MoveQualityParameter { get; }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectivePathRelinker.cs

    r11171 r11975  
    2626  /// An interface which represents an operator for path relinking between single objective solutions.
    2727  /// </summary>
    28   public interface ISingleObjectivePathRelinker : IPathRelinker {
     28  public interface ISingleObjectivePathRelinker : IPathRelinker, ISingleObjectiveOperator {
    2929    ILookupParameter<ItemArray<IItem>> ParentsParameter { get; }
    3030  }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectiveReplacer.cs

    r11171 r11975  
    2727  /// An interface which represents a replacement operator for replacing solutions of single-objective optimization problems.
    2828  /// </summary>
    29   public interface ISingleObjectiveReplacer : IReplacer {
     29  public interface ISingleObjectiveReplacer : IReplacer, ISingleObjectiveOperator {
    3030    IValueLookupParameter<BoolValue> MaximizationParameter { get; }
    3131    ILookupParameter<ItemArray<DoubleValue>> QualityParameter { get; }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectiveSelector.cs

    r11171 r11975  
    2727  /// An interface which represents a selection operator for selecting solutions of single-objective optimization problems.
    2828  /// </summary>
    29   public interface ISingleObjectiveSelector : ISelector {
     29  public interface ISingleObjectiveSelector : ISelector, ISingleObjectiveOperator {
    3030    IValueLookupParameter<BoolValue> MaximizationParameter { get; }
    3131    ILookupParameter<ItemArray<DoubleValue>> QualityParameter { get; }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Interfaces/ISingleObjectiveSolutionSimilarityCalculator.cs

    r11171 r11975  
    2424  /// An interface which represents an operator for similarity calculation between single objective solutions.
    2525  /// </summary>
    26   public interface ISingleObjectiveSolutionSimilarityCalculator : ISolutionSimilarityCalculator {
     26  public interface ISingleObjectiveSolutionSimilarityCalculator : ISolutionSimilarityCalculator, ISingleObjectiveOperator {
    2727    string SolutionVariableName { get; set; }
    2828    string QualityVariableName { get; set; }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Plugin.cs.frame

    r11174 r11975  
    3333  [PluginDependency("HeuristicLab.Core", "3.3")]
    3434  [PluginDependency("HeuristicLab.Data", "3.3")]
     35  [PluginDependency("HeuristicLab.Operators", "3.3")]
    3536  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    3637  [PluginDependency("HeuristicLab.Persistence", "3.3")]
  • branches/ALPS/HeuristicLab.Optimization/3.3/Problems/HeuristicOptimizationProblem.cs

    r11171 r11975  
    7878
    7979    public U SolutionCreator {
    80       get { return SolutionCreatorParameter.Value; }
     80      get { return (U)SolutionCreatorParameter.Value; }
    8181      protected set { SolutionCreatorParameter.Value = value; }
    8282    }
    83     public ValueParameter<U> SolutionCreatorParameter {
    84       get { return (ValueParameter<U>)Parameters[SolutionCreateParameterName]; }
     83    public IValueParameter SolutionCreatorParameter {
     84      get { return (IValueParameter)Parameters[SolutionCreateParameterName]; }
    8585    }
    8686    ISolutionCreator IHeuristicOptimizationProblem.SolutionCreator { get { return SolutionCreator; } }
  • branches/ALPS/HeuristicLab.Optimization/3.3/Problems/Problem.cs

    r11171 r11975  
    114114      }
    115115    }
    116     IEnumerable<IItem> IProblem.Operators { get { return Operators; } }
     116    IEnumerable<IItem> IProblem.Operators { get { return GetOperators(); } }
     117
     118    protected virtual IEnumerable<IItem> GetOperators() {
     119      return Operators;
     120    }
     121
     122    public virtual IEnumerable<IParameterizedItem> ExecutionContextItems {
     123      get { yield return this; }
     124    }
    117125    #endregion
    118126
  • branches/ALPS/HeuristicLab.Optimization/3.3/Problems/UserDefinedProblem.cs

    r11171 r11975  
    115115      get { return OperatorsParameter.Value; }
    116116    }
     117
     118    public IEnumerable<IParameterizedItem> ExecutionContextItems {
     119      get { yield return this; }
     120    }
    117121    #endregion
    118122
  • branches/ALPS/HeuristicLab.Optimization/3.3/ResultCollection.cs

    r11171 r11975  
    4444      get { return HeuristicLab.Common.Resources.VSImageLibrary.Object; }
    4545    }
     46
     47    public virtual void CollectResultValues(IDictionary<string, IItem> values) {
     48      CollectResultValues(values, string.Empty);
     49    }
     50
     51    public virtual void CollectResultValues(IDictionary<string, IItem> values, string rootPath) {
     52      foreach (IResult result in this) {
     53        var children = GetCollectedResults(result);
     54        string path = string.Empty;
     55        if (!string.IsNullOrWhiteSpace(rootPath))
     56          path = rootPath + ".";
     57        foreach (var c in children) {
     58          if (string.IsNullOrEmpty(c.Key))
     59            values.Add(path + result.Name, c.Value);
     60          else values.Add(path + result.Name + "." + c.Key, c.Value);
     61        }
     62      }
     63    }
     64
     65    protected virtual IEnumerable<KeyValuePair<string, IItem>> GetCollectedResults(IResult result) {
     66      if (result.Value == null) yield break;
     67      yield return new KeyValuePair<string, IItem>(string.Empty, result.Value);
     68
     69      var resultCollection = result.Value as ResultCollection;
     70      if (resultCollection != null) {
     71        var children = new Dictionary<string, IItem>();
     72        resultCollection.CollectResultValues(children);
     73        foreach (var child in children) yield return child;
     74      }
     75    }
     76
    4677  }
    4778}
Note: See TracChangeset for help on using the changeset viewer.