- Timestamp:
- 08/22/11 09:35:06 (13 years ago)
- Location:
- branches/GP.Grammar.Editor/HeuristicLab.Encodings.PermutationEncoding/3.3
- Files:
-
- 2 edited
- 6 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/GP.Grammar.Editor/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj
r6377 r6675 120 120 <Compile Include="Crossovers\UniformLikeCrossover.cs" /> 121 121 <Compile Include="HeuristicLabEncodingsPermutationEncodingPlugin.cs" /> 122 <Compile Include="Interfaces\IPermutationScrambleMoveOperator.cs" /> 122 123 <Compile Include="Interfaces\IPermutationMultiNeighborhoodShakingOperator.cs" /> 123 124 <Compile Include="Interfaces\IPermutationSwap2MoveOperator.cs" /> … … 139 140 <Compile Include="Moves\Edge.cs" /> 140 141 <Compile Include="Moves\PermutationMoveAttribute.cs" /> 142 <Compile Include="Moves\Scramble\StochasticScrambleMultiMoveGenerator.cs" /> 143 <Compile Include="Moves\Scramble\ScrambleMove.cs" /> 144 <Compile Include="Moves\Scramble\ScrambleMoveGenerator.cs" /> 145 <Compile Include="Moves\Scramble\ScrambleMoveMaker.cs" /> 141 146 <Compile Include="Moves\StandardEdgeEqualityComparer.cs" /> 142 147 <Compile Include="Moves\Swap2\ExhaustiveSwap2MoveGenerator.cs" /> -
branches/GP.Grammar.Editor/HeuristicLab.Encodings.PermutationEncoding/3.3/Manipulators/ScrambleManipulator.cs
r5445 r6675 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 54 52 int breakPoint1, breakPoint2; 55 53 int[] scrambledIndices, remainingIndices, temp; 56 54 int selectedIndex, index; 57 55 58 breakPoint1 = random.Next( original.Length - 1);59 breakPoint2 = random.Next(breakPoint1 + 1, original.Length);56 breakPoint1 = random.Next(permutation.Length - 1); 57 breakPoint2 = random.Next(breakPoint1 + 1, permutation.Length); 60 58 61 59 scrambledIndices = new int[breakPoint2 - breakPoint1 + 1]; … … 80 78 } 81 79 82 for (int i = 0; i <= (breakPoint2 - breakPoint1); i++) { // scramble permutation between breakpoints 83 permutation[breakPoint1 + i] = original[breakPoint1 + scrambledIndices[i]]; 80 Apply(permutation, breakPoint1, scrambledIndices); 81 } 82 83 public static void Apply(Permutation permutation, int startIndex, int[] scrambleArray) { 84 Permutation original = (Permutation)permutation.Clone(); 85 for (int i = 0; i < scrambleArray.Length; i++) { // scramble permutation between breakpoints 86 permutation[startIndex + i] = original[startIndex + scrambleArray[i]]; 84 87 } 85 88 }
Note: See TracChangeset
for help on using the changeset viewer.