Hard constraints vs. soft constraints

What is the difference between "hard" and "soft" constraints?

Hard constraints

Hard constraints are constraints that are absolutely non-negotiable. The scheduling engine will always respect every hard constraint that you give it. When you specify a hard constraint, you're effectively telling the scheduler that "If I can't have this constraint met, then I don't want any schedule at all."


In many cases, hard constraints also make the scheduler run slower, which also decreases the likelihood that it will find any schedules for you within the its computation window.

Soft constraints

Soft constraints, on the other hand, are constraints that could be negotiated once in awhile. The scheduling engine still works hard to respect every soft constraint that you give it, but will make an exception on the constraint in the rare case that something must give. When you specify a soft constraint, you're effectively telling the scheduler that "If I can't have this constraint met, I suppose it's okay--just do the best you can. I'd rather have a near-perfect schedule than no schedule at all."


Soft constraints *never* slow the scheduler down, which also increases the likelihood that it will find schedules for you within its computation window.

Which type should I use, and when?

Try to minimize the number of hard constraints that you use. Hard constraints usually make the scheduler run slower, which also decreases the likelihood that it will find any schedules for you within the its computation window.


You're encouraged to use as many soft constraints as you like. There is no computational penalty for using more of them.

Comparison

Hard constraints Soft constraints
Absolutely non-negotiable Negotiable if necessary
Always respected by the scheduler Usually respected by the scheduler
Exceptions are never made Exceptions are made if it's the difference between generating a schedule and not generating one
Usually make the scheduler run slower
No impact on scheduler speed
Decrease likelihood that the scheduler will find any schedules
Likelihood of finding schedules not affected
Too many hard constraints may mean not getting any schedules No penalty for having lots and lots of soft constraints
Examples:
  • Student "Must Not" availability entries
  • Therapist "Must Not" availability entries
  • “Must” Groupings
  • “Must Only” Groupings
  • “Must Not” Groupings
  • Therapist travel time between buildings
  • Therapist Locked to Building
  • Therapist Start Time
  • Therapist End Time
  • Maximum Group Size
  • Maximum Grade Span
  • Student Start Time
  • Student End Time
  • Buildings

  • Categories

  • Days Apart
  • Delivery Model
  • Exact Time Spans
Examples:
  • Student "Prefer Not" availability entries
  • Student "Prefer" availability entries
  • “Prefer” Groupings
  • “Prefer Only” Groupings
  • “Prefer Not” Groupings
  • Therapist Day Start Buffer
  • Therapist Day End Buffer
  • Therapist Lunchtime
  • Therapist Post-Session Recovery
  • Session Goals
  • Anything else you set preferences for:
    • Productivity
    • Session Cost
    • Billing Cost
    • Behavior Cost
    • Grade Span Cost
    • Classroom Count Cost
    • Goal Count Cost
    • Travel Trip Cost
    • Travel Time Cost

This article was helpful for 10 people. Is this article helpful for you?