Deterministic distributed algorithms: using covering graphs for good and evil Jukka Suomela Helsinki Institute for Information Technology HIIT University of Helsinki, Finland 1 2 2 1 2 3 Braunschweig, 1 1 1 1 26 October 2010 2 3 1 2 2 1 1 2 2 1 1 1 3 2
Running example: Vertex cover problem • Vertex cover C : • “covers” all edges of the graph • each edge has at least one endpoint in C 2
Part I: Port-numbering model • Synchronous deterministic distributed algorithms in the port-numbering model 1 1 2 3 1 2 2 1 3
Distributed algorithms • Communication graph G G • Node = computer • e.g., Turing machine, finite state machine • Edge = communication link • computers can exchange messages 4
Distributed algorithms • All nodes are identical, run the same algorithm G • We can choose the algorithm • An adversary chooses the structure of G • Our algorithm must produce a correct output in any graph G 5
Distributed algorithms • Usually, computational problems are related to G the structure of the communication graph G • example: find a vertex cover for G • the same graph is both the input and the system that tries to solve the problem... 6
Port-numbering model • A node of degree d can 1 refer to its neighbours 1 2 3 1 by integers 1, 2, ..., d 2 2 • Port-numbering chosen 1 by adversary 1 2 2 1 1 3 1 2 7
Synchronous distributed algorithms 1. Each node reads its 4 own local input 1 • Depends on the problem, 3 1 2 2 for example: 2 • node weight 1 1 1 3 • weights of 2 incident edges • May be empty 8
Synchronous distributed algorithms 1. Each node reads its own local input 1 2. Repeat synchronous 2 2 communication rounds ... 1 1 1 3 2 9
Synchronous distributed algorithms 1. Each node reads its own local input 1 0 2. Repeat synchronous 2 2 communication rounds 1 0 until all nodes 1 1 1 3 have announced 1 2 their local outputs • Solution of the problem 10
Synchronous distributed algorithms 1. Each node reads its own local input 1 0 2. Repeat synchronous 2 2 communication rounds 1 0 until all nodes 1 1 1 3 have announced 1 2 their local outputs Example: Find a vertex cover C Local output of a node v indicates whether v ∈ C 11
Synchronous distributed algorithms • Communication round: each node 1 1.sends a message 2 2 to each port 1 1 1 3 2 12
Synchronous distributed algorithms • Communication round: each node 1 1.sends a message 2 2 to each port 1 1 (message propagation...) 1 3 2 13
Synchronous distributed algorithms • Communication round: each node 1 1.sends a message 2 2 to each port 2.receives a message 1 1 1 3 from each port 2 14
Synchronous distributed algorithms • Communication round: each node 1 1.sends a message 2 2 to each port 2.receives a message 1 1 1 3 from each port 2 3.updates its own state 15
Synchronous distributed algorithms • Communication round: each node 1 0 1.sends a message 2 2 to each port 1 2.receives a message 1 1 1 3 from each port 2 3.updates its own state 4.possibly stops and announces its output 16
Synchronous distributed algorithms • Communication rounds are repeated until all 1 0 nodes have stopped and 2 2 announced their outputs 0 1 • Running time = 1 1 1 3 number of rounds 1 2 • Worst-case analysis 17
Part II: Computability in port-numbering model • Impossibility of symmetry breaking • Covering maps and covering graphs: tools for proving more impossibility results 18
Symmetry can’t be broken • Input may be symmetric • symmetric graph 1 2 • symmetric port 2 numbering • identical local inputs 1 1 2 19
Symmetry can’t be broken • Same input X • Same algorithm 1 X 2 2 • Same initial state X 1 1 2 20
Symmetry can’t be broken • Same current state • Messages sent to port 1 1 are identical to each 2 2 other • Messages sent to port 2 1 1 are identical to each 2 other 21
Symmetry can’t be broken 1 2 2 1 1 2 22
Symmetry can’t be broken • Messages received from port 1 are identical to 1 each other 2 2 • Messages received from port 2 are identical to 1 1 each other 2 23
Symmetry can’t be broken • Same old state • Same set of 1 received messages 2 2 • Same deterministic algorithm 1 1 2 • Same new state 24
Symmetry can’t be broken • Same new state • Either none of 1 Z the nodes stops — 2 2 or all of them Z stop and produce 1 1 identical outputs Z 2 • Symmetry can’t be broken! • let’s generalise this... 25
Covering maps H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 f 1 2 2 Covering map f : V ’ → V 1 1 3 1 • surjection 2 • preserves neighbourhoods G = ( V , E ) • preserves port numbering 26
Covering maps H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 Covering map f : V ’ → V 1 1 3 1 • surjection 2 • preserves neighbourhoods G = ( V , E ) • preserves port numbering 27
Covering maps H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 Covering map f : V ’ → V 1 1 3 1 • surjection 2 • preserves neighbourhoods G = ( V , E ) • preserves port numbering 28
Covering maps H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 Covering map f : V ’ → V 1 1 3 1 • surjection 2 • preserves neighbourhoods G = ( V , E ) • preserves port numbering 29
Covering maps H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 Covering map f : V ’ → V 1 1 3 1 • surjection 2 • preserves neighbourhoods G = ( V , E ) • preserves port numbering 30
Covering maps and covering graphs H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 1 1 H is a covering graph of 3 1 G if there is a covering 2 G = ( V , E ) map f : V ’ → V 31
Covering maps and covering graphs • Run the same algorithm in G and H • v ’ ∈ V ’ and f ( v ’) ∈ V have the same input for all v ’ • Then v ’ ∈ V ’ and f ( v ’) ∈ V : G = ( V , E ) 1 2 • have identical initial states 2 1 1 3 1 • send and receive the same messages 2 • have identical state transitions H = ( V ’, E ’) 1 2 2 1 • produce identical 2 3 1 1 1 1 local outputs ! 2 3 1 2 2 1 32
Covering maps and covering graphs H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 1 1 Same output 3 1 2 G = ( V , E ) 33
Covering maps and covering graphs H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 1 1 Same output 3 1 2 G = ( V , E ) 34
Covering maps and covering graphs H = ( V ’, E ’) 1 2 2 1 2 3 1 1 1 1 3 2 1 2 2 1 1 2 2 1 1 Same output 3 1 2 G = ( V , E ) 35
Covering maps and covering graphs • Symmetric cycles are a simple special case of covering maps 1 G = ( V , E ) H = ( V ’, E ’) 2 2 2 1 1 1 2 Same output 36
Computability in the port-numbering model • Very limited model 1 • in a cycle, we can only 2 2 find a trivial solution: empty set, all nodes, ... 1 1 • we can’t even break 2 symmetry in a 2-node network! 1 1 • What can be solved ? 37
Part III: Algorithms in port-numbering model • Some problems can be solved in the port-numbering model... • and covering graphs can be used as an algorithm design technique, too! • Example: vertex cover approximation 38
Symmetry breaking out of thin air: bipartite double covers • Replace each node by two virtual nodes : black and white • original nodes simulate virtual nodes • each computers runs two programs in parallel: “black program” and “white program” • Edges: black-to-white 39
Symmetry breaking out of thin air: bipartite double covers • Virtual graph H is G = ( V , E ) a covering graph of G • It is a double cover: 2 nodes of H map to each node of G H = ( V ’, E ’) • It is bipartite • and we have already coloured its two parts: black and white! 40
Symmetry breaking out of thin air: bipartite double covers 2-coloured graph a b d c c c a a a a b b b d = b d c d d c 41
Symmetry breaking out of thin air: bipartite double covers Port-numbering inherited a 1 2 2 1 1 b d 1 1 1 c c 3 2 2 c 2 2 2 a a 1 1 a 3 3 a 2 2 b b b d = 1 1 b d c 1 1 d d c 42
Symmetry breaking out of thin air: bipartite double covers Port-numbering inherited a 1 2 2 1 1 b d 1 1 1 c c 3 2 2 c 2 2 2 a a 1 1 a 3 3 a 2 2 b b b d = 1 1 b d c 1 1 d d c 43
Symmetry breaking out of thin air: bipartite double covers Port-numbering inherited a 1 2 2 1 1 b d 1 1 1 c c 3 2 2 c 2 2 2 a a 1 1 a 3 3 a 2 2 b b b d = 1 1 b d c 1 1 d d c 44
Recommend
More recommend