Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/06/10 16:41:51 (14 years ago)
Author:
abeham
Message:

#890

  • changed SinglePointCrossover to work with vectors of length 2
  • updated unit tests
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Encodings.RealVectorEncoding/3.3/Crossovers/SinglePointCrossover.cs

    r3376 r3675  
    4949    public static RealVector Apply(IRandom random, RealVector parent1, RealVector parent2) {
    5050      if (parent1.Length != parent2.Length) throw new ArgumentException("SinglePointCrossover: Parents are of unequal length");
     51      if (parent1.Length < 2) throw new ArgumentException("SinglePointCrossover: Cannot be applied to vectors with just one dimension.");
    5152      int length = parent1.Length;
    5253      RealVector result = new RealVector(length);
    53       int breakPoint = random.Next(1, length - 1);
     54      int breakPoint;
     55      if (length == 2) breakPoint = 1;
     56      else breakPoint = random.Next(1, length - 1);
    5457
    5558      for (int i = 0; i < breakPoint; i++)
Note: See TracChangeset for help on using the changeset viewer.