Changeset 14751 for branches/symbreg-factors-2650/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InsertionManipulator.cs
- Timestamp:
- 03/16/17 07:56:01 (7 years ago)
- Location:
- branches/symbreg-factors-2650
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/symbreg-factors-2650
-
branches/symbreg-factors-2650/HeuristicLab.Encodings.PermutationEncoding
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Encodings.PermutationEncoding merged: 14659-14660,14662
- Property svn:mergeinfo changed
-
branches/symbreg-factors-2650/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/InsertionManipulator.cs
r14185 r14751 50 50 /// <param name="permutation">The permutation to manipulate.</param> 51 51 public static void Apply(IRandom random, Permutation permutation) { 52 Permutation original = (Permutation)permutation.Clone();53 int cutIndex, insertIndex, number;52 var cutIndex = random.Next(permutation.Length); 53 var insertIndex = random.Next(permutation.Length); 54 54 55 cutIndex = random.Next(original.Length); 56 insertIndex = random.Next(original.Length); 57 number = original[cutIndex]; 55 if (cutIndex == insertIndex) return; 58 56 59 int i = 0; // index in new permutation 60 int j = 0; // index in old permutation 61 while (i < original.Length) { 62 if (j == cutIndex) { 63 j++; 64 } 65 if (i == insertIndex) { 66 permutation[i] = number; 67 i++; 68 } 69 if ((i < original.Length) && (j < original.Length)) { 70 permutation[i] = original[j]; 71 i++; 72 j++; 73 } 74 } 57 permutation.Move(cutIndex, cutIndex, insertIndex); 75 58 } 76 59
Note: See TracChangeset
for help on using the changeset viewer.