comp551: advanced robotics lab lecture 7: consensus2008-01-06 cse481c wi09 - robotics capstone,...

45
1 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus Comp551: Advanced Robotics Lab Lecture 7: Consensus

Upload: others

Post on 27-Mar-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

1 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Comp551: Advanced Robotics Lab

Lecture 7: Consensus

Page 2: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

3 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

intro

Page 3: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

5 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

multi-robot computation model

Page 4: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

6 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Model: Robot State

We can describe the state, s, of a single robot as a tuple of its ID, pose, and private and public variables:

Page 5: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

7 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Model: Robot State

We can describe the state, s, of a single robot as a tuple of its ID, pose, and private and public variables:

s = ID, pose, private vars, public vars

x

y

θ

external global

coordinate system

pose={x,y,θ}

Page 6: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

8 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Model: Configuration

We define a configuration, C, as the states of n robots

All the robots use the same software and hardware

Page 7: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

9 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Model: Local Network Geometry

Each robot can communicate with and localize neighboring robots

within radius r

r=

robot a

local

coordinate

system

robot b

pose estimateab={xab,yab,θab}

robot c

poseac={xac,yac,θac}

Page 8: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

10 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Model: Configuration Graph

A configuration C and communication radius r produces a

configuration graph G

C is valid iff G is connected

r=

Page 9: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

11 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Model: Periodic Communications

Each robot broadcasts its public vars every t seconds

We assume local communications are reliable

This creates a synchronizer, giving us global rounds

verify that

synchronizer is what I

think

say that robots are not

synchronized

Page 10: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

13 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

definition of terms

Page 11: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

14 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Self-Stabilizing Algorithm

Assume: • Any initial configuration (state, position)

• That robots operate properly

• communications are reliable (perfect)

Provide: • Proof that the system will stabilize to a desired configuration

• Show time and communications complexity

Page 12: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

15 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Complexity Measures

Computation: • computation per round

• number of rounds

• time for robots to achieve final configuration

Communication: • total number of messages

• messages per robot per round (bandwidth)

Page 13: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

16 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Errors

Three Types: • process (robot) failures

• communications failures

• network changes

Two Flavors: • bounded quantity:

“At most one robot will fail”

• probabilistic “Messages arrive with probability p”

Page 14: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

18 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

leader election

Page 15: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

19 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Leader Election

Requirements: • one process becomes leader

• other processes become not-leader

• all processes know that the algorithm is done

Bonus Requirement: • all processes know which one is the leader

Page 16: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

20 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

approaches

1. All processes start with same initial state • If you have two identical processes, design an algorithm to elect

one of them a leader.

• But only one execution possible on both processes

• Can’t break symmetry Impossibility proof – not possible to elect leader

2. Randomized Algorithm • 1 random bit

• 50/50 change of electing leader on each flip

• How long will it take if graph is fully connected?

• How long will it take if graph is not fully connected?

3. Unique IDs • break symmetry with deterministic algorithm

• can elect leader in bounded time

• how long will it take?

Page 17: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

21 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Problems

How to deal with removal of leader?

How to deal with multiple leaders?

How to elect two leaders? • Running time and communications complexity?

k leaders? • Running time and communications complexity?

How to deal with communications loss?

Page 18: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

23 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

consensus

Page 19: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

24 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

What is consensus?

Simple: • All processes agree on a quantity

• All processes know that they agree

Formal: • Agreement:

no two processes decide on different values

• Validity

1. If all processes start with 0, then 0 is the only possible decision value

2. If all processes start with 1 and all messages are delivered, then 1 is the only possible decision value

• Termination

All processes eventually decide, in bounded time

Page 20: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

25

The Byzantine Generals Problem

Two Generals need to attack at the same time, or be defeated

They can send messengers back and forth, but the messengers might not make it.

Can they agree on a time to attack?

☺ ☺

Page 21: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

26

Consensus #2: The Byzantine Generals Problem

Two Generals need to attack at the same time, or be defeated

They can send messengers back and forth, but the messengers might not make it.

Can they agree on a time to attack?

☺ ☺ Consensus: The Skit

Page 22: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

27 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Whoa… Another Impossibility Result!

Consensus is not possible with faulty communications • One of the most famous results in distributed algorithms

• (How do you get anything done with these systems, anyway?)

The proof uses the concept of “indistinguishable executions”

Page 23: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

28

Are you serious, it really doesn’t work?

Nope. Consensus is not possible with faulty communications • One of the most famous results in distributed algorithms

• This is called an “Impossibility Proof”

But what about my bank records? • Databases deal with this by using “transactions” and the concept of

“rollback”

Ok, Consensus stinks. Agreement is better, right?

Page 24: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

30 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

agreement algorithms

Page 25: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

31 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Reference

Page 26: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

32 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Agreement Algorithms

It’s like consensus for real-valued quantities • Processors share real-valued quantities

• All processors converge to the same quantity.

• The final quantity might not be one of the initial values

The papers this week are *hard* • So I will introduce this content with two fun activities…

Page 27: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

33

Goal: Average 8 numbers

☺ 30

☺ 10

☺ 40

☺ 110

☺ 90

☺ 40

☺ 80

☺ 120

Page 28: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

34

Goal: Average 8 numbers

☺ 30

☺ 10

☺ 40

☺ 110

☺ 90

☺ 40

☺ 80

☺ 120

Agreement: The Skit

Page 29: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

35

Average Agreement

The simplest agreement algorithm

Start with n robots, whose state is stored in n variables:

Find a partner. Run the update rule:

Then switch partners.

Repeat.

x01 =

x1 + x2

2

x02 =

x2 + x1

2

x1; x2; : : : ; xn

Page 30: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

37 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

calculator agreement

Page 31: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

38

Instructions:

1. Enter your starting number into your calculator.

2. Pick another person and average your two numbers. (Add theirs to yours and divide by two) Don’t round off, keep all the digits. Both people should end up with the same number.

3. Repeat 12 times. Try to visit different people.

☺ ☺ 20

20

☺ 90 ☺

20

☺ 30

10

Page 32: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

39 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

The answer is

Page 33: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

40 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Partial Proof

Page 34: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

41 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Time step person 1 person 2 person 3 person 4 person 5 person 6 person 7 person 8

1 30.0 10.0 90.0 110.0 40.0 120.0 80.0 40.0

2 20.0 20.0 100.0 100.0 80.0 80.0 60.0 60.0

3 40.0 60.0 60.0 90.0 90.0 70.0 70.0 40.0

4 50.0 50.0 75.0 75.0 80.0 80.0 55.0 55.0

5 52.5 62.5 62.5 77.5 77.5 67.5 67.5 52.5

6 57.5 57.5 70.0 70.0 72.5 72.5 60.0 60.0

7 58.8 63.8 63.8 71.3 71.3 66.3 66.3 58.8

8 61.3 61.3 67.5 67.5 68.8 68.8 62.5 62.5

9 61.9 64.4 64.4 68.1 68.1 65.6 65.6 61.9

10 63.1 63.1 66.3 66.3 66.9 66.9 63.8 63.8

11 63.4 64.7 64.7 66.6 66.6 65.3 65.3 63.4

12 64.1 64.1 65.6 65.6 65.9 65.9 64.4 64.4

13 64.2 64.8 64.8 65.8 65.8 65.2 65.2 64.2

14 64.5 64.5 65.3 65.3 65.5 65.5 64.7 64.7

15 64.6 64.9 64.9 65.4 65.4 65.1 65.1 64.6

16 64.8 64.8 65.2 65.2 65.2 65.2 64.8 64.8

17 64.8 65.0 65.0 65.2 65.2 65.0 65.0 64.8

18 64.9 64.9 65.1 65.1 65.1 65.1 64.9 64.9

19 64.9 65.0 65.0 65.1 65.1 65.0 65.0 64.9

20 64.9 64.9 65.0 65.0 65.1 65.1 65.0 65.0

21 65.0 65.0 65.0 65.0 65.0 65.0 65.0 65.0

Simulation

0

10

20

30

40

50

60

70

80

90

100

110

120

1 6 11 16 21 26 31 36

person 1

person 2

person 3

person 4

person 5

person 6

person 7

person 8

Page 35: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

42 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Who Would Compute an Average Using this Crazy

Technique?

Honeybees! Workers share food all the time, computing a global average. This lets an individual worker know when the hive is hungry by measuring when she is hungry.

Page 36: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

43 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

Will This Work on the Robots?

?

Page 37: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

44

Agreement Experiment

Perfect agreement on systems that lose messages is impossible

Page 38: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

46 2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus

PS02: leader election and

agreement

Page 39: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

47

Flocking and Consensus

Can we use consensus for more physical algorithms?

Like flocking

[white board]

Google “boids”…

Page 40: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

48

Agreement is everywhere

Can we use consensus for even more physical algorithms?

Like sorting?

Page 41: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

49

Physical Bubble Sort

Goal: Sort the robots by their robot ID

5

2

9

Page 42: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

50

Physical Bubble Sort

Goal: Sort the robots by their robot ID

2

9

3

5

7

Page 43: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

51

Physical Bubble Sort

Goal: Sort the robots by their robot ID

2

9

3

5

7

Page 44: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

52

Physical Bubble Sort

Goal: Sort the robots by their robot ID

2

9

3

5 7

Page 45: Comp551: Advanced Robotics Lab Lecture 7: Consensus2008-01-06 CSE481C wi09 - Robotics Capstone, Lec3: Consensus 1 Comp551: Advanced Robotics Lab Lecture 7: Consensus

53

Physical Bubble Sort