Implementation and Results of a Randomized Local Search on the 2D Rectangular Bin Packing Problem with Item Rotation using Different Objective Functions
Authors/Creators
Description
1. Introduction
In this archive, we provide the implementation and experimental results of a Randomized Local Search (RLS) applied to the two-dimensional bin packing problem without orientation (where items can be rotated by 90 degrees). As benchmark dataset, we use the beng, A, and class instances from 2DPackLib as well as the four non-trivial Almost Squares in Almost Squares (Asqas) instances
These are the data used in the paper below, which contains the exact specification of all algorithms, objective functions, and the encoding we applied.
Rui Zhao, Tianyu Liang, Zhize Wu, Daan van den Berg, Matthias Thürer, and Thomas Weise. 2024. Randomized Local Search on the 2D Rectangular Bin Packing Problem with Item Rotation. In Genetic and Evolutionary Computation Conference (GECCO'24 Companion), July 14–18, 2024, Melbourne, VIC, Australia. ACM, New York, NY, USA, 4 pages. doi:10.1145/3638530.3654139.
To run the experiments, you need moptipyapps version 0.8.34 and moptipy version 0.9.98, which contain the actual algorithm implementations. Both packages are available on GitHub and on PyPI. However, we include several versions of them in the folder source/packages, just in case.
2. Directory Structure
This archive contains the following directories:
sourcecontains the Python source codes needed to run the experiment.source/packagescontains the source codes of the Python packages with the actual algorithm implementations.datais the directory with the results and their evaluation.data/resultsis the directory with the log files generated by the experiment. In this folder, there are two sub-folders,ibf1andibf2. We tested two different encodings, but found that the second one (ibf2) is too slow to do meaningful experiments. Thus, the experiments with it were abandoned and only one objective function was tested. We includeibf2for the sake of completeness, whereasibf1was used in our paper. Either way, bothibfXfolders contain one directory for each objective function applied to them. In each such directory, there is one folder (for the single algorithm applied) and this folder, in return, contains one folder per benchmark instance. The benchmark instance folders contain the three log files of the three runs that we applied to each instance/algorithm/objective combination.
Each log file contains information of one run, i.e., one execution of one algorithm on one problem instance. All improving moves of a run as well as the final solution are stored in the log file.data/evaluatoris the folder containing Python scripts that were used to evaluate these results. Two scripts are provided:evaluator_short.pywas used for generating the tables used in the final paper version.evaluator_full.pyprovides larger tables, which could not be included in the final paper due to space reasons.- Folder
evaluation_fullwas generated usingevaluator_full.pyand contains tables and figures and a result summary in CSV format. - Folder
evaluation_shortwas generated usingevaluator_short.pyand contains both the tables used in the paper as well as a result summary in CSV format.
3. License
The files in this repository are under the Creative Commons Attribution 4.0 International, with the exception of the files of 2DPackLib and other benchmark datasets included, which are under copyright of their respective owner (we believe that they are in the public domain, as they are provided by many sources, included in many software packages under various open source licenses, and on many websites). The license is contained as file LICENSE.txt in this archive.
4. Contact
If you have any questions or suggestions, please contact
Mr. Rui ZHAO (赵睿) of the Institute of Applied Optimization (应用优化研究所, IAO) of the School of Artificial Intelligence and Big Data (人工智能与大数据学院) at Hefei University (合肥大学) in Hefei, Anhui, China (中国安徽省合肥市) via email to zr1329142665@163.com.