Theorists have long been challenged by the existence
of remarkable algorithms that are known by scientists
and engineers to work well in practice, but whose
theoretical analyses have been negative or
unconvincing. The root of the problem is that algorithms
are usually analyzed in one of two ways: by worst-case
or average-case analysis. The former can improperly
suggest that an algorithm will perform poorly, while
the latter can be unconvincing because the random
inputs it considers may fail to resemble those encountered
in practice. We introduce smoothed analysis to help
explain the success of some of these algorithms and
heuristics. Smoothed analysis is a hybrid of worst-case
and average-case analyses that inherits advantages
of both. The smoothed complexity of an algorithm is
the maximum over its inputs of the expected running
time of the algorithm under slight random perturbations
of that input. The smoothed complexity is then measured
as a function of both the input length and the magnitude
of the perturbations. If an algorithm has low smoothed
complexity, then it should perform well on most inputs
in every neighborhood of inputs. Smoothed analysis
makes sense for algorithms whose inputs are subject
to slight amounts of noise in their low-order digits,
which is typically the case if they are derived from
measurements of real-world phenomena.
In this talk, I discuss how smoothed analysis can
help explain the excellent observed behavior of the
simplex method for linear programming, and provide
an overview of other algorithms to which it has been
applied.