Monthly Archives: August 2017

A ‘Reasonable Amount of Time’

The concept of a ‘reasonable amount of time’ figures a fair bit in abstract computational complexity theory; but what is a ‘reasonable amount of time’ in practice?  This post outlines the problem of balancing between the two competing ideals of determinism and adaptability and offers a flexible working definition.  (Not to be taken too seriously: it’s summer vacation time.)

A standard text on combinatorial problems and optimisation algorithms – perhaps discussing the TSP, for example – might read something like:

“… so we tend not to be as interested in particular complexity values for individual problem instances as how these complexities change as the input problem size (n) increases.  Suppose then, that for a given problem, we can solve a problem instance of size n = L in a reasonable amount of time.  What then happens if we increase the size of the problem from n = L to n = L+1?  How much harder does the …?”

or, filling in a few gaps:

“… so we tend not to be as interested in particular complexity values for individual problem instances as how these complexities change as the input problem size (n) increases.  Suppose then that we can solve a TSP of 20 cities on a standard desktop PC in a reasonable amount of time.  What then happens if we increase the number of cities from 20 to 21?  How much longer does …?”

All good stuff, and sensible enough, but what’s this ‘reasonable amount of time’?

Continue reading