- Timestamp:
- 02/12/15 15:39:28 (9 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.Binary
- Files:
-
- 1 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.Binary/3.3/BinaryProblem.cs
r11983 r11987 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Data; 27 using HeuristicLab.Encodings.BinaryVectorEncoding; 27 28 using HeuristicLab.Optimization; 28 29 using HeuristicLab.Parameters; 29 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 31 31 namespace HeuristicLab.Problems.Binary Vector{32 namespace HeuristicLab.Problems.Binary { 32 33 [StorableClass] 33 public abstract class BinaryVectorProblem : Problem, IBinaryVectorProblem { 34 private const string LengthParameterName = "Length"; 34 public abstract class BinaryProblem : SingleObjectiveBasicProblem<BinaryVectorEncoding> { 35 35 36 public IFixedValueParameter<IntValue> LengthParameter { 37 get { return (IFixedValueParameter<IntValue>)Parameters[LengthParameterName]; } 38 } 39 40 public int Length { 41 get { return LengthParameter.Value.Value; } 42 set { LengthParameter.Value.Value = value; } 43 } 44 45 public abstract bool Maximization { 46 get; 36 public virtual int Length { 37 get { return Encoding.Length; } 38 set { Encoding.Length = value; } 47 39 } 48 40 49 41 [StorableConstructor] 50 protected BinaryVectorProblem(bool deserializing) : base(deserializing) { } 51 protected BinaryVectorProblem(BinaryVectorProblem original, Cloner cloner) : base(original, cloner) { } 52 public bool IsBetter(double quality, double bestQuality) { 42 protected BinaryProblem(bool deserializing) : base(deserializing) { } 43 protected BinaryProblem(BinaryProblem original, Cloner cloner) : base(original, cloner) { } 44 protected BinaryProblem() : base() { } 45 46 public virtual bool IsBetter(double quality, double bestQuality) { 53 47 return (Maximization && quality > bestQuality || !Maximization && quality < bestQuality); 54 48 } 55 49 56 public BinaryVectorProblem() 57 : base() { 58 Parameters.Add(new FixedValueParameter<IntValue>(LengthParameterName, "", new IntValue(20))); 50 public sealed override double Evaluate(Individual individual, IRandom random) { 51 return Evaluate(individual.BinaryVector(), random); 59 52 } 60 53 61 public abstract double Evaluate(bool[] individual); 62 63 54 public abstract double Evaluate(BinaryVector vector, IRandom random); 64 55 } 65 56 }
Note: See TracChangeset
for help on using the changeset viewer.