Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεHypnos Argyros Τροποποιήθηκε πριν 10 χρόνια
2
Factoring and Testing Primes in Small Space Viliam Geffert P.J.Šafárik University, Košice, Slovakia Dana Pardubská Comenius University, Bratislava, Slovakia
3
Factoring and Testing Primes in Small Space Viliam Geffert P.J.Šafárik University, Košice, Slovakia Dana Pardubská Comenius University, Bratislava, Slovakia
4
n is a prime
5
n is a prime if it cannot evenly be divided by any number other than 1 and itself
6
Euclid [280 B.C. ]: infinite number of primes
7
n is a prime if it cannot evenly be divided by any number other than 1 and itself Euclid [280 B.C. ]: infinite number of primes J.Hadamard, C.J.de la Valée Poussin [1896]:
8
n is a prime if it cannot evenly be divided by any number other than 1 and itself Euclid [280 B.C. ]: infinite number of primes J.Hadamard, C.J.de la Valée Poussin [1896]: Prime Number Theorem
9
n is a prime if it cannot evenly be divided by any number other than 1 and itself Euclid [280 B.C. ]: infinite number of primes J.Hadamard, C.J.de la Valée Poussin [1896]: Prime Number Theorem p m = (1 + o(1) ). m. ln m - p m denotes the m-th prime
10
Fundamental Theorem of Arithmetic - Factoring n = p i 1 k i 1. p i 2 k i 2. …. p i ℓ k i ℓ k i j > 0, integer
11
Fundamental Theorem of Arithmetic - Factoring n = p i 1 k i 1. p i 2 k i 2. …. p i ℓ k i ℓ k i j > 0, integer Factoring is computationally very hard
12
Fundamental Theorem of Arithmetic - Factoring n = p i 1 k i 1. p i 2 k i 2. …. p i ℓ k i ℓ k i j > 0, integer Factoring is computationally very hard - utilized to design secure cryptographic systems (data transmission over internet)
13
Primes= { n | n is a prime } - n binary coded
14
Primes= { n | n is a prime } - n binary coded un-Primes= {1 n | n is a prime }
15
Primes= { n | n is a prime } - n binary coded un-Primes= {1 n | n is a prime } Agrawal, Kayal, Saxena [2004]: Primes ϵ P
16
Primes= { n | n is a prime } - n binary coded un-Primes= {1 n | n is a prime } Agrawal, Kayal, Saxena [2004]: Primes ϵ P - no factorization, if n is composite
17
Primes= { n | n is a prime } - n binary coded un-Primes= {1 n | n is a prime } Agrawal, Kayal, Saxena [2004]: Primes ϵ P - no factorization, if n is composite P.Shor [1994]: polynomial time quantum algorithm for factoring
18
Primes= { n | n is a prime } - n binary coded un-Primes= {1 n | n is a prime } Agrawal, Kayal, Saxena [2004]: Primes ϵ P - no factorization, if n is composite P.Shor [1994]: polynomial time quantum algorithm for factoring How much space is sufficient?
19
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n)
20
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) n
21
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) n
22
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) n
23
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) n O(loglog n) bits
24
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) n O(loglog n) bits
25
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n)
26
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ? Is n a prime ? … 1 1 1 … YES: P PP
27
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ? Is n a prime ? … 1 1 1 … YES: … x1x1 1 … NO: x2x2 CC C P PP
28
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ? Is n a prime ? … 1 1 1 … YES: … x1x1 1 … NO: x2x2 - space below loglog n CC C P PP
29
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ? Is n a prime ? … 1 1 1 … YES: … x1x1 1 … NO: x2x2 … WRONG GUESS: - space above loglog n W CC C P PP
30
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n)
31
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) (2) un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n)
32
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) (2) un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) - (2) is not a trivial consequence of (1), since it is not known whether ASPACE(loglog n) is closed under complement
33
(1) un-Primes ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) (2) un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) - (2) is not a trivial consequence of (1), since it is not known whether ASPACE(loglog n) is closed under complement - additional bonus - factoring
34
Algorithm based on “elementary school” primality testing: for X = 2, 3,..., n-1 do if X divides n then “n is composite” end “n is prime”
35
O(loglog n) space due to
36
- Modular representation (based on Chinese Remainder Theorem)
37
O(loglog n) space due to - Modular representation (based on Chinese Remainder Theorem) M = p 1. p 2. …. p m n = (z 1, …, z m ), z i = n mod p i
38
O(loglog n) space due to - Modular representation (based on Chinese Remainder Theorem) M = p 1. p 2. …. p m n = (z 1, …, z m ), z i = n mod p i memory space: log p m O(loglog n)
39
O(loglog n) space due to - Modular representation (based on Chinese Remainder Theorem) M = p 1. p 2. …. p m n = (z 1, …, z m ), z i = n mod p i memory space: log p m O(loglog n) - Scalar representation
40
O(loglog n) space due to - Modular representation (based on Chinese Remainder Theorem) M = p 1. p 2. …. p m n = (z 1, …, z m ), z i = n mod p i memory space: log p m O(loglog n) - Scalar representation n = α. M, α ϵ 0,1)
41
O(loglog n) space due to - Modular representation (based on Chinese Remainder Theorem) M = p 1. p 2. …. p m n = (z 1, …, z m ), z i = n mod p i memory space: log p m O(loglog n) - Scalar representation n = α. M, α ϵ 0,1) -- truncated to 3. loglog n bits
42
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m M 0 Z
43
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m M 0 Z In reality
44
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m M 0 Z Z In reality
45
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m M 0 Z
46
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m m O(log Z) M 0 Z
47
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m m O(log Z) p m O(m. log m) O(log Z. loglog Z) M 0 Z
48
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m m O(log Z) p m O(m. log m) O(log Z. loglog Z) log p m O(loglog Z) M 0 Z
49
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m ? Is Z a prime ? M 0 Z
50
__ Z = (z 1, …, z m ), Z < √MM = p 1. p 2. …. p m ? Is Z a prime ? if z i = 0 then “ Z is a composite ” M 0 Z
51
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 ? Is Z a prime ? M 0 Z
52
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 Z is a prime iff X = (x 1, …, x m ), X ϵ {2, …, Z-1} X does not divide Z M 0 Z X
53
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 Z is a prime iff X = (x 1, …, x m ), X ϵ {2, …, Z-1} X does not divide Z Z
54
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 Z is a prime iff X = (x 1, …, x m ), X ϵ {2, …, Z-1} X does not divide Z Z branching universally at each X ϵ {2, …, Z-1}
55
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 Z is a prime iff X = (x 1, …, x m ), X ϵ {2, …, Z-1} X does not divide Z Z branching universally at each X ϵ {2, …, Z-1}
56
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 Z is a prime iff X = (x 1, …, x m ), X ϵ {2, …, Z-1} X does not divide Z M 0 Z X Z X
57
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 Z is a prime iff X = (x 1, …, x m ), X ϵ {2, …, Z-1} X does not divide Z M 0 Z X
58
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? M 0 Z X
59
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? if x i = 0 then “ X does not divide Z ” M 0 Z X
60
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z X
61
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z x i required, for some i X
62
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z log p m space log p m O(loglog Z) x i required, for some i compute p i X
63
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z log p m space log p m O(loglog Z) x i required, for some i compute p i existentially guess x i ϵ {0, …, p i -1} X xixi
64
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z split universally compute p i existentially guess x i ϵ {0, …, p i -1} X xixi xixi
65
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z split universally - one parallel process verifies the guessed value x i X xixi xixi pipi pipi pipi xixi
66
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z X xixi - one parallel process executes the main program, assuming the guessed value x i is correct
67
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z z i required, for some i X
68
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z log p m space log p m O(loglog Z) z i required, for some i compute p i X
69
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z log p m space log p m O(loglog Z) z i required, for some i compute p i existentially guess z i ϵ {0, …, p i -1} X zizi
70
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z split universally compute p i existentially guess z i ϵ {0, …, p i -1} X zizi zizi
71
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z split universally - one parallel process verifies the guessed value z i X zizi zizi
72
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z split universally - one parallel process verifies the guessed value z i X zizi pipi pipi zizi zizi
73
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z X zizi - one parallel process executes the main program, assuming the guessed value z i is correct
74
M 0 Z X __ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? Z X log p m O(loglog Z) z 1, z 2, …, z m x 1, x 2, …, x m
75
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? if x i = 0 then “ X does not divide Z ” M 0 Z X
76
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} ? X divides Z ? M 0 Z X
77
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z M 0 Z X
78
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z M= p 1. p 2. …. p m M 0 Z X
79
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z M= p 1. p 2. …. p m X [M] * Y= (X * Y) mod M = (x 1 [p 1 ] * y 1, …, x m [p m ] * y m ) M 0 Z X
80
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z M= p 1. p 2. …. p m X [M] * Y= (X * Y) mod M = (x 1 [p 1 ] * y 1, …, x m [p m ] * y m ) X [M] -1 : X [M] * X [M] -1 = 1 X [M] -1 = (x 1 [ p 1] -1, …, x m [ p m] -1 ), i: x i ≠ 0 M 0 Z X
81
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z M 0 Z X
82
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z Y = (y 1, …, y m ) M 0 Z X Y
83
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y
84
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y Z X
85
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y Z X z 1, z 2, …, z m x 1, x 2, …, x m
86
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y Z X y i required, for some i z 1, z 2, …, z m x 1, x 2, …, x m
87
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y Z X y i required, for some i compute x i z 1, z 2, …, z m x 1, x 2, …, x m
88
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y Z X y i required, for some i compute x i compute z i z 1, z 2, …, z m x 1, x 2, …, x m
89
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y Z X y i required, for some i compute x i compute z i y i := x i [ p i] -1 [p i ] * z i z 1, z 2, …, z m x 1, x 2, …, x m
90
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z if Y Z then “ X divides Z ” else “ X does not divide Z ” Y = (y 1, …, y m ) M 0 Z X Y
91
__ Z = (z 1, …, z m ), Z < √M, i : z i ≠ 0, x i ≠ 0 X = (x 1, …, x m ), X ϵ {2, …, Z-1} X divides Z iff X [M] -1 [M] * Z Z - to solve the problem we only need an algorithm deciding whether Y Z - for any given Y Y = (y 1, …, y m ) M 0 Z X Y
92
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? M 0 Z Y
93
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Thm: Let Z = (z 1, …, z m ) and Y = (y 1, …, y m ) be two numbers in the residual representation, Z M/2. M 0 Z Y
94
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Thm: Let Z = (z 1, …, z m ) and Y = (y 1, …, y m ) be two numbers in the residual representation, Z M/2. If the values z i and y i can effectively be computed in O(log p m ) space, for each given i {1, …, m}, M 0 Z Y
95
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Thm: Let Z = (z 1, …, z m ) and Y = (y 1, …, y m ) be two numbers in the residual representation, Z M/2. If the values z i and y i can effectively be computed in O(log p m ) space, for each given i {1, …, m}, then the question of whether Y Z can also be decided in O(log p m ) space. M 0 Z Y
96
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Idea: convert Y and Z into scalar representation: M 0 Z Y
97
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Idea: convert Y and Z into scalar representation: Y = α y. M α y, α z ϵ 0,1) Z = α z. M M 0 Z Y
98
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Idea: convert Y and Z into scalar representation: Y = α y. M α y, α z ϵ 0,1) Z = α z. M M 0 Z Y
99
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Idea: convert Y and Z into scalar representation: Y = α y. M α y, α z ϵ 0,1) Z = α z. M Y Z iff α y α z M 0 Z Y
100
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? Idea: convert Y and Z into scalar representation: Y = α y. M α y, α z ϵ 0,1) Z = α z. M Y Z iff α y α z -- trunctated to 3. loglog n bits M 0 Z Y
101
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? M 0 Z Y
102
__ Z = (z 1, …, z m ), 0 Z < √M Y = (y 1, …, y m ), 0 Y < M ? Y Z ? if Y M / 2 then “ Y > Z ” M 0 Z Y
103
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 ? Y Z ? M 0 Z Y
104
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 M 0 Z Y
105
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 W = (w 1, …, w m ) M 0 Z Y W
106
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W
107
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W X Z
108
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W Z X z 1, z 2, …, z m x 1, x 2, …, x m y 1, y 2, …, y m
109
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W Z X w i required, for some i z 1, z 2, …, z m x 1, x 2, …, x m y 1, y 2, …, y m
110
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W Z X w i required, for some i compute z i z 1, z 2, …, z m x 1, x 2, …, x m y 1, y 2, …, y m
111
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W Z X z 1, z 2, …, z m x 1, x 2, …, x m y 1, y 2, …, y m w i required, for some i compute z i compute y i
112
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W Z X w i required, for some i compute z i compute y i w i := z i [p i ] - y i z 1, z 2, …, z m x 1, x 2, …, x m y 1, y 2, …, y m
113
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 if W M / 2 then “ Y Z ” else “ Y > Z ” W = (w 1, …, w m ) M 0 Z Y W
114
Z = (z 1, …, z m ), 0 Z < M / 2 Y = (y 1, …, y m ), 0 Y < M / 2 Y Z iff Z [M] - Y M / 2 - to decide whether Y Z, we only need an algorithm deciding whether W M / 2 - for any given W W = (w 1, …, w m ) M 0 Z Y W
115
W = (w 1, …, w m ), 0 W < M = p 1. …. p m ? W M / 2 ? M 0 W
116
W = (w 1, …, w m ), 0 W < M = p 1. …. p m ? W M / 2 ? - convert W to scalar representation: M 0 W
117
W = (w 1, …, w m ), 0 W < M = p 1. …. p m ? W M / 2 ? - convert W to scalar representation: W = α. M α ϵ 0,1) M 0 W
118
W = (w 1, …, w m ), 0 W < M = p 1. …. p m ? W M / 2 ? - convert W to scalar representation: W = α. M α ϵ 0,1) M 0 W
119
W = (w 1, …, w m ), 0 W < M = p 1. …. p m ? W M / 2 ? - convert W to scalar representation: W = α. M α ϵ 0,1) W M / 2 iff α 1 / 2 M 0 W
120
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i
121
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end
122
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end integer arithmetic modulo p i
123
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end integer arithmetic modulo p i O(log p m ) space
124
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end integer arithmetic modulo p i O(log p m ) space log p m O(loglog Z)
125
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end real arithmetic
126
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end real arithmetic O(loglog Z) space
127
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end real arithmetic O(loglog Z) space truncated to ℓ 3. loglog(Z) bits
128
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end real arithmetic O(loglog Z) space truncated to ℓ 3. loglog(Z) bits numeric error 1 ε 2 ℓ 2p m
129
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i numeric error 1 ε 2 ℓ 2p m M 0 ½.M
130
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i numeric error 1 ε 2 ℓ 2p m M 0 ½.M α.M ε
131
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i numeric error 1 ε 2 ℓ 2p m M 0 ½.M α.M ε
132
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i numeric error 1 ε 2 ℓ 2p m M 0 ½.M α.M ε
133
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i numeric error 1 ε 2 ℓ 2p m M 0 ½.M α.M ε
134
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i M’= M / p m W’= (w 1, …, w m-1 ) W ½. M iff W’ ½. M’ numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ M p m M p m M p m M p m α ’.M ’ ε
135
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i M’= M / p m W’= (w 1, …, w m-1 ) W ½. M iff W’ ½. M’ re-run for m := m-1 numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ M p m M p m M p m M p m α ’.M ’ ε
136
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i m := m-1 numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ M p m M p m M p m M p m α ’.M ’ ε
137
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i m := m-1 numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ M p m M p m M p m M p m α ’.M ’ ε
138
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end m := m-1 numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ M p m M p m M p m M p m α ’.M ’ ε
139
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end m := m-1 numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ M p m M p m M p m M p m α ’.M ’ ε
140
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ α ’.M ’ ε
141
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ α ’.M ’ ε
142
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ α ’.M ’ ε
143
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ εα ’.M ’
144
ε W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ½.M ’ α ’.M ’
145
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 ε
146
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 m := m-1 ε
147
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 m := m-1 ε
148
W = (w 1, …, w m ), 0 W < M = p 1. …. p m m m α = [1] Σ ( [p i ] Π p j ) [ p i] -1 [p i ]. w i / p i 1 / 2 ? i=1 j=1, j i α := 0.00 for i := 1, …, m do c := 1 for j := 1, …, m do if j ≠ i then c := c [p i ]. p j end c := c [ p i] -1 ; c := c [p i ]. w i φ := c / p i α := α [1] + φ end numeric error 1 ε 2 ℓ 2p m M 0 ε M’M’ 0 m := m-1 … repeated until the question W M / 2 is solved ε
149
un-Primes, un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n)
150
un-Primes, un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ϵ accept-ASPACE x REVERSALS(loglog n)
151
un-Primes, un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ϵ accept-ASPACE x REVERSALS(loglog n) --optimal, cannot be improved
152
un-Primes, un-Composites ϵ accept-ASPACE(loglog n) ϵ pebble-DSPACE(loglog n) ϵ accept-ASPACE x REVERSALS(loglog n) --optimal, cannot be improved below loglog n, only regular languages accepted (even with the help of alternation)
153
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n)
154
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n) Primes
155
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n) Primes un-Primes
156
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n) Primes un-Primes +factoring
157
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n) Primes ? un-Primes +factoring
158
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Positive answer: Primes ? un-Primes +factoring
159
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Positive answer: -- deterministic factoring in polynomial time Primes ? un-Primes +factoring
160
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Positive answer: -- deterministic factoring in polynomial time (breaking cryptographic security) Primes ? un-Primes +factoring
161
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Negative answer: Primes ? un-Primes +factoring
162
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Negative answer: un-L accept-ASPACE(loglog n) Primes ? un-Primes +factoring
163
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Negative answer: un-L accept-ASPACE(loglog n) L ASPACE(log n) = P Primes ? un-Primes +factoring
164
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Negative answer: un-L accept-ASPACE(loglog n) L ASPACE(log n) = P NSPACE(log n) Primes ? un-Primes +factoring
165
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) Negative answer: un-L accept-ASPACE(loglog n) L ASPACE(log n) = P NSPACE(log n) Primes ? NL versus NP un-Primes +factoring
166
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n) Primes ? un-Primes +factoring
167
LDSPACE(log n) un-DSPACE(loglog n) NLNSPACE(log n) un-NSPACE(loglog n) PASPACE(log n) un-ASPACE(loglog n) PspaceDSPACE(n O(1) ) un-DSPACE(log O(1) n)|| NSPACE(n O(1) )un-NSPACE(log O(1) n) ExptimeASPACE(n O(1) ) un-ASPACE(log O(1) n) Primes ? un-Primes +factoring Primes ?
168
Thank You for Your Attention
169
Thank You for Your Attention
170
Thank You for Your Attention
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.