![Page 1: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/1.jpg)
Using Computers to Design Distributed AlgorithmsJukka SuomelaAalto University, Finland
![Page 2: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/2.jpg)
Computer science:
“what can be automated?”
![Page 3: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/3.jpg)
Next level:“can we automate
our own work?”
![Page 4: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/4.jpg)
Key players in algorithmics
Algorithm
Computational problem
Model of computing
“how to find a feasible solutionfor any given input?”
“what are feasible solutionsfor any given input?”
![Page 5: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/5.jpg)
Key players in algorithmics
Algorithm
Computational problem
Model of computing
e.g. merge sort
e.g. sorting
e.g. RAM machines
![Page 6: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/6.jpg)
Key players in algorithmics
Algorithm
Computational problem
Model of computing
e.g. Cole–Vishkin
e.g. list 3-coloring
e.g. distributed graph algorithms
recall Lecture 1…
![Page 7: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/7.jpg)
How to design algorithms?
Algorithm?
Computational problem
Model of computing
![Page 8: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/8.jpg)
How to design algorithms?• Some systematic principles:
• algorithm design paradigms• reductions …
• But largely just “think hard”, years of experience, clever insights, good luck?
Algorithm?
Computational problem
Model of computing
![Page 9: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/9.jpg)
How to design algorithms?• Some systematic principles:
• algorithm design paradigms• reductions …
• But largely just “think hard”, years of experience, clever insights, good luck?
• Could we automate it?Algorithm?
Computational problem
Model of computing
![Page 10: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/10.jpg)
Ultimate meta-algorithm??
Algorithm 1
Problem 1
Model 1
Algorithm
Model of computing
Computational problem
“algorithm synthesis”
my laptop
![Page 11: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/11.jpg)
Ultimate meta-algorithm??
Algorithm 2
Problem 2
Model 2
Algorithm
Model of computing
Computational problem
“algorithm synthesis”
my laptop
![Page 12: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/12.jpg)
Too goodto be true?
![Page 13: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/13.jpg)
Does this make any sense?
• Is “algorithm synthesis” a well-defined computational problem?
• What are the right representations?• how to represent computational problems or models
of computing as input data?• how to represent algorithms as output?
![Page 14: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/14.jpg)
Computability?
• Recall the classical meta-computational question: the halting problem• input: “algorithm” (encoded as a Turing machine)• output: does it ever halt?
• Undecidable problem — there is no“meta-algorithm” that solves it
![Page 15: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/15.jpg)
Computability?
• We are already in trouble if we wouldlike to verify a given algorithm
• Isn’t it much harder to synthesizean algorithm than to verify a givenalgorithm?
![Page 16: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/16.jpg)
Computational complexity?
• Even if we could synthesize algorithmsin principle, does it work in practice?
• Does anyone have enoughcomputational resources to do it?
![Page 17: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/17.jpg)
Overcomingsome challenges:specialization andsemi-automation
![Page 18: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/18.jpg)
Fix the model of computing
Algorithm 1
Problem 1
Model of computing
Algorithm
Model of computing
Computational problem
“algorithm synthesis”
my laptopX
![Page 19: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/19.jpg)
Fix the model of computing
Algorithm 2
Problem 2
Model of computing
Algorithm
Model of computing
Computational problem
“algorithm synthesis”
my laptopX
![Page 20: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/20.jpg)
Good news
• For some models of distributed computing, algorithm synthesis is possible!• both in theory and in practice!• there are computer-designed distributed algorithms
that outperform the best human-designed algorithms!
![Page 21: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/21.jpg)
More good news
• Human beings are not yet obsolete!• many success stories of computer–human
collaboration• “computer-aided” algorithm design instead of
“fully automatic” algorithm design
![Page 22: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/22.jpg)
Case study 1:robust counters
![Page 23: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/23.jpg)
Case study: robust counters
• Multiple devices connected to each other
• Common clock pulse coming to all devices
• Devices have to count pulses• in agreement: if one device thinks this is pulse
number x, then all devices agree• in a fault-tolerant manner (more about this soon)
![Page 24: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/24.jpg)
Case study: robust counters
• Running example:• 4 devices• all devices can directly communicate with each other• task: count pulses modulo 2
device 1: 0 1 0 1 0 1 …device 2: 0 1 0 1 0 1 …device 3: 0 1 0 1 0 1 …device 4: 0 1 0 1 0 1 …
![Page 25: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/25.jpg)
Case study: robust counters
• Nodes labeled with 1, 2, 3, 4
• At each clock pulse, each node can also receive a message from every other node
device 1: 0 1 0 1 0 1 …device 2: 0 1 0 1 0 1 …device 3: 0 1 0 1 0 1 …device 4: 0 1 0 1 0 1 …
1 2
3 4
![Page 26: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/26.jpg)
Case study: robust counters
• Very easy to solve if there are no failures and all nodes start in the same state
• How would you do it?
device 1: 0 1 0 1 0 1 …device 2: 0 1 0 1 0 1 …device 3: 0 1 0 1 0 1 …device 4: 0 1 0 1 0 1 …
![Page 27: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/27.jpg)
Case study: robust counters
• What if we wanted to tolerateByzantine failures?
• Still easy to solve — how?
device 1: 0 1 0 1 0 1 …device 2: ??? ??? ??? ??? ??? ??? …device 3: 0 1 0 1 0 1 …device 4: 0 1 0 1 0 1 … recall Lecture 4…
![Page 28: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/28.jpg)
Case study: robust counters
• What if we wanted to designa self-stabilizing algorithm?
• Still easy to solve — how?
device 1: garbage 1 0 1 0 1 …device 2: garbage 1 0 1 0 1 …device 3: garbage 1 0 1 0 1 …device 4: garbage 1 0 1 0 1 … recall Lecture 9…
![Page 29: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/29.jpg)
Case study: robust counters
• Can we get both self-stabilization and Byzantine fault tolerance simultaneously?
• Very difficult to solve — try it!
device 1: garbage 1 0 1 0 1 …device 2: garbage ??? ??? ??? ??? ??? …device 3: garbage 1 0 1 0 1 …device 4: garbage 1 0 1 0 1 …
![Page 30: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/30.jpg)
Case study: robust counters
• Goal: reach correct behavior• self-stabilization: starting from any configuration• Byzantine fault tolerance: even if one node is
misbehaving
• We want to ask computers to find a good algorithm for this problem!
![Page 31: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/31.jpg)
How to represent algorithms?
• Human-readable pseudocode?• can computers understand it at all?
• Machine-readable programing language, e.g. Python, Java, C++, x86 assembly?• very easy to write a short program that nobody
can analyze, not human beings, not computers
![Page 32: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/32.jpg)
How to represent algorithms?
• Let’s try to keep things very simple
• Computer = finite state machine
• Communication = each node simply tells everyone else its current state
• Algorithm = lookup table
![Page 33: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/33.jpg)
How to represent algorithms?
• Example: 4 nodes, 3 states per node
• Algorithm = lookup table thattells what is the new state foreach combination of states• 34 = 81 rows• easy to represent with computers
old state new state0, 0, 0, 0 1, 1, 1, 1
0, 0, 0, 1 1, 1, 1, 1
… …
0, 1, 1, 1 2, 0, 0, 0
0, 1, 1, 2 0, 0, 0, 1
… …
2, 2, 2, 2 1, 1, 1, 1
![Page 34: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/34.jpg)
How to represent executions?
• Algorithm = lookup table
• Possible state transitions:• example: node 4 misbehaves• possible: 0,0,1,* → 1,1,1,*• possible: 0,0,1,* → 0,2,0,*• possible: 0,0,1,* → 1,2,0,* (!!)
old state new state
0, 0, 0, 0 1, 1, 1, 1
0, 0, 0, 1 1, 1, 1, 1
… …
0, 0, 1, 0 1, 1, 1, 1
0, 0, 1, 1 0, 2, 0, 1
0, 0, 1, 2 1, 1, 1, 1
… …
2, 2, 2, 2 1, 1, 1, 1
![Page 35: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/35.jpg)
Given an algorithm,we can construct adirected graphthat represents allpossible statetransitions
Directed path =possible execution
![Page 36: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/36.jpg)
Graph representations
• Seemingly hard, open-ended questions:• is this algorithm correct?• does it recover quickly from all failures?
• Simple, well-defined questions:• do all paths in this graph lead
to nodes “*000” and “*111”?• are all such paths short?
![Page 37: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/37.jpg)
Graph representations
• Algorithm verification was replacedwith a simple graph problem
• Candidate algorithm→ lookup table→ graph of all executions→ reachability problem→ is this algorithm good
![Page 38: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/38.jpg)
Graph representations
• We now know how to test with computersif an algorithm candidate is good
• How to use computersto find a good algorithm?
• In principle easy: we couldcheck all candidates
![Page 39: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/39.jpg)
Graph representations
• Algorithm = lookup table with 81 entries
• Each entry has 81 possible values
• Just test 8181 ≈ 10154 candidates?
![Page 40: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/40.jpg)
Logical representations
• Again just a matter of representations• lookup table ≈ Boolean variables x1, x2, …• this lookup table is good ≈ formula f(x1, x2, …) is true
• Apply modern SAT solversto find values x1, x2, … suchthat f(x1, x2, …) is true
![Page 41: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/41.jpg)
Graph representations
• Algorithm verification was replacedwith a simple graph problem
• Algorithm synthesis wasreplaced with a Booleansatisfiability problem• NP-hard, but often (?) solvable
in practice
![Page 42: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/42.jpg)
High-throughput algorithmics
We can ask computers:
“Is there an algorithmfor n nodes that usesonly s states per nodeand always stabilizesin at most t steps?”
t = 3 t = 4 t = 5 t = 6 t = 7 t = 8 …n = 4 — — s ≥ 4 s ≥ 4 s ≥ 3 s ≥ 3 …
n = 5 — s ≥ 3 s ≥ 3 s ≥ 3 s ≥ 3 s ≥ 3 …
n = 6 s ≥ 3 s ≥ 3 s ≥ 3 s ≥ 2 s ≥ 2 s ≥ 2 …
n = 7 s ≥ 3 s ≥ 3 s ≥ 3 s ≥ 2 s ≥ 2 s ≥ 2 …
n = 8 s ≥ 3 s ≥ 2 s ≥ 2 s ≥ 2 s ≥ 2 s ≥ 2 …
n = 9 s ≥ 3 s ≥ 2 s ≥ 2 s ≥ 2 s ≥ 2 s ≥ 2 …
![Page 43: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/43.jpg)
Example:
4 nodes
1 faulty node
3 states per node
always stabilizesin at most 7 steps
![Page 44: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/44.jpg)
Efficient computer-designed solutionfor the base case
+human-designedrecursive step
=efficient solution
for the general case
![Page 45: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/45.jpg)
Case study 2:large cuts
![Page 46: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/46.jpg)
Large cuts
• Goal: find a large cut
• Setting:• 1-round randomized algorithms• 1 bit of randomness per node• d-regular graphs, no short cycles
![Page 47: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/47.jpg)
Large cuts
• Again we can represent algorithms as lookup tables:• input: random bits of myself and my neighbors• output: black or white
• For each lookup table we can calculateprobability that a given edge is a cut edge
![Page 48: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/48.jpg)
Large cuts
• Computer:• find optimal algorithm for d = 2, 3, 4, …
• Human:• look at the structure of optimal algorithms• generalize the idea
![Page 49: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/49.jpg)
Large cuts
• Algorithm:• Pick a random cut
• Change sides if at least !" !# neighbours on the
same side
• How well does this work for d = 2?
![Page 50: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/50.jpg)
Case study 3:local problems
on cycles
![Page 51: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/51.jpg)
LCLs on cycles
• Computer network = directed n-cycle• nodes labelled with O(log n)-bit identifiers• each round: each node exchanges (arbitrarily large)
messages with its neighbors and updates its state• each node has to output its own part of the solution• time = number of rounds until all nodes stop
![Page 52: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/52.jpg)
LCLs on cycles
• LCL problems:• solution is globally good if it
looks good in all local neighborhoods• examples: vertex coloring, edge coloring,
maximal independent set, maximal matching…• cf. class NP: solution easy to verify,
not necessarily easy to find
![Page 53: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/53.jpg)
LCLs on cycles
• 2-colouring: inherently global• Θ(n) rounds• solution does not always exist
• 3-colouring: local• Θ(log* n) rounds• solution always exists
recall Lecture 1…
![Page 54: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/54.jpg)
LCLs on cycles
• Given an algorithm, it may be verydifficult to verify• easy to encode e.g. halting problem• running time can be any function of n
• However, given an LCL problem, it is very easy to synthesize optimal algorithms!
![Page 55: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/55.jpg)
LCLs on cycles
• LCL problem ≈ set of feasible local neighborhoods in the solution
• Can be encoded as a graph:• node = neighborhood• edge = “compatible”
neighborhoods• walk ≈ sliding window
23
12 21
32
31 13
3-coloring
![Page 56: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/56.jpg)
LCLs on cycles
23
12 21
32
31 13
3-coloring
01
00
10
maximalindependent set
12 21
2-coloring
01
00
10
independent set
![Page 57: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/57.jpg)
LCLs on cycles
Neighborhood v is “flexible” if for allsufficiently large k there isa walk v → v of length k
• equivalent: there arewalks of coprime lengths
• “12” is flexible here, k ≥ 223
12 21
32
31 13
3-coloring
![Page 58: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/58.jpg)
LCLs on cycles
23
12 21
32
31 13
3-coloring
01
00
10
maximalindependent set
12 21
2-coloring
01
00
10
independent set
flexible states:Θ(log* n)
self-loops:O(1)
otherwise:Θ(n)
![Page 59: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/59.jpg)
LCLs on cycles
• Given any LCL problem oncycles, we can mechanically:• represent it as a graph• analyze the structure of the graph• construct an optimal algorithm for the problem!
• Algorithm synthesis easy with the right representation of the problem!
23
12 21
32
31 13
3-coloring
![Page 60: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/60.jpg)
Conclusions
![Page 61: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/61.jpg)
Recap of techniques
• Case study 1: robust counters• computer solves the base case, use as a black box
• Case study 2: large cuts• computers solves small cases, generalize the idea
• Case study 3: LCL problems on cycles• algorithm synthesis can be fully automated!
![Page 62: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/62.jpg)
Take-home messages
• You are allowed to use computers to do theoretical computer science!
• Sometimes algorithm design can be turned into mechanical work that is well-suited for computers
![Page 63: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/63.jpg)
Take-home messages
• We need the right representations for:• computational problems (inputs)• algorithms (outputs)
• Computers are very good at solving combinatorial puzzles• graph problems, satisfiability of logical formulas…
![Page 64: Using Computers to Design Distributed Algorithms · computing, algorithm synthesis is possible! •both in theory and in practice! •there are computer-designed distributed algorithms](https://reader033.vdocuments.us/reader033/viewer/2022050410/5f87b31e5fbe730402192a86/html5/thumbnails/64.jpg)
Something to think about…
• Do you see possible applications of computational algorithm design outside distributed computing?
• Would it be possible to use computersto automatically prove lower bounds?