Saar - Webcourse

Distributed algorithms:
Symmetry breaking
Based On:
R. Cole and U. Vishkin
A. Goldberg, S. Plotkin and G. Shannon
Presented by Saar Eliad
Section 1:
2-ruling set
“Deterministic
Coin Tossing”
•
Mission 1
Find a 2-ruling set in a ring.
Ring
R ruling Set
R ruling Set
B
A
R ruling Set
B
R=2
A
C
Definitions:
SERIAL0
SERIAL1
SERIAL(k)
LOCAL_MIN
LOCAL_MAX
SERIAL0
Serial 0
Bit representation
1
0
0000
2
6
0001
0010
0110
5
4
0101
0100
8
7
2
1000
0111
0010
SERIAL1
0000
0001
0010
0110
0101
0100
1000
0111
0010
SERIAL1
0000
0001
0010
0110
0101
0100
1000
0111
0010
SERIAL1
0000
0001
0010
0110
0101
0100
1000
0111
0010
SERIAL1
0
0
0
2
1
2
3
0
2
SERIAL(2)...SERIAL(k)
00
00
00
10
01
10
11
00
10
LOCAL_MIN
0
0
0
2
1
2
3
0
2
LOCAL_MAX
0
0
0
2
1
2
3
0
2
Why do we talk about
local min,
local max?
Distance from one local extremum to
the next:
serial(1)?
serial(k)?
≤ log(𝑛)
≤ log
𝑘
(𝑛)
Deterministic Coin
Tossing:
Deterministic way for
Getting rid of neighbors!
0
0
0000
0
2
0001
0010
1
2
3
2
0
Step K:
• Compute serial(k)
• Select (from extremums)
• Remove (selected & adjacent )
Step K:
• Compute serial(k)
• Select (from extremums)
• Remove (selected & adjacent )
Repeat while G is not empty!
Step K:
• Compute serial(k)
Which?
• Select (from extremums)
• Remove (selected & adjacent )
Repeat while G is not empty!
The “Basic Step”
(1)
(0)
0110
(0)
(1)
(0)
(0)
(1)
(0)
(1)
The “Basic Step”
(1)
(0)
(0)
(1)
(0)
(0)
(1)
(0)
(1)
SELECT: Min && (1)
(1)
(0)
(0)
(1)
(0)
(0)
(1)
(0)
(1)
Available && (noAvailNieghbor || (1))
(1)
(0)
(0)
(1)
(0)
(0)
(1)
(0)
(1)
Available && (noAvailNieghbor || (1))
(1)
(0)
Available
&& (1)
(0)
(1)
(0)
(0)
(1)
Available
&& no
Available
Neighbors
(0)
(1)
Available
&& no
Available
Neighbors
Special cases
• Deg(v) = 0
• Deg(v) = 1
• Deg(v) = 2 && neighbors’ deg = 2
Apply “Basic Step”
Complexity
• “Basic step” is O(1)
• The Algorithm ends after log*(n) steps.
•
•
At step 0 we have a ring.
After step K:
“chains” with length ≤ log
𝑘
𝑛
Correctness
Every node:
•
Selected
XOR
•
Its neighbor was selected.
Extra example
Serial0
8
0
13
4
6
12
14
2
3
11
15
10
5
7
1
9
Serial0
1000
0000
1101
0100
0110
1100
1110
0010
0011
1011
1111
1100
0101
0111
0001
1001
serial1(serial0[serial1])
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
MIN
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
WAIT FOR IT
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
MIN(0),MIN(1)
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
Max?
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
Remove
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
Special Cases
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
Done!
3(1)
0(0)
0(1)
2(1)
1(1)
3(1)
0(0)
1(1)
2(0)
0(1)
1(1)
0(0)
2(1)
0(1)
1(0)
1(0)
Section 1: warp-up
2-ruling set
“Deterministic
Coin Tossing”
Section 2:
6-color
rooted trees
3-color
rooted trees
HI. I AM A TREE
HI. I AM ROOTED A TREE
PROCESSOR ID
𝑐 ∈ {3,4,5}
0
2
3
9
13
15
4
7
6
12
1
5
14
8
10
11
PROCESSOR ID - BITS
0000
0010
0011
1001
1101
1111
0100
0111
0110
1100
0001
0101
1110
1000
1010
1011
SERIAL1…
Q: Why do we
need the bit in () ?
00(0)
01(1)
00(1)
01(0)
10(1)
10(1)
00(0)
00(1)
10(1)
11(1)
00(1)
00(1)
00(0)
00(0)
10(1)
00(1)
 REPEAT
CONCATENATE
Last time
000
011
001
010
101
101
000
001
101
111
001
001
000
000
101
001
LAST REPETITION
Complexity: O(log*n)
00(0)
00(1)
00(1)
00(0)
00(1)
10(1)
00(0)
00(1)
01(1)
01(1)
00(1)
01(0)
00(1)
00(0)
00(1)
00(1)
Correctness
(6 coloring)
Induction:
• Base:
• Step:
Goal:
Decrease the colors in O(1)
(Get rid of colors {3,4,5})
How?
SHIFT-DOWN
0
3
4
1
3
0
0
0
+ recolor
6 color
0
3
3
0
3
1
0
3
2
4
3
5
4
0
3
3
SHIFT DOWN (1)
1
0
0
3
0
3
3
0
3
0
0
3
3
5
0
0
SHIFT DOWN (2) – Re-Color
𝑐 ∈ {3,4,5}
1
0
0
3
0
3
3
0
3
0
0
3
3
5
0
0
SHIFT DOWN (2) – Re-Color *
𝑐 ∈ {3,4,5}
1
0
0
2
0
2
2
0
2
0
0
2
5
2
0
0
SHIFT DOWN (2) – Re-Color *
𝑐 ∈ {3,4,5}
1
0
0
2
0
2
2
0
2
0
0
2
0
2
0
0
Why do we need 3 iterations?
𝑐 ∈ {3,4,5}
Example:
0
3
5
0
Complexity
• Log*(n) for 6 coloring.
• Total 3 shift-downs, each shift is O(1).
• Total => log*(n)
Complexity
• Log*(n) for 6 coloring.
• Total 3 shift-downs, each shift is O(1).
• Total => log*(n)
Correctness
Section 2: warp-up
6-color
rooted trees
3-color
rooted trees
Section 3:
Δ + 1 coloring
constant degree graphs
Pseudo Forests
Pseudo Forests
𝐺 = (𝑉, 𝐸)
𝐺 ′ = (𝑉, 𝐸 ′ )
Maximal Pseudo Forests
𝐺 = (𝑉, 𝐸)
𝐺 ′ = (𝑉, 𝐸 ′ )
Maximal Pseudo Forests
𝐺 = (𝑉, 𝐸)
𝐺 ′ = (𝑉, 𝐸 ′ )
Maximal Pseudo Forests
𝐺 = (𝑉, 𝐸)
𝐺 ′ = (𝑉, 𝐸 ′ )
Step1
𝐺 = (𝑉, 𝐸)
𝐺1′ = (𝑉, 𝐸1′ )
Step1, cont
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
Step1, end
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
Initial coloring
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
Initial coloring
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
Same color
𝐺2′ = (𝑉, 𝐸2′ )
Initial coloring
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
3 color
rooted
trees
𝐺2′ = (𝑉, 𝐸2′ )
Initial coloring
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
3 color
rooted
trees
𝐺2′ = (𝑉, 𝐸2′ )
Step 2, Generally:
• Merge , fix (1)
• Merge , fix (2)
• ….
• Merge , fix (Δ)
Step 2: Merge (1)
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
Step 2: Merge (1)
𝐺1′ = (𝑉, 𝐸1′ )
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
Step 2: Merge (1), fix
𝐺 = (𝑉, 𝐸)
Step 2: Merge (1), fix
𝐺 = (𝑉, 𝐸)
Step 2: Merge (1), fix
𝐺 = (𝑉, 𝐸)
Step 2: Merge (1), fix
𝐺 = (𝑉, 𝐸)
Step 2: Merge (1), fix
𝐺 = (𝑉, 𝐸)
Step 2: Merge (2)
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
Step 2: Merge (2)
𝐺 = (𝑉, 𝐸)
𝐺2′ = (𝑉, 𝐸2′ )
3 Δ + 1 Valid coloring
Step 2: Merge (2), fix…
𝐺 = (𝑉, 𝐸)
Step 2: Merge (2), fix…
𝐺 = (𝑉, 𝐸)
Step 2: Merge (2), fix…
𝐺 = (𝑉, 𝐸)
Step 2: Merge (2), fix…
𝐺 = (𝑉, 𝐸)
Step 2: Merge (2), fix…
𝐺 = (𝑉, 𝐸)
Step 2: Merge (2), fix…
𝐺 = (𝑉, 𝐸)
Δ + 1 Coloring
𝐺 = (𝑉, 𝐸)
Complexity
• Step 1:
•
•
•
•
•
Each pseudo forest takes 𝑂(1) to create
We create Δ pseudo forests.
(After Δ pseudo forests, E is empty.)
Coloring in parallel: 𝑂 log ∗ 𝑛
=> 𝑂 Δ + log ∗ (𝑛)
• Step 2:
•
•
•
Δ iterations
Each iteration is 𝑂(Δ)
=> 𝑂(Δ2 )
Complexity
• Step 1:
•
•
•
•
•
Each pseudo forest takes 𝑂(1) to create
We create Δ pseudo forests.
(After Δ pseudo forests, E is empty.)
Coloring in parallel: 𝑂 log ∗ 𝑛
=> 𝑂 Δ + log ∗ (𝑛)
• Step 2:
•
•
•
Δ iterations
Each iteration is 𝑂(Δ)
=> 𝑂 Δ2
• Total: 𝑂(Δ2 + log ∗ (𝑛))
Section 3: warp up
Δ + 1 coloring
constant degree graphs
Pseudo Forests
FROM Δ + 1 TO MIS
SUMMARY
Deterministic coin tossing
2-ruling-set in a ring
3-color-rooted trees
Pseudo Forests
Δ + 1 coloring constant degree graphs
QUESTIONS?
THANK YOU!