Changeset 10278 for branches/HeuristicLab.EvolutionTracking
- Timestamp:
- 01/04/14 14:26:02 (11 years ago)
- Location:
- branches/HeuristicLab.EvolutionTracking
- Files:
-
- 15 added
- 1 deleted
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/FullTreeCreator.cs
r9456 r10278 94 94 } 95 95 96 public override IOperation Apply() {96 public override IOperation InstrumentedApply() { 97 97 if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) { 98 98 SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true; … … 104 104 (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone())); 105 105 } 106 return base. Apply();106 return base.InstrumentedApply(); 107 107 } 108 108 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/GrowTreeCreator.cs
r9456 r10278 94 94 } 95 95 96 public override IOperation Apply() {96 public override IOperation InstrumentedApply() { 97 97 if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) { 98 98 SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true; … … 104 104 (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone())); 105 105 } 106 return base. Apply();106 return base.InstrumentedApply(); 107 107 } 108 108 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/ProbabilisticTreeCreator.cs
r9456 r10278 87 87 } 88 88 89 public override IOperation Apply() {89 public override IOperation InstrumentedApply() { 90 90 if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) { 91 91 SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true; … … 96 96 globalScope.Variables.Add(new Variable(ClonedSymbolicExpressionTreeGrammarParameterName, (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone())); 97 97 } 98 return base. Apply();98 return base.InstrumentedApply(); 99 99 } 100 100 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/RampedHalfAndHalfTreeCreator.cs
r9456 r10278 95 95 } 96 96 97 public override IOperation Apply() {97 public override IOperation InstrumentedApply() { 98 98 if (ClonedSymbolicExpressionTreeGrammarParameter.ActualValue == null) { 99 99 SymbolicExpressionTreeGrammarParameter.ActualValue.ReadOnly = true; … … 105 105 (ISymbolicExpressionGrammar)SymbolicExpressionTreeGrammarParameter.ActualValue.Clone())); 106 106 } 107 return base. Apply();107 return base.InstrumentedApply(); 108 108 } 109 109 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Creators/SymbolicExpressionTreeCreator.cs
r9456 r10278 54 54 } 55 55 56 public override IOperation Apply() {56 public override IOperation InstrumentedApply() { 57 57 SymbolicExpressionTree = Create(Random); 58 return base. Apply();58 return base.InstrumentedApply(); 59 59 } 60 60 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SymbolicExpressionTreeCrossover.cs
r9456 r10278 63 63 } 64 64 65 public sealed override IOperation Apply() {65 public sealed override IOperation InstrumentedApply() { 66 66 if (Parents.Length != 2) 67 67 throw new ArgumentException("Number of parents must be exactly two for symbolic expression tree crossover operators."); … … 70 70 71 71 Child = result; 72 return base. Apply();72 return base.InstrumentedApply(); 73 73 } 74 74 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Manipulators/SymbolicExpressionTreeManipulator.cs
r9456 r10278 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Data;25 24 using HeuristicLab.Parameters; 26 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 55 54 } 56 55 57 public sealed override IOperation Apply() {56 public sealed override IOperation InstrumentedApply() { 58 57 ISymbolicExpressionTree tree = SymbolicExpressionTreeParameter.ActualValue; 59 58 Manipulate(RandomParameter.ActualValue, tree); 60 59 61 return base. Apply();60 return base.InstrumentedApply(); 62 61 } 63 62 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeOperator.cs
r9456 r10278 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Data;25 24 using HeuristicLab.Operators; 26 25 using HeuristicLab.Optimization; … … 34 33 [Item("SymbolicExpressionTreeOperator", "A base class for operators for symbolic expression trees.")] 35 34 [StorableClass] 36 public abstract class SymbolicExpressionTreeOperator : SingleSuccessorOperator, IStochasticOperator, ISymbolicExpressionTreeOperator {35 public abstract class SymbolicExpressionTreeOperator : InstrumentedOperator, IStochasticOperator, ISymbolicExpressionTreeOperator { 37 36 private const string RandomParameterName = "Random"; 38 37 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/DirectedGraph/Arc.cs
r10271 r10278 1 using HeuristicLab.Common; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using HeuristicLab.Common; 2 23 using HeuristicLab.Core; 3 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/DirectedGraph/DirectedGraph.cs
r10271 r10278 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 0Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 29 29 30 30 namespace HeuristicLab.EvolutionTracking { 31 [Item(" ", "")]31 [Item("DirectedGraph", "Generic class representing a directed graph with custom vertices and content")] 32 32 [StorableClass] 33 33 public class DirectedGraph<TVertex> : Item, IDirectedGraph<TVertex> where TVertex : class,IVertex { 34 34 [Storable] 35 protected readonly List<TVertex> nodes; // graph will consist of a set of nodes of type T35 protected readonly List<TVertex> nodes; // for performance reasons, maybe this should be a linked list (fast remove) 36 36 public List<TVertex> Nodes { 37 37 get { return nodes; } … … 46 46 protected DirectedGraph(DirectedGraph<TVertex> original, Cloner cloner) 47 47 : base(original, cloner) { 48 nodes = new List<TVertex>(original.Nodes); // bburlacu: maybe the list should be empty48 nodes = new List<TVertex>(original.Nodes); 49 49 } 50 50 public override IDeepCloneable Clone(Cloner cloner) { … … 116 116 base.Clear(); 117 117 } 118 119 /// <summary>120 /// Adds a node representing an individual121 /// </summary>122 /// <param name="node">The node to add</param>123 118 public override void AddVertex(TVertex vertex) { 124 119 if (contentMap.ContainsKey(vertex.Content)) { … … 130 125 } 131 126 132 /// <summary> 133 /// Remove a node from the graph along with edges associated with it 134 /// </summary> 135 /// <param name="t">The graph node</param> 136 public override void RemoveVertex(TVertex t) { 137 if (contentMap.ContainsKey(t.Content)) { 138 contentMap[t.Content].Remove(t); 127 public override void RemoveVertex(TVertex vertex) { 128 if (contentMap.ContainsKey(vertex.Content)) { 129 contentMap[vertex.Content].Remove(vertex); 139 130 } 131 base.RemoveVertex(vertex); 140 132 } 141 133 } -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/DirectedGraph/Interfaces/IArc.cs
r10271 r10278 1 namespace HeuristicLab.EvolutionTracking { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 namespace HeuristicLab.EvolutionTracking { 2 23 public interface IArc { 3 24 IVertex Source { get; set; } -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/DirectedGraph/Interfaces/IDirectedGraph.cs
r10271 r10278 38 38 where TVertex : class, IVertex 39 39 where TContent : class, IItem { 40 bool Contains(TContent content); // graph contains specific node?40 bool Contains(TContent content); // graph contains node with given content? 41 41 } 42 42 } -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/DirectedGraph/Vertex.cs
r10271 r10278 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 2Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraph.cs
r10271 r10278 1 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 2 22 using System; 3 23 using System.Collections.Generic; … … 35 55 Ranks = new Dictionary<double, LinkedList<TVertex>>(); 36 56 } 57 public override void AddVertex(TVertex vertex) { 58 if (!Ranks.ContainsKey(vertex.Rank)) { 59 Ranks[vertex.Rank] = new LinkedList<TVertex>(); 60 } 61 Ranks[vertex.Rank].AddLast(vertex); 62 base.AddVertex(vertex); 63 } 64 public override void RemoveVertex(TVertex vertex) { 65 if (Ranks.ContainsKey(vertex.Rank)) { 66 Ranks[vertex.Rank].Remove(vertex); 67 } 68 base.RemoveVertex(vertex); 69 } 70 // updated event 71 public event EventHandler GraphUpdated; 72 private void OnGraphUpdated(object sender, EventArgs args) { 73 var updated = GraphUpdated; 74 if (updated != null) updated(sender, args); 75 } 76 } 37 77 78 [StorableClass] 79 [Item("GenealogyGraph", 80 "A class representing a genealogy graph (of a population of individuals) in which each vertex stores a content.")] 81 public class GenealogyGraph<TVertex, TContent> : DirectedGraph<TVertex, TContent>, IGenealogyGraph<TVertex, TContent> 82 where TVertex : class, IGenealogyGraphNode<TContent> 83 where TContent : class, IItem { 84 [Storable] 85 private Dictionary<double, LinkedList<TVertex>> ranks; 86 public Dictionary<double, LinkedList<TVertex>> Ranks { 87 get { return ranks; } 88 set { ranks = value; } 89 } 90 protected GenealogyGraph(GenealogyGraph<TVertex, TContent> original, Cloner cloner) 91 : base(original, cloner) { 92 } 93 public override IDeepCloneable Clone(Cloner cloner) { 94 return new GenealogyGraph<TVertex, TContent>(this, cloner); 95 } 96 public GenealogyGraph() { 97 Ranks = new Dictionary<double, LinkedList<TVertex>>(); 98 } 99 public override void AddVertex(TVertex vertex) { 100 if (!Ranks.ContainsKey(vertex.Rank)) { 101 Ranks[vertex.Rank] = new LinkedList<TVertex>(); 102 } 103 Ranks[vertex.Rank].AddLast(vertex); 104 base.AddVertex(vertex); 105 } 106 public override void RemoveVertex(TVertex vertex) { 107 if (Ranks.ContainsKey(vertex.Rank)) { 108 Ranks[vertex.Rank].Remove(vertex); 109 } 110 base.RemoveVertex(vertex); 111 } 112 // updated event 38 113 public event EventHandler GraphUpdated; 39 114 private void OnGraphUpdated(object sender, EventArgs args) { -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraphArc.cs
r10271 r10278 1 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 2 22 using HeuristicLab.Common; 3 23 using HeuristicLab.Core; -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/GenealogyGraphNode.cs
r10271 r10278 1 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 2 22 using System.Collections.Generic; 3 23 using System.Linq; -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/Interfaces/IGenealogyGraph.cs
r10271 r10278 1 using System.Collections.Generic; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using System.Collections.Generic; 23 using HeuristicLab.Core; 2 24 3 25 namespace HeuristicLab.EvolutionTracking { 26 27 28 public interface IGenealogyGraph : IGenealogyGraph<IGenealogyGraphNode> { 29 } 4 30 public interface IGenealogyGraph<TVertex> : IDirectedGraph<TVertex> where TVertex : class, IGenealogyGraphNode { 5 31 Dictionary<double, LinkedList<TVertex>> Ranks { get; set; } 6 32 } 7 33 8 public interface IGenealogyGraph : IGenealogyGraph<IGenealogyGraphNode> { 34 public interface IGenealogyGraph<TVertex, in TContent> : IDirectedGraph<TVertex, TContent>, IGenealogyGraph<TVertex> 35 where TVertex : class, IGenealogyGraphNode<TContent> 36 where TContent : class, IItem { 37 38 List<TVertex> this[TContent content] { get; } 9 39 } 10 40 } -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/Interfaces/IGenealogyGraphArc.cs
r10271 r10278 1 namespace HeuristicLab.EvolutionTracking { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 namespace HeuristicLab.EvolutionTracking { 2 23 public interface IGenealogyGraphArc : IArc { 3 24 new IGenealogyGraphNode Source { get; set; } -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/GenealogyGraph/Interfaces/IGenealogyGraphNode.cs
r10271 r10278 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using System; 2 23 using System.Collections.Generic; 3 24 -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/HeuristicLab.EvolutionTracking-3.4.csproj
r10269 r10278 131 131 </ItemGroup> 132 132 <ItemGroup> 133 <Compile Include="Analyzers\GenealogyAnalyzer.cs" /> 133 134 <Compile Include="DirectedGraph\Arc.cs" /> 134 135 <Compile Include="DirectedGraph\DirectedGraph.cs" /> … … 137 138 <Compile Include="DirectedGraph\Interfaces\IVertex.cs" /> 138 139 <Compile Include="DirectedGraph\Vertex.cs" /> 139 <Compile Include="EvolutionTrackingOperators\EvolutionTrackingAfterCreationOperator.cs" /> 140 <Compile Include="EvolutionTrackingOperators\EvolutionTrackingAfterCrossoverOperator.cs" /> 141 <Compile Include="EvolutionTrackingOperators\EvolutionTrackingOperator.cs" /> 140 <Compile Include="Operators\AfterCrossoverOperator.cs" /> 141 <Compile Include="Operators\AfterManipulatorOperator.cs" /> 142 <Compile Include="Operators\AfterSolutionCreatorOperator.cs" /> 143 <Compile Include="Operators\BeforeManipulatorOperator.cs" /> 144 <Compile Include="Operators\EvolutionTrackingOperator.cs" /> 142 145 <Compile Include="FPGraph.cs"> 143 146 <SubType>Code</SubType> -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking/3.4/Plugin.cs
r10264 r10278 22 22 using HeuristicLab.PluginInfrastructure; 23 23 24 namespace HeuristicLab.Evolution aryTracking {25 [Plugin("HeuristicLab.Evolution aryTracking", "Provides operators and related classes for tracking the evolution within a GA.", "3.4.2.7439")]24 namespace HeuristicLab.EvolutionTracking { 25 [Plugin("HeuristicLab.EvolutionTracking", "Provides operators and related classes for tracking the evolution within a GA.", "3.4.2.7439")] 26 26 [PluginFile("HeuristicLab.EvolutionaryTracking-3.4.dll", PluginFileType.Assembly)] 27 27 [PluginDependency("HeuristicLab.Analysis", "3.3")] … … 42 42 [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")] 43 43 44 public class HeuristicLabEvolution aryTrackingPlugin : PluginBase {44 public class HeuristicLabEvolutionTrackingPlugin : PluginBase { 45 45 } 46 46 } -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj
r10269 r10278 332 332 </ProjectReference> 333 333 </ItemGroup> 334 <ItemGroup> 335 <Folder Include="Tracking\" /> 336 </ItemGroup> 334 337 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 335 338 <!-- To modify your build process, add your task inside one of the targets below and uncomment it. -
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisProblem.cs
r9830 r10278 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 30 using HeuristicLab.EvolutionTracking; 30 31 using HeuristicLab.Optimization; 31 32 using HeuristicLab.Parameters; … … 33 34 using HeuristicLab.PluginInfrastructure; 34 35 using HeuristicLab.Problems.Instances; 36 37 using TGraph = HeuristicLab.EvolutionTracking.IGenealogyGraph<HeuristicLab.EvolutionTracking.GenealogyGraphNode<HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ISymbolicExpressionTree>, 38 HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ISymbolicExpressionTree>; 39 using TVertex = HeuristicLab.EvolutionTracking.GenealogyGraphNode<HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.ISymbolicExpressionTree>; 35 40 36 41 namespace HeuristicLab.Problems.DataAnalysis.Symbolic { … … 231 236 Operators.Add(new MinAverageMaxSymbolicExpressionTreeLengthAnalyzer()); 232 237 Operators.Add(new SymbolicExpressionTreeLengthAnalyzer()); 238 Operators.Add(new GenealogyAnalyzer<TGraph, TVertex, ISymbolicExpressionTree>()); 233 239 ParameterizeOperators(); 234 240 } … … 350 356 op.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 351 357 } 358 // add tracking analyzer 359 foreach (var op in operators.OfType<GenealogyAnalyzer<TGraph, TVertex, ISymbolicExpressionTree>>()) { 360 var crossover = operators.OfType<ISymbolicExpressionTreeCrossover>().First(); 361 op.CrossoverParentsParameterName = crossover.ParentsParameter.Name; 362 op.CrossoverChildParameterName = crossover.ChildParameter.Name; 363 var manipulator = operators.OfType<ISymbolicExpressionTreeManipulator>().First(); 364 op.ManipulatorChildParameterName = manipulator.SymbolicExpressionTreeParameter.Name; 365 var creator = operators.OfType<ISymbolicExpressionTreeCreator>().First(); 366 op.SolutionCreatorIndividualParameterName = creator.SymbolicExpressionTreeParameter.Name; 367 } 352 368 } 353 369
Note: See TracChangeset
for help on using the changeset viewer.