Constraint Satisfaction

Thinking Tools2.3 Establishing the Requirements

From the constraint-programming tradition, founded in the work of Ugo Montanari (1974) and Alan Mackworth (1977) and set out by Edward Tsang (Foundations of Constraint Satisfaction, 1993).

Lists every condition a solution must meet, separates hard limits from preferences, maps what is feasible, and only then looks for the best option within it.

When to reach for it

When a design, schedule, or decision must satisfy many requirements at once and asking what is best makes no sense until what is possible is known.

How it runs

  1. List every constraint: physical, legal, budget, schedule, and stakeholder.
  2. Mark each as hard or soft.
  3. Sketch the options that satisfy all the hard constraints.
  4. If none survive, take the hard constraints back to their owners.
  5. Among the survivors, trade off the soft constraints openly.
  6. Watch for constraints the first list missed.

Where it sits in SOLVE eX

Go to the source

  • Networks of Constraints: Fundamental Properties and Applications to Picture Processing, Information Sciences 7, 1974
  • Consistency in Networks of Relations, Artificial Intelligence 8, 1977
  • Foundations of Constraint Satisfaction, 1993

Back to the catalog