One important area of such techniques is optimization. Many problems in industry require finding the maximum or minimum of an objective function of a set of decision variables, subject to a set of constraints on those variables. Typical objectives are maximum profit, minimum cost, or minimum delay. Frequently there are many decision variables and the solution is not obvious. Techniques of mathematical programming for optimization include linear programming (optimization where both the objective function and constraints depend linearly on the decision variables), non-linear programming (non-linear objective function or constraints), integer programming (decision variables restricted to integer solutions), stochastic programming (uncertainty in model parameter values) and dynamic programming (stage-wise, nested, and periodic decision-making).