When doing research that involves concrete programming, it is absolutely important to be able to confirm that the code and the results are correct. Last year when I was writing the survey on Rectangle Bin Packing, I used a battery of test functions which affirmed that the generated packings were legal for each algorithm. However, it does not guarantee the quality of the packings, and the results, while correct, can still be suboptimal.
Pavel Ahafonau recently reported one such programming error which affects the results of all the MaxRects-CP variants in the original paper. A simple copy-paste typo had caused the scoring function to compute wrong values for rectangles to be placed in a 90 degrees rotated orientation. Fixing the typo should improve the performance of the MaxRects-CP variants by some amount. Huge thanks to Pavel for letting me know about this!
To be able to manage these kind of fixes the best possible way, I have now created a github repository for the bin packing code at juj/RectangleBinPack. This enables modifications to be tracked incrementally, for example, the bug reported by Pavel is fixed in this commit. To be notified if more fixes like this are incorporated, you can register yourself to "follow" the repository, which will send you a mail whenever a new commit is added.
The code in github is (still) released under Public Domain, which means you are entitled to doing anything with it, e.g. you do not need to release your modifications or improvements, you may use it in commercial closed-source software, and you do not need to retain attributions for me.
I hope there are no more bugs like this in the codebase. Though naturally it is possible, in which case, please do let me know.
Last Updated (Sunday, 08 January 2012 15:29)