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 d < n d < n d n d < n d n 3n d n 4 5n 4
d < n 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 d 3n 5n 4 6 d < n d = n 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 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/ do until if then d = n = = 0 t d n/ t t < t d = n/ = = 0 t
t < t t 1 1 1 < 1 d = n/ do until if then if then t t 1 t t 1 n n d = n 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/ t d DM MCL MCC d MCL MCC d d t t 1 t t t
t 1 t d = n d < n d < n n d < n d d d d 3d 3d d = n 1 3n O(1) 4 d d n d n d n+d n+d d = n 1 3n O(1) n 4 n d m m = d m = n d n
d n + d n + d n d d = n 1 5n O(1) 4 n d d n O( d) d d n 3n 4 d 5n 6 d < n n d < n d, n d < n d n O( d) d d d d 3d d < n 3n 4
d d d O( d) d d d d d d < n 3 d d d 5d d < n 5n n d < n 3 6 3 d n d n 3 d < n 5n 6 O( n) n n n n d n/
n+d d < n 3n 4 O( n) d n δ 1 δ δ 1 < δ n + d d < n 5n 4 d < n d = n O( n) 3 4 3d 3n 4 O( n) d < n RP RD
O( n) d = n d = n n d 5n 4 O( n) d = n ( ) n n O, n p 1,..., p k k k i=1 p i > n O( n) n m = p 1 δ 1 m δ m δ 1 m = δ m m = p k m < p k m = p i+1 4 δ 1 m < δ m 7 8 d O( n) d n n d d = n d = n d = n ) 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 d (n d) i=1 k p i, p i d < n p i d d = n k p 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. 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 k i=1 p i k i=1 i p i 8 k = k!8 k p i i=1 k!8 k Ω(k k).
n k k k k k n ( ) n k O n O(kn) O( n n n ) d n n d d = n d = n d = n n d = n 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 d = n d < n n d d < n n O( n) n d d < n n n d ( T O (d d )) + n d n T n d O(n 4 )
d < n d 1 i j r 1 id = j(n d) + r r 0 n d r > d 0 j < i r j i + j d n < j + 1 i + j + d 1 id + n d = (i 1)d + n j = i 1 i 1 i 1 d n < i i + 1 i 1 d i 1 i 1 n < k d i i 3 n d k d k n i i 3 d k n < i 1 i 1 d n d d k ( ) ( d k((i 1)d + n) k n d + n d i ) ( ) d i 3 n n d + n ( )) d O (d n d + n.
d < n/ O(n n) RD n 1 n RD RP 1 1 1 Θ(n ) 1 Θ(n ) Θ(n ) Θ(n ) Θ(n ) O(1) RP O(n ) 3 O(n) A B
O(n ) x y 3 y (x 1) 3 d n d t 1, t, t 3,... n-d A B d d A B B A A t i i t 1, t, 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/ t 1 = t 1 + δ < n O(n ) RP RD RD O(n )
n/ n d 1 n/ 1 n n/ n((n/ 1)/) + n/ = O(n ) O(n) t RD t 3 n RD t 3 O( t) O(mn) m ( ) m 1 t 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 t 3) k m C t n A t 1 B t 1 t 1 t 3 k
k k m n k ( k t 3) k m m k= ( ) k = t 3 ( ) m 1 t n 1 C t n 1 m m ( ) m 1 t n 1 O( t) t C t m ( ) m 1 t n 1 O(n 1 t t) O(n t 1 t t) RD t > O( t) O(n t 1 t t) n t = n O(n n) n
m n n m n m Θ( (σ)) σ RP RD A B 0 1 3 4 5 6 7 8 9 10 11 1 13 14 0 1 3 4 5 6 7 15 8 A (, ) B (10, 5) d(a, B) = ( { A 1 B 1, (n A 1 B 1 )}, { A B, (m A B )}) = ( { 10, (15 10 )}, { 5, (8 5 )}) = ( {8, 7}, {3, 5}) = (7, 3) (x 1, x ) (y 1, y ) n m (d 1, d ) d 1 = { x 1 y 1, (n x 1 y 1 )} d = { x y, (m x y )} n m
(n/, 0) n (0, m/) m (n/, m/) n, m D D = (n/, 0) D = (0, m/) D = (n/, m/) 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/ n
σ 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 σ n n n > σ
σ + (σ 1) (n + 1) < n t A B t B A σ n n n > σ s s A B A t A B B t B A s s π σ n n n > σ n > σ
π Ω( n) n n r σ = r n > σ 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/ m/ SameRing DifRing O(nm) O( n + m) c 1 c c c 1 c 1 c c 3 c 4 c 4 c 3 c 3 c 4 n m SameRing c 1 + c c 1 c Rendezvous
c 1 c = c > c 1 = c > c 1 c = c 1 c 3 + c 4 c 3 c 4 Rendezvous SameRing c 1 = c c 3 = c 4 n m DifRing RD c 1 c 5 c 6 c 5 c 1 / c 6 c 3 / Rendezvous c 5 = c 1 / c 6 = c 3 /
c 5 c 5 = c 1 c 6 c 6 c 3 / c 6, c 3 / c 5 c 1 / c 5, c 1 / 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 FindTokenHor
start FindTokenHor HorScan HorScan 4 FindTokenHor 5 FindTokenHor 1
T 1 T 7 7 FindTokenHor 7 7 HorScan FindTokenHor A B B A HorScan 4 FindTokenHor 1 FindTokenHor A T (B) B B T (A) A HorScan FindTokenHor HorScan 4 FindTokenHor 1 HorScan FindTokenHor 7
A B T 1 (A) T 1 (B) T (A) T (B) (a) (b) T 1 (A) T (A) T 1 (B) T (B) T 1 (A) T (A) T (B) T 1 (B) (c) (d) A B T T HorScan 4 FindTokenHor HorScan FindTokenHor
B A T 1 (B) T 1 (A) T (B) T (A) (a) (b) A B T HorScan 4 FindTokenHor HorScan FindTokenHor, 3 1 3 HorScan FindTokenHor VerScan FindTokenVer VerScan FindTokenVer
A B T (A) T 1 (A) T 1 (B) T (B) (a) (b) A B T HorScan FindTokenHor FindTokenVer FindTokenHor FindTokenVer O(nm) SearchTorus RD n n
start FindTokenVer FindTokenHor FindTokenVer O(n ) n n O(n )
T 1 (A) T 1 (B) T 1 (A) T (A) T 1 (B) T (B) (a) (b) T (B) T 1 (A) T (A) T 1 (B) (c) A B T n m
> 1 n t = 0, 1,,... t
RP t Θ(n /t) n