Randomized Algorithms (Spring 2010)/Fingerprinting: Difference between revisions
Jump to navigation
Jump to search
imported>WikiSysop |
|||
Line 1: | Line 1: | ||
== Fingerprinting == | == Fingerprinting == | ||
=== | === Two examples === | ||
==== Example: Checking matrix multiplication ==== | ==== Example: Checking matrix multiplication ==== |
Revision as of 11:27, 4 June 2010
Fingerprinting
Two examples
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)
|
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
|
Example: Checking polynomial identities
Consider the following problem:
- Given as the input two multivariate polynomials [math]\displaystyle{ P_1(x_1,\ldots,x_n) }[/math] and [math]\displaystyle{ P_2(x_1,\ldots,x_n) }[/math],
- check whether [math]\displaystyle{ P_1\equiv P_2 }[/math].
Algorithm (Schwartz-Zippel)
|
Theorem (Schwartz-Zippel)
|
Evaluating over a random field
Example: Identity checking
Example: Randomized pattern matching
Universal hashing
- Example: checking distinctness