[9348]  1  #region License Information


 2  /* HeuristicLab


[13032]  3  * Copyright (C) 20022015 Joseph Helm and Heuristic and Evolutionary Algorithms Laboratory (HEAL)


[9348]  4  *


 5  * This file is part of HeuristicLab.


 6  *


 7  * HeuristicLab is free software: you can redistribute it and/or modify


 8  * it under the terms of the GNU General Public License as published by


 9  * the Free Software Foundation, either version 3 of the License, or


 10  * (at your option) any later version.


 11  *


 12  * HeuristicLab is distributed in the hope that it will be useful,


 13  * but WITHOUT ANY WARRANTY; without even the implied warranty of


 14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the


 15  * GNU General Public License for more details.


 16  *


 17  * You should have received a copy of the GNU General Public License


 18  * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.


 19  */


 20  #endregion


 21 


[13032]  22 


[9348]  23  using HeuristicLab.Common;


 24  using HeuristicLab.Core;


 25  using HeuristicLab.Operators;


 26  using HeuristicLab.Optimization;


 27  using HeuristicLab.Parameters;


 28  using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;


[14046]  29  using HeuristicLab.Problems.BinPacking;


[9348]  30 


 31  namespace HeuristicLab.Encodings.PackingEncoding {


 32  [Item("PackingSolutionManipulator", "A bin packing manipulation operation.")]


 33  [StorableClass]


[14128]  34  public abstract class PackingSolutionManipulator<T> : SingleSuccessorOperator, IPackingSolutionManipulator<T>, IStochasticOperator


 35  where T : class, IItem {


[9348]  36 


[14128]  37  public ILookupParameter<T> EncodedSolutionParameter {


 38  get { return (ILookupParameter<T>)Parameters["EncodedSolution"]; }


[9348]  39  }


 40 


 41  public ILookupParameter<IRandom> RandomParameter {


 42  get { return (LookupParameter<IRandom>)Parameters["Random"]; }


 43  }


 44 


 45  [StorableConstructor]


 46  protected PackingSolutionManipulator(bool deserializing) : base(deserializing) { }


[14128]  47  protected PackingSolutionManipulator(PackingSolutionManipulator<T> original, Cloner cloner) : base(original, cloner) { }


[9348]  48  public PackingSolutionManipulator()


 49  : base() {


[14128]  50  Parameters.Add(new LookupParameter<T>("EncodedSolution", "The bin packing solution to be manipulated."));


[9348]  51  Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));


 52  }


 53 


 54  }


 55  }

