Conflict-Free Schedule Generation
Course scheduling is a constraint problem disguised as a registration chore.

Combinatorial structure, time series, transit flows, and compute systems sharing one visual grammar.
Interactive model
A constraint grid for semester planning
Adjust campus travel and gap avoidance to see how preferences reshape the feasible schedule space.
Live HTML simulation · adjust the controls and watch the computed output respond.
Interactive
A schedule generator balances conflicts, gaps, and travel constraints
This is a simplified teaching model. Its displayed values are computed from the controls; the article explains where the model stops.
Site connection
Scarlet Sync generates Rutgers schedules around desired courses, unavailable times, campus constraints, and degree requirements.
What Counts as a Conflict?
A conflict is any combination that violates a rule the student or institution requires. Time overlap is only the simplest case: linked lecture-lab components, personal unavailable blocks, and impossible campus transitions can also invalidate a schedule.
Definition: Feasibility Before Preference
A course schedule is an assignment of one valid section choice to each requested course. A hard constraint divides assignments into feasible and infeasible sets; a soft constraint assigns costs or rewards inside the feasible set.
This separation matters because a preference such as a favorite professor should usually lower a schedule's rank, not erase every otherwise workable option. By contrast, a meeting overlap or a user-declared work block must reject the candidate.
Mental model: hard constraints decide whether a schedule may exist; soft constraints decide which valid schedule should appear first.
Why Generation Needs Early Pruning
If four courses each have eight sections, naive enumeration begins with 8^4 = 4,096 combinations. Ten courses with eight sections each create more than one billion combinations. Rejecting partial assignments as soon as they overlap prevents wasted work below an already-invalid branch.
Scarlet Sync's source describes generating multiple optimized, conflict-free schedules in seconds from desired courses, unavailable times, and campus preferences. It does not publish the production solver or scoring formula, so enumeration and CP-SAT are useful implementation models rather than claims about the deployed internals.
| Rule | Typical class | Effect |
|---|---|---|
| No meeting overlap | Hard | Reject candidate |
| Unavailable work block | Hard | Reject candidate |
| Preferred campus | Soft or hard by user choice | Rank lower or reject |
| Compact day | Soft | Add gap penalty |
| Professor preference | Soft | Adjust score |
Mechanics: Generate, Check, Score, Explain
Normalize every meeting into comparable day-and-time intervals. During search, choose a section for one course, test its meetings against the partial schedule and personal blocks, and backtrack immediately on a hard violation. When an assignment is complete, compute soft costs such as total gaps, campus switches, or preference penalties.
Ranking should be reproducible: define each score term, its weight, and a deterministic tie-breaker. Keep rejection reasons alongside the search state so the interface can explain that a section overlapped work, lacked a linked component, or required an infeasible transition rather than merely saying 'no schedule.'
Worked Example: Three Courses and a Commute
Suppose Algorithms has sections A1 Monday 10:00–11:20 and A2 Tuesday 14:00–15:20. Databases has D1 Monday 11:30–12:50 and D2 Tuesday 14:30–15:50. The student blocks Monday 12:00–14:00 for work and needs 25 minutes between different campuses.
A2+D2 is rejected because the Tuesday meetings overlap. A1+D1 has no clock overlap, but it is rejected if the sections are on different campuses: the ten-minute gap is shorter than the 25-minute transition. If both are on the same campus, D1 still intersects the work block from 12:00–12:50. The generator must therefore report no feasible pair unless the student changes a hard rule or adds another section.
If work availability is negotiable rather than mandatory, model it as a penalty. Then A1+D1 may survive and rank below schedules that preserve work time; changing the classification changes the feasible set, not merely the display order.
Limits, Trust, and Data Quality
A mathematically valid result can still be unusable when upstream section times, campuses, linked components, seat restrictions, or degree rules are stale. Scarlet Sync's project source emphasizes that Rutgers data is fragmented across legacy systems and that AI-assisted ingestion was built for classes, sections, and degree requirements; validation and provenance are therefore part of scheduling correctness.
Optimization also cannot decide a student's priorities without an explicit policy. Overweighting compactness may produce risky transitions, while turning every preference into a hard rule may produce no result. Show which constraints were binding, offer controlled relaxations, and never imply that a generated plan guarantees registration availability.
Common Pitfalls
- Treating every preference as a hard rule and finding no schedules.
- Hiding why a schedule failed.
- Ignoring linked recitations, labs, reserved seats, or cross-listed sections.
- Optimizing compactness while creating impossible campus transitions.
- Treating stale source data as a solver failure.