Opened 4 months ago

Closed 5 days ago

#2762 closed enhancement (done)

New heuristics for BinPacking

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.15
Component: Problems.BinPacking Version: branch
Keywords: Cc:

Description

The existing heuristic should be evaluated and expanded.

Change History (27)

comment:1 Changed 4 months ago by abeham

r14835: added new branch

comment:2 Changed 4 months ago by abeham

  • Owner changed from dsouravl to abeham
  • Status changed from new to accepted

comment:3 Changed 3 months ago by dsouravl

  • Owner changed from abeham to dsouravl
  • Status changed from accepted to assigned

r14838: Added some benchmark instances

comment:4 Changed 3 months ago by dsouravl

r14876: implemented sorting heuristics, starting to work on best fit heuristics

comment:5 Changed 3 months ago by dsouravl

  • Status changed from assigned to accepted

comment:6 Changed 3 months ago by dsouravl

r14976: worked on best fit heuristics

comment:7 Changed 3 months ago by dsouravl

r14977: worked on best fit heuristics, update of residual space heuristic

comment:8 Changed 5 weeks ago by abeham

  • Owner changed from dsouravl to abeham
  • Status changed from accepted to assigned

comment:9 Changed 2 weeks ago by abeham

r15174:

  • Added ExtremePointAlgorithm in form of a BasicAlgorithm
  • Removed implementation in view and put sorting/fit into the algorithm

comment:10 Changed 2 weeks ago by abeham

r15182: Merged trunk into branch

comment:11 Changed 2 weeks ago by abeham

  • Owner changed from abeham to mkommend
  • Status changed from assigned to reviewing

r15183:

  • Changed ItemName of ExtremePointAlgorithm
  • Added project references

Please have a look at the new basic algorithm, I will check Dimitris implementation in the decoders (we did some of it together).

comment:12 Changed 2 weeks ago by abeham

r15200: small changes to the results output

comment:13 Changed 2 weeks ago by mkommend

r15202: Changes of access modifiers in ThreeDInstanceDescriptor.

comment:14 Changed 2 weeks ago by mkommend

Reviewed all changes.

Review comments

Extreme Point Decoders

  • Static methods would increase the reusability, though I don't know if that is necessary.
  • Remaining design seems reasonable.
  • I haven't checked nor verified the implemented methods.

ThreeDInstanceParser

  • No exception handling of error cases
  • Why is int? from GetNextInteger returned when it's value is always access without checks for its value?
  • If an exception occurs the parser is left in an inconsistent state.

RealisticInstanceProvider

  • IMHO the class should be sealed and not have any protected or virtual members
  • binWidth, binHeight, binDepth are never used
  • RealisticInstanceProvider is not the best name, because this is a more general instance provider that loads instances from a zip file
  • Maybe an abstract base class that handles all the file handling and a configured realistic class would help.

ExtremePointAlgorithm

  • Class should be sealed.
  • Fields for Parameters should be made readonly.
  • Wouldn't it be better to use ResultParameters?
  • A description for the results would be helpful.
Last edited 2 weeks ago by mkommend (previous) (diff)

comment:15 Changed 2 weeks ago by mkommend

  • Owner changed from mkommend to abeham
  • Status changed from reviewing to assigned

comment:16 Changed 2 weeks ago by abeham

  • Status changed from assigned to reviewing

comment:17 Changed 13 days ago by abeham

r15229:

  • Implemented review comments
  • Fixed ResidualSpaceBestFitExtremePointPermutationDecoder by sorting from smallest to largest (merit function should be minimized)
  • Some restructuring of the methods

comment:18 Changed 13 days ago by abeham

r15230: integrated bin packing extension into trunk

comment:19 Changed 13 days ago by abeham

r15231: removed branch

comment:20 Changed 13 days ago by abeham

  • Status changed from reviewing to readytorelease

comment:21 Changed 13 days ago by abeham

r15233: fixed project files

comment:22 Changed 13 days ago by jkarder

r15240: added AfterDeserialization hook to initialize ResidualSpace

comment:23 Changed 13 days ago by abeham

  • Status changed from readytorelease to reviewing

comment:24 Changed 13 days ago by abeham

r15241:

  • Moved initialization / cloning of extreme points list to base class
  • Removed residual space from base class and put it into derived class for 3d bin packing
  • Updated sample

comment:25 Changed 6 days ago by abeham

r15276:

  • (hopefully) fixed unit test (the instances' items were loaded on sort, this was removed and thus the instance changed)
  • corrected license header of newly created decoders
  • changed a small query in BinPacking3D

comment:26 Changed 5 days ago by abeham

  • Status changed from reviewing to readytorelease

The unit test was successful.

comment:27 Changed 5 days ago by abeham

  • Resolution set to done
  • Status changed from readytorelease to closed

r15278: merged revisions 14708, 14709, 14971, 14978, 14979, 15167, 15230, 15233, 15240, 15241, 15276 to stable

Note: See TracTickets for help on using tickets.