A model in which the objective function and all of the constraints (other than integer constraints) are linear functions of the decision variables is called a linear programming (LP) problem.  (The term “programming” dates from the 1940s and the discipline of “planning and programming” where these solution methods were first used; it has nothing to do with computer programming.)  As noted earlier, a linear programming problem is always convex.

If the problem includes integer constraints, it is called an integer linear programming problem.  A linear programming problem with some “regular” (continuous) decision variables, and some variables that are constrained to integer values, is called a mixed-integer programming (MIP) problem.  Integer constraints are non-convex, and they make the problem far more difficult to solve; see below for details.

A quadratic programming (QP) problem is a generalization of a linear programming problem.  Its objective is a convex quadratic function of the decision variables, and all of its constraints must be linear functions of the variables.  A problem with linear and convex quadratic constraints, and a linear or convex quadratic objective, is called a quadratically constrained (QCP) problem.

A model in which the objective function and all of the constraints (other than integer constraints) are smooth nonlinear functions of the decision variables is called a nonlinear programming (NLP) or nonlinear optimization problem.  If the problem includes integer constraints, it is called an integer nonlinear programming problem.  A model in which the objective or any of the constraints are non-smooth functions of the variables is called a non-smooth optimization (NSP) problem.