It is common to encounter situations where one must solve a sequence of
similar computational problems. Running a standard algorithm with worst-case
runtime guarantees on each instance will fail to take advantage of valuable
structure shared across the problem instances. For example, w