Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/26/14 13:24:20 (9 years ago)
Author:
mkommend
Message:

#2174: Implemented multi-encoding operators and adapated wiring of operators in the programmable problems.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/IntegerEncoding.cs

    r11582 r11587  
    6161
    6262    public override IEnumerable<IValueParameter> Parameters {
    63       get { return base.Parameters.Concat(new IValueParameter[] { LengthParameter, BoundsParameter }); }
     63      get { return new IValueParameter[] { LengthParameter, BoundsParameter }; }
    6464    }
    6565    #endregion
     
    9494      if (min >= max) throw new ArgumentException("min must be less than max", "min");
    9595      if (step.HasValue && step.Value <= 0) throw new ArgumentException("step must be greater than zero or null", "step");
     96
    9697      Length = length;
    9798      Bounds = new IntMatrix(1, step.HasValue ? 3 : 2);
     
    99100      Bounds[0, 1] = max;
    100101      if (step.HasValue) Bounds[0, 2] = step.Value;
     102
     103      SolutionCreator = new UniformRandomIntegerVectorCreator();
    101104      RegisterParameterEvents();
    102105      DiscoverOperators();
    103       SolutionCreator = Operators.OfType<UniformRandomIntegerVectorCreator>().Single();
    104106    }
    105107    public IntegerEncoding(string name, int length, IList<int> min, IList<int> max, IList<int> step = null)
     
    109111      if (step != null && min.Count != step.Count) throw new ArgumentException("step must be of the same length as min or null", "step");
    110112      if (min.Zip(max, (mi, ma) => mi >= ma).Any(x => x)) throw new ArgumentException("min must be less than max in each dimension", "min");
     113
    111114      Length = length;
    112115      Bounds = new IntMatrix(min.Count, step != null ? 3 : 2);
     
    116119        if (step != null) Bounds[i, 2] = step[i];
    117120      }
     121
     122      SolutionCreator = new UniformRandomIntegerVectorCreator();
    118123      RegisterParameterEvents();
    119124      DiscoverOperators();
    120       SolutionCreator = Operators.OfType<UniformRandomIntegerVectorCreator>().Single();
    121125    }
    122126
     
    159163      var discoveredTypes = ApplicationManager.Manager.GetTypes(encodingSpecificOperatorTypes, true, false, false);
    160164      var operators = discoveredTypes.Select(t => (IOperator)Activator.CreateInstance(t));
    161       var newOperators = operators.Except(encodingOperators, new TypeEqualityComparer<IOperator>()).ToList();
     165      var newOperators = operators.Except(Operators, new TypeEqualityComparer<IOperator>()).ToList();
    162166
    163167      ConfigureOperators(newOperators);
    164       encodingOperators.AddRange(newOperators);
     168      foreach (var @operator in newOperators)
     169        encodingOperators.Add(@operator);
    165170    }
    166171    #endregion
Note: See TracChangeset for help on using the changeset viewer.