## Summary

Constraint programming is a new revolution in computer science. The user states the problem while the computer solves it. Programming with constraints allows users to model and specify problems with uncertain, incomplete information and to solve combinatorial problems. Constraint-based programming languages include theoretical properties, conceptual simplicity, and practical success. The idea behind constraint programming is to solve problems by stating constraints, such as conditions or properties. These conditions or properties need to be satisfied in order to solve the problem. Constraints can be considered pieces of partial information and describe properties of unknown objects and the relationship between them. The unknown objects are then modeled as variables. As a constraint program is successfully run the constraint solver stores, combines, and simplifies the constraints to come up with a solution.

## Related Terms

**Constraint logic programming**

Constraint logic programming also known as CLP is a combination of a combination of constraint programming and logic programming. According to wikipedia, a constraint logic program is a logic program that contains constraints in the body of clauses. For example: A(X,Y) :- X+Y>0, B(X), C(Y).

**Logic programming**

Logic programming is the use of mathematical logic for computer programming.

**Constraint satisfaction**

Constraint satisfaction is the process of finding a set of constraints that must be satisfied.

**Complexity of constraint satisfaction**

More detailed information can be found in the reference links below:

## Related Grasshopper Files

File Name | Preview | Description |
---|---|---|

Area Constain Shapes | Week 1 exercise file. The program constrains area for different geometries. | |

Constrained Box | This is in Week 1's exercise file. The program describes two box. One with the volume constraint and one without. | |

Morph Box Paneling Method | This is from Week 2 exercise files. The program uses Morph Box to constrain the panel geometry. | |

Parametric Tower | This is from Eve's final parametric tower. The tower has several constraints: site area, program area, floor to floor height, geometry segments, etc. |

## Links and References

- [http://en.wikipedia.org/wiki/Constraint_programming]
- [http://en.wikipedia.org/wiki/Complexity_of_constraint_satisfaction]
- [http://en.wikipedia.org/wiki/Logic_programming]
- [http://en.wikipedia.org/wiki/Constraint_satisfaction]
- [http://www.elsevier.com/authored_subject_sections/P05/misc/buscemi.pdf]
- [http://www.jamesmahoney.com/research/index.html]