This repository showcases a unique approach to solving the container loading problem, a challenge commonly faced in industries related to shipping and storage. Here, we aim to pack a container as efficiently as possible, focusing on fitting the most boxes, maximizing the space used, and ensuring the packed items' total value is as high as possible.
We use a diploid chromosome structure to better organize and decide on the arrangement and orientation of boxes. This method is enhanced by a tweaked version of an existing packing algorithm, known as DBLF, which helps us place boxes in the most effective way.
By combining advanced genetic algorithms with a refined packing technique, we tackle the complex issue of packing boxes into a single container, striving for optimal space usage and value maximization.
For a detailed description of the methods and background have a look at the project report.
Getting Started
To get started with this project, clone this repository to your local machine.
Ensure you have Python installed on your system. This project is tested with Python 3.7+. You can check your Python version by running:
python --version
Install the required Python packages:
pip install -r requirements.txt
Creating a New Dataset
cd path/to/your/project
python create_dataset.py
Running the Algorithm
To run the packing algorithm with the provided dataset (input.json), execute the main.py script:
python main.py
The script will proceed to execute the packing algorithm, saving the visualizations as below.
3D Visualization of the True Solution
3D Projection of one of the Rank1 Solutions
Variation of Average Fitness Values over Generations
Visualization of the Pareto Front
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
License
Distributed under the MIT License.
Contact
Nivedha Ramesh - nivedharamesh9351@gmail.com