Averaging argument
In computational complexity theory and cryptography, averaging argument is a standard argument for proving theorems. It usually allows us to convert probabilistic polynomial-time algorithms into non-uniform polynomial-size circuits.
Example
To simplify, let's first consider an example.
Example: If every person likes at least 1/3 of the books in a library, then, there exists a book, which at least 1/3 of people liked it.
Proof: Suppose there are people and B books. Each person likes at least
of the books. Let people leave a mark on the book they like. Then, there will be at least
marks. The averaging argument claims that there exists a book with at least
marks on it. Assume, to the contradiction, that no such book exists. Then, every book has fewer than
marks. However, since there are
books, the total number of marks will be fewer than
, contradicting the fact that there are at least
marks.
Formalized definition of averaging argument
Let X and Y be sets, let p be a predicate on X × Y and let f be a real number in the interval [0, 1]. If for each x in X and at least f |Y| of the elements y in Y satisfy p(x, y), then there exists a y in Y such that there exist at least f |X| elements x in X that satisfy p(x, y).
There is another definition, defined using the terminology of probability theory.[1]
Let be some function. The averaging argument is the following claim: if we have a circuit
such that
with probability at least
, where
is chosen at random and
is chosen independently from some distribution
over
(which might not even be efficiently sampleable) then there exists a single string
such that
.
Indeed, for every define
to be
then
and then this reduces to the claim that for every random variable , if
then
(this holds since
is the weighted average of
and clearly if the average of some values is at least
then one of the values must be at least
).
Application
This argument has wide use in complexity theory (e.g. proving ) and cryptography (e.g. proving that indistinguishable encryption results in semantic security). A plethora of such applications can be found in Goldreich's books.[2][3][4]
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Oded Goldreich, Foundations of Cryptography, Volume 1: Basic Tools, Cambridge University Press, 2001, ISBN 0-521-79172-3
- ↑ Oded Goldreich, Foundations of Cryptography, Volume 2: Basic Applications, Cambridge University Press, 2004, ISBN 0-521-83084-2
- ↑ Oded Goldreich, Computational Complexity: A Conceptual Perspective, Cambridge University Press, 2008, ISBN 0-521-88473-X