Changeset 14128 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/Moves/Insertion/ExhaustiveInsertionMoveGenerator.cs
- Timestamp:
- 07/20/16 14:02:36 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/Moves/Insertion/ExhaustiveInsertionMoveGenerator.cs
r13032 r14128 24 24 using HeuristicLab.Common; 25 25 using HeuristicLab.Core; 26 using HeuristicLab.Encodings.PermutationEncoding; 26 27 using HeuristicLab.Optimization; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 39 40 return new ExhaustiveInsertionMoveGenerator(this, cloner); 40 41 } 41 public static IEnumerable<InsertionMove> Generate(P ackingSequenceEncoding PackingSequence, int nrOfBins) {42 for (int i = 0; i < PackingSequence.PackingSequence.Length - 1; i++)43 for (int j = i + 1; j < PackingSequence.PackingSequence.Length; j++) {42 public static IEnumerable<InsertionMove> Generate(Permutation packingSequence, int nrOfBins) { 43 for (int i = 0; i < packingSequence.Length - 1; i++) 44 for (int j = i + 1; j < packingSequence.Length; j++) { 44 45 if (j != i) 45 yield return new InsertionMove(i, j, PackingSequence);46 yield return new InsertionMove(i, j, packingSequence); 46 47 } 47 48 } 48 49 49 public static InsertionMove[] Apply(P ackingSequenceEncoding PackingSequence) {50 public static InsertionMove[] Apply(Permutation packingSequence) { 50 51 int nrOfBins = 0; 51 foreach (int binNr in PackingSequence.PackingSequence) {52 foreach (int binNr in packingSequence) { 52 53 if (binNr > nrOfBins) 53 54 nrOfBins = binNr; … … 55 56 nrOfBins++; 56 57 57 int totalMoves = ( PackingSequence.PackingSequence.Length * (PackingSequence.PackingSequence.Length - 1)) / 2;58 int totalMoves = (packingSequence.Length * (packingSequence.Length - 1)) / 2; 58 59 InsertionMove[] moves = new InsertionMove[totalMoves]; 59 60 int count = 0; 60 foreach (InsertionMove move in Generate( PackingSequence, nrOfBins)) {61 foreach (InsertionMove move in Generate(packingSequence, nrOfBins)) { 61 62 moves[count++] = move; 62 63 } … … 64 65 } 65 66 66 protected override InsertionMove[] GenerateMoves(P ackingSequenceEncoding PackingSequence) {67 return Apply( PackingSequence);67 protected override InsertionMove[] GenerateMoves(Permutation packingSequence) { 68 return Apply(packingSequence); 68 69 } 69 70 }
Note: See TracChangeset
for help on using the changeset viewer.