Changeset 14151
- Timestamp:
- 07/21/16 13:03:42 (8 years ago)
- Location:
- branches/HeuristicLab.BinPacking
- Files:
-
- 5 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/BinPacking2D.cs
r14149 r14151 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Common; 28 using HeuristicLab.Encodings.PackingEncoding;29 28 30 29 namespace HeuristicLab.Problems.BinPacking2D { 31 30 [Item("BinPacking2D", "Represents a single-bin packing for a 2D bin-packing problem.")] 32 31 [StorableClass] 33 public class BinPacking2D : BinPacking <PackingPosition, PackingShape, PackingItem> {32 public class BinPacking2D : BinPacking.BinPacking<PackingPosition, PackingShape, PackingItem> { 34 33 35 34 public BinPacking2D(PackingShape binMeasures) -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Evaluators/PackingRatioEvaluator.cs
r14148 r14151 25 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 26 using HeuristicLab.Common; 27 using HeuristicLab.Data;28 using HeuristicLab.Encodings.PackingEncoding;29 using HeuristicLab.Problems.BinPacking;30 using System.Collections.Generic;31 27 32 28 namespace HeuristicLab.Problems.BinPacking2D { … … 64 60 const double k = 2; 65 61 for (int i = 0; i < nrOfBins; i++) { 66 varf = solution.BinPackings[i].ItemMeasures.Sum(kvp => kvp.Value.Volume);67 varc = solution.BinPackings[i].BinMeasures.Volume;62 double f = solution.BinPackings[i].ItemMeasures.Sum(kvp => kvp.Value.Volume); 63 double c = solution.BinPackings[i].BinMeasures.Volume; 68 64 result += Math.Pow(f / c, k); 69 65 } -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/HeuristicLab.Problems.BinPacking2D-3.3.csproj
r14149 r14151 168 168 <Compile Include="Instances\RandomDataDescriptor.cs" /> 169 169 <Compile Include="Instances\RandomInstanceProvider.cs" /> 170 <Compile Include="IntegerVectorEncoding\BottomLeftIntegerVectorDecoder.cs" /> 171 <Compile Include="IntegerVectorEncoding\IntegerVectorDecoderBase.cs" /> 172 <Compile Include="IntegerVectorEncoding\ExtremePointIntegerVectorDecoder.cs" /> 173 <Compile Include="IntegerVectorEncoding\IntegerVectorProblem.cs" /> 170 174 <Compile Include="Interfaces\IDecoder.cs" /> 171 175 <Compile Include="Interfaces\IEvaluator.cs" /> -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/PermutationEncoding/PermutationProblem.cs
r14149 r14151 25 25 using HeuristicLab.Common; 26 26 using HeuristicLab.Core; 27 using HeuristicLab.Data;28 27 using HeuristicLab.Encodings.PermutationEncoding; 29 28 using HeuristicLab.Optimization; 30 using HeuristicLab.Parameters;31 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 32 using HeuristicLab.Problems.Instances;33 30 34 31 namespace HeuristicLab.Problems.BinPacking2D { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.2D/3.3/Solution.cs
r14049 r14151 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Encodings.PackingEncoding;25 24 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 using HeuristicLab.Problems.BinPacking; 26 26 27 27 namespace HeuristicLab.Problems.BinPacking2D { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/BinPacking3D.cs
r14146 r14151 25 25 using HeuristicLab.Core; 26 26 using HeuristicLab.Common; 27 using HeuristicLab. Encodings.PackingEncoding;27 using HeuristicLab.Problems.BinPacking; 28 28 29 29 namespace HeuristicLab.Problems.BinPacking3D { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.3D/3.3/Solution.cs
r14049 r14151 1 1 using HeuristicLab.Common; 2 2 using HeuristicLab.Core; 3 using HeuristicLab.Encodings.PackingEncoding;4 3 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 4 using HeuristicLab.Problems.BinPacking; 5 5 6 6 namespace HeuristicLab.Problems.BinPacking3D { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container2DView.xaml.cs
r14049 r14151 23 23 using System.Windows; 24 24 using System.Windows.Media; 25 using HeuristicLab.Encodings.PackingEncoding;26 25 using HeuristicLab.Problems.BinPacking2D; 27 26 using Point = System.Windows.Point; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/Container3DView.xaml.cs
r14049 r14151 24 24 using System.Windows.Input; 25 25 using System.Windows.Media.Media3D; 26 using HeuristicLab.Encodings.PackingEncoding;27 26 using HeuristicLab.Problems.BinPacking3D; 28 27 -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan2DView.cs
r14049 r14151 24 24 using HeuristicLab.MainForm; 25 25 using HeuristicLab.Problems.BinPacking2D; 26 using HeuristicLab.Encodings.PackingEncoding;27 26 28 27 namespace HeuristicLab.Problems.BinPacking.Views { -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking.Views/3.3/PackingPlan3DView.cs
r14049 r14151 22 22 using System; 23 23 using HeuristicLab.Core.Views; 24 using HeuristicLab.Encodings.PackingEncoding;25 24 using HeuristicLab.MainForm; 26 25 using HeuristicLab.Problems.BinPacking3D; -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/BinPacking.cs
r14146 r14151 26 26 using HeuristicLab.Common; 27 27 using HeuristicLab.Collections; 28 using HeuristicLab.Problems.BinPacking;29 28 30 namespace HeuristicLab. Encodings.PackingEncoding {29 namespace HeuristicLab.Problems.BinPacking { 31 30 [Item("BinPacking", "Represents a single-bin packing for a bin-packing problem.")] 32 31 [StorableClass] -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingPlans/PackingPlan.cs
r14146 r14151 27 27 using HeuristicLab.Data; 28 28 using HeuristicLab.Collections; 29 using HeuristicLab.Problems.BinPacking;30 29 31 namespace HeuristicLab. Encodings.PackingEncoding {30 namespace HeuristicLab.Problems.BinPacking { 32 31 [Item("PackingPlan", "Represents a concrete solution for a bin-packing problem.")] 33 32 [StorableClass] … … 145 144 } 146 145 public void Pack(GroupingVectorEncoding solution, ItemList<I> itemMeasures) { 147 var sequenceMatrix = solution.GenerateSequenceMatrix();148 149 //Fill bins according to grouping vector150 List<int> remainingIDs = new List<int>();151 foreach (var sequence in sequenceMatrix) {152 remainingIDs = remainingIDs.Concat(sequence).ToList();153 var bp = NewBinPacking();154 if (!UseExtremePoints)155 bp.SlidingBasedPacking(ref remainingIDs, itemMeasures);156 else157 bp.ExtremePointBasedPacking(ref remainingIDs, itemMeasures, StackingConstraints);158 BinPackings.Add(bp);159 }160 UpdateBinPackings();161 162 //Try to put remaining items in existing bins163 var temp = new List<int>(remainingIDs);164 foreach (int id in temp) {165 foreach (var bp in BinPackings) {166 var position = UseExtremePoints ? bp.FindExtremePointForItem(itemMeasures[id], false, StackingConstraints) : bp.FindPositionBySliding(itemMeasures[id], false);167 if (position != null) {168 bp.PackItem(id, itemMeasures[id], position);169 remainingIDs.Remove(id);170 break;171 }172 }173 }174 175 //Put still remaining items in new bins176 while (remainingIDs.Count > 0) {177 var bp = NewBinPacking();178 if (!UseExtremePoints)179 bp.SlidingBasedPacking(ref remainingIDs, itemMeasures);180 else181 bp.ExtremePointBasedPacking(ref remainingIDs, itemMeasures, StackingConstraints);182 BinPackings.Add(bp);183 }184 UpdateBinPackings();185 186 var newSolution = new int[solution.GroupingVector.Length];187 int binIndex = 0;188 foreach (var bp in BinPackings) {189 foreach (var entry in bp.ItemPositions)190 newSolution[entry.Key] = binIndex;191 binIndex++;192 }193 solution.GroupingVector = new IntegerVector(newSolution);194 146 } 195 147 * 196 148 197 public void Pack(Permutation solution, ItemList<I> itemMeasures) {198 List<int> remainingIDs = new List<int>(solution);199 while (remainingIDs.Count > 0) {200 var bp = NewBinPacking();201 if (!UseExtremePoints)202 bp.SlidingBasedPacking(ref remainingIDs, itemMeasures);203 else204 bp.ExtremePointBasedPacking(ref remainingIDs, itemMeasures, StackingConstraints);205 BinPackings.Add(bp);206 }207 UpdateBinPackings();208 }209 149 210 150 */ -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj
r14146 r14151 160 160 <Compile Include="Encodings\PackingPlans\BinPacking.cs" /> 161 161 <Compile Include="Encodings\PackingPlans\PackingPlan.cs" /> 162 <Compile Include="Encodings\PackingSolutionCreator.cs" />163 <Compile Include="Encodings\PackingSolutionCrossover.cs" />164 <Compile Include="Encodings\PackingSolutionManipulator.cs" />165 162 <Compile Include="Interfaces\IDecodingEvaluator.cs" /> 166 163 <Compile Include="Interfaces\IPackingPosition.cs" /> -
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/PackingSolutionDecoder.cs
r14048 r14151 27 27 using HeuristicLab.Parameters; 28 28 using HeuristicLab.Data; 29 using HeuristicLab.Encodings.PackingEncoding;30 29 31 30 namespace HeuristicLab.Problems.BinPacking { … … 50 49 get { return (ILookupParameter<IItem>)Parameters["EncodedSolution"]; } 51 50 } 52 public ILookupParameter<PackingPlan<D, B,I>> PackingPlanParameter {51 public ILookupParameter<PackingPlan<D, B, I>> PackingPlanParameter { 53 52 get { return (ILookupParameter<PackingPlan<D, B, I>>)Parameters["PackingPlan"]; } 54 53 } … … 58 57 59 58 60 public PackingSolutionDecoder() : base() { 59 public PackingSolutionDecoder() 60 : base() { 61 61 Parameters.Add(new LookupParameter<IItem>("EncodedSolution", "The new bin-packing solution represented as encoding.")); 62 62 Parameters.Add(new LookupParameter<PackingPlan<D, B, I>>("PackingPlan", "The decoded bin-packing solution represented as generalized packing plan.")); … … 69 69 [StorableConstructor] 70 70 protected PackingSolutionDecoder(bool deserializing) : base(deserializing) { } 71 protected PackingSolutionDecoder(PackingSolutionDecoder<D, B,I> original, Cloner cloner)71 protected PackingSolutionDecoder(PackingSolutionDecoder<D, B, I> original, Cloner cloner) 72 72 : base(original, cloner) { 73 73 }
Note: See TracChangeset
for help on using the changeset viewer.