Changeset 13372 for branches/ProblemRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding
- Timestamp:
- 11/24/15 17:22:41 (9 years ago)
- Location:
- branches/ProblemRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified branches/ProblemRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Interfaces/ISymbolicExpressionTree.cs ¶
r12012 r13372 23 23 using System.Collections.Generic; 24 24 using HeuristicLab.Core; 25 using HeuristicLab.Optimization; 26 25 27 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding { 26 public interface ISymbolicExpressionTree : IItem {28 public interface ISymbolicExpressionTree : IItem, ISolution { 27 29 ISymbolicExpressionTreeNode Root { get; set; } 28 30 int Length { get; } -
TabularUnified branches/ProblemRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Interfaces/Operators/ISymbolicExpressionTreeCreator.cs ¶
r12422 r13372 27 27 /// Interface for operators that create symbolic expression trees. 28 28 /// </summary> 29 public interface ISymbolicExpressionTreeCreator : ISolutionCreator , ISymbolicExpressionTreeSizeConstraintOperator, ISymbolicExpressionTreeGrammarBasedOperator {29 public interface ISymbolicExpressionTreeCreator : ISolutionCreator<ISymbolicExpressionTree>, ISymbolicExpressionTreeSizeConstraintOperator, ISymbolicExpressionTreeGrammarBasedOperator { 30 30 ISymbolicExpressionTree CreateTree(IRandom random, ISymbolicExpressionGrammar grammar, int maxTreeLength, int maxTreeDepth); 31 31 } -
TabularUnified branches/ProblemRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeEncoding.cs ¶
r12422 r13372 36 36 [Item("SymbolicExpressionTreeEncoding", "Describes a symbolic expression tree encoding.")] 37 37 [StorableClass] 38 public sealed class SymbolicExpressionTreeEncoding : Encoding<ISymbolicExpressionTree Creator> {38 public sealed class SymbolicExpressionTreeEncoding : Encoding<ISymbolicExpressionTree> { 39 39 #region Encoding Parameters 40 40 [Storable] … … 355 355 #endregion 356 356 } 357 358 public static class IndividualExtensionMethods {359 public static ISymbolicExpressionTree SymbolicExpressionTree(this Individual individual) {360 var encoding = individual.GetEncoding<SymbolicExpressionTreeEncoding>();361 return individual.SymbolicExpressionTree(encoding.Name);362 }363 364 public static ISymbolicExpressionTree SymbolicExpressionTree(this Individual individual, string name) {365 return (ISymbolicExpressionTree)individual[name];366 }367 }368 357 } -
TabularUnified branches/ProblemRefactoring/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/SymbolicExpressionTreeProblem.cs ¶
r13336 r13372 32 32 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding { 33 33 [StorableClass] 34 public abstract class SymbolicExpressionTreeProblem : SingleObjectiveProblem<SymbolicExpressionTreeEncoding > {34 public abstract class SymbolicExpressionTreeProblem : SingleObjectiveProblem<SymbolicExpressionTreeEncoding, ISymbolicExpressionTree> { 35 35 36 36 // persistence … … 48 48 protected SymbolicExpressionTreeProblem() : base() { } 49 49 50 public virtual bool IsBetter(double quality, double bestQuality) { 51 return (Maximization && quality > bestQuality || !Maximization && quality < bestQuality); 52 } 53 54 public abstract double Evaluate(ISymbolicExpressionTree tree, IRandom random); 55 public sealed override double Evaluate(Individual individual, IRandom random) { 56 return Evaluate(individual.SymbolicExpressionTree(), random); 57 } 58 59 public virtual void Analyze(ISymbolicExpressionTree[] trees, double[] qualities, ResultCollection results, 50 public override void Analyze(ISymbolicExpressionTree[] trees, double[] qualities, ResultCollection results, 60 51 IRandom random) { 61 52 if (!results.ContainsKey("Best Solution Quality")) { … … 76 67 } 77 68 } 78 79 public sealed override void Analyze(Individual[] individuals, double[] qualities, ResultCollection results, IRandom random) {80 Analyze(individuals.Select(ind => ind.SymbolicExpressionTree()).ToArray(), qualities, results, random);81 }82 69 } 83 70 }
Note: See TracChangeset
for help on using the changeset viewer.