Inspiration
The inspiration for our project comes from the high-stakes world of maritime logistics, where efficiency isn't just a metric—it's the backbone of global trade. Drawing from the "Seri's Choice" theme, we envisioned a solution that combines the precision of high-end logistics with the strategic complexity of a "Grand Shipyard Puzzle." Real-world shipyard operations involve managing thousands of massive blocks under tight deadlines and limited spatial resources. We wanted to bridge the gap between theoretical optimization and practical industrial application, creating an algorithm that "packs the block and beats the clock."
What it does
Our solution is an advanced spatial optimization engine designed to maximize the utilization of shipyard assembly areas. It takes a list of diverse rectangular blocks and determines the most space-efficient arrangement within a fixed shipyard boundary. By utilizing a hybrid approach of geometric heuristics and meta-heuristic search, it ensures that all blocks are placed with minimal wasted space, achieving utilization rates consistently above 80-85%.
How we built it
We built the core of the engine using Python 3.11, leveraging a multi-layered optimization pipeline:
- Spatial Engine (MaxRects): We implemented the MaxRects algorithm to manage "maximal free rectangles," ensuring that every potential placement spot is accounted for without overlap.
- Multi-Heuristic Initialization: The solver evaluates five distinct sorting strategies (Area, Perimeter, Max Side, etc.) and three placement rules (BSSF, BLSF, BAF) to establish a high-quality baseline.
- Meta-Heuristic Search (Simulated Annealing): To move beyond local optima, we implemented a Simulated Annealing (SA) algorithm. This allows the system to explore the sequence space of block placements, strategically "shaking" the arrangement to find even denser layouts.
- Visualization: We used
matplotlibto generate high-fidelity layouts, providing clear visual verification of the packing efficiency.
Challenges we ran into
One of the primary challenges was the combinatorial explosion of possible block sequences. With 50+ blocks, the number of permutations is astronomical. Initially, a simple Genetic Algorithm struggled with stability and convergence speed. We had to pivot to Simulated Annealing and refine our "pruning" logic for free rectangles to ensure the algorithm remained performant under the 2026 Grand Challenge's time constraints. Balancing "exploration" (finding new layouts) with "exploitation" (fine-tuning the best ones) required careful calibration of the SA cooling schedule.
Accomplishments that we're proud of
- High Utilization: Achieving over 85% utilization on random industrial datasets, a significant jump from standard greedy approaches.
- Robustness: Our algorithm places 100% of blocks even in highly congested scenarios.
- Speed: Optimizing a complex 50-block layout in under 10 seconds, making it viable for real-time logistics planning.
- Hybrid Architecture: Successfully integrating deterministic geometry (MaxRects) with stochastic optimization (Simulated Annealing).
What we learned
We gained deep insights into the nuances of the 2D Bin Packing Problem (2DBPP). We learned that there is no "one-size-fits-all" sorting heuristic; the best results often come from evaluating multiple starting points. We also discovered the power of Simulated Annealing in handling discrete sequence optimization, particularly how a well-tuned cooling schedule can outperform more complex genetic operators in specific spatial tasks.
What's next for Seri's Choice
For the future of Seri's Choice, we plan to:
- Irregular Shapes: Extend the engine to handle non-rectangular blocks using polygon decomposition.
- Temporal Constraints: Integrate scheduling data to optimize not just where blocks are placed, but when they move through the shipyard.
- 3D Packing: Scale the logic to 3D for cargo hold and warehouse optimization.
- ML Integration: Train a neural network to predict the optimal initial heuristic based on the statistical distribution of block dimensions.

Log in or sign up for Devpost to join the conversation.