- Timestamp:
- 07/12/16 18:23:13 (8 years ago)
- Location:
- branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs
r14040 r14045 28 28 using HeuristicLab.Common; 29 29 using HeuristicLab.Problems.BinPacking.Dimensions; 30 using HeuristicLab.Problems.BinPacking.PackingBin; 30 31 using HeuristicLab.Problems.BinPacking.Shapes; 31 32 32 33 namespace HeuristicLab.Encodings.PackingEncoding.PackingPlan { 33 34 [Item("BinPacking2D", "Represents a single-bin packing for a 2D bin-packing problem.")] 34 35 [StorableClass] 35 public class BinPacking2D : BinPacking<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> {36 37 public BinPacking2D(RectangularPacking BinbinMeasures)36 public class BinPacking2D : BinPacking<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> { 37 38 public BinPacking2D(RectangularPackingShape binMeasures) 38 39 : base(binMeasures) { 39 40 ExtremePoints = new SortedSet<TwoDimensionalPacking>(new EPComparer2D()); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/BL/BottomLeftGroupingVectorDecoder.cs
r13607 r14045 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Problems.BinPacking.Dimensions; 26 using HeuristicLab.Problems.BinPacking.PackingBin; 26 27 27 using HeuristicLab.Problems.BinPacking.PackingItem; 28 28 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; … … 31 31 using HeuristicLab.Encodings.PackingEncoding.GroupingVector; 32 32 using HeuristicLab.Problems.BinPacking2D; 33 using HeuristicLab.Problems.BinPacking.Shapes; 33 34 34 35 namespace HeuristicLab.Problems.BinPacking.Decoders { 35 36 [Item("Identical bin two dimensional grouping vector decoder", "<Description missing...>")] 36 37 [StorableClass] 37 public class BottomLeftGroupingVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPacking Bin,RectangularPackingItem>, I2DGVDecoder {38 public class BottomLeftGroupingVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DGVDecoder { 38 39 public BottomLeftGroupingVectorDecoder() : base() {} 39 40 [StorableConstructor] … … 46 47 } 47 48 48 public override PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {49 public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 49 50 var solution = encodedSolution as GroupingVectorEncoding; 50 51 if (solution == null) throw new InvalidOperationException("Encoding is not of type GroupingVector"); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/BL/BottomLeftMultiComponentVectorDecoder.cs
r13606 r14045 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Problems.BinPacking.Dimensions; 26 using HeuristicLab.Problems.BinPacking.PackingBin;27 26 using HeuristicLab.Problems.BinPacking.PackingItem; 28 27 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; … … 31 30 using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector; 32 31 using HeuristicLab.Problems.BinPacking2D; 32 using HeuristicLab.Problems.BinPacking.Shapes; 33 33 34 34 namespace HeuristicLab.Problems.BinPacking.Decoders { 35 35 [Item("Identical bin two dimensional multi component vector decoder", "<Description missing...>")] 36 36 [StorableClass] 37 public class BottomLeftMultiComponentVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking,RectangularPacking Bin, RectangularPackingItem>, I2DMCVDecoder {37 public class BottomLeftMultiComponentVectorDecoder : PackingSolutionDecoder<TwoDimensionalPacking,RectangularPackingShape, RectangularPackingItem>, I2DMCVDecoder { 38 38 public BottomLeftMultiComponentVectorDecoder() : base() {} 39 39 [StorableConstructor] … … 46 46 } 47 47 48 public override PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {48 public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 49 49 var solution = encodedSolution as MultiComponentVectorEncoding; 50 50 if (solution == null) throw new InvalidOperationException("Encoding is not of type MultiComponent Vector"); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/BL/BottomLeftPackingSequenceDecoder.cs
r13607 r14045 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 using HeuristicLab.Problems.BinPacking.PackingBin; 27 28 28 using HeuristicLab.Problems.BinPacking.PackingItem; 29 29 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; … … 32 32 using HeuristicLab.Problems.BinPacking.Interfaces; 33 33 using HeuristicLab.Problems.BinPacking2D; 34 using HeuristicLab.Problems.BinPacking.Shapes; 34 35 35 36 namespace HeuristicLab.Problems.BinPacking.Decoders { 36 37 [Item("Identical bin, two dimensional, direct permutation decoder", "<Description missing...>")] 37 38 [StorableClass] 38 public class BottomLeftPackingSequenceDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, I2DPSDecoder {39 public class BottomLeftPackingSequenceDecoder : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DPSDecoder { 39 40 40 41 public BottomLeftPackingSequenceDecoder(): base() { } … … 48 49 } 49 50 50 public override PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {51 public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 51 52 var solution = encodedSolution as PackingSequenceEncoding; 52 53 if (solution == null) throw new InvalidOperationException("Encoding is not of type PackingSequence"); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/EP/ExtremePointGroupingVectorDecoder2D.cs
r13607 r14045 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 using HeuristicLab.Problems.BinPacking.PackingBin; 27 28 28 using HeuristicLab.Problems.BinPacking.PackingItem; 29 29 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; … … 32 32 using HeuristicLab.Encodings.PackingEncoding.GroupingVector; 33 33 using HeuristicLab.Problems.BinPacking2D; 34 using HeuristicLab.Problems.BinPacking.Shapes; 34 35 35 36 namespace HeuristicLab.Problems.BinPacking.Decoders { 36 37 [Item("Identical bin, two dimensional, extreme points based decoder for the GroupingVector encoding.", "<Description missing...>")] 37 38 [StorableClass] 38 public class ExtremePointGroupingVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, I2DGVDecoder {39 public class ExtremePointGroupingVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DGVDecoder { 39 40 public ExtremePointGroupingVectorDecoder2D () : base() {} 40 41 [StorableConstructor] … … 47 48 } 48 49 49 public static PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> Decode(GroupingVectorEncoding solution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {50 public static PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> Decode(GroupingVectorEncoding solution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 50 51 PackingPlan2D result = new PackingPlan2D(binMeasures, true, false); 51 52 result.Pack(solution, itemMeasures); … … 53 54 } 54 55 55 public override PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {56 public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 56 57 var solution = encodedSolution as GroupingVectorEncoding; 57 58 if (solution == null) throw new InvalidOperationException("Encoding is not of type GroupingVector"); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/EP/ExtremePointMultiComponentVectorDecoder2D.cs
r13607 r14045 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Problems.BinPacking.Dimensions; 26 using HeuristicLab.Problems.BinPacking.PackingBin; 26 27 27 using HeuristicLab.Problems.BinPacking.PackingItem; 28 28 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; … … 31 31 using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector; 32 32 using HeuristicLab.Problems.BinPacking2D; 33 using HeuristicLab.Problems.BinPacking.Shapes; 33 34 34 35 namespace HeuristicLab.Problems.BinPacking.Decoders { 35 36 [Item("Identical bin, two dimensional, extreme points based decoder for the MultiComponentVector encoding.", "<Description missing...>")] // TODO 36 37 [StorableClass] 37 public class ExtremePointMultiComponentVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>, I2DMCVDecoder {38 public class ExtremePointMultiComponentVectorDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DMCVDecoder { 38 39 public ExtremePointMultiComponentVectorDecoder2D () : base() {} 39 40 [StorableConstructor] … … 46 47 } 47 48 48 public static PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> Decode(MultiComponentVectorEncoding solution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {49 public static PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> Decode(MultiComponentVectorEncoding solution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 49 50 PackingPlan2D result = new PackingPlan2D(binMeasures, true, false); 50 51 result.Pack(solution, itemMeasures); … … 52 53 } 53 54 54 public override PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {55 public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 55 56 var solution = encodedSolution as MultiComponentVectorEncoding; 56 57 if (solution == null) throw new InvalidOperationException("Encoding is not of type MultiComponentVector"); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Decoders/EP/ExtremePointPackingSequenceDecoder2D.cs
r13607 r14045 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 using HeuristicLab.Problems.BinPacking.PackingBin;28 27 using HeuristicLab.Problems.BinPacking.PackingItem; 29 28 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; … … 32 31 using HeuristicLab.Problems.BinPacking.Interfaces; 33 32 using HeuristicLab.Problems.BinPacking2D; 33 using HeuristicLab.Problems.BinPacking.Shapes; 34 34 35 35 namespace HeuristicLab.Problems.BinPacking.Decoders { 36 36 [Item("Identical bin, two dimensional, extreme points based decoder for the PackingSequence encoding.", "<Description missing...>")] // TODO 37 37 [StorableClass] 38 public class ExtremePointPackingSequenceDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, I2DPSDecoder {38 public class ExtremePointPackingSequenceDecoder2D : PackingSolutionDecoder<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, I2DPSDecoder { 39 39 public ExtremePointPackingSequenceDecoder2D () : base() {} 40 40 [StorableConstructor] … … 48 48 49 49 50 public override PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingBinbinMeasures, ItemList<RectangularPackingItem> itemMeasures) {50 public override PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> CreatePackingPlanFromEncoding(IItem encodedSolution, RectangularPackingShape binMeasures, ItemList<RectangularPackingItem> itemMeasures) { 51 51 var solution = encodedSolution as PackingSequenceEncoding; 52 52 if (solution == null) throw new InvalidOperationException("Encoding is not of type PackingSequence"); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/HeuristicLab.Problems.BinPacking2D-3.3.csproj
r13611 r14045 177 177 <Compile Include="Properties\AssemblyInfo.cs" /> 178 178 <Compile Include="RectangularIdenticalBinPackingProblem.cs" /> 179 <Compile Include="RectangularPackingBin.cs" />180 179 <Compile Include="RectangularPackingItem.cs" /> 181 180 <Compile Include="RectangularPackingShape.cs" /> -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/MoveEvaluators/PackingMoveEvaluator2DGV.cs
r13607 r14045 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 27 using HeuristicLab.Problems.BinPacking.Interfaces; 28 using HeuristicLab.Problems.BinPacking.PackingBin; 28 29 29 using HeuristicLab.Problems.BinPacking.PackingItem; 30 using HeuristicLab.Problems.BinPacking.Shapes; 30 31 using HeuristicLab.Problems.BinPacking2D.Interfaces; 31 32 … … 33 34 [Item("GroupingVectorMoveEvaluator2D", "Class for evaluating packing moves for 2dimensional problems.")] 34 35 [StorableClass] 35 public class PackingMoveEvaluator2DGV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IGroupingVectorMoveOperator, I2DOperator {36 public class PackingMoveEvaluator2DGV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IGroupingVectorMoveOperator, I2DOperator { 36 37 [StorableConstructor] 37 38 protected PackingMoveEvaluator2DGV(bool deserializing) : base(deserializing) { } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/MoveEvaluators/PackingMoveEvaluator2DMCV.cs
r13607 r14045 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 27 using HeuristicLab.Problems.BinPacking.Interfaces; 28 using HeuristicLab.Problems.BinPacking.PackingBin; 28 29 29 using HeuristicLab.Problems.BinPacking.PackingItem; 30 using HeuristicLab.Problems.BinPacking.Shapes; 30 31 using HeuristicLab.Problems.BinPacking2D.Interfaces; 31 32 … … 33 34 [Item("MultiComponentVectorMoveEvaluator2D", "Class for evaluating packing moves for 2dimensional problems.")] 34 35 [StorableClass] 35 public class PackingMoveEvaluator2DMCV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IMultiComponentVectorMoveOperator, I2DOperator {36 public class PackingMoveEvaluator2DMCV : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IMultiComponentVectorMoveOperator, I2DOperator { 36 37 [StorableConstructor] 37 38 protected PackingMoveEvaluator2DMCV(bool deserializing) : base(deserializing) { } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/MoveEvaluators/PackingMoveEvaluator2DPS.cs
r13607 r14045 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 27 using HeuristicLab.Problems.BinPacking.Interfaces; 28 using HeuristicLab.Problems.BinPacking.PackingBin; 28 29 29 using HeuristicLab.Problems.BinPacking.PackingItem; 30 using HeuristicLab.Problems.BinPacking.Shapes; 30 31 using HeuristicLab.Problems.BinPacking2D.Interfaces; 31 32 … … 33 34 [Item("PackingSequenceMoveEvaluator2D", "Class for evaluating packing moves for 2dimensional problems.")] 34 35 [StorableClass] 35 public class PackingMoveEvaluator2DPS : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IPackingSequenceMoveOperator, I2DOperator {36 public class PackingMoveEvaluator2DPS : PackingMoveEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, ISingleObjectiveMoveEvaluator, IPackingSequenceMoveOperator, I2DOperator { 36 37 [StorableConstructor] 37 38 protected PackingMoveEvaluator2DPS(bool deserializing) : base(deserializing) { } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PackingPlan2D.cs
r13611 r14045 25 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 26 using HeuristicLab.Problems.BinPacking.Dimensions; 27 using HeuristicLab.Problems.BinPacking.PackingBin; 27 28 28 using HeuristicLab.Problems.BinPacking.PackingItem; 29 using HeuristicLab.Problems.BinPacking.Shapes; 29 30 30 31 namespace HeuristicLab.Problems.BinPacking2D { 31 32 [Item("PackingPlan2D", "Represents a solution for a 2D bin packing problem.")] 32 33 [StorableClass] 33 public class PackingPlan2D : PackingPlan<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> {34 public PackingPlan2D(RectangularPacking BinbinMeasures) : this(binMeasures, false, false) { }35 public PackingPlan2D(RectangularPacking BinbinMeasures, bool useExtremePoints, bool stackingConstraints) : base(binMeasures, useExtremePoints, stackingConstraints) { }34 public class PackingPlan2D : PackingPlan<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> { 35 public PackingPlan2D(RectangularPackingShape binMeasures) : this(binMeasures, false, false) { } 36 public PackingPlan2D(RectangularPackingShape binMeasures, bool useExtremePoints, bool stackingConstraints) : base(binMeasures, useExtremePoints, stackingConstraints) { } 36 37 [StorableConstructor] 37 38 protected PackingPlan2D(bool deserializing) : base(deserializing) { } … … 42 43 return new PackingPlan2D(this, cloner); 43 44 } 44 public override BinPacking<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> NewBinPacking() {45 public override BinPacking<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> NewBinPacking() { 45 46 return new Encodings.PackingEncoding.PackingPlan.BinPacking2D(BinMeasures); 46 47 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PackingRatioRectangularIdenticalBinEvaluator.cs
r13606 r14045 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Problems.BinPacking.PackingItem; 27 using HeuristicLab.Problems.BinPacking.PackingBin;28 27 using HeuristicLab.Problems.BinPacking.Dimensions; 28 using HeuristicLab.Problems.BinPacking.Shapes; 29 29 30 30 namespace HeuristicLab.Problems.BinPacking.Evaluators { 31 31 [Item("Packing-Ratio Rectangular Identical-Bin Evaluator", "Represents an evaluation-algorithm for rectangular-shaped bin-packing problems with identical bins which calculates the ratio between packed and unpacked space. Found in Falkenauer:1996")] 32 32 [StorableClass] 33 public class PackingRatioRectangularIdenticalBinEvaluator : PackingRatioRegularIdenticalBinEvaluator<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem> {33 public class PackingRatioRectangularIdenticalBinEvaluator : PackingRatioRegularIdenticalBinEvaluator<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem> { 34 34 35 35 [StorableConstructor] -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/RectangularIdenticalBinPackingProblem.cs
r14040 r14045 22 22 using HeuristicLab.Problems.BinPacking.Dimensions; 23 23 using HeuristicLab.Problems.BinPacking.Interfaces; 24 using HeuristicLab.Problems.BinPacking.PackingBin; 24 25 25 using HeuristicLab.Problems.BinPacking.PackingItem; 26 26 using HeuristicLab.Core; … … 36 36 using HeuristicLab.Data; 37 37 using System; 38 using HeuristicLab.Problems.BinPacking.Shapes; 38 39 39 40 namespace HeuristicLab.Problems.BinPacking.Problem { … … 42 43 [Creatable(CreatableAttribute.Categories.CombinatorialProblems, Priority = 300)] 43 44 // TODO: only support 2d BPPData 44 public class RectangularIdenticalBinPackingProblem : BinPackingProblem<TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>, IProblemInstanceConsumer<BPPData>, IProblemInstanceExporter<BPPData> {45 public class RectangularIdenticalBinPackingProblem : BinPackingProblem<TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>, IProblemInstanceConsumer<BPPData>, IProblemInstanceExporter<BPPData> { 45 46 46 47 #region Default Instance … … 101 102 } 102 103 public RectangularIdenticalBinPackingProblem() : base( 103 new PackingPlanEvaluationAlgorithm<Permutation, TwoDimensionalPacking, RectangularPacking Bin, RectangularPackingItem>()) {104 new PackingPlanEvaluationAlgorithm<Permutation, TwoDimensionalPacking, RectangularPackingShape, RectangularPackingItem>()) { 104 105 } 105 106 … … 107 108 public void Load(BPPData data) { 108 109 var realData = data as RealBPPData; 109 var binData = new RectangularPacking Bin(data.BinMeasures[0], data.BinMeasures[1]);110 var binData = new RectangularPackingShape(data.BinMeasures[0], data.BinMeasures[1]); 110 111 111 112 var itemData = new ItemList<RectangularPackingItem>(data.Items); 112 113 for (int j = 0; j < data.Items; j++) { 113 var bin = new RectangularPacking Bin(data.BinMeasures[0], data.BinMeasures[1]);114 var bin = new RectangularPackingShape(data.BinMeasures[0], data.BinMeasures[1]); 114 115 var item = new RectangularPackingItem(data.ItemMeasures[j][0], data.ItemMeasures[j][1], bin); 115 116 if (realData != null) { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/RectangularPackingItem.cs
r14039 r14045 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Parameters; 30 using HeuristicLab.Problems.BinPacking.PackingBin; 30 31 31 32 32 namespace HeuristicLab.Problems.BinPacking.PackingItem { … … 35 35 public class RectangularPackingItem : RectangularPackingShape, IPackingItem { 36 36 37 public RectangularPacking BinTargetBin {38 get { return ((IValueParameter<RectangularPacking Bin>)Parameters["TargetBin"]).Value; }39 set { ((IValueParameter<RectangularPacking Bin>)Parameters["TargetBin"]).Value = value; }37 public RectangularPackingShape TargetBin { 38 get { return ((IValueParameter<RectangularPackingShape>)Parameters["TargetBin"]).Value; } 39 set { ((IValueParameter<RectangularPackingShape>)Parameters["TargetBin"]).Value = value; } 40 40 } 41 41 … … 62 62 public RectangularPackingItem() 63 63 : base() { 64 Parameters.Add(new ValueParameter<RectangularPacking Bin>("TargetBin"));64 Parameters.Add(new ValueParameter<RectangularPackingShape>("TargetBin")); 65 65 Parameters.Add(new FixedValueParameter<DoubleValue>("Weight")); 66 66 Parameters.Add(new FixedValueParameter<IntValue>("Material")); 67 67 } 68 68 69 public RectangularPackingItem(int width, int height, RectangularPacking BintargetBin)69 public RectangularPackingItem(int width, int height, RectangularPackingShape targetBin) 70 70 : this() { 71 71 this.Width = width; 72 72 this.Height = height; 73 this.TargetBin = (RectangularPacking Bin)targetBin.Clone();73 this.TargetBin = (RectangularPackingShape)targetBin.Clone(); 74 74 } 75 75 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/RectangularPackingShape.cs
r14043 r14045 33 33 [Item("RectangularPackingShape", "Represents the rectangular measures (width, height) of a two-dimensional bin-packing object.")] 34 34 [StorableClass] 35 public abstractclass RectangularPackingShape : PackingShape<TwoDimensionalPacking>, IComparable<RectangularPackingShape> {35 public class RectangularPackingShape : PackingShape<TwoDimensionalPacking>, IComparable<RectangularPackingShape> { 36 36 public int Height { 37 37 get { return ((IFixedValueParameter<IntValue>)Parameters["Height"]).Value.Value; } … … 49 49 : base(original, cloner) { 50 50 } 51 p rotectedRectangularPackingShape()51 public RectangularPackingShape() 52 52 : base() { 53 53 Parameters.Add(new FixedValueParameter<IntValue>("Width")); 54 54 Parameters.Add(new FixedValueParameter<IntValue>("Height")); 55 55 } 56 p rotectedRectangularPackingShape(int width, int height)56 public RectangularPackingShape(int width, int height) 57 57 : this() { 58 58 this.Height = height; 59 59 this.Width = width; 60 } 61 62 public override IDeepCloneable Clone(Cloner cloner) { 63 return new RectangularPackingShape(this, cloner); 60 64 } 61 65
Note: See TracChangeset
for help on using the changeset viewer.