# The Behavior of Algorithms

#### 18.409 Topics in Theoretical Computer Science Instructor: Dan Spielman. Tuesday/Thursday 2:30-4:00 in 3-270

```
In this course, we will discuss rigorous approaches to explaining the typical
performance of algorithms.  In particular, we examine alternatives to the
traditional worst-case and average-case analyses.  Such analyses must
necessarily make assumptions about the inputs to algorithms.

We will develop this theory together, and I expect we will debate the merits of
various approaches, as well as the names I have tentatively assigned to them.

My lectures will center around the following three approaches.

1. smoothed analysis:
Analyzing algorithms assuming their inputs are subject to noise.  That
is, we measure the maximum over inputs of the expected performance of
an algorithm under slight random perturbations of those inputs.  This
is the intersection of Shannon Theory with Analysis of Algorithms by
assuming inputs come through a noisy channel.

2. condition numbers/parametric analysis:
In this approach, we find a simple parameter of the input that is
predictive of the running time of the algorithm.  This parameter should
be significtanly simpler than "the running time of the algorithm".
Examples could include
a. feature size of point sets,
b. condition numbers of matrices or polynomials,
c. bit length of inputs

3. subclassing inputs:

In many practical problem domains, the inputs to algorithms have special
structure, and may form a proper subclass of the possible inputs.  If it
is known an algorithm in a particular application only see inputs from this
subclass, then it is natural to analyze the performance of this algorithm
on the subclass.

Students will perform class projects examining the applicability of these
analyses to some problem area, and will present their findings to the class as
well as writing up their findings. Some students may wish to choose their
project from a list of tractable open problems that will be circulated within
the class.

Students will also be responsible for scribing lectures.

Prerequisites: At least one graduate course in algorithms or numerical analysis.
Enrollment may be limited.

```