Everything About ___
Live briefing

Everything about Constraint programming

Computer programming paradigm

Constraint programming (CP) is a paradigm for solving combinatorial problems that draws on a wide range of techniques from artificial intelligence, computer science, and operations research. In constraint programming, users declaratively state the constraints on the feasible solutions for a set of decision variables. Constraints differ from the common primitives of imperative programming languages in that they do not specify a step or sequence of steps to execute, but rather the properties of a solution to be found. In addition to constraints, users also need to specify a method to solve these constraints. This typically draws upon standard methods like chronological backtracking and constraint propagation, but may use customized code like a problem-specific branching heuristic. Wikipedia →

🧭 Start here: a 6-step reading path

  1. Read the overview: Constraint programmingA 5-minute orientation
  2. Skim a recent paper: Safety Verification and Robustness Analysis of Neural Networks via Quadratic Constraints and Semidefinite ProgrammingInfluential work since 2022
  3. Pick up a classic book: Trends in constraint programmingThe most-reprinted book on the subject
  4. Read the landmark paper: Chance-Constrained ProgrammingCited 2,151 times
  5. Go sideways: Constraint satisfactionA closely related topic
  6. Go sideways: Constraint satisfaction problemA closely related topic

📖 Definitions

Noun A declarative paradigm for modeling and solving satisfaction and optimization problems through variables with specified domains and relational constraints, separating the specification of admissible assignments from the procedures used to compute them.

🏆 Landmark papers (most cited)

🆕 Influential since 2022

📚 Books worth reading

Ranked by number of editions on Open Library, a rough measure of how lasting a book is.

🔗 Related topics