Skip to main content Accessibility help
×
Home
  • This chapter is unavailable for purchase
  • Print publication year: 2009
  • Online publication date: June 2012

7 - Randomized computation

from PART ONE - BASIC COMPLEXITY CLASSES

Summary

Why should we fear, when chance rules everything, And foresight of the future there is none; 'Tis best to live at random, as one can.

– Sophocles, Oedipus Rex

We present here the motivation and a general description of a method dealing with a class of problems in mathematical physics. The method is, essentially, a statistical approach to the study of differential equations.

– N. Metropolis and S. Ulam, “The Monte Carlo Method,” 1949

We do not assume anything about the distribution of the instances of the problem to be solved. Instead we incorporate randomization into the algorithm itself … It may seem at first surprising that employing randomization leads to efficient algorithms. This claim is substantiated by two examples. The first has to do with finding the nearest pair in a set of n points in ℝk. The second example is an extremely efficient algorithm for determining whether a number is prime.

– Michael Rabin, 1976

So far, we used the Turing machine (as defined in Chapter 1) as our standard model of computation. But there is one aspect of reality this model does not seem to capture: the ability to make random choices during the computation. (Most programming languages provide a built-in random number generator for this.) Scientists and philosophers may still debate if true randomness exists in the world, but it definitely seems that when tossing a coin (or measuring the results of other physical experiments) we get an outcome that is sufficiently random and unpredictable for all practical purposes.

Related content

Powered by UNSILO