Dietzfelbinger M. Primality testing in polynomial time ... - tiera.ru
Dietzfelbinger M. Primality testing in polynomial time ... - tiera.ru
Dietzfelbinger M. Primality testing in polynomial time ... - tiera.ru
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
6 1. Introduction: Efficient <strong>Primality</strong> Test<strong>in</strong>g<br />
to situations where the length of the numbers that can be treated is already<br />
severely restricted — with (log n) 9 operations we may deal with one 7-digit<br />
number <strong>in</strong> 1 second; treat<strong>in</strong>g a s<strong>in</strong>gle 50-digit number takes years. Bounds<br />
f7(log n) =(logn) 2lnlnn , f8(log n) =c · 2 √ log n ,andf9(log n) =c √ n exceed<br />
any <strong>polynomial</strong> <strong>in</strong> log n for sufficiently large n. For numbers with small b<strong>in</strong>ary<br />
length log n, however, some of these super<strong>polynomial</strong> bounds may still be<br />
smaller than high-degree <strong>polynomial</strong> bounds, as the comparison between f6,<br />
f7, andf8 shows. In particular, note that for log n = 180,000 (correspond<strong>in</strong>g<br />
to a 60,000-digit number) we have 2 ln ln(log n) < 5, so f7(log n) < (log n) 5 .<br />
The bound f9(log n) =c √ n, which belongs to the trial division method,<br />
is extremely bad; only very short <strong>in</strong>puts can be treated.<br />
Summ<strong>in</strong>g up, we see that algorithms with a <strong>polynomial</strong> bound with a t<strong>ru</strong>ly<br />
small exponent are useful even for larger numbers. Algorithms with <strong>polynomial</strong><br />
<strong>time</strong> bounds with larger exponents may become impossible to carry out<br />
even for moderately large numbers. If the <strong>time</strong> bound is super<strong>polynomial</strong>,<br />
treat<strong>in</strong>g really large <strong>in</strong>puts is usually out of the question. From a theoretical<br />
perspective, it has turned out to be useful to draw a l<strong>in</strong>e between computational<br />
problems that admit algorithms with a <strong>polynomial</strong> operation bound<br />
and problems that do not have such algorithms, s<strong>in</strong>ce for large enough n,<br />
every <strong>polynomial</strong> bound will be smaller than every super<strong>polynomial</strong> bound.<br />
This is why the class P, to be discussed next, is of such prom<strong>in</strong>ent importance<br />
<strong>in</strong> computational complexity theory.<br />
1.3 Is PRIMES <strong>in</strong> P?<br />
In order to formulate what exactly the question “Is PRIMES <strong>in</strong> P?” means,<br />
we must sketch some concepts from computational complexity theory. Traditionally,<br />
the objects of study of complexity theory are “languages” and<br />
“functions”. A nonempty f<strong>in</strong>ite set Σ is regarded as an alphabet, andone<br />
considers the set Σ ∗ of all f<strong>in</strong>ite sequences or words over Σ.Themostimportant<br />
alphabet is the b<strong>in</strong>ary alphabet {0, 1}, whereΣ ∗ comprises the words<br />
ε (the empty word), 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101,... .<br />
Note that natural numbers can be represented as b<strong>in</strong>ary words, e.g., by means<br />
of the b<strong>in</strong>ary representation: b<strong>in</strong>(n) denotes the b<strong>in</strong>ary representation of n.<br />
Now decision problems for numbers can be expressed as sets of words over<br />
{0, 1}, e.g.<br />
SQUARE = {b<strong>in</strong>(n) | n ≥ 0isasquare}<br />
= {0, 1, 100, 1001, 10000, 11001, 100100, 110001, 1000000,...}<br />
codes the problem “Given n, decide whether n is a square of some number”,<br />
while