Constraints are ubiquitous in science and engineering. Constraints describe the available information about the state of the system, constraints describe possible relation between current and future states of the system, constraints describe which future states we would like to obtain. To solve problems from engineering and science, it is therefore necessary to process constraints. We show that if we treat constraints as hard (crisp), with all the threshold values exactly known, then in the general case, all the corresponding computational problems become algorithmically unsolvable. However, these problems become algorithmically solvable if we take into account that in reality, constraints are soft: we do not know the exact values of the corresponding thresholds, we do not know the exact dependence between the present and future states, etc.