This preview shows pages 1–2. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: CME 305: Discrete Mathematics and Algorithms Instructor: Professor Amin Saberi (saberi@stanford.edu) February 23, 2010 Lecture 14: Randomized Algorithms Randomization plays a central role in the design and analysis of algorithms. It is still an open question whether the ability to make random choices allows some problems to be solved in polynomial time that cannot be solved without this ability. Nevertheless, in many situations, it is possible to come up with randomized algorithms that are faster, or easier to implement. 1 Polynomial Identity Suppose we are given two polynomials and want to determine whether or not they are identical. For example, ( x 1)( x + 1) x 2 1 . One way would be to expand each polynomial and compare coefficients. A simpler method is to plug in a few numbers and see if both sides are equal. If they are not, we now have a proof of their inequality, otherwise with good confidence we can say they are equal. This idea is the basis of a randomized algorithm. We can formulate the polynomial equality verification of two given polynomials F and G as: H ( x ) F ( x ) G ( x ) ? . Denote the maximum degree of F and G as n . Assuming that F ( x ) 6 G ( x ), H ( x ) will be a polynomial of degree at most n and therefore it can have at most n roots. Choose an integer x uniformly at random (UAR) from { 1 , 2 ,...,n 2 } . H ( x ) will be zero with probability at most 1 /n . After a small number of samples, we will be able to determine with high probability whether the two polynomials are identical....
View
Full
Document
 Winter '09

Click to edit the document details