Changeset 9440 for branches/HeuristicLab.BinPacking
- Timestamp:
- 05/04/13 17:51:14 (12 years ago)
- Location:
- branches/HeuristicLab.BinPacking
- Files:
-
- 72 added
- 6 deleted
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlans/PackingPlan2DView.cs
r9348 r9440 3 3 using HeuristicLab.Core.Views; 4 4 using HeuristicLab.MainForm; 5 using HeuristicLab. Problems.BinPacking.PackingPlans;5 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 6 6 using HeuristicLab.Problems.BinPacking.Interfaces; 7 7 using HeuristicLab.Problems.BinPacking.PackingItem; … … 13 13 namespace HeuristicLab.Problems.BinPacking.Views { 14 14 [View("2-dimensional packing plan View")] 15 [Content(typeof( RegularSimpleRotationPackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>), true)]15 [Content(typeof(PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>), true)] 16 16 public partial class PackingPlan2DView : NamedItemView { 17 17 … … 21 21 22 22 23 public new RegularSimpleRotationPackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> Content {24 get { return ( RegularSimpleRotationPackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>)base.Content; }23 public new PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> Content { 24 get { return (PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem>)base.Content; } 25 25 set { base.Content = value; } 26 26 } … … 44 44 } 45 45 46 private void Redraw( RegularSimpleRotationPackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> plan) {46 private void Redraw(PackingPlan<TwoDimensionalPacking, RectangularPackingBin, RectangularPackingItem> plan) { 47 47 int currentBin = (binSelection != null && binSelection.SelectedItem != null) ? (int)(binSelection.SelectedItem) : 0; 48 48 var bin = plan.PackingBinMeasures; … … 52 52 var position = plan.PackingItemPositions[i++]; 53 53 if (position.AssignedBin == currentBin) 54 packingPlan2D.AddItemToContainer(item.Width, item.Height, position.X, position.Y, i.ToString()); 54 packingPlan2D.AddItemToContainer( 55 position.Rotated ? item.Height : item.Width, 56 position.Rotated ? item.Width : item.Height, 57 position.X, position.Y, i.ToString()); 55 58 } 56 59 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlans/PackingPlan3DView.cs
r9348 r9440 3 3 using HeuristicLab.Core.Views; 4 4 using HeuristicLab.MainForm; 5 using HeuristicLab. Problems.BinPacking.PackingPlans;5 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 6 6 using HeuristicLab.Problems.BinPacking.Interfaces; 7 7 using HeuristicLab.Problems.BinPacking.PackingItem; … … 13 13 namespace HeuristicLab.Problems.BinPacking.Views { 14 14 [View("3-dimensional packing plan View")] 15 [Content(typeof( RegularSimpleRotationPackingPlan<ThreeDimensionalPacking, CuboidPackingBin, CuboidPackingItem>), true)]15 [Content(typeof(PackingPlan<ThreeDimensionalPacking, CuboidPackingBin, CuboidPackingItem>), true)] 16 16 public partial class PackingPlan3DView : NamedItemView { 17 17 … … 22 22 23 23 24 public new RegularSimpleRotationPackingPlan<ThreeDimensionalPacking, CuboidPackingBin, CuboidPackingItem> Content {25 get { return ( RegularSimpleRotationPackingPlan<ThreeDimensionalPacking, CuboidPackingBin, CuboidPackingItem>)base.Content; }24 public new PackingPlan<ThreeDimensionalPacking, CuboidPackingBin, CuboidPackingItem> Content { 25 get { return (PackingPlan<ThreeDimensionalPacking, CuboidPackingBin, CuboidPackingItem>)base.Content; } 26 26 set { base.Content = value; } 27 27 } … … 51 51 var position = Content.PackingItemPositions[i]; 52 52 if (position.AssignedBin == currentBin) 53 packingPlan3D.AddItemToContainer(item.Width, item.Height, item.Depth, position.X, position.Y, position.Z, i); 53 packingPlan3D.AddItemToContainer( 54 position.Rotated ? item.Depth : item.Width, 55 item.Height, 56 position.Rotated ? item.Width : item.Depth, 57 position.X, position.Y, position.Z, i); 54 58 i++; 55 59 } … … 76 80 itemSelection.Items.Add(i); 77 81 } 78 itemSelection.Items.Add("enum");82 //itemSelection.Items.Add("enum"); 79 83 80 84 packingPlan3D.Invalidate(); -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Plugin.cs
r9348 r9440 26 26 /// Plugin class for HeuristicLab.Problems.BinPacking.Views plugin. 27 27 /// </summary> 28 [Plugin("HeuristicLab.Problems.BinPacking.Views", "3.3.7. 0")]28 [Plugin("HeuristicLab.Problems.BinPacking.Views", "3.3.7.9348")] 29 29 [PluginFile("HeuristicLab.Problems.BinPacking.Views-3.3.dll", PluginFileType.Assembly)] 30 30 [PluginDependency("HeuristicLab.Common", "3.3")] -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Properties/AssemblyInfo.cs
r9348 r9440 54 54 // by using the '*' as shown below: 55 55 [assembly: AssemblyVersion("3.3.0.0")] 56 [assembly: AssemblyFileVersion("3.3.7. 0")]56 [assembly: AssemblyFileVersion("3.3.7.9348")] -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/CuboidPackingItemView.cs
r9348 r9440 3 3 using HeuristicLab.Core.Views; 4 4 using HeuristicLab.MainForm; 5 using HeuristicLab. Problems.BinPacking.PackingPlans;5 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 6 6 using HeuristicLab.Problems.BinPacking.Interfaces; 7 7 using HeuristicLab.Problems.BinPacking.Shapes; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/CuboidPackingShapeView.cs
r9348 r9440 3 3 using HeuristicLab.Core.Views; 4 4 using HeuristicLab.MainForm; 5 using HeuristicLab. Problems.BinPacking.PackingPlans;5 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 6 6 using HeuristicLab.Problems.BinPacking.Interfaces; 7 7 using HeuristicLab.Problems.BinPacking.Shapes; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingItemView.cs
r9348 r9440 3 3 using HeuristicLab.Core.Views; 4 4 using HeuristicLab.MainForm; 5 using HeuristicLab. Problems.BinPacking.PackingPlans;5 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 6 6 using HeuristicLab.Problems.BinPacking.Interfaces; 7 7 using HeuristicLab.Problems.BinPacking.PackingItem; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Shapes/RectangularPackingShapeView.cs
r9348 r9440 3 3 using HeuristicLab.Core.Views; 4 4 using HeuristicLab.MainForm; 5 using HeuristicLab. Problems.BinPacking.PackingPlans;5 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 6 6 using HeuristicLab.Problems.BinPacking.Interfaces; 7 7 using HeuristicLab.Problems.BinPacking.Shapes; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Analyzers/BestBinPackingSolutionAnalyzer.cs
r9348 r9440 32 32 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 33 33 using HeuristicLab.Problems.BinPacking.Interfaces; 34 using HeuristicLab. Problems.BinPacking.PackingPlans;34 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 35 35 using HeuristicLab.Problems.BinPacking.Shapes; 36 36 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Analyzers/BinPackingAnalyzer.cs
r9348 r9440 32 32 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 33 33 using HeuristicLab.Problems.BinPacking.Interfaces; 34 using HeuristicLab. Problems.BinPacking.PackingPlans;34 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 35 35 using HeuristicLab.Problems.BinPacking.Shapes; 36 36 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Decoders/IdenticalBinPackingSolutionDecoder.cs
r9348 r9440 31 31 using HeuristicLab.Parameters; 32 32 using HeuristicLab.Problems.BinPacking.Shapes; 33 using HeuristicLab. Problems.BinPacking.PackingPlans;33 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 34 34 using HeuristicLab.Data; 35 35 using HeuristicLab.Collections; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions/PackingDimensions.cs
r9348 r9440 37 37 /// </summary> 38 38 public Int32 AssignedBin { get; set; } 39 /// <summary> 40 /// Determins if the positioned item is to be rotate by 90 degrees or not. 41 /// </summary> 42 public Boolean Rotated { get; set; } 39 43 40 44 [StorableConstructor] … … 43 47 : base(original, cloner) { 44 48 AssignedBin = original.AssignedBin; 49 Rotated = original.Rotated; 45 50 } 46 51 47 public PackingDimensions(Int32 assignedBin ) {52 public PackingDimensions(Int32 assignedBin, Boolean rotated) { 48 53 this.AssignedBin = assignedBin; 54 this.Rotated = rotated; 49 55 } 50 56 … … 52 58 StringBuilder sb = new StringBuilder(); 53 59 sb.Append("["); 54 sb.Append( "AssignedBin:");55 sb.Append( AssignedBin);60 sb.Append(AssignedBin + "-"); 61 sb.Append(Rotated); 56 62 sb.Append("]"); 57 63 return sb.ToString(); 58 64 } 65 66 public override bool Equals(object obj) { 67 var pd = obj as PackingDimensions; 68 if (pd != null) 69 return (pd.AssignedBin == this.AssignedBin && pd.Rotated == this.Rotated); 70 else return false; 71 } 72 73 public override int GetHashCode() { 74 return 31 * AssignedBin * (Rotated ? 3 : 7); 75 } 59 76 } 60 77 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions/ThreeDimensionalPacking.cs
r9348 r9440 49 49 } 50 50 51 public ThreeDimensionalPacking(int assignedBin, int x, int y, int z) : base(assignedBin) { 51 public ThreeDimensionalPacking(int assignedBin, int x, int y, int z) : this(assignedBin, x, y, z, false) {} 52 public ThreeDimensionalPacking(int assignedBin, int x, int y, int z, bool rotated) 53 : base(assignedBin, rotated) { 52 54 this.X = x; 53 55 this.Y = y; … … 67 69 return sb.ToString(); 68 70 } 71 72 73 public override bool Equals(object obj) { 74 var tdp = obj as ThreeDimensionalPacking; 75 if (tdp != null) 76 return (tdp.X == this.X && tdp.Y == this.Y && tdp.Z == this.Z); 77 else return false; 78 } 79 80 public override int GetHashCode() { 81 return base.GetHashCode() + 13 * X + 17 * Y + 23 * Z; 82 } 69 83 } 70 84 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions/TwoDimensionalPacking.cs
r9348 r9440 45 45 public override IDeepCloneable Clone(Cloner cloner) { 46 46 return new TwoDimensionalPacking(this, cloner); 47 } 47 } 48 48 49 public TwoDimensionalPacking(int assignedBin, int x, int y) : base(assignedBin) { 49 public TwoDimensionalPacking(int assignedBin, int x, int y) : this(assignedBin, x, y, false) { } 50 public TwoDimensionalPacking(int assignedBin, int x, int y, bool rotated) 51 : base(assignedBin, rotated) { 50 52 this.X = x; 51 53 this.Y = y; … … 63 65 return sb.ToString(); 64 66 } 67 68 69 public override bool Equals(object obj) { 70 var tdp = obj as TwoDimensionalPacking; 71 if (tdp != null) 72 return (tdp.X == this.X && tdp.Y == this.Y); 73 else return false; 74 } 75 76 public override int GetHashCode() { 77 return base.GetHashCode() + 13 * X + 17 * Y; 78 } 65 79 } 66 80 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/GroupingVector/GroupingVectorRandomCreator.cs
r9348 r9440 64 64 public static GroupingVectorEncoding Apply(int items, int lowerBound, IRandom random) { 65 65 var solution = new GroupingVectorEncoding(); 66 solution.GroupingVector = new IntegerVector(items, random, 0, lowerBound );66 solution.GroupingVector = new IntegerVector(items, random, 0, lowerBound + 1); 67 67 return solution; 68 68 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/2D/BinUtilizationRectangularIdenticalBinEvaluator.cs
r9348 r9440 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Common; 32 using HeuristicLab. Problems.BinPacking.PackingPlans;32 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 33 33 using HeuristicLab.Problems.BinPacking.Dimensions; 34 34 using HeuristicLab.Problems.BinPacking.PackingBin; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/2D/PackingRatioRectangularIdenticalBinEvaluator.cs
r9348 r9440 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Common; 32 using HeuristicLab. Problems.BinPacking.PackingPlans;32 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 33 33 using HeuristicLab.Problems.BinPacking.PackingItem; 34 34 using HeuristicLab.Problems.BinPacking.PackingBin; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/3D/BinUtilizationCuboiddenticalBinEvaluator.cs
r9348 r9440 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Common; 32 using HeuristicLab. Problems.BinPacking.PackingPlans;32 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 33 33 using HeuristicLab.Problems.BinPacking.Dimensions; 34 34 using HeuristicLab.Problems.BinPacking.PackingBin; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/3D/PackingRatioCuboidIdenticalBinEvaluator.cs
r9348 r9440 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Common; 32 using HeuristicLab. Problems.BinPacking.PackingPlans;32 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 33 33 using HeuristicLab.Problems.BinPacking.Dimensions; 34 34 using HeuristicLab.Problems.BinPacking.PackingBin; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/Abstract/BinUtilizationRegularIdenticalBinEvaluator.cs
r9348 r9440 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Common; 32 using HeuristicLab. Problems.BinPacking.PackingPlans;32 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 33 33 34 34 namespace HeuristicLab.Problems.BinPacking.Evaluators { … … 53 53 B binMeasure = PackingBinMeasuresParameter.ActualValue; 54 54 ItemList<I> itemMeasures = PackingItemMeasuresParameter.ActualValue; 55 int nrOfBins = plan.NrOfBins;56 55 57 56 … … 67 66 68 67 //if (itemPositionsAreValid) 69 return Calculate PackingRatio(plan as PackingPlan<D, B, I>, binMeasure, itemMeasures, nrOfBins);68 return CalculateBinUtilization(plan as PackingPlan<D, B, I>, binMeasure, itemMeasures); 70 69 71 70 //return quality; 72 71 } 73 72 74 private DoubleValue CalculatePackingRatio(PackingPlan<D, B, I> plan, B binMeasure, ItemList<I> itemMeasures, int nrOfBins) { 73 public static DoubleValue CalculateBinUtilization(PackingPlan<D, B, I> plan, B binMeasure, ItemList<I> itemMeasures) { 74 int nrOfBins = plan.NrOfBins; 75 75 double result = 0; 76 76 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/Abstract/PackingPlanEvaluationAlgorithm.cs
r9348 r9440 12 12 using HeuristicLab.Parameters; 13 13 using HeuristicLab.Problems.BinPacking.Shapes; 14 using HeuristicLab. Problems.BinPacking.PackingPlans;14 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 15 15 16 16 namespace HeuristicLab.Problems.BinPacking.Evaluators { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/Abstract/PackingPlanEvaluator.cs
r9348 r9440 31 31 using HeuristicLab.Parameters; 32 32 using HeuristicLab.Data; 33 using HeuristicLab. Problems.BinPacking.PackingPlans;33 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 34 34 using HeuristicLab.Problems.BinPacking.Shapes; 35 35 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/Abstract/PackingRatioRegularIdenticalBinEvaluator.cs
r9348 r9440 30 30 using HeuristicLab.Data; 31 31 using HeuristicLab.Common; 32 using HeuristicLab. Problems.BinPacking.PackingPlans;32 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 33 33 34 34 namespace HeuristicLab.Problems.BinPacking.Evaluators { … … 53 53 B binMeasure = PackingBinMeasuresParameter.ActualValue; 54 54 ItemList<I> itemMeasures = PackingItemMeasuresParameter.ActualValue; 55 int nrOfBins = plan.NrOfBins;56 55 57 56 … … 67 66 68 67 //if (itemPositionsAreValid) 69 return CalculatePackingRatio(plan as PackingPlan<D, B, I>, binMeasure, itemMeasures , nrOfBins);68 return CalculatePackingRatio(plan as PackingPlan<D, B, I>, binMeasure, itemMeasures); 70 69 71 70 //return quality; … … 81 80 k.......a constant, k>1. 82 81 */ 83 private DoubleValue CalculatePackingRatio(PackingPlan<D, B, I> plan, B binMeasure, ItemList<I> itemMeasures, int nrOfBins) { 82 public static DoubleValue CalculatePackingRatio(PackingPlan<D, B, I> plan, B binMeasure, ItemList<I> itemMeasures) { 83 int nrOfBins = plan.NrOfBins; 84 84 double result = 0; 85 85 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Evaluators/Abstract/RegularSimpleRotationIdenticalBinPackingPlanEvaluator.cs
r9348 r9440 31 31 using HeuristicLab.Parameters; 32 32 using HeuristicLab.Data; 33 using HeuristicLab. Problems.BinPacking.PackingPlans;33 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 34 34 using HeuristicLab.Problems.BinPacking.Shapes; 35 35 using HeuristicLab.Collections; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj
r9348 r9440 127 127 <Private>False</Private> 128 128 </Reference> 129 <Reference Include="HeuristicLab.Optimization.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 130 <SpecificVersion>False</SpecificVersion> 131 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Operators-3.3.dll</HintPath> 132 </Reference> 129 133 <Reference Include="HeuristicLab.Parameters-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL"> 130 134 <Private>False</Private> … … 161 165 <Compile Include="Analyzers\BestBinPackingSolutionAnalyzer.cs" /> 162 166 <Compile Include="Analyzers\BinPackingAnalyzer.cs" /> 163 <Compile Include="Decoders\PackingHeuristics.cs" /> 164 <Compile Include="Decoders\ThreeDimensionalBottomLeftGroupingVectorDecoder.cs" /> 165 <Compile Include="Decoders\TwoDimensionalBottomLeftGroupingVectorDecoder.cs" /> 166 <Compile Include="Decoders\IB2DLowestGapFillGroupingVectorDecoder.cs" /> 167 <Compile Include="Decoders\ThreeDimensionalBottomLeftPackingSequenceDecoder.cs" /> 168 <Compile Include="Decoders\TwoDimensionalBottomLeftPackingSequenceDecoder.cs" /> 167 <Compile Include="Decoders\2D\BL\BottomLeftMultiComponentVectorDecoder.cs" /> 168 <Compile Include="Decoders\2D\BL\BottomLeftFunctions.cs" /> 169 <Compile Include="Decoders\2D\EP\ExtremePointGroupingVectorDecoder2D.cs" /> 170 <Compile Include="Decoders\2D\EP\ExtremePointMultiComponentVectorDecoder2D.cs" /> 171 <Compile Include="Decoders\2D\EP\ExtremePointPackingSequenceDecoder2D.cs" /> 172 <Compile Include="Decoders\2D\EP\ExtremePointsFunctions2D.cs" /> 173 <Compile Include="Decoders\3D\EP\ExtremePointMultiComponentVectorDecoder3D.cs" /> 174 <Compile Include="Decoders\3D\EP\ExtremePointGroupingVectorDecoder3D.cs" /> 175 <Compile Include="Decoders\3D\EP\ExtremePointPackingSequenceDecoder3D.cs" /> 176 <Compile Include="Decoders\3D\DBL\DeepestBottomLeftMultiComponentVectorDecoder.cs" /> 177 <Compile Include="Decoders\3D\DBL\DeepestBottomLeftFunctions.cs" /> 178 <Compile Include="Decoders\3D\EP\ExtremePointsFunctions3D.cs" /> 179 <Compile Include="Decoders\3D\DBL\DeepestBottomLeftGroupingVectorDecoder.cs" /> 180 <Compile Include="Decoders\2D\BL\BottomLeftGroupingVectorDecoder.cs" /> 181 <Compile Include="Decoders\3D\DBL\DeepestBottomLeftPackingSequenceDecoder.cs" /> 182 <Compile Include="Decoders\2D\BL\BottomLeftPackingSequenceDecoder.cs" /> 169 183 <Compile Include="Decoders\IdenticalBinPackingSolutionDecoder.cs" /> 184 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingMoveSoftTabuCriterion.cs" /> 185 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\ExhaustiveTargetBinSingleGroupingMoveGenerator.cs" /> 186 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\ExhaustiveSingleGroupingMoveGenerator.cs" /> 187 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingMove.cs" /> 188 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingMoveAttribute.cs" /> 189 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingMoveGenerator.cs" /> 190 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingMoveMaker.cs" /> 191 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingTabuMaker.cs" /> 192 <Compile Include="Encodings\GroupingVector\Moves\SingleGrouping\SingleGroupingMoveHardTabuCriterion.cs" /> 170 193 <Compile Include="Encodings\GroupingVector\UniformGroupingVectorManipulator.cs" /> 171 194 <Compile Include="Encodings\GroupingVector\GroupingVectorCrossover.cs" /> … … 173 196 <Compile Include="Encodings\GroupingVector\GroupingVectorManipulator.cs" /> 174 197 <Compile Include="Encodings\GroupingVector\GroupingVectorRandomCreator.cs" /> 198 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Attributes\SwapSequenceMoveAttribute.cs" /> 199 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Attributes\SingleGroupingMoveAttribute.cs" /> 200 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Attributes\MultiComponentVectorMoveAttribute.cs" /> 201 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Attributes\SingleItemRotationMoveAttribute.cs" /> 202 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\MultiComponentVectorMoveHardTabuCriterion.cs" /> 203 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Moves\MultiComponentVectorMove.cs" /> 204 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Moves\SwapSequenceMove.cs" /> 205 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Moves\SingleItemRotationMove.cs" /> 206 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\ExhaustiveMultiComponentVectorMoveGenerator.cs" /> 207 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\Moves\SingleGroupingMove.cs" /> 208 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\MultiComponentVectorMoveGenerator.cs" /> 209 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\MultiComponentVectorMoveSoftTabuCriterion.cs" /> 210 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\MultiComponentVectorMoveMaker.cs" /> 211 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\MultiComponentVectorTabuMaker.cs" /> 212 <Compile Include="Encodings\MultiComponentVector\Moves\ThreeWay\StochasticMultiComponentVectorMoveGenerator.cs" /> 213 <Compile Include="Encodings\MultiComponentVector\PartiallyMatchedMultiComponentVectorCrossover.cs" /> 214 <Compile Include="Encodings\MultiComponentVector\MultiComponentVectorCrossover.cs" /> 215 <Compile Include="Encodings\MultiComponentVector\MultiComponentVectorEncoding.cs" /> 216 <Compile Include="Encodings\MultiComponentVector\MultiComponentVectorManipulator.cs" /> 217 <Compile Include="Encodings\MultiComponentVector\MultiComponentVectorRandomCreator.cs" /> 218 <Compile Include="Encodings\MultiComponentVector\ThreeWayMultiComponentVectorManipulator.cs" /> 219 <Compile Include="Encodings\PackingPlans\PackingPlan.cs" /> 175 220 <Compile Include="Encodings\PackingSequence\PackingSequenceCrossover.cs" /> 176 221 <Compile Include="Encodings\PackingSequence\PackingSequenceManipulator.cs" /> … … 180 225 <Compile Include="Encodings\PackingSolutionCrossover.cs" /> 181 226 <Compile Include="Encodings\PackingSolutionManipulator.cs" /> 182 <Compile Include="Encodings\Potvin\PotvinEncodingWrapper.cs">183 <SubType>Code</SubType>184 </Compile>185 227 <Compile Include="Evaluators\2D\BinUtilizationRectangularIdenticalBinEvaluator.cs" /> 186 228 <Compile Include="Evaluators\2D\PackingRatioRectangularIdenticalBinEvaluator.cs" /> … … 198 240 <Compile Include="Instances\BPPORLIBParser.cs" /> 199 241 <Compile Include="Instances\BPPORLIBDataDescriptor.cs" /> 242 <Compile Include="Interfaces\IMultiComponentVectorMoveOperator.cs" /> 243 <Compile Include="Interfaces\IGroupingVectorMoveOperator.cs" /> 244 <Compile Include="Interfaces\IMultiComponentVectorOperator.cs" /> 200 245 <Compile Include="Interfaces\IGroupingVectorOperator.cs" /> 246 <Compile Include="Interfaces\IPackingMoveEvaluator.cs" /> 201 247 <Compile Include="Interfaces\IPackingOperator.cs" /> 202 248 <Compile Include="Interfaces\IPackingSolutionManipulator.cs" /> … … 210 256 <Compile Include="Interfaces\IPackingShape.cs" /> 211 257 <Compile Include="Interfaces\IPackingDimensions.cs" /> 258 <Compile Include="MoveEvaluators\MultiComponentVectorMoveEvaluator.cs" /> 259 <Compile Include="MoveEvaluators\PackingMoveEvaluator.cs" /> 260 <Compile Include="MoveEvaluators\GroupingVectorMoveEvaluator.cs" /> 212 261 <Compile Include="Problem\BinPackingProblem.cs" /> 213 262 <Compile Include="Problem\CuboidIdenticalBinPackingProblem.cs" /> … … 228 277 <Compile Include="Interfaces\IPackingPlan.cs" /> 229 278 <Compile Include="PackingItem\RectangularPackingItem.cs" /> 230 <Compile Include="PackingPlans\PackingPlan.cs" />231 <Compile Include="PackingPlans\RegularSimpleRotationPackingPlan.cs" />232 279 <Compile Include="Plugin.cs" /> 233 280 <Compile Include="Properties\AssemblyInfo.cs" /> 234 281 </ItemGroup> 235 282 <ItemGroup> 236 <None Include="ClassDiagram1.cd" />237 283 <None Include="HeuristicLab.snk" /> 238 284 <None Include="Instances\Data\BPPORLIB.rar" /> … … 240 286 <None Include="Plugin.cs.frame" /> 241 287 </ItemGroup> 242 <ItemGroup> 243 <Folder Include="Encodings\DirectedBinaryTree\" /> 244 </ItemGroup> 288 <ItemGroup /> 245 289 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 246 290 <PropertyGroup> -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IGroupingVectorOperator.cs
r9348 r9440 25 25 using System.Text; 26 26 using HeuristicLab.Core; 27 using HeuristicLab. Problems.BinPacking.PackingPlans;27 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 28 28 using HeuristicLab.Problems.BinPacking.Shapes; 29 29 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IPackingOperator.cs
r9348 r9440 25 25 using System.Text; 26 26 using HeuristicLab.Core; 27 using HeuristicLab. Problems.BinPacking.PackingPlans;27 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 28 28 using HeuristicLab.Problems.BinPacking.Shapes; 29 29 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IPackingSequenceOperator.cs
r9348 r9440 25 25 using System.Text; 26 26 using HeuristicLab.Core; 27 using HeuristicLab. Problems.BinPacking.PackingPlans;27 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 28 28 using HeuristicLab.Problems.BinPacking.Shapes; 29 29 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Interfaces/IPackingSolutionDecoder.cs
r9348 r9440 25 25 using System.Text; 26 26 using HeuristicLab.Core; 27 using HeuristicLab. Problems.BinPacking.PackingPlans;27 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 28 28 using HeuristicLab.Problems.BinPacking.Shapes; 29 29 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Plugin.cs
r9348 r9440 26 26 /// Plugin class for HeuristicLab.Problems.BinPacking plugin. 27 27 /// </summary> 28 [Plugin("HeuristicLab.Problems.BinPacking", "3.3.7. 8737")]28 [Plugin("HeuristicLab.Problems.BinPacking", "3.3.7.9348")] 29 29 [PluginFile("HeuristicLab.Problems.BinPacking-3.3.dll", PluginFileType.Assembly)] 30 30 [PluginDependency("HeuristicLab.Common", "3.3")] -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Problem/BinPackingProblem.cs
r9348 r9440 31 31 using HeuristicLab.Common; 32 32 using HeuristicLab.Parameters; 33 using HeuristicLab. Problems.BinPacking.PackingPlans;33 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 34 34 using HeuristicLab.Problems.BinPacking.Evaluators; 35 35 using HeuristicLab.Problems.BinPacking.Analyzers; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Problem/CuboidIdenticalBinPackingProblem.cs
r9348 r9440 43 43 using HeuristicLab.Encodings.PackingEncoding.GroupingVector; 44 44 using HeuristicLab.Problems.Instances; 45 using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector; 45 46 46 47 namespace HeuristicLab.Problems.BinPacking.Problem { … … 119 120 protected override void InitializeDecoder() { 120 121 if (SolutionCreator is PackingSequenceRandomCreator) { 121 PackingSolutionDecoder = new ThreeDimensionalBottomLeftPackingSequenceDecoder();122 PackingSolutionDecoder = new ExtremePointPackingSequenceDecoder3D(); 122 123 } else if (SolutionCreator is GroupingVectorRandomCreator) { 123 PackingSolutionDecoder = new ThreeDimensionalBottomLeftGroupingVectorDecoder(); 124 PackingSolutionDecoder = new ExtremePointGroupingVectorDecoder3D(); 125 } else if (SolutionCreator is MultiComponentVectorRandomCreator) { 126 PackingSolutionDecoder = new ExtremePointMultiComponentVectorDecoder3D(); 124 127 } else { 125 128 string error = "The given problem does not support the selected solution-creator."; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Problem/RectangularIdenticalBinPackingProblem.cs
r9348 r9440 39 39 using HeuristicLab.Data; 40 40 using HeuristicLab.Problems.BinPacking.Decoders; 41 using HeuristicLab. Problems.BinPacking.PackingPlans;41 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 42 42 using HeuristicLab.Encodings.PackingEncoding.PackingSequence; 43 43 using HeuristicLab.Encodings.PackingEncoding.GroupingVector; 44 44 using HeuristicLab.Problems.Instances; 45 using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector; 45 46 46 47 namespace HeuristicLab.Problems.BinPacking.Problem { … … 114 115 protected override void InitializeDecoder() { 115 116 if (SolutionCreator is PackingSequenceRandomCreator) { 116 PackingSolutionDecoder = new TwoDimensionalBottomLeftPackingSequenceDecoder();117 PackingSolutionDecoder = new ExtremePointPackingSequenceDecoder2D(); 117 118 } else if (SolutionCreator is GroupingVectorRandomCreator) { 118 PackingSolutionDecoder = new TwoDimensionalBottomLeftGroupingVectorDecoder(); 119 PackingSolutionDecoder = new ExtremePointGroupingVectorDecoder2D(); 120 } else if (SolutionCreator is MultiComponentVectorRandomCreator) { 121 PackingSolutionDecoder = new ExtremePointMultiComponentVectorDecoder2D(); 119 122 } else { 120 123 string error = "The given problem does not support the selected solution-creator."; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Problem/RegularIdenticalBinPackingProblem.cs
r9348 r9440 36 36 using HeuristicLab.PluginInfrastructure; 37 37 using HeuristicLab.Data; 38 using HeuristicLab. Problems.BinPacking.PackingPlans;38 using HeuristicLab.Encodings.PackingEncoding.PackingPlan; 39 39 using HeuristicLab.Problems.BinPacking.Analyzers; 40 40 using HeuristicLab.Encodings.PackingEncoding.PackingSequence; … … 42 42 using HeuristicLab.Encodings.PackingEncoding.GroupingVector; 43 43 using HeuristicLab.Problems.Instances; 44 using HeuristicLab.Encodings.PackingEncoding.MultiComponentVector; 44 45 45 46 namespace HeuristicLab.Problems.BinPacking.Problem { … … 79 80 } 80 81 81 protected RegularIdenticalBinPackingProblem(IPackingPlanEvaluationAlgorithm e) : this(e, new GroupingVectorRandomCreator()) { }82 protected RegularIdenticalBinPackingProblem(IPackingPlanEvaluationAlgorithm e) : this(e, new MultiComponentVectorRandomCreator()) { } 82 83 protected RegularIdenticalBinPackingProblem(IPackingPlanEvaluationAlgorithm e, IPackingSolutionCreator c) 83 84 : base(e, c) { … … 134 135 Operators.AddRange(ApplicationManager.Manager.GetInstances<IGroupingVectorOperator>()); 135 136 InitializeDecoder(); 137 } else if (SolutionCreator.GetType() == typeof(MultiComponentVectorRandomCreator)) { 138 Operators.AddRange(ApplicationManager.Manager.GetInstances<IMultiComponentVectorOperator>()); 139 InitializeDecoder(); 136 140 } 137 141 } … … 192 196 if (PackingSolutionDecoder != null) PackingSolutionDecoder.PackingPlanParameter.ActualNameChanged += PackingSolutionDecoder_PackingPlanParameter_ActualNameChanged; 193 197 } 198 194 199 #endregion 195 200 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/CuboidPackingShape.cs
r9348 r9440 53 53 54 54 #region Helpers 55 public int MultipliedMeasures { get { return Height * Width* Depth; } }55 public int MultipliedMeasures { get { return Width * Height * Depth; } } 56 56 57 57 public override bool Encloses(ThreeDimensionalPacking checkedPosition, PackingShape<ThreeDimensionalPacking> checkedShape) { … … 162 162 y1 = myPosition.Y; 163 163 z1 = myPosition.Z; 164 x2 = myPosition.X + myShape.Width;164 x2 = myPosition.X + (myPosition.Rotated ? myShape.Depth : myShape.Width); 165 165 y2 = myPosition.Y + myShape.Height; 166 z2 = myPosition.Z + myShape.Depth;166 z2 = myPosition.Z + (myPosition.Rotated ? myShape.Width : myShape.Depth); 167 167 } 168 168 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Shapes/RectangularPackingShape.cs
r9348 r9440 142 142 x1 = myPosition.X; 143 143 y1 = myPosition.Y; 144 x2 = myPosition.X + myShape.Width;145 y2 = myPosition.Y + myShape.Height;144 x2 = myPosition.X + (myPosition.Rotated ? myShape.Height : myShape.Width); 145 y2 = myPosition.Y + (myPosition.Rotated ? myShape.Width : myShape.Height); 146 146 } 147 147 }
Note: See TracChangeset
for help on using the changeset viewer.