A Container Loading Problem variant based on non-local (Mexican) students lifestyle using hybridization of metaheuristics (Tabu Search and Differential Evolution) to find the best positions to place the boxes in the container with maximum weight and static stability constraints.
The complete statement (written by me) and (almost a) optimization formulation can be found in the next files: ENG, SPA
This problem can might think as two sub optimization problems:
- One discrete to select the small boxes to pack and choose what rotations use
- Another continuos to find the optimal positions to place the small boxes in the container
Each solution is represented as a
Tabu Search is used to improve each solution's fitness whose objective function is the number of packed boxes minus the times a restriction is not met.
Each solution is represented as a
Differential Evolution is used to improve the selected boxes' positions whose objective function is the times a restriction is not met.
This approach works as follows:
- Generate an solution (individual) according to the Discrete Part in TB
- Evaluate the solution's fitness by running DE according to the Continuos Part with the selected boxes and rotations
- Compare the solution's fitness with the others solutions (that belongs to a neighborhood) in TB and select the best
- Repeat until the condition is met, otherwise return the optimal boxes' positions and rotations
---
title: Solving Approach Diagram
config:
look: handDrawn
theme: neutral
---
flowchart TD
A(Generate Solution for TB)
B(Evaluate Fitness with DE)
C(Select Best Solution in TB)
D{Is Condition met}
E(Return Optimal Solution)
A-->B
B-->C
C-->D
D-->A
D-->E
- Preferably, create a Python +3.14 environment and install the requirements file:
pip install -r requirements.txt- Execute the example in MainExample.py with:
python MainExample.pyThis minimal example contains the main variables to create and how to define them, also how to get the vector results (boxes to pack, rotations and positions) using the returns.