Randomized Algorithms (Spring 2010)/Fingerprinting

From TCS Wiki
Revision as of 12:54, 2 June 2010 by imported>WikiSysop (→‎Example: Checking matrix multiplication)
Jump to navigation Jump to search

Fingerprinting

Evaluating at random points

Example: Checking matrix multiplication

Consider the following problem:

  • Given as the input three [math]\displaystyle{ n\times n }[/math] matrices [math]\displaystyle{ A,B }[/math] and [math]\displaystyle{ C }[/math],
  • check whether [math]\displaystyle{ C=AB }[/math].
Algorithm (Freivalds)
  • Pick a vector [math]\displaystyle{ r \in\{0, 1\}^n }[/math] uniformly at random.
  • If [math]\displaystyle{ A(Br) = Cr }[/math] then return "yes" else return "no".

If [math]\displaystyle{ AB=C }[/math] then [math]\displaystyle{ A(Br) = Cr }[/math] for any [math]\displaystyle{ r \in\{0, 1\}^n }[/math], thus the algorithm always returns "yes".

Lemma
If [math]\displaystyle{ \lt math\gt AB\neq C }[/math]</math> then for a uniformly random [math]\displaystyle{ r \in\{0, 1\}^n }[/math],
[math]\displaystyle{ \Pr[A(Br) = Cr]\le \frac{1}{2} }[/math].

Example: Checking polynomial identities

Evaluating over a random field

Example: Identity checking

Example: Randomized pattern matching

Universal hashing

Example: checking distinctness

Probabilistic Checkable Proofs (PCPs)