8 1 Introduction
operations that does not exceed a polynomial of the problem dimensions. (This is
covered in chapter 11.)
We will see that interior-point methods can solve the problem (1.8) in a num-
ber of steps or iterations that is almost always in the range between 10 and 100.
Ignoring any structure in the problem (such as sparsity), each step requires on the
order of
max{n
3
, n
2
m, F }
operations, where F is the cost of evaluating the first and second derivatives of the
objective and constraint functions f
0
, . . . , f
m
.
Like methods for solving linear programs, these interior-point methods are quite
reliable. We can easily solve problems with hundreds of variables and thousands
of constraints on a current desktop computer, in at most a few tens of seconds. By
exploiting problem structure (such as sparsity), we can solve far larger problems,
with many thousands of variables and constraints.
We cannot yet claim that solving general convex optimization problems is a
mature technology, like solving least-squares or linear programming problems. Re-
search on interior-point methods for general nonlinear convex optimization is still
a very active research area, and no consensus has emerged yet as to what the best
method or methods are. But it is reasonable to expect that solving general con-
vex optimization problems will become a technology within a few years. And for
some subclasses of convex optimization problems, for example second-order cone
programming or geometric programming (studied in detail in chapter 4), it is fair
to say that interior-point methods are approaching a technology.
1.3.2 Using convex optimization
Using convex optimization is, at least conceptually, very much like using least-
squares or linear programming. If we can formulate a problem as a convex opti-
mization problem, then we can solve it efficiently, just as we can solve a least-squares
problem efficiently. With only a bit of exaggeration, we can say that, if you formu-
late a practical problem as a convex optimization problem, then you have solved
the original problem.
There are also some important differences. Recognizing a least-squares problem
is straightforward, but recognizing a convex function can be difficult. In addition,
there are many more tricks for transforming convex problems than for transforming
linear programs. Recognizing convex optimization problems, or those that can
be transformed to convex optimization problems, can therefore be challenging.
The main goal of this book is to give the reader the background needed to do
this. Once the skill of recognizing or formulating convex optimization problems is
developed, you will find that surprisingly many problems can be solved via convex
optimization.
The challenge, and art, in using convex optimization is in recognizing and for-
mulating the problem. Once this formulation is done, solving the problem is, like
least-squares or linear programming, (almost) technology.