Changeset 14897 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Problem/PushSolution.cs
- Timestamp:
- 04/28/17 22:52:08 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Problem/PushSolution.cs
r14875 r14897 1 1 namespace HeuristicLab.Problems.ProgramSynthesis.Push.Problem { 2 using HeuristicLab.BenchmarkSuite.Problems;3 using HeuristicLab.Common;4 using HeuristicLab.Core;5 using HeuristicLab.Encodings.IntegerVectorEncoding;6 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;7 using HeuristicLab.Problems.ProgramSynthesis.Push.Configuration;2 using Common; 3 using Configuration; 4 using Core; 5 using Encodings.IntegerVectorEncoding; 6 using Expressions; 7 using Persistence.Default.CompositeSerializers.Storable; 8 8 9 9 [StorableClass] … … 14 14 public readonly IntegerVector IntegerVector; 15 15 [Storable] 16 public readonly ProblemData Data;17 [Storable]18 16 public readonly IRandom Random; 19 17 [Storable] 20 18 public readonly IReadOnlyPushConfiguration Config; 19 21 20 [Storable] 22 public readonly int DataStart; 23 [Storable] 24 public readonly int DataEnd; 25 [Storable] 26 public readonly bool Simplify; 21 public readonly IPushEvaluator Evaluator; 27 22 28 public PushSolution(IntegerVector integerVector, double quality, ProblemData data, IRandom random, IReadOnlyPushConfiguration config, int dataStart, int dataEnd, bool simplify = false) 23 public readonly PushProgram Program; 24 25 public PushSolution(IntegerVector integerVector, double quality, IRandom random, IReadOnlyPushConfiguration config, IPushEvaluator evaluator, bool simplify = false) 29 26 : base("Solution", "A push solution.") { 30 27 IntegerVector = integerVector; 31 28 Quality = quality; 32 Data = data;33 29 Random = random; 34 30 Config = config; 35 DataStart = dataStart; 36 DataEnd = dataEnd; 37 Simplify = simplify; 31 Evaluator = evaluator; 32 33 Program = IntegerVector.ToPushProgram(config); 34 35 if (simplify) 36 Program = Simplifier.Simplifier.Simplify(Program, p => Evaluator.EvaluateTraining(config, p, random).TotalQuality); 38 37 } 39 38 40 39 public PushSolution(PushSolution origin, Cloner cloner) : base(origin, cloner) { 40 Quality = origin.Quality; 41 41 IntegerVector = cloner.Clone(origin.IntegerVector); 42 Quality = origin.Quality;43 Data = cloner.Clone(origin.Data);44 42 Random = cloner.Clone(origin.Random); 45 43 Config = cloner.Clone(origin.Config); 46 DataStart = origin.DataStart; 47 DataEnd = origin.DataEnd; 48 Simplify = origin.Simplify; 44 } 45 46 public virtual PushSolution Simplify() { 47 return new PushSolution(IntegerVector, Quality, Random, Config, Evaluator, true); 49 48 } 50 49 51 50 [StorableConstructor] 52 pr ivatePushSolution(bool deserializing) : base(deserializing) { }51 protected PushSolution(bool deserializing) : base(deserializing) { } 53 52 54 53 public override IDeepCloneable Clone(Cloner cloner) {
Note: See TracChangeset
for help on using the changeset viewer.