linear programming is a special case of convex programming, in which the objective function is a linear,hence both concave and convex type function and constraint set is a convex polyhedron, convex programming refers to a more general case where the objective function is convex or concave, and the constraint set is a convex set, not necessarily a polyhedral set.
for a LPP with a bounded feasible set, the optima lies at one of the extreme points of the polyhedral set, this is due to the representation theorem which states that every point in such a polyhedral set can be expressed as a convex combination of the extreme points of the convex set, hence, we need to look only at the extreme points in search of optima, however, for a Convex programming problem, the optimum can be anywhere in the feasible set.
For CPP, Karush-Kuhn-Tucker (KKT) conditions are necessary and sufficient conditions for optimality.
an LP is indeed a special case of a convex programming problem. the search space is convex as line segment joining any two points within the search space totally lies within the space. Also linear objective functions are convex. also it is easier to solve since you only have to traverse the extreme points of the polyhedra using simplex.
The image could be misleading. In the image QP lies within the convex domain, but the class of QP include also non-convex QP; in fact the non-convex QPs are more interesting than the convex ones, especially because of their complexity.
Liming Yuan kindly note all answers earlier given . an LP is subset of a convex optimization . the solution to an LP lies at one of the convex combinations of the decision variable
Convex optimization involves minimizing a convex objective function (or maximizing a concave objective function) over a convex set of constraints.
Linear programming is a special case of convex optimization where the objective function is linear and the constraints consist of linear equalities and inequalities.
Nonlinear programming concerns optimization where at least one of the objective function and constraints is nonlinear.
(Adapted from Mathematical optimization: Major subfields on Wikipedia.)
Therefore, convex optimization overlaps both linear and nonlinear programming, being a proper superset of the former and a proper subset of the latter. However, note that nonlinear programming, while technically including convex optimization (and excluding linear programming), can be used to refer to situations where the problem is not known to be convex (see Boyd and Vandenberghe, p. 9, below). Hence, it may be more useful in practice to think of a hierarchy: linear - convex - nonlinear. Another useful view is given by the following quote, kindly supplied by littleO: "The great watershed in optimization isn't between linearity and nonlinearity, but convexity and nonconvexity." -- R. Tyrrell Rockafellar, in SIAM Review, 1993