ΑΛΓΟΡΙΘΜΙΚΗ ΘΕΩΡΙΑ ΚΑΤΑΝΕΜΗΜΕΝΩΝ ΥΠΟΛΟΓΙΣΜΩΝ x x x y y x y?? Ευριπίδης Μάρκου Ευάγγελος Κρανάκης Άρης Παγουρτζής Ντάννυ Κριζάνκ
ΕΥΡΙΠΙΔΗΣ ΜΑΡΚΟΥ Τµήµα Πληροφορικής µε Εφαρµογές στη Βιοϊατρική Πανεπιστήµιο Θεσσαλίας, Λαµία, Ελλάδα ΕΥΑΓΓΕΛΟΣ ΚΡΑΝΑΚΗΣ School of Computer Science Carleton University, Ottawa, Ontario, Canada ΑΡΗΣ ΠΑΓΟΥΡΤΖΗΣ Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο, Αθήνα, Ελλάδα ΝΤΑΝΝΥ ΚΡΙΖΑΝΚ Department of Mathematics and Computer Science Wesleyan University, Middletown, Connecticut, USA Αλγοριθµική Θεωρία Κατανεµηµένων Υπολογισµών
Αλγοριθµική Θεωρία Κατανεµηµένων Υπολογισµών Συγγραφή Ευριπίδης Μάρκου (Κύριος Συγγραφέας) Ευάγγελος Κρανάκης Άρης Παγουρτζής Ντάννυ Κριζάνκ Κριτικός αναγνώστης Σταύρος Νικολόπουλος Συντελεστές έκδοσης Γλωσσική Επιµέλεια: Ευριπίδης Μάρκου Γραφιστική Επιµέλεια: Ευριπίδης Μάρκου Τεχνική Επεξεργασία: Άρης Παγουρτζής ISBN: 978-960-603-504-3 Copyright ΣΕΑΒ, 2015 Το παρόν έργο αδειοδοτείται υπό τους όρους της άδειας Creative Commons Αναφορά Δηµιουργού - Μη Εµπορική Χρήση - Όχι Παράγωγα Έργα 3.0. Για να δείτε ένα αντίγραφο της άδειας αυτής επισκεφτείτε τον ιστότοπο https://creativecommons.org/licenses/by-nc-nd/3.0/gr/ ΣΥΝΔΕΣΜΟΣ ΕΛΛΗΝΙΚΩΝ ΑΚΑΔΗΜΑΪΚΩΝ ΒΙΒΛΙΟΘΗΚΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Ηρώων Πολυτεχνείου 9, 15780 Ζωγράφου www.kallipos.gr
15
n 1
count count count
n O(n 3 ) O(n 2 7 ) O(n 2.807 ) 2 2 7 8 O(n 2.376 ) O(n 2.3727 ) Ω(n 2 ) 2n 2 n 3 Matrix-Multiplication1 n 3 a ij b jk 1 i, j, k n n 2 n 1 a i1 b 1k, a i2 b 2k,..., a in b nk n 3 n 1 n 2 Θ(n) n 3 a i1 b 1k, a i2 b 2k,..., a in b nk n/2 l 1 l n/2 a i(2l 1) b (2l 1)k, a i(2l) b (2l)k n/2 n/4
Matrix-Multiplication2 n 3 a ij b jk 1 i, j, k n n/2 n 2 x n n x 1 x = Θ( n) 2 x n 2 n 3 /2 Θ( n) n u, v u, v Θ(n) Graph-Reachability A n n n a ii = 1 A 2, A 4,..., A n a n uv = 1 u v u v a k ij = 1 k i j n 3 Θ( n) A n n
Θ( 2 n) 1 u v;
A = (X, Y, S, δ, λ, S 0 ) X C A C E : C A : C E : Y : S : S 0 δ : S X S : λ : S Y : A u 0 S 0 A δ, λ σ S λ(s 0 ) A v v
σ σ δ σ λ(σ ) V E M M/V M/E
; ; ;
v v Θ( 2 n) u v;
G(V, E) V = n Ω(n) n 1 n 1 Ω( E ) A G E 1 (u, v) G (V, E ) G (u, v) (u, w) (w, v) w G G A G (u, v) A G (u, w) (w, v) w A G Ω(n) Ω( E ) Broadcast1
Broadcast2 u u (v 1, v 2 ) v 1 v 2 v 2 v 1 M = 2 E k M 2 E n + 1 n 1 M = 2 E n + 1 Broadcast3 ρ w t : w ρ t w t 1
w t 2 ρ w : w ρ w ρ A B C A B C B C C B A A B C B C B C A B C A C C B B B C C C B C B C B
3 M G(V, E) V = n
Wake-Up 4 2 E M 2 E n + 1 n Ω(n) Ω( E ) Θ(n) Θ( E ) 5 : M = n + k 2 k : Ω(n 2 ) n 1
Leader-Election
G(V, E) V = n M 2 E n + 1 G(V, E) 2 E n + 1 n 1 n 1 n 1 n 1 n
n k k n 1 k k k k G(V, E) V = n M 2 E M 2 E n + 1 G(V, E) 2 E n + 1 2 E M = n + k 2 k n Θ(n 2 ) n 3 2
n n n n
n n n 2n
1 2 1
A A = (X, Y, S, δ, λ, S 0 ) X D v C v Y D v {actions} S S 0 δ : S X S λ : S Y D v v C v v u 0 S 0 S S 0
u 0 λ(s 0 ) Y v i v c v C v v v (i, c v ) X S S = δ(s, (i, c v )) S λ(s ) v
left right A =< S, δ, s 0 > S s 0 halt δ : S P S M P = {present, notpresent} M = {left, right} δ left right
stay n d n d n d < n 2 d < n 2 d < n d n 2 d < n 2 d n 3n d n 4 5n 4
d < n 2 n n d 3n/4 3n/4 O( d) 3n/4 5n/6 O( d) 3n/4 3n/4 O( n) 3n/4 3n/4 O( n) 3n/4 3n/4 O( d) 3n/4 5n/6 O( d) 5n/4 5n/4 O( n) 5n/4 5n/4 O( n) d < n 2 d 3n 5n 4 6 d < n 2 d = n 2 O( n) n d O( n) 5n 4 n d O( n) O( n n ) n O(1) n d O(1) O(1)
n = 4 A, B B A
A B n d = n 2 RT QT QMA MCL MCC DM IC(count) count do until if then
d > 0 do until if then d RT QT QMA IC(c) DM MCL MCC d k k + 1 d k k + 1 RT QT QMA IC(c) DM d k + 1 MCL MCC d k + 1 d = n/2 do until if then d = n 2 = = 0 t d n/2 t t < t d = n/2 = = 0 t
t < t t 1 1 2 2 1 < 2 1 d = n/2 do until if then if then t t 1 t t 1 n n d = n 2 s i 0 i 0 i t Ht i = s i 0, s i 1,..., s i t t t d = 0 t < t d n/2 t d DM MCL MCC d MCL MCC d d t t 1 t t t
t 1 t d = n 2 d < n 2 d < n n 2 d < n 2 d d d d 2 3d 2 3d d = n 1 2 2 3n O(1) 4 d d n d n 2 d n+d 2 n+d d = n 1 2 2 3n O(1) n 4 n d m m = d m = n d n
d n + d 2 n + d n d 2 d = n 1 5n O(1) 2 4 n d d n O( d) d d n 3n 4 d 5n 6 d < n n 2 d < n 2 d, n d < n d n 2 O( d) d d d d 3d d < n 2 2 3n 4
d d d O( d) d d d d d d < n 3 d 2d d 5d 2 2 d < n 5n n d < n 3 6 3 2 d n d n 2 2 3 d < n 5n 2 6 O( n) n n n 2 n 2 d n/2
n+d 2 d < n 3n 2 4 O( n) d n δ 1 δ 2 δ 1 < δ 2 n + d d < n 5n 2 2 4 d < n 2 d = n 2 O( n) 3 4 3d 3n 2 4 O( n) d < n 2 RP RD
O( n) d = n 2 d = n 2 n d 5n 4 O( n) d = n 2 ( ) n n O, n p 1,..., p k k k i=1 p i > n O( n) n m = p 1 δ 1 m δ 2 m δ 1 m = δ 2 m m = p k m < p k m = p i+1 4 δ 1 m < δ 2 m 7 8 d 2 O( n) d n n d d = n 2 d = n d = n 2 2 ) O ( n n n
d (n d) p i p i, i = 1,..., k k d (n d) p i. p i d (n d) p i p i d = n d = n 2 d (n d) i=1 k p i, p i d < n p 2 i d 2 d = n k p 2 i O(kn) k k k i=1 p i > n k 1 i=1 p i n i=1 k p i n p k n 2. i=1 Π(m) m m m 8m Π(m) 6 m m. p i Π(p i ) = i i p i 6 p i Π(p i ) = i 8p i p i i pi p i i 8 n 2 k i=1 p i k i=1 i p i 8 k = k!8 k p i i=1 k!8 k 2 Ω(k k).
2 n k k k k k 2 n ( ) n k O n O(kn) O( n n n ) d n n d d = n 2 d = n 2 d = n 2 n d = n 2 k k 1 k 1 k 1 R 1 Rk Rk 1 n n n >> Rk Rk n
node a node b node a node b 1 node a node b R node a node b 1 d = n d < n 2 2 d = n d < n 2 2 n d d < n 2 n O( n) 2 n d 2 d < n n 2 n d ( T O (d 2 d )) 2 + n d n T n 2d 2 O(n 4 )
d < n d 1 i 2 j r 1 2 id = j(n d) + r r 0 n d r > d 0 j < i r j i + j d n < j + 1 i + j + 2 d 1 id + n d = (i 1)d + n j = i 1 i 1 2i 1 d n < i 2i + 1 i 1 d i 1 2i 1 n < k d i 2 2i 3 n d k d k n i 2 2i 3 d k n < i 1 2i 1 d n 2d d k ( ) ( d 2 k((i 1)d + n) k n 2d + n d i 2 ) ( ) d 2 2i 3 n n 2d + n ( )) d O (d 2 2 n 2d + n.
d < n/2 O(n 2 n) RD n 1 2 n RD RP 1 1 1 2 Θ(n 2 ) 2 1 Θ(n 2 ) Θ(n 2 ) 2 2 Θ(n 2 ) Θ(n 2 ) O(1) RP O(n 2 ) 3 O(n) A B
O(n 2 ) x y 3 y (x 1) 3 d n d t 1, t 2, t 3,... n-d A B d d A B B A A t i i t 1, t 2, t 3,... B d < n d δ = (n d) d d = t 1 x A 3 n d = t 1 x B 3 t i+1 < t i B
A A t 1 t 1 t i t i δ t i t i = iδ t 1 /δ t i+1 t i t i+1 = t i A B A t 1 1 x A 1 3 A B B A t 1 /δ t 1 t 1 B O((t 1 /δ)t 1 + t 1) δ 1 t 1 < n/2 t 1 = t 1 + δ < n O(n 2 ) RP RD RD O(n 2 )
n/2 n d 1 n/2 1 n n/2 n((n/2 1)/2) + n/2 = O(n 2 ) O(n) t RD t 3 n RD t 3 O( t) O(mn) m ( ) m 1 t 2 n 1 t C t n m
m RD O(m) 0 0 O(mn) n C t m C t t m n t t 1 t 1 A, B m A B k m-k A, B m A B t 3 ( k 2 t 3) k m C t n A t 1 B t 1 t 1 t 3 k
k k m n k ( k 2 t 3) k m m k=2 ( ) k 2 = t 3 ( ) m 1 t 2 n 1 C t n 1 m m ( ) m 1 t 2 n 1 O( t) t C t m ( ) m 1 t 2 n 1 O(n 1 t 2 t) O(n t 1 t 2 t) RD t > 2 O( t) O(n t 1 t 2 t) n t = n O(n n) n
m n n m n m Θ((σ)) σ 2 RP RD A B 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 15 8 A (2, 2) B (10, 5) d(a, B) = ({ A 1 B 1, (n A 1 B 1 )}, { A 2 B 2, (m A 2 B 2 )}) = ({ 2 10, (15 2 10 )}, { 2 5, (8 2 5 )}) = ({8, 7}, {3, 5}) = (7, 3) (x 1, x 2 ) (y 1, y 2 ) n m (d 1, d 2 ) d 1 = { x 1 y 1, (n x 1 y 1 )} d 2 = { x 2 y 2, (m x 2 y 2 )} n m
(n/2, 0) n (0, m/2) m (n/2, m/2) n, m D D = (n/2, 0) D = (0, m/2) D = (n/2, m/2) S 0 S t t t k S k D D t A A t B B D t > t k S t D D A A t A A t A D B t B A t B B t l t l A D t A t l B D t B t A t l n n/2 n
σ 2 n n n > σ n(σ 1) + 1 n n n > σ S v = (v x, v y ) S v S p x p y v v S S σ + 1 S S v v v σ 1 S 0 S p x p y σ 1 S 0,..., n 1 v x v y v n S (v x + np x ) n = v x (v y + np y ) n = v y v S (σ + 1) + (n 1)(σ 1) 1 = n(σ 1) + 1 < n 2 σ 2 n n n > σ 2
σ + (σ 1) 2 (n + 1) < n 2 t A B t B A σ n n n > 2σ 2 2 s s A B A t A B B t B A s s π σ n n n > 2σ 2 n > 2σ 2
π Ω( n) n n r σ = 2 r n > 2σ 2 r = Ω( n) O( n + m) n m RP RD Θ( n + m) n m RD n n RD O( n + m) n m n m RD n m 1 O( n + m)
n/2 m/2 SameRing DifRing O(nm) O( n + m) c 1 c 2 c 2 c 1 c 1 c 2 c 3 c 4 c 4 c 3 c 3 c 4 n m SameRing c 1 + c 2 c 1 c 2 Rendezvous
c 1 c 2 = c 2 > c 1 = c 2 > c 1 c 2 = c 1 c 3 + c 4 c 3 c 4 Rendezvous SameRing c 1 = c 2 c 3 = c 4 n m DifRing RD 2c 1 c 5 c 6 c 5 c 1 /2 c 6 c 3 /2 Rendezvous2 c 5 = c 1 /2 c 6 = c 3 /2
c 5 c 5 = 2c 1 c 6 c 6 c 3 /2 c 6, c 3 /2 c 5 c 1 /2 c 5, c 1 /2 ct, ck ct < ck c 5 ct > ck n m O( n + m) O(nm)
A's token B's token O( n + m) RD HorScan FindTokenHor FindTokenHor FindTokenHor HorScan 2 FindTokenHor
start FindTokenHor HorScan HorScan 4 FindTokenHor 5 FindTokenHor 1
T 1 T 2 7 7 FindTokenHor 7 7 HorScan 2 FindTokenHor A B B A HorScan 4 FindTokenHor 1 FindTokenHor A T 2 (B) B B T 2 (A) A HorScan 2 FindTokenHor HorScan 4 FindTokenHor 1 HorScan 2 FindTokenHor 7
A B T 1 (A) T 1 (B) T 2 (A) T 2 (B) (a) (b) T 1 (A) T 2 (A) T 1 (B) T 2 (B) T 1 (A) T 2 (A) T 2 (B) T 1 (B) (c) (d) A B T 2 T 2 HorScan 2 4 FindTokenHor HorScan 2 FindTokenHor
B A T 1 (B) T 1 (A) T 2 (B) T 2 (A) (a) (b) A B T 2 HorScan 2 4 FindTokenHor HorScan 2 FindTokenHor 2, 3 1 2 2 3 HorScan 2 FindTokenHor VerScan FindTokenVer VerScan FindTokenVer
A B T 2 (A) T 1 (A) T 1 (B) T 2 (B) (a) (b) A B T 2 HorScan FindTokenHor FindTokenVer FindTokenHor FindTokenVer O(nm) SearchTorus RD n n
start FindTokenVer FindTokenHor FindTokenVer O(n 2 ) n n O(n 2 )
T 1 (A) T 1 (B) T 1 (A) T 2 (A) T 1 (B) T 2 (B) (a) (b) T 2 (B) T 1 (A) T 2 (A) T 1 (B) (c) A B T 2 n m
> 1 n t = 0, 1, 2,... t
RP t Θ(n 2 /t) n
k 2 n k n k n n k n k k S S
k 2 n O(n) O(k n) O(kn) O( n) ) O(k n) O(n) O( n) O(n) O( k) O(n k) O( k) O( n n n k n k > 2 Ω( n + k) k n n k k n n n/2 S = d 1,..., d k m > 1 j 1 m, j k k S
S O(k n) k n k k k d 1,..., d k S d 1,..., d k d 1,..., d k d k,..., d 1 MA i MA j MA i MA j MA i MA i MA j MA i MA j O(k n) O(n)
O( n) O( n) S O( n) c = 1 active = 1 inactive = 0 inactive c d c c = 1 c = 2 d c c + 1 k d i d i > d c active = 0 d i d i > d c inactive = k 1 c = k 1 inactive < k 1 c = c + 1 inactive = 0 5 O( n) O(kn) O(k n) ( n) O(k n) p 1,..., p r r r i=1 p i > n
O(k n) 1 p r r i=1 p i > n p i = p 1 = 2 α = k p i α d 1,..., d α p i d 1,..., d α p i d α,..., d 1 p i (d 1,..., d α/a ) a p i (d 1,..., d α/a ) 0 p i < p r p i = p i+1 α = a 6 p 2 < p r p i < p p i α i d 1,..., d αi (d 1,..., d αi /a) a p i a α i d 1,..., d αi /a p a t k σ 1, σ 2,..., σ t p 1, p 2,..., p O ) O(k n) ( n n n p i p r p i
9 p = p r a r k σ r i i = 1,..., a r p p p r σ r i i = 1,..., a r r i=1 p i r i=1 p i > n a r k σ r i i i = 1,..., a r n a r σ r i i a r n (k, n) = g > 1 S 9 S S p i p r 7 p i = p r S O(k n) r r r i=1 p i > n r n O(rn) r ϵ O( n ) O ( n n n n ) n k n (k, n) = 1 k k n k S i i
k (k, n) = 1 k k active = 1 count = 0 d 1, d 2, d 3 count count = k 1 d 2 > d 1 d 2 d 3 active = 0 3 (k, n) = 1 k k O( n) O(n) k (k, n) = 1 k k O( k) O(n) k (k, n) = 1 k k O( k) O(n) (k, n) = 1 k k k (k, n) = 1 k k O( k) O(n k)
k (k, n) = 1 k k k 1 k 0 k m 1, m 2, m 3 m 1 = k 1 m 2 > m 1 m 2 m 3 active = 0 5 n
k (k, n) = 1 k k O(n k) k d 1, d 2, d 3 k count count = k 1 d 2 > d 1 k d 2 d 3 k active = 0 4 R t t > t R t > t R R R v v
A B E D C A ((2, 3, 3, 1, 3) (5)) B ((3, 3, 1, 3, 2) (3)) C ((3, 1, 3, 2, 3) (0)) A {((2, 3, 3, 1, 3), (5)), ((3, 1, 3, 3, 2), (7))} a b a, b > 1 ((a 1,..., a r ) (b 1,..., b s )) a i b j u 1 u 1, u 2, u 3,..., u r u 1 a i i < r u i u i+1 a r u r u 1 u 1, u 2, u 3,..., u r u v1,..., u vs b i u 1 u vi u 1
A B E D C A ((2, 3, 3, 1, 3) (5, 9)) B ((3, 3, 1, 3, 2) (3, 7)) C ((3, 1, 3, 2, 3) (0, 4)) A {((2, 3, 3, 1, 3), (5, 9)), ((3, 1, 3, 3, 2), (3, 7))} F A B C E D A (2, 3, 1, 2, 3, 1) A D {(2, 3, 1, 2, 3, 1), (1, 3, 2, 1, 3, 2)} B E {(3, 1, 2, 3, 1, 2), (2, 1, 3, 2, 1, 3)} C F {(1, 2, 3, 1, 2, 3), (3, 2, 1, 3, 2, 1)} (a 1,..., a r ) C = (a 1,..., a r ) p C S
A E B D C A (2, 2, 4, 2, 2) A {(2, 2, 4, 2, 2), (2, 2, 4, 2, 2)} B C (2, 4, 2, 2, 2) (4, 2, 2, 2, 2) B E {(2, 4, 2, 2, 2), (2, 2, 2, 4, 2)} C D {(4, 2, 2, 2, 2), (2, 2, 2, 2, 4)} A B C I D H E G F A (2, 2, 1, 2, 2, 1, 2, 2, 1) 3 A, C, D, F, G, I {(2, 2, 1, 2, 2, 1, 2, 2, 1), (1, 2, 2, 1, 2, 2, 1, 2, 2)} B, E, H {(2, 1, 2, 2, 1, 2, 2, 1, 2), (2, 1, 2, 2, 1, 2, 2, 1, 2)} S S
R ((a 1,..., a r ), (b 1,..., b s )) R u 1 R {((a 1,..., a r ), (b 1,..., b s )), ((a r, a r 1,..., a 1 ), (n b s,..., n b 1 ))} R R {((a 1,..., a r ), (0, b 2,..., b s )), ((a r, a r 1,..., a 1 ), (0, n b s,..., n b 2 ))} R {((a 1,..., a r ), (b 1,..., b s )), ((a r, a r 1,..., a 1 ), (n b s,..., n b 1 ))} {(a 1,..., a r ), (a r, a r 1,..., a 1 )} 9 1,..., 9 1, 2, 4 R 1 {(1, 2, 6), (6, 2, 1)}
A B E D C A (3, 3, 3, 2, 1) A, B, C, D, E {(3, 3, 3, 2, 1), (1, 2, 3, 3, 3)} {(3, 3, 2, 1, 3), (3, 1, 2, 3, 3)} {(3, 2, 1, 3, 3), (3, 3, 1, 2, 3)} {(2, 1, 3, 3, 3), (3, 3, 3, 1, 2)} {(1, 3, 3, 3, 2), (2, 3, 3, 3, 1)}
C p C C C
a, b {(a 1,..., a r ), (a r, a r 1,..., a 1 )} {(b 1,..., b r ), (b r, b r 1,..., b 1 )} a a + = (a 1,..., a r ) b b = (b r, b r 1,..., b 1 ) a w a + u w+1 b w b u 2 u 1 u 1 a a b a 1 = b r = a w = b r w+1 a r = b 1 j j a + a 1, a w, a r j b b r, b r w+1, b 1 (a 1,..., a w,..., a r ) = (b r,..., b r w+1,..., b 1 ) C C C = (a 1,..., a r ) (a 1,..., a p ) (a 1,..., a p,..., a r ) = (a p+1,..., a r, a 1,..., a p ) (a 1,..., a p ) a + = (a 1,..., a p,..., a r ) a a u 1 (a p+1,..., a r, a 1,..., a p ) b b u p+1 a, b C
C a, b a a + = (a 1,..., a r ) a = (a r, a r 1,..., a 1 ) b b + = (b 1,..., b r ) b = (b r, b r 1,..., b 1 ) (a 1,..., a r ) = (b r, b r 1,..., b 1 ) (a 1,..., a r ) = (b 1,..., b r ) (a 1,..., a r ) = (b r, b r 1,..., b 1 ) a w a + u w+1 b a w = b r w b u 2 u 1 u 1 a b r w+1 = a 1 a s w+1 a 2 + a 1 a w a m w+r a 2 + a w a r a 1 = b r = a w = b r w+1 a s, a m s m b a r = b 1 j j a + a 1, a s, a w, a m, a r j b b r, b r s+1, b r w+1, b r m+1, b 1 (a 1,..., a s,..., a w,..., a m,..., a r ) = (b r,..., b r s+1,..., b r w+1,..., b r m+1,..., b 1 ). a s u s+1 a m u m+1 (a 1,..., a r ) = (b 1,..., b r ) a b c c + = a + b a w a + u w+1 b a w+1 = b 1 = a 1 a w+2 = b 2 = a 2 a w+i = b i = a i 1 i w a mw+i = b i = a i mw + i < r (a 1,..., a w ) r w r = mw + x 1 x < w a r = a mw+x = b x = a x a r+w x = a w x a r+w x = a (m+1)w = b mw a r+w x+1 = b mw+1 = b 1 = a 1 a r+w x+i = b mw+i = b i = a i a w x a w a w x+1
a w+1 = b 1 c u w x+1 a b a + c + a + S 1 S 2 a, b S 1 a + = (a 1,..., a r ) a b = (b r, b r 1,..., b 1 ) b a + = b a S 2 (a 1,..., a r ) = (a r, a r 1,..., a 1 ) (a 1,..., a r ) = (b 1,..., b r ) a, b S 2 c b S 2 (b 1,..., b r ) = (c r, c r 1,..., c 1 ) c = (c r, c r 1,..., c 1 ) c (a 1,..., a r ) = (c 1,..., c r ) S S S n n S
1 1 k > 1 k k = 2 k < k k C R R R k 1 k 1 k
t > 1 r t t r r + 1 t t t > 1 r R R R R R R r r + 1 r + 1 R R R R Single-Multiplicity-Gathering
v v v v v t Single-Multiplicity-Gathering
A, B A, B A, B A, B A, B M N Max M M N N M M 2 a N N 2 b M M 2 M N Max + 1 M M 2 a 1 M N M N Max + 1 a 1 M M 2 b N N 2 M N a 1 M M 2 b N N 2 M M 2 Single-Multiplicity-Gathering
Max a i M Max N M Max Max j 1; M 1 M; N 1 N; M 0 N; N 0 M; j j + 1; M j M j 1 M j 2 N j N j 1 N j 2 N N j M M j N N j ; M M j ; N N M M N N 2 M M 2 Odd-Gathering Rigid-Gathering
Single-Multiplicity-Gathering Rigid-Gathering (1) (2) Single-Multiplicity-Gathering Rigid-Gathering C = (a, a + 1, a 1, a + 1, a 1, a + 1, a) 7 a > 1 C
A A G a a B G a-1 a+1 B a+1 a+1 a+1 a+1 F E a-1 a+1 a-1 D C F E a-1 a+1 a-1 D C (i) (ii) a C = (a + 1, a + 1, a 1, a + 1, a 1, a + 1, a 1) C a + 1 C Rigid-Gathering C C C C C = (a, b 1,..., b s 1, b s, b s 1,..., b 1, a) C (a + 1, b 1,..., b s 1, b s, b s 1,..., b 1, a 1) C d p d 1 = a + 1 d p = a 1 C d p = d 1
C = (a 1,..., a r ) C {a 1,..., a r } a i C a i (a 1,..., a r ) Cf Cf Cf S C D S x C D y x Cf y y C, D x C, D x Cf Cf Cf Cf 4 C D 2 A E A B Cf Cf Cf C z f C C C C z = f 1 z = f + 1 C z + 1 z 1 z + 1 z 1 C C C f C f = z 1 f = z + 1 z 1 z + 1 C C C
C C C C C b(c) C C C C C b(c ) < b(c) z C f z = f 1 z = f + 1 f = z + 1 C z + 1 z 1 1 z 2 f C z 1 z 1 C C z C C z 1 z + 1 C C 2 C f = z 1 (C 1, C 2,... ) C i+1 C i i b(c i ) = 0 C b(c) = 0 C C C C b(c ) < b(c) b(c) = 0
C A C 1 C A C 1 Single-Multiplicity-Gathering C 1 C 1 C 2 C 1 C 2 C 1, C 2,... C i b(c i ) = 0 C C i C Single-Multiplicity-Gathering
n k k n p(n) n O( n) p(n) = Ω( n) n n Ω(n) 4 ) k = 2l + 1 3 k = 2l + 1 k > 2 k 4 3 Θ( n n
18 18 8 18
n > 1 1 n r
O(1) O( ) Ω( n) n
+ 1 2 2
n 1 1 n 2n 4 h n 1 B n 1
B B n 2 h 2n 4 U E U L U R v 0 v 1 U k =< v 1, v 2,..., v k > v i v i+1 v i v i+1 v i+1 v i v i v i+1 v i U k n h h U U = n 1 U L U R U L = n 1 U R = n 1 1 U L 2 2 2 U R 1 1 u v 1
U L U R U L U R 2 u 1 U L 2 2 u n 1 2 X := h E < n 1 U U L X U R X 1(2) X U L (U R ) 1(2) U L (U R ) 1(2) u E U X := u n 2n n + O(n)
n 1 n 1 n 2n 4 n 1 {1, 2,..., n 1} i i 1 i n 2 i i i n 1 n 2 n 2n 4 n 1 B 0 B B 1 + n 2 + n (B + 1) = 2n 4
T s (T, s) s a b a
a b (u, v) u u s u t Probe(v) (u, v) u t + 2 v (u 1, v 1 ), (u 2, v 2 ) u 1, u 2 u 1 u 2 s u 1 u 2 t Split(v 1, v 2 ) (u 1, v 1 ) u 1 (u 2, v 2 ) u 2 < u 1, u 2 > dist(u 1, u 2 ) u 1 u 2 t + dist(u 1,u 2 ) + 2 2
u u v e v e u e e s (a) v (b) v u u z v v z (c) e e Cautious-Walk Probe 4 Probe Split T s e = (u, v) T v u
e v e v u = s (w, u) w u e e = (u, v) e = (v, z) v u z v u 2 6 6 3 1 3r r T T 2 T Split T s u T v = H(u) v = L(u) u v u T (v) u H(u) L(u) u m m s
(m, x) (m, y) m Split(x,y) (m, L(m)) m (m, L(m)) Split (m, L(m)) Probe(L(m)) m m m 2 next := s v := next (v, x), (v, y) v x, y v, L(v) v w v next := w v t v next := t next (v, z) v z = L(v) next := v s Explore-only-child(v) v (v, L(v)) w v w L(v) (w, H(w)) (v, L(v)) Split(H(w),L(v)) w
w v L(v) (v, L(v)) a v L(v) (D(a), H(D(a))) D(a) a (v, L(v)) Split(H(D(a)),L(v)) D(a) (v, L(v)) Probe(L(v)) v Split 6 2 4 4 n 4(n 1) 2l l n 2(n 1) n 1 4 5 3 v v s v
Split v Probe v 2 + 1 2 2 + 1 O( 2 )
P = NP
9.3 G s S s S S (G, S, s) G G G S s S X
M new safe nodes of a bridge : old node island center island : new unsafe node island (G, S, s) X G n e G G G 2 M = 4e + 5n 1 s n s s G n = n + (M + 2)e S Me + 1 s X = M(n + 1) 1 G C G s G M(n + 1) 1 C C v
C s G M(n + 1) G G G s G = (V, E) R V G R T α α = 1 + 3 < 1.55 2 x G s y T s y s (x + y) 1.55(x + y ) v v s v v v G (u, v) v u T 4 (u, v) v T 2 v 1 v u v 4(x + y) G 4(x + 3 y )
T s next := s v := next z v z w v next := w v t v next := t next s α < 1.55 6α < 9.3 6
BHSp 3 cphc BHSp cphc 2 G = (V, E) 3 (x, y) E G (x, y) dbhsp G = (V, E ) s V X G s X cphc 3 G n (x, y) G s G 5n + 2 G G n n 1 4
3 3 8 1 + ε ε < 1 P = NP 388 M TSP(1,M) 1 + ε ε < 1 388 (G, d) (G, S, s) (1 + ε) 1 + ε ε < 1 P = NP 388 1 2 1 + ε ε < 1 P = NP 2258
3 3
k 2 t
k k
dir dir k 3
BHS-Ring-2 BHS-Ring-2 4 5 BHS-Ring-3 BHS-Ring-3
u u b 5 k, t k t
BHS-torus-33 w
w w 3 3
t t t < n/3 n t = n/3 1 V = {p 1, p 2,, p n } n X D v Π V X D x D X p i y i X Π y i y i S yi
x x x x x x x x x x x x x y x y x, y?? p i, p j y j = y i D x D
x x x y y x y?? t < n/3 t < c/2 c t c/2
G = (V, E) V E D x D X Π x D x D D D (D, v), v V D x D X R R x D x D G = (V, E) V E
t t t t t t
Z Z V V Z 2 V, Z Z, Z Z, Z Z
v v t t
t G D t t t t < n/3 t t t t t
t t t G D K(G, D) t < K(G, D)/2 t t < K(G, D) K(G, D)/2 1 t < K(G, D) X (G, D) K(G, D) X (G, D) t M(G, D, t) t t G D M(G, D, t) t + 1 t M(G, D, t)
T (G, D) = {t N M(G, D, t) t + 1} t (G, D) M(G, D, t) t G D t G, D t G = (V, E) N (v) v G G V (G) t A t v V, A N (v) t t G D A t t G, D t A G, D
v D v t D x D x X X D x D X x D v N (D) x D x D x D v / N (D) D t(v) + 1 x t(v) + 1 x x G D t (G, D) t t G D t t (G, D) X t < X t X 1 t t X (G, D) b v b D X (G, D) 2t + 1 G k 2t + 1 k 1
k D k k t + 1 k 1 k k k + 1 t + 1 X /2 1 t k k k k L k (G, D) G = (V, E) D V \ {D} = m i=1 L i, m N L 1 =N (D), L 2 ={v V \ L 1 : N (v) L 1 k} m 1 m 1 L m ={v V \ L j : N (v) L j k} j=1 k k G = (V, E) D V \ {D} = m i=1 L i, m N j=1 L 1 = N (D), v L i : N (v) i 1 j=1 L j k k k k k
k L V = m i=1 L i, m N u L h L L d 1 < d < h m N (u) d 1 j=1 L j k k k k L k L k k G D k N k G, D k G, D k k L k (G, D) k L V = m i=1 L i, m N 1 < d < h m u L h N (u) d 1 j=1 L j k L : V = L 1 L 2... {L d {u}} {L h \ {u}} L m = k k L k L k k k L : V = m i=1 L i v v L i { } d 1 i = d {1,..., m} N (v) L j k k j=1 m i=1 L i
k L k G D k L = {L 1,, L m }, L = {L 1,, L h} L 1 = L 1 i L i L i v, v L i v / L i v L i L i k K G D K(G, D) def. = {k N k L k (G, D)} G D t N t < K(G, D)/2 t 2t < K(G, D) (2t + 1) L 2t+1 (G, D) L 2t+1 (G, D) {L 1,..., L m } V V = m i=1 L i 1 i m v L i x D i v L 1 = N (D) x D u L i, 1 i h x D v L h+1 h j=1 L j N (v) 2t + 1 t + 1 v x D G D t K(G, D)/2 1 t < K(G, D)/2 t t t + 1 (G, D) (K(G, D) 1) (G, D)
D t + 1 players } 2t subsets v 1 v 2 v 2t K 2t } K(G, D) = t + 1 t
t D 2t 2 + 2t v 1,..., v 2t 2t N (D) t = K(G, D) 1 G v i {v 1,..., v 2t } M M = M A + M B M A : N (D) M B : B = {v 1,..., v 2t } \ {v i } T i = T N (D) N (v i ) D v i M A = N (D) N (v i ) \ T i = t + 1 T i v i B C B1 = {v B v t N (D) } C B2 = {v B v } C B = C B1 C B2 C B1 N (v j ) N (D), v j B C B 1 = T (N (D) \ N (v i)) = t T i T :t T :t C B2 t T i B N (v i ) N (D) v i t C B C B = C B1 C B2 C B1 + C B2 (t T i ) + (t T i ) = 2t 2 T i M B = 2t 1 C B = 2t 1 2t + 2 T i = 2 T i 1 M (1), (2), (3) M = M A + M B t + 1 T i + 2 T i 1 = = t + T i v i T i > 0 M t + 1 T i = 0 v i t + 1 N (D) (G, D)
t K(G, D)/2 1 K(G, D) 1 K(G, D) 1 G D t t G D t K(G, D) t t K(G, D) t s s (G, D) G L i i v L i i v t + 1 L 1,..., L i 1 v L i N (v) i 1 j=1 L j t + 1. (t + 1) G D (t + 1) G D t K(G, D) t K(G, D) G D t < X (G, D) G = (V, E) D σ = (v 1, v 2,...) V \ (N (D) D) δ(w i, v) v N (D) {v 1,..., v i 1 } σ i, j, 1 i < j V \ (N (D) D) δ(w i 1, v i ) δ(w i 1, v j )
X (G, D) = {δ(w i 1, v i ) i = 1, 2,...} X (G, D)/2 1 t < X (G, D). K(G, D) X (G, D) K(G, D) = X (G, D) σ = (v 1, v 2,...) {L 1 = N (D), L 2 = {v 1 }, L 3 = {v 2 },...} X (G, D) X (G, D) X (G, D) K(G, D) X (G, D) (1) t < X (G, D) K(G, D) (K(G, D) 1) K(G, D) X (G, D) X (G, D) < K(G, D) t < K(G, D) 1 K(G, D) X (G, D) K(G, D) m G D K(G, D) t X (G, D) t < X (G, D) (1)
m (G, D) (G, D, m) m m m L m (G, D) t K(G, D) K(G, D) < v V \(N (D) D) (v) = δ K(G, D) δ K(G, D)/2 1 t K(G, D) t t K(G, D) t /2 1 G K(G, D) = t + 1 t K(G, D) δ O( E ) O( E δ) X (G, D) O( V ( V + E )) <
t t T G = (V, E) G T = (V \ T, E ) G V \ T G D t t M(G, D, t) = K(G T : t T, D) G = (V, E) D t M(G, D, t) t + 1 ( ) M(G, D, t) t + 1 T V \ D t K(G T, D) t + 1 (t + 1) L t+1 (G T, D) = {L 1,..., L m } v t + 1 L t+1 (G T, D) v x D ( ) t t T G T x D m N L i = {v V \ T v i i {1,..., m} (L i ) m i=1 (t + 1) G T D L 1 = N (D) \ T L 2 = {v V \ T N (v) L 1 t + 1} t + 1 L k = {v V \ {T k 1 j=1 L j} : N (v) k 1 j=1 L j t + 1} L k+1 = {v V \ {T k L j } : N (v) j=1 k L j t + 1} k + 1 t + 1 T t j=1 T (G, D) = {t N M(G, D, t) t + 1}
T (G, D) t (G, D) = T (G, D) t M(G, D, t) t K(G T, D) t t = T (G, D) δ M(G, D, t) δ V \ (N (D) D) t G D t t A t A t G D t G, D t (G, D) M(G, D, t) = K(G T : t T, D) t t T G T (t + 1) (t + 1) V T = V \ (T {D}) L 1 = N G T (D), L i = {v V T \ i 1 j=1 L j : N G T (v) i 1 j=1 L j t + 1}, 2 i m
T H. D..... w A At most t neighbors in A B G A, B, T h N j h, L j = h i=1 L i V T h h N h 2 h = 1 G T D T h A = L i B = V T \ A (t + 1) i=1 w B, N G T (w) A t h i=1 L i V T B H = (N G T (w) A) H G T D B G A, B, T G G (u, v) E = {(u, v) u, v A T } H t G A T w B, N G T (w) H t t A t G D σ σ A w B σ G D x D = 0 T
σ T σ G D x D = 1 H σ H T, H G, G t H T D B G G σ, σ w B A t G D w 0 σ G σ G 1 A t t t G D G 1 G D t t t G D G t
G t < LP C(G, D) a t-locally resilient algorithm a t-locally resilient safe Ad-Hoc algorithm CPA is t-locally resilient (t T (G, D)) t < K(G, D)/2 t < X (G, D)/2 t < X (G, D)/2 t LP C(G, D) X (G, D) X (G, D) t t
n/3, n = V, D V T (G, D) T (G, D) D V M(G, D, t) n/3 ( ) t n/3 1, T (G, D) D V K(G, D) t t < n/3 n t = n/3 1
t < c/2 c t t t n > 3t t + 1
k k 2
k = 2 A B n = 3 k
O(n 2 ) O(1) O(n 2 ) O(n) O(1) O(1) O(n) O( n) O(1) O(n) O( n) O(n) A =< S, δ, s 0 > S s 0 halt δ : S C P S M C = {H, T } P = {present, notpresent} M = {left, right} heads 0.5 δ left right stay
M heads right left d n/2 n d (n d) 2 E d d n E 0 = 0 E n/2 = 1 + (1/2)E n/2 + (1/2)E n/2 2 E n/2 = 2 + E n/2 2. 1/2 d 1/4 d 1/4 E d = 1 + (1/2)E d + (1/4)E d 2 + (1/4)E d+2, d = 2, 4,..., n/2 2 d = n/2 n/2 d + 2 d E d d 4 E d = 2E d 2 E d 4 4.
E 0 = 0 E 4 = 2E 2 4. 2d n/2 E 2d = de 2 2d(d 1). a d, b d E 2d = a d E 2 4b d. E 2d = 2E 2d 2 E 2d 4 4 = 2 (a d 1 E 2 4b d 1 ) (a d 2 E 2 4b d 2 ) 4 = (2a d 1 a d 2 )E 2 4(2b d 1 b d 2 + 1), a d = 2a d 1 a d 2 b d = 2b d 1 b d 2 + 1 a 0 = b 0 = 0, a 1 = 1, b 1 = 0 a d = d b d = 1d + 1 2 2 d2 E 2d E 2 ( n ) 4 1 E n/2 = n 4 E 2 2 n 4 E n/2 2 = ( n ) ( n ) ( n ) 4 1 E 2 2 4 1 4 2, E 2 = n 2 E 2d = d(n 2d). d = Θ(n) n d
0 1 2 = 0 0 p 1 4 d n/2 n O(n) (2p(1 p))(1 2p(1 p)) i 1 1 i = (2p(1 p)) i=1 n n 2 ( n 1 2p(1 p) 1 ) + n 2 = n(1 p(1 p)) 2p(1 p) O(n) p 1 2 O(n) n
heads right n/2 left n/2 O( n) d n/2 n O(n) 2 n/2 n O(n) d > 0 n/2 + O(1) O( n) O( n) n/2 2 O(n) k heads dir = right dir = left 2 k heads dir
O(2 2k ) k d n/2 n ( ) n 2 O + 2 2 k 2 2k n Θ(n) n Ω( n) n k k 1 (k, n) = 1 k k f k n k (k, n) 1 k k
n k n k n k s 1,..., s h s 1 s h h = k f S = d 1,..., d h h = k f + 1 S = d 1,..., d h 1 = s 1 + s h, s 2,..., s h 1 (k, n) 1 k k S R S S S R n lexi(somesequence) somesequence m = k f O(k n) n (k, n) 1 k k f (k 1) 2n
forward lexi(string) reverse lexi(string R ) x y x = y x x y x y s 1,..., s h S = d 1,..., d m = s 1,..., s h S = d 1,..., d m = s 1 + s h, s 2,..., s h 1 (S) k n n n k 3k S R S S R S R = Q q + d γ,..., d 1,
Q q q Q + d γ,..., d 1 γ < Q Q 3k S d 1, d 2,..., d 3k S R S Q S R S R Q q + d γ,..., d 1 γ < Q (Q) O(k n) k (k, n) 1 k k f (k 1) O(kn) m = k f A δ 1,..., δ m m f m i=1 δ i = n S(a) 3k a 3 S R (a) S(a) A R A 3k S R (a) = (A R ) ρ + d γ,..., d 1 = (δ m,..., δ 1 ) ρ + d γ,..., d 1. (A R ) ρ ρ A R + d γ,..., d 1 γ < m A R A R k (k, n) = 1 k k A R A R 5 Q 5 z z S R
z S R 5 S 3k O(k n) O(kn) 5 O(kn) O(kn) S R k n k k
t n t n S 1 = S 2 = S 3 = r = 0 n S = (s 1,..., s h ) S = d 1,..., d m = s 1,..., s h S = d 1,..., d m = s 1 + s h,..., s h 1 t = 0 MeetingP oint(s) t n t S 1 = S 2 S 2 = S 3 S 3 = S S 1 = S 2 = S 3 n r = r + 1 3
O(k n) n (k, n) = 1 k k f (k 1) O(kn) n n n n k + 2 O(kn) k n n k u u n k n n k 1
r = 0 r k r S = (d 1,..., d k r ) n ˆn k r i=1 d i S 2ˆn r r + 1 3 S LMR S t = 0 S LMR t 2ˆn t k 1 < v < k r = r + 1 3 3ˆn 2 a n r 0 r k 1 τ a τ r 1 a S S f r f + 1 O(k n) k (k, n) = 1 k k f (k 1) O(k 2 n)
f k 1 f + 1 r f a r f + 1 t 0 a r f + 1 f a n r f + 1 ˆn = n a f f k 1 k k(n 1) O(k 2 n) k n 1 O(k n) n k O(n) O( n) O(n k) O( k) n O(n) O(k n) k O(k n) O(k n) n O(k n) O(k n) k O(k 2 n) O(k n) n Θ( n) O( n)
n 1 f : V V O( n) n
τ L 1, L 2 l n D 1 n O(n + l) n Ω(n + l) Θ(D l) n Ω(n + D l) O(D D l)
u s(u) 1 s(u) 0 u s(u) u 1 s(u) k n n k O(k 2n )
5 5