protected override void Manipulate(IRandom random, PRVEncoding individual) {
   Apply(random, individual);
 }
 public override PRVEncoding Cross(IRandom random, PRVEncoding parent1, PRVEncoding parent2) {
   return Apply(random, parent1, parent2);
 }
 public static void Apply(IRandom random, PRVEncoding individual) {
   UniformOnePositionManipulator.Apply(random, individual.PriorityRulesVector, new IntMatrix(new int[,] { { 0, individual.NrOfRules.Value } }));
 }
 public static PRVEncoding Apply(IRandom random, PRVEncoding parent1, PRVEncoding parent2) {
   return new PRVEncoding(SinglePointCrossover.Apply(random, parent1.PriorityRulesVector, parent2.PriorityRulesVector), parent1.NrOfRules);
 }
예제 #5
0
 protected PRVEncoding(PRVEncoding original, Cloner cloner)
   : base(original, cloner) {
   this.nrOfRules = cloner.Clone(original.NrOfRules);
   this.PriorityRulesVector = cloner.Clone(original.PriorityRulesVector);
 }
예제 #6
0
 public abstract PRVEncoding Cross(IRandom random, PRVEncoding parent1, PRVEncoding parent2);
예제 #7
0
 protected abstract void Manipulate(IRandom random, PRVEncoding individual);
예제 #8
0
 public static PRVEncoding Apply(IRandom random, PRVEncoding parent1, PRVEncoding parent2) {
   return new PRVEncoding(DiscreteCrossover.Apply(random, new ItemArray<IntegerVector>(new IntegerVector[] { parent1.PriorityRulesVector, parent2.PriorityRulesVector })), parent1.NrOfRules);
 }