Using OR-Tools CP-SAT for Scheduling Problems

· cloud · Source ↗

TLDR

  • Akamai engineer models hypervisor maintenance scheduling as RCPSP using OR-Tools CP-SAT, walking through interval variables and AddCumulative constraints with working Python code.

Key Takeaways

  • The “3Cs” – capacity, concurrency, conflict – define the core constraints when evacuating VMs from hosts before reboots.
  • CP-SAT interval variables and AddCumulative natively express throughput-limited concurrency; assigning per-VM throughput weights is more realistic than simple count limits.
  • MIP time-indexed formulations are intuitive but blow up in variable count as planning horizon or task count grows; CP-SAT’s time-continuous modeling avoids this.
  • CP-SAT runs a portfolio of algorithms internally, sharing information between them, making it a strong fit without hand-tuning a single solver strategy.

Hacker News Comment Review

  • One commenter confirmed real-world OR-Tools use for heterogeneous shard-to-task assignment, but noted CP-SAT hits scaling limits on very large instances, requiring custom heuristics at that point.

Original | Discuss on HN