# Smoothed analysis

Smoothed analysis is a way of measuring the complexity of an algorithm. It gives a more realistic analysis of the practical performance of the algorithm, such as its running time, than using worst-case or average-case scenarios.

## Introduction

Average-case analysis was first introduced to overcome the limitations of worst-case analysis, however the difficulty is saying what an average case is. The actual inputs and distribution of inputs may be different in practice from the assumptions made during the analysis: a random input may be very unlike a typical input.

Smoothed analysis is a hybrid of worst-case and average-case analyses that inherits advantages of both, by measuring the expected performance of algorithms under slight random perturbations of worst-case inputs. If the smoothed complexity of an algorithm is low, then it is unlikely that the algorithm will take long time to solve practical instances whose data are subject to slight noises and imprecisions.

## Use

Since its introduction in 2001, smoothed analysis has been used as a basis for considerable research, for problems ranging from mathematical programming, numerical analysis, machine learning, and data mining.[1]

## Example

The simplex algorithm is a very efficient algorithm in practice, and it is one of the dominant algorithms for linear programming in practice. Yet in the theoretical worst case it runs in exponential-time for most successfully analyzed pivot rules. This was one of the main motivations for developing smoothed analysis.

In smoothed analysis of linear programming, the typical input model has mean data ${\displaystyle {\bar {\mathbf {A} }}\in \mathbb {R} ^{n\times d},{\bar {\mathbf {b} }}\in \mathbb {R} ^{n},b\in \mathbb {R} ^{d}}$ that satisfies ${\displaystyle \|({\bar {\mathbf {a} }}_{i},{\bar {\mathbf {b} }}_{i})\|_{2}\leq 1}$ for all rows of the matrix ${\displaystyle ({\bar {\mathbf {A} }},{\bar {\mathbf {b} }})}$. The noise data ${\displaystyle \|({\hat {\mathbf {A} }},{\hat {\mathbf {b} }})\|}$ has its entries independently distributed entries sampled from a Gaussian distribution with mean ${\displaystyle 0}$ and standard deviation ${\displaystyle \sigma }$. The smoothed input data consists of ${\displaystyle \mathbf {A} ={\bar {\mathbf {A} }}+{\hat {\mathbf {A} }},\mathbf {b} ={\bar {\mathbf {b} }}+{\hat {\mathbf {b} }}}$. The smoothed complexity of an algorithm is the maximum over admissible ${\displaystyle {\bar {\mathbf {A} }},{\bar {\mathbf {b} }},\mathbf {c} }$ of the expectation over ${\displaystyle {\hat {\mathbf {A} }},{\hat {\mathbf {b} }}}$ of the time it takes to solve the linear program

maximize
${\displaystyle \mathbf {c^{T}} \cdot \mathbf {x} }$
subject to
${\displaystyle \mathbf {A} \mathbf {x} \leq \mathbf {b} }$.

An algorithm has polynomial smoothed complexity if its expected running time is bounded by a polynomial in ${\displaystyle n,d,\sigma ^{-1}}$.

## History

ACM and the European Association for Theoretical Computer Science awarded the 2008 Gödel Prize to Daniel Spielman and Shanghua Teng for developing smoothed analysis. In 2010 Spielman received the Nevanlinna Prize for developing smoothed analysis. Spielman and Teng's JACM paper "Smoothed analysis of algorithms: Why the simplex algorithm usually takes polynomial time" was also one of the three winners of the 2009 Fulkerson Prize sponsored jointly by the Mathematical Programming Society (MPS) and the American Mathematical Society (AMS).