Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs	(revision 14151)
@@ -26,10 +26,9 @@
 using HeuristicLab.Core;
 using HeuristicLab.Common;
-using HeuristicLab.Encodings.PackingEncoding;
 
 namespace HeuristicLab.Problems.BinPacking2D {
   [Item("BinPacking2D", "Represents a single-bin packing for a 2D bin-packing problem.")]
   [StorableClass]
-  public class BinPacking2D : BinPacking<PackingPosition, PackingShape, PackingItem> {
+  public class BinPacking2D : BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> {
 
     public BinPacking2D(PackingShape binMeasures)
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Evaluators/PackingRatioEvaluator.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Evaluators/PackingRatioEvaluator.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Evaluators/PackingRatioEvaluator.cs	(revision 14151)
@@ -25,8 +25,4 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Common;
-using HeuristicLab.Data;
-using HeuristicLab.Encodings.PackingEncoding;
-using HeuristicLab.Problems.BinPacking;
-using System.Collections.Generic;
 
 namespace HeuristicLab.Problems.BinPacking2D {
@@ -64,6 +60,6 @@
       const double k = 2;
       for (int i = 0; i < nrOfBins; i++) {
-        var f = solution.BinPackings[i].ItemMeasures.Sum(kvp => kvp.Value.Volume);
-        var c = solution.BinPackings[i].BinMeasures.Volume;
+        double f = solution.BinPackings[i].ItemMeasures.Sum(kvp => kvp.Value.Volume);
+        double c = solution.BinPackings[i].BinMeasures.Volume;
         result += Math.Pow(f / c, k);
       }
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/HeuristicLab.Problems.BinPacking2D-3.3.csproj
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/HeuristicLab.Problems.BinPacking2D-3.3.csproj	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/HeuristicLab.Problems.BinPacking2D-3.3.csproj	(revision 14151)
@@ -168,4 +168,8 @@
     <Compile Include="Instances\RandomDataDescriptor.cs" />
     <Compile Include="Instances\RandomInstanceProvider.cs" />
+    <Compile Include="IntegerVectorEncoding\BottomLeftIntegerVectorDecoder.cs" />
+    <Compile Include="IntegerVectorEncoding\IntegerVectorDecoderBase.cs" />
+    <Compile Include="IntegerVectorEncoding\ExtremePointIntegerVectorDecoder.cs" />
+    <Compile Include="IntegerVectorEncoding\IntegerVectorProblem.cs" />
     <Compile Include="Interfaces\IDecoder.cs" />
     <Compile Include="Interfaces\IEvaluator.cs" />
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 14151)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/BottomLeftIntegerVectorDecoder.cs	(revision 14151)
@@ -0,0 +1,60 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Joseph Helm and Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Linq;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using System.Collections.Generic;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+
+namespace HeuristicLab.Problems.BinPacking2D {
+  [Item("Bottom-left IntegerVector Decoder (2d)", "Decodes the integer vector and creates a packing solution candidate")]
+  [StorableClass]
+  public class BottomLeftIntegerVectorDecoder : IntegerVectorDecoderBase {
+
+    [StorableConstructor]
+    protected BottomLeftIntegerVectorDecoder(bool deserializing) : base(deserializing) { }
+    protected BottomLeftIntegerVectorDecoder(BottomLeftIntegerVectorDecoder original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public BottomLeftIntegerVectorDecoder() : base() { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new BottomLeftIntegerVectorDecoder(this, cloner);
+    }
+
+    protected override Solution CreateSolution(PackingShape binShape) {
+      return new Solution(binShape, useExtremePoints: false, stackingConstraints: false);
+    }
+
+    protected override PackingPosition FindPositionForItem(BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> bp, PackingItem item) {
+      return bp.FindPositionBySliding(item, rotated: false);
+    }
+
+    protected override BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> CreatePacking(
+      Solution partialSolution,
+      ref IList<int> remainingIDs, IList<PackingItem> items) {
+      var bp = partialSolution.NewBinPacking();
+      bp.SlidingBasedPacking(ref remainingIDs, items);
+      return bp;
+    }
+  }
+}
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 14151)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/ExtremePointIntegerVectorDecoder.cs	(revision 14151)
@@ -0,0 +1,60 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Joseph Helm and Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+
+namespace HeuristicLab.Problems.BinPacking2D {
+  [Item("Extreme-point IntegerVector Decoder (2d)", "Decodes the integer vector and creates a packing solution candidate")]
+  [StorableClass]
+  public class ExtremePointIntegerVectorDecoder : IntegerVectorDecoderBase {
+
+    [StorableConstructor]
+    protected ExtremePointIntegerVectorDecoder(bool deserializing) : base(deserializing) { }
+    protected ExtremePointIntegerVectorDecoder(ExtremePointIntegerVectorDecoder original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public ExtremePointIntegerVectorDecoder() : base() { }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new ExtremePointIntegerVectorDecoder(this, cloner);
+    }
+
+    protected override Solution CreateSolution(PackingShape binShape) {
+      return new Solution(binShape, useExtremePoints: true, stackingConstraints: false);
+    }
+
+    protected override PackingPosition FindPositionForItem(BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> bp, PackingItem item) {
+      return bp.FindExtremePointForItem(item, false, stackingConstraints: false);
+    }
+
+    protected override BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> CreatePacking(
+      Solution partialSolution,
+      ref IList<int> remainingIDs, IList<PackingItem> items) {
+      var bp = partialSolution.NewBinPacking();
+      bp.ExtremePointBasedPacking(ref remainingIDs, items, stackingConstraints: false);
+      return bp;
+    }
+  }
+}
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/IntegerVectorDecoderBase.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 14151)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/IntegerVectorDecoderBase.cs	(revision 14151)
@@ -0,0 +1,89 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 Joseph Helm and Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+
+namespace HeuristicLab.Problems.BinPacking2D {
+  [StorableClass]
+  public abstract class IntegerVectorDecoderBase : Item, IDecoder<IntegerVector> {
+
+    [StorableConstructor]
+    protected IntegerVectorDecoderBase(bool deserializing) : base(deserializing) { }
+    protected IntegerVectorDecoderBase(IntegerVectorDecoderBase original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    protected IntegerVectorDecoderBase() : base() { }
+
+
+    public Solution Decode(IntegerVector intVec, PackingShape binShape, IList<PackingItem> items) {
+      var sequenceMatrix = IntegerVectorProblem.GenerateSequenceMatrix(intVec);
+      Solution result = CreateSolution(binShape);
+
+      //Fill bins according to grouping vector
+      IList<int> remainingIDs = new List<int>();
+      foreach (var sequence in sequenceMatrix) {
+        remainingIDs = remainingIDs.Concat(sequence).ToList();
+        result.BinPackings.Add(CreatePacking(result, ref remainingIDs, items));
+      }
+      result.UpdateBinPackings();
+
+      //Try to put remaining items in existing bins
+      var temp = new List<int>(remainingIDs);
+      foreach (int id in temp) {
+        foreach (var bp in result.BinPackings) {
+          var position = FindPositionForItem(bp, items[id]);
+          if (position != null) {
+            bp.PackItem(id, items[id], position);
+            remainingIDs.Remove(id);
+            break;
+          }
+        }
+      }
+
+      //Put still remaining items in new bins
+      while (remainingIDs.Count > 0) {
+        result.BinPackings.Add(CreatePacking(result, ref remainingIDs, items));
+      }
+      result.UpdateBinPackings();
+
+      // gkronber: original implementation also updates the encoded solution
+      // var newSolution = new int[intVec.Length];
+      // int binIndex = 0;
+      // foreach (var bp in result.BinPackings) {
+      //   foreach (var entry in bp.ItemPositions)
+      //     newSolution[entry.Key] = binIndex;
+      //   binIndex++;
+      // }
+      // solution.GroupingVector = new IntegerVector(newSolution);
+
+      return result;
+    }
+
+    protected abstract Solution CreateSolution(PackingShape binShape);
+    protected abstract PackingPosition FindPositionForItem(BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> bp, PackingItem item);
+    protected abstract BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> CreatePacking(Solution partialSolution, ref IList<int> remainingIDs, IList<PackingItem> items);
+  }
+}
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/IntegerVectorProblem.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 14151)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/IntegerVectorEncoding/IntegerVectorProblem.cs	(revision 14151)
@@ -0,0 +1,100 @@
+﻿#region License Information
+
+/* HeuristicLab
+ * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#endregion
+
+using System.Collections.Generic;
+using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Encodings.IntegerVectorEncoding;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.BinPacking2D {
+  [Item("Bin Packing Problem (2D, integer vector encoding) (BPP)", "Represents a two-dimensional bin-packing problem using only bins with identical measures and bins/items with rectangular shapes.")]
+  [StorableClass]
+  [Creatable(Category = CreatableAttribute.Categories.CombinatorialProblems, Priority = 310)]
+  public sealed class IntegerVectorProblem : ProblemBase<IntegerVectorEncoding, IntegerVector> {
+    // persistence
+    [StorableConstructor]
+    private IntegerVectorProblem(bool deserializing) : base(deserializing) { }
+
+    // cloning
+    private IntegerVectorProblem(IntegerVectorProblem original, Cloner cloner)
+      : base(original, cloner) {
+      RegisterEventHandlers();
+    }
+
+    public IntegerVectorProblem()
+      : base() {
+      Decoder = new ExtremePointIntegerVectorDecoder(); // default decoder
+
+      // the int vector contains the target bin number for each item
+      Encoding = new IntegerVectorEncoding(EncodedSolutionName, Items.Count, min: 0, max: LowerBound + 1); // NOTE: assumes that all items can be packed into LowerBound+1 bins
+      AddOperators();
+      RegisterEventHandlers();
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new IntegerVectorProblem(this, cloner);
+    }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      RegisterEventHandlers();
+    }
+
+
+    private void AddOperators() {
+
+      // move operators are not yet supported
+      Operators.RemoveAll(x => x is SingleObjectiveMoveGenerator);
+      Operators.RemoveAll(x => x is SingleObjectiveMoveMaker);
+      Operators.RemoveAll(x => x is SingleObjectiveMoveEvaluator);
+
+      Encoding.ConfigureOperators(Operators.OfType<IOperator>());
+    }
+
+    private void RegisterEventHandlers() {
+      // update encoding length when number of items is changed
+      ItemsParameter.ValueChanged += (sender, args) => Encoding.Length = Items.Count;
+      LowerBoundParameter.Value.ValueChanged += (sender, args) => {
+        for (int i = 0; i < Encoding.Bounds.Rows; i++) {
+          Encoding.Bounds[i, 1] = LowerBound + 1;
+        }
+      };
+    }
+
+    #region helpers
+
+    public static List<List<int>> GenerateSequenceMatrix(IntegerVector intVec) {
+      List<List<int>> result = new List<List<int>>();
+      int nrOfBins = intVec.Max() + 1;
+      for (int i = 0; i < nrOfBins; i++)
+        result.Add(new List<int>());
+      for (int i = 0; i < intVec.Length; i++) {
+        result[intVec[i]].Add(i);
+      }
+      return result;
+    }
+    #endregion
+  }
+}
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PermutationEncoding/PermutationProblem.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PermutationEncoding/PermutationProblem.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PermutationEncoding/PermutationProblem.cs	(revision 14151)
@@ -25,10 +25,7 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Data;
 using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Optimization;
-using HeuristicLab.Parameters;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.Instances;
 
 namespace HeuristicLab.Problems.BinPacking2D {
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Solution.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Solution.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Solution.cs	(revision 14151)
@@ -22,6 +22,6 @@
 using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Encodings.PackingEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.BinPacking;
 
 namespace HeuristicLab.Problems.BinPacking2D {
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs	(revision 14151)
@@ -25,5 +25,5 @@
 using HeuristicLab.Core;
 using HeuristicLab.Common;
-using HeuristicLab.Encodings.PackingEncoding;
+using HeuristicLab.Problems.BinPacking;
 
 namespace HeuristicLab.Problems.BinPacking3D {
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/Solution.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/Solution.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/Solution.cs	(revision 14151)
@@ -1,6 +1,6 @@
 ﻿using HeuristicLab.Common;
 using HeuristicLab.Core;
-using HeuristicLab.Encodings.PackingEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.BinPacking;
 
 namespace HeuristicLab.Problems.BinPacking3D {
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container2DView.xaml.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container2DView.xaml.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container2DView.xaml.cs	(revision 14151)
@@ -23,5 +23,4 @@
 using System.Windows;
 using System.Windows.Media;
-using HeuristicLab.Encodings.PackingEncoding;
 using HeuristicLab.Problems.BinPacking2D;
 using Point = System.Windows.Point;
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container3DView.xaml.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container3DView.xaml.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container3DView.xaml.cs	(revision 14151)
@@ -24,5 +24,4 @@
 using System.Windows.Input;
 using System.Windows.Media.Media3D;
-using HeuristicLab.Encodings.PackingEncoding;
 using HeuristicLab.Problems.BinPacking3D;
 
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs	(revision 14151)
@@ -24,5 +24,4 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Problems.BinPacking2D;
-using HeuristicLab.Encodings.PackingEncoding;
 
 namespace HeuristicLab.Problems.BinPacking.Views {
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan3DView.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan3DView.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan3DView.cs	(revision 14151)
@@ -22,5 +22,4 @@
 using System;
 using HeuristicLab.Core.Views;
-using HeuristicLab.Encodings.PackingEncoding;
 using HeuristicLab.MainForm;
 using HeuristicLab.Problems.BinPacking3D;
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/BinPacking.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/BinPacking.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/BinPacking.cs	(revision 14151)
@@ -26,7 +26,6 @@
 using HeuristicLab.Common;
 using HeuristicLab.Collections;
-using HeuristicLab.Problems.BinPacking;
 
-namespace HeuristicLab.Encodings.PackingEncoding {
+namespace HeuristicLab.Problems.BinPacking {
   [Item("BinPacking", "Represents a single-bin packing for a bin-packing problem.")]
   [StorableClass]
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/PackingPlan.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/PackingPlan.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/PackingPlan.cs	(revision 14151)
@@ -27,7 +27,6 @@
 using HeuristicLab.Data;
 using HeuristicLab.Collections;
-using HeuristicLab.Problems.BinPacking;
 
-namespace HeuristicLab.Encodings.PackingEncoding {
+namespace HeuristicLab.Problems.BinPacking {
   [Item("PackingPlan", "Represents a concrete solution for a bin-packing problem.")]
   [StorableClass]
@@ -145,66 +144,7 @@
     }
     public void Pack(GroupingVectorEncoding solution, ItemList<I> itemMeasures) {
-      var sequenceMatrix = solution.GenerateSequenceMatrix();
-
-      //Fill bins according to grouping vector
-      List<int> remainingIDs = new List<int>();
-      foreach (var sequence in sequenceMatrix) {
-        remainingIDs = remainingIDs.Concat(sequence).ToList();
-        var bp = NewBinPacking();
-        if (!UseExtremePoints)
-          bp.SlidingBasedPacking(ref remainingIDs, itemMeasures);
-        else
-          bp.ExtremePointBasedPacking(ref remainingIDs, itemMeasures, StackingConstraints);
-        BinPackings.Add(bp);
-      }
-      UpdateBinPackings();
-
-      //Try to put remaining items in existing bins
-      var temp = new List<int>(remainingIDs);
-      foreach (int id in temp) {
-        foreach (var bp in BinPackings) {
-          var position = UseExtremePoints ? bp.FindExtremePointForItem(itemMeasures[id], false, StackingConstraints) : bp.FindPositionBySliding(itemMeasures[id], false);
-          if (position != null) {
-            bp.PackItem(id, itemMeasures[id], position);
-            remainingIDs.Remove(id);
-            break;
-          }
-        }
-      }
-
-      //Put still remaining items in new bins
-      while (remainingIDs.Count > 0) {
-        var bp = NewBinPacking();
-        if (!UseExtremePoints)
-          bp.SlidingBasedPacking(ref remainingIDs, itemMeasures);
-        else
-          bp.ExtremePointBasedPacking(ref remainingIDs, itemMeasures, StackingConstraints);
-        BinPackings.Add(bp);
-      }
-      UpdateBinPackings();
-
-      var newSolution = new int[solution.GroupingVector.Length];
-      int binIndex = 0;
-      foreach (var bp in BinPackings) {
-        foreach (var entry in bp.ItemPositions)
-          newSolution[entry.Key] = binIndex;
-        binIndex++;
-      }
-      solution.GroupingVector = new IntegerVector(newSolution);
     }
      * 
      
-    public void Pack(Permutation solution, ItemList<I> itemMeasures) {
-      List<int> remainingIDs = new List<int>(solution);
-      while (remainingIDs.Count > 0) {
-        var bp = NewBinPacking();
-        if (!UseExtremePoints)
-          bp.SlidingBasedPacking(ref remainingIDs, itemMeasures);
-        else
-          bp.ExtremePointBasedPacking(ref remainingIDs, itemMeasures, StackingConstraints);
-        BinPackings.Add(bp);
-      }
-      UpdateBinPackings();
-    }
 
     */
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj	(revision 14151)
@@ -160,7 +160,4 @@
     <Compile Include="Encodings\PackingPlans\BinPacking.cs" />
     <Compile Include="Encodings\PackingPlans\PackingPlan.cs" />
-    <Compile Include="Encodings\PackingSolutionCreator.cs" />
-    <Compile Include="Encodings\PackingSolutionCrossover.cs" />
-    <Compile Include="Encodings\PackingSolutionManipulator.cs" />
     <Compile Include="Interfaces\IDecodingEvaluator.cs" />
     <Compile Include="Interfaces\IPackingPosition.cs" />
Index: /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingSolutionDecoder.cs
===================================================================
--- /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingSolutionDecoder.cs	(revision 14150)
+++ /branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingSolutionDecoder.cs	(revision 14151)
@@ -27,5 +27,4 @@
 using HeuristicLab.Parameters;
 using HeuristicLab.Data;
-using HeuristicLab.Encodings.PackingEncoding;
 
 namespace HeuristicLab.Problems.BinPacking {
@@ -50,5 +49,5 @@
       get { return (ILookupParameter<IItem>)Parameters["EncodedSolution"]; }
     }
-    public ILookupParameter<PackingPlan<D,B,I>> PackingPlanParameter {
+    public ILookupParameter<PackingPlan<D, B, I>> PackingPlanParameter {
       get { return (ILookupParameter<PackingPlan<D, B, I>>)Parameters["PackingPlan"]; }
     }
@@ -58,5 +57,6 @@
 
 
-    public PackingSolutionDecoder() : base() {
+    public PackingSolutionDecoder()
+      : base() {
       Parameters.Add(new LookupParameter<IItem>("EncodedSolution", "The new bin-packing solution represented as encoding."));
       Parameters.Add(new LookupParameter<PackingPlan<D, B, I>>("PackingPlan", "The decoded bin-packing solution represented as generalized packing plan."));
@@ -69,5 +69,5 @@
     [StorableConstructor]
     protected PackingSolutionDecoder(bool deserializing) : base(deserializing) { }
-    protected PackingSolutionDecoder(PackingSolutionDecoder<D,B,I> original, Cloner cloner)
+    protected PackingSolutionDecoder(PackingSolutionDecoder<D, B, I> original, Cloner cloner)
       : base(original, cloner) {
     }
