Many decision problems have closely related optimization versions. For example, VERTEX-COVER can be formulated as a decision problem, but it can also be formulated as: "Given a graph G, find a vertex cover of minimum size." Similarly, CLIQUE, MAX-CUT, DOMINATING-SET can be formulated as optimization problems. Of course, the optimization versions of these problems are also hard, in the sense that if you had a polynomial-time algorithm for any one of them, you would be able to solve the decision problem in polynomial time too, and so P would equal NP.
However, in some cases the optimization problems may be approximately solved in polynomial time. For example, in polynomial time I can find a vertex cover whose size is at most 2 times the minimum possible. An algorithm that does this is called a 2-approximation algorithm.
Another example: in poly-time I can find a cut whose size is at least 1/2 times the maximum possible.
It is also possible to prove hardness results for approximation problems. For example, unless P=NP, it is known that there is no 1.0001-approximation algorithm for vertex cover.
Most natural hard optimization problems seem to fall into one of these classes:
For more information, see the following: