SLIDE 1
001 010 011 100 101 110 111 000
The angular blowing-a-kiss
and Martijn Struijs
problem
Kevin Buchin, Irina Kostitsyna, Roel Lambers,
SLIDE 2 The angular blowing-a-kiss problem
- n oriented agents in the plane
SLIDE 3 The angular blowing-a-kiss problem
- n oriented agents in the plane
- stationary, but can rotate
SLIDE 4 The angular blowing-a-kiss problem
- n oriented agents in the plane
- stationary, but can rotate
- a pair of agents oriented towards eachother can scan
SLIDE 5 The angular blowing-a-kiss problem
- n oriented agents in the plane
- stationary, but can rotate
- a pair of agents oriented towards eachother can scan
- how long does it take to scan all pairs?
SLIDE 6 The angular blowing-a-kiss problem
- n oriented agents in the plane
- stationary, but can rotate
- a pair of agents oriented towards eachother can scan
- how long does it take to scan all pairs?
SLIDE 7 The angular blowing-a-kiss problem
- n oriented agents in the plane
- stationary, but can rotate
- a pair of agents oriented towards eachother can scan
- how long does it take to scan all pairs?
SLIDE 8 Related work
- kissing problem [Bender et al. 2014]
- angular freeze-tag [Fekete, Krupke 2018]
- scan cover for general graphs [Fekete, Kleist, Krupke 2020]
SLIDE 9 Problem description
- rotations take time proportional to their angle
π/2 time π time
SLIDE 10 Problem description
- rotations take time proportional to their angle
π/2 time π time
- goal: find a schedule that minimizes makespan
π/3 π/3 makespan: 2π/3
SLIDE 11 Problem description
- rotations take time proportional to their angle
π/2 time π time
- goal: find a schedule that minimizes makespan
π/3 π/3 makespan: 2π/3
- synchronous schedule: ⌊n/2⌋ simultaneous scans per round
synchronous asynchronous
- synchronous schedule: ⌊n/2⌋ simultaneous scans per round
synchronous asynchronous
- synchronous schedule: ⌊n/2⌋ simultaneous scans per round
synchronous asynchronous
- synchronous schedule: ⌊n/2⌋ simultaneous scans per round
synchronous asynchronous
SLIDE 12 Results
line/1D uniform circle general 2D async. π(⌈log n⌉ − 1) ∼ π log n π( 3
2⌈log n⌉ − 1 2)
sync. π(⌈log n⌉ − 1) 2π log n a – LB π(⌈log n⌉ − 1) ∼ π log n –
awhen n is a power of 2
SLIDE 13 Results
line/1D uniform circle general 2D async. π(⌈log n⌉ − 1) ∼ π log n π( 3
2⌈log n⌉ − 1 2)
sync. π(⌈log n⌉ − 1) 2π log n a – LB π(⌈log n⌉ − 1) ∼ π log n –
awhen n is a power of 2
SLIDE 14
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise
SLIDE 15
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 1:
SLIDE 16
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 1:
SLIDE 17
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 1:
SLIDE 18
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 1:
SLIDE 19
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 1:
SLIDE 20
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 2:
SLIDE 21
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 2:
SLIDE 22
Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise phase 3:
SLIDE 23 Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise
scan pairs at distance 2ℓ−1(2i + 1) for i = 0, . . . , 2k−ℓ − 1 phase 3:
SLIDE 24 Synchronous on a circle with n = 2k
for phase ℓ = 1, . . . , k: scan pairs that differ in ℓ-th bit 001 010 011 100 101 110 111 000 1-bit agents rotate clockwise 0-bit agents rotate counter-clockwise
scan pairs at distance 2ℓ−1(2i + 1) for i = 0, . . . , 2k−ℓ − 1
π per phase to scan pairs π between phases 2π log n in total phase 3:
SLIDE 25
Synchronous on a line
p1 p2 pn · · · pn−1 · · ·
SLIDE 26 Synchronous on a line
Algorithm: iteratively construct schedule Sn with rules:
- 1. Sk → Sk−1 if k even, with the same time
- 2. Sk → S2k, adding π time
base case: S2, with 0 time p1 p2 p1 p2 pn · · · pn−1 · · ·
SLIDE 27 Synchronous on a line
Algorithm: iteratively construct schedule Sn with rules:
- 1. Sk → Sk−1 if k even, with the same time
- 2. Sk → S2k, adding π time
base case: S2, with 0 time p1 p2 S2 Sn with ⌈log(n/2)⌉ applications of rule 2, so π(⌈log n⌉ − 1) time in total Time: p1 p2 pn · · · pn−1 · · ·
SLIDE 28 Synchronous on a line
- 1. Sk → Sk−1 if k even, in the same time
SLIDE 29 Synchronous on a line
- 1. Sk → Sk−1 if k even, in the same time
p1 p2 pk−1 · · · pk · · · pj round i of Sk:
SLIDE 30 Synchronous on a line
- 1. Sk → Sk−1 if k even, in the same time
p1 p2 pk−1 · · · pk · · · pj round i of Sk: p1 p2 pk−1 · · · · · · pj round i of Sk−1: bye: pj pk
SLIDE 31 Synchronous on a line
- 2. Sk → S2k, adding π time
SLIDE 32 Synchronous on a line
- 2. Sk → S2k, adding π time
p1 p2 · · · pk pj · · · Sk . . . . . . . . . . . .
SLIDE 33 Synchronous on a line
- 2. Sk → S2k, adding π time
p1 p2 · · · pk pj p′
1
p′
2
p′
k
p′
j
· · · · · · · · · Sk . . . . . . . . . . . . mirror(Sk) . . . . . . . . . . . .
SLIDE 34 Synchronous on a line
- 2. Sk → S2k, adding π time
p1 p2 · · · pk p′
1
p′
2
p′
k
· · · · · · · · · Sk . . . . . . . . . . . . mirror(Sk) . . . . . . . . . . . . pj p′
j
SLIDE 35 Synchronous on a line
- 2. Sk → S2k, adding π time
p1 p2 · · · pk p′
1
p′
2
p′
k
· · · · · · · · · Sk . . . . . . . . . . . . mirror(Sk) . . . . . . . . . . . . pj p′
j
SLIDE 36 Synchronous on a line
- 2. Sk → S2k, adding π time
p1 p2 · · · pk p′
1
p′
2
p′
k
· · · · · · · · · Sk . . . . . . . . . . . . mirror(Sk) . . . . . . . . . . . . pj p′
j
· · · · · · · · · · · · p1 p2 pk pj p′
1
p′
2
p′
k
p′
j
pj p′
j
final rounds: scan bipartite graph between left and right
SLIDE 37
Example: S2 → S4 → S3 → S6
p1 p2 S2
SLIDE 38
Example: S2 → S4 → S3 → S6
p1 p2 p3 p4 S4
SLIDE 39
Example: S2 → S4 → S3 → S6
p1 p2 p3 p4 S4 p1 p2 p3 p4 p1 p2 p3 p4
SLIDE 40
Example: S2 → S4 → S3 → S6
p1 p2 p3 p4 S4 p1 p2 p3 p4 p1 p2 p3 p4
SLIDE 41
Example: S2 → S4 → S3 → S6
p1 p2 p3 p1 p2 p3 p1 p2 p3 S3
SLIDE 42
Example: S2 → S4 → S3 → S6
p1 p2 p3 p1 p2 p3 p1 p2 p3 S6 p6 p5 p4 p6 p5 p4 p6 p5 p4
SLIDE 43
Example: S2 → S4 → S3 → S6
p1 p2 p3 p1 p2 p3 p1 p2 p3 S6 p6 p5 p4 p6 p5 p4 p6 p5 p4
SLIDE 44
Example: S2 → S4 → S3 → S6
p1 p2 p3 p1 p2 p3 p1 p2 p3 S6 p6 p5 p4 p6 p5 p4 p6 p5 p4 p1 p2 p3 p6 p5 p4 p1 p2 p3 p6 p5 p4
SLIDE 45
Example: S2 → S4 → S3 → S6
p1 p2 p3 p1 p2 p3 p1 p2 p3 S6 p6 p5 p4 p6 p5 p4 p6 p5 p4 p1 p2 p3 p6 p5 p4 p1 p2 p3 p6 p5 p4
SLIDE 46 Conclusion
Results: Work in progress:
- synchronous solutions for more general cases
- complexity of finding optimal solutions in 2D
line/1D uniform circle general 2D async. π(⌈log n⌉ − 1) ∼ π log n π( 3
2⌈log n⌉ − 1 2)
sync. π(⌈log n⌉ − 1) 2π log n a – LB π(⌈log n⌉ − 1) ∼ π log n –
awhen n is a power of 2
line/1D uniform circle general 2D async. π(⌈log n⌉ − 1) ∼ π log n π( 3
2⌈log n⌉ − 1 2)
sync. π(⌈log n⌉ − 1) 2π log n a – LB π(⌈log n⌉ − 1) ∼ π log n –
awhen n is a power of 2
line/1D uniform circle general 2D async. π(⌈log n⌉ − 1) ∼ π log n π( 3
2⌈log n⌉ − 1 2)
sync. π(⌈log n⌉ − 1) 2π log n a – LB π(⌈log n⌉ − 1) ∼ π log n –
awhen n is a power of 2