Optimal Multi-Agent Scheduling with Constraint Programming