A constraint is a condition that the solution of an optimization problem must satisfy. In the table example we saw earlier, the constraints could be:
- 'the table must have four legs'
- 'the table must be at least 50cm wide'
- 'the table may be no more than 1m tall', or
- 'the table cannot be blue'.
Constraints give a model its realism; they ensure that a solution only includes realistic values or values that the user knows are critical to the design brief.
If a model is unconstrained, it's likely to return absurd results that aren’t useful, for example, here it could be a circular table that is three metres high with a single leg that balances on a point.
Constraints are vital because they ensure that a generative design algorithm outputs something realistic and reasonable.