I built PACE, a Placement-Aware Candidate Enumeration algorithm. PACE tries several scheduling heuristics, places blocks with geometry-aware candidate search, checks crane feasibility, and keeps the best feasible solution.
The key breakthrough was discovering that sorting blocks by release_time, then due_date, often beat pure earliest-due-date scheduling. This reduced idle bay time and dramatically improved tardiness.
1/ What I Learned
I learned that feasibility-first optimization matters a lot in industrial scheduling. A beautiful objective score is useless if one crane movement is impossible. I also learned that (Z_1) dominates most instances because its weight is very large. Reducing tardiness by even one day can matter more than many improvements in workload balance or bay preference.
2/ How It Was Built
The algorithm uses: PACE = release-aware scheduling + candidate bay/orientation/position search + official geometric feasibility checks + crane-aware operation ordering + multi-heuristic portfolio selection
It tests several construction strategies, including: (1) release-time then due-date, (2) earliest due date least slack, (3) preference regret. Then it returns the feasible solution with the lowest official objective.
3/ Challenges Faced
The hardest part was balancing speed, feasibility, and objective quality. Some heuristics improved (Z_2) or (Z_3), but made (Z_1) worse, which hurt the official score. Another challenge was crane ordering: two placements might be feasible geometrically, but the order of same-day ENTRY and EXIT operations can still break feasibility.
Built With
- python
- shapely

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