a distributed algorithm for minimum-weight spanning trees by r. g. gallager, p.a. humblet, and p. m....

83
A Distributed Algorithm for Minimum- Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and systems,1983 presented by Hanan Shpungin

Post on 21-Dec-2015

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

A Distributed Algorithm for Minimum-Weight Spanning

Treesby

R. G. Gallager, P.A. Humblet, and P. M. Spira

ACM, Transactions on Programming Language and systems,1983

presented byHanan Shpungin

Page 2: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

Outline

• Introduction

• The idea of Distributed MST

• The algorithm

Page 3: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

Outline

• Introduction

• The idea of Distributed MST

• The algorithm

Page 4: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

Introduction

• Problem( , )G V E A graph

Every edge has a weight , ( )e E w e

4

8 3

1

7

25

6

Page 5: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• Solution( , )T V E A spanning tree

So that the sum is minimized( )e E

w e

Introduction

4

8 3

1

7

25

6

Page 6: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

5

• Solution( , )T V E A spanning tree

So that the sum is minimized( )e E

w e

Introduction

4

8 3

1

7

2 6

Page 7: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• Definition – MST fragment A connected sub-tree of MST

Introduction

54

8 3

1

7

2 6

Example of possible fragments:

Page 8: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 1Given a fragment of an MST, let e be a minimum-weight outgoing edge of the fragment. Then joining e and its adjacent non-fragment node to the fragment yields another fragment of an MST.

Introduction

54

8 3

1

7

2 6

e

Page 9: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 1Given a fragment of an MST, let e be a minimum-weight outgoing edge of the fragment. Then joining e and its adjacent non-fragment node to the fragment yields another fragment of an MST.

Introduction

54

8 3

1

7

2 6

e• Proof:

Page 10: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 1Given a fragment of an MST, let e be a minimum-weight outgoing edge of the fragment. Then joining e and its adjacent non-fragment node to the fragment yields another fragment of an MST.

Introduction

54

8 3

1

7

2 6

• Proof:Suppose e is not in MST, but some e’ instead.

e’

e

Page 11: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

e

• MST Property 1Given a fragment of an MST, let e be a minimum-weight outgoing edge of the fragment. Then joining e and its adjacent non-fragment node to the fragment yields another fragment of an MST.

Introduction

54

8 3

1

7

2 6

• Proof:Suppose e is not in MST, but some e’ instead.

e’

MST with e forms a cycle.

Page 12: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

e

• MST Property 1Given a fragment of an MST, let e be a minimum-weight outgoing edge of the fragment. Then joining e and its adjacent non-fragment node to the fragment yields another fragment of an MST.

Introduction

54

8 3

1

7

2 6

• Proof:Suppose e is not in MST, but some e’ instead.

e’

MST with e forms a cycle.

We obtain a cheaper MST with e instead of e’.

Page 13: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

Page 14: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

4

8 3

1

7

25

6

• Proof:

Page 15: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

4

8 3

1

7

25

6

Suppose existence of two MSTs.• Proof:

T T’

Page 16: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

4

8 3

1

7

25

6

Suppose existence of two MSTs.• Proof:

T T’

Let e be the minimal-weight edge not in both MSTs (wlog e in T).

e

Page 17: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

4

8 3

1

7

25

6

Suppose existence of two MSTs.• Proof:

T T’

Let e be the minimal-weight edge not in both MSTs (wlog e in T).

T’ with e has a cycle

e

Page 18: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

4

8 3

1

7

25

6

Suppose existence of two MSTs.• Proof:

T T’

Let e be the minimal-weight edge not in both MSTs (wlog e in T).

T’ with e has a cycle

ee’

At least cycle edge e’ is not in T.

Page 19: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• MST Property 2If all the edges of a connected graph have different weights, then the MST is unique.

Introduction

4

8 3

1

7

25

6

4

8 3

1

7

25

6

Suppose existence of two MSTs.• Proof:

T T’

Let e be the minimal-weight edge not in both MSTs (wlog e in T).

T’ with e has a cycle

At least cycle edge e’ is not in T.

ee’

Since w(e) < w(e’) we conclude that T’ with e and without e’ is a smaller MST than T’.

Page 20: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• Idea of MST based on properties 1 & 2 Start with fragments of one node.

4

8 3

1

7

25

6

Introduction

Page 21: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1)

4

8 3

1

7

25

6

Combine fragments with a common node (property 2)

Introduction

Page 22: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1)

4

8 3

1

7

25

6

Combine fragments with a common node (property 2)

Introduction

Page 23: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1)

4

8 3

1

7

25

6

Combine fragments with a common node (property 2)

Introduction

Page 24: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1) Combine fragments with a common node (property 2)

Introduction

Page 25: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1) Combine fragments with a common node (property 2)

Introduction

Page 26: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1) Combine fragments with a common node (property 2)

Introduction

Page 27: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

• Idea of MST based on properties 1 & 2 Enlarge fragments in any order (property 1) Combine fragments with a common node (property 2)

Introduction

Page 28: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

Outline

• Introduction

• The idea of Distributed MST

• The algorithm

Page 29: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

The idea of Distributed MST

• Fragments Every node starts as a single fragment.

Page 30: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

The idea of Distributed MST

• Fragments Each fragment finds its minimum outgoing edge.

Page 31: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

The idea of Distributed MST

• Fragments Each fragment finds its minimum outgoing edge. Then it tries to combine with the adjacent fragment.

Page 32: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels Every fragment has an associated level that has impact on combining fragments. A fragment with a single node is defined to to be at level 0.

Page 33: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels The combination of two fragments depends on the levels of fragments.

4

8 3

1

7

25

6

F

F’

Page 34: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels The combination of two fragments depends on the levels of fragments.

4

8 3

1

7

25

6

L=1

L’=2

F

F’

If a fragment F wishes to connect to a fragment F’ and L < L’ then:

Page 35: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels The combination of two fragments depends on the levels of fragments.

4

8 3

1

7

25

6

L=1

L’=2

F

F’

If a fragment F wishes to connect to a fragment F’ and L < L’ then:F is absorbed in F’ and the resulting fragment is at level L’.

Page 36: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels The combination of two fragments depends on the levels of fragments.

4

8 3

1

7

25

6

L=1L’=1

FF’

If fragments F and F’ have the same minimum outgoing edge and L = L’ then:

Page 37: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels The combination of two fragments depends on the levels of fragments.

4

8 3

1

7

25

6

L=1L’=1

FF’

If fragments F and F’ have the same minimum outgoing edge and L = L’ then:The fragments combine into a new fragment F’’ at level L’’ = L+1.

L’’=2F’’

Page 38: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• Levels The identity of a fragment is the weight of its

4

8 3

1

7

25

6

If fragments F and F’ with same level were combined, the combining edge is called the core of the new segment.

L’’=2F’’

core.

core

Page 39: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The idea of Distributed MST

• State Each node has a state

Sleeping - initial state

Find - during fragment’s search for a minimal outgoing edge

Found - otherwise (when a minimal outgoing edge was found

Page 40: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

Outline

• Introduction

• The idea of Distributed MST

• The algorithm

Page 41: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

The Algorithm

• Fragment minimum outgoing edge discovery Special case of zero-level fragment (Sleeping).

Page 42: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

4

8 3

1

7

25

6

The Algorithm

• Fragment minimum outgoing edge discovery

When a node awakes from the state Sleeping, it finds a minimum edge connected.

Special case of zero-level fragment (Sleeping).

Page 43: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Marks it as a branch of MST and sends a Connect message over this edge.

4

8 3

1

7

25

6

When a node awakes from the state Sleeping, it finds a minimum edge connected.

Special case of zero-level fragment (Sleeping).

Page 44: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Marks it as a branch of MST and sends a Connect message over this edge.Goes into a Found state.

4

8 3

1

7

25

6

When a node awakes from a state Sleeping, it finds a minimum edge connected.

Special case of zero-level fragment (Sleeping).

Page 45: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery Take a fragment at level L that was just combined out of two level L-1 fragments.

L=1

L’=1

F

F’

L’’=2F’’

4

3

1

7

25

6

8

Page 46: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

The weight of the core is the identity of the fragment.

Take a fragment at level L that was just combined out of two level L-1 fragments.

core

L=1

L’=1

F

F’

L’’=2F’’

4

3

1

7

25

6

8ID’’ = 2

It acts as a root of a fragment tree.

Page 47: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Nodes adjacent to core send an Initiate message to the borders.

Take a fragment at level L that was just combined out of two level L-1 fragments.

4

3

1

7

25

6

8

Page 48: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Nodes adjacent to core send an Initiate message to the borders.

Take a fragment at level L that was just combined out of two level L-1 fragments.

Relayed by the intermediate nodes in the fragment.

4

3

1

7

25

6

8

Page 49: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Nodes adjacent to core send an Initiate message to the borders.

Take a fragment at level L that was just combined out of two level L-1 fragments.

Relayed by the intermediate nodes in the fragment.

4

3

1

7

25

6

8

Puts the nodes in the Find state.

Page 50: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Basic - yet to be classified, can be inside fragment or outgoing edges

Edge classification/

4

3

1

7

25

6

8

Page 51: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Rejected – an inside fragment edge

Edge classification.

4

3

1

7

25

6

8

Page 52: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Branch – an MST edge

Edge classification.

4

3

1

7

25

6

8

Page 53: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Sends a Test message on Basic edges (minimal first)

On receiving the Initiate message a node tries to find a minimum outgoing edge.

4

3

1

7

25

6

8

Page 54: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

In case of same identity:

On receiving the Test message.

4

3

1

7

25

6

8send a Reject message, the edge is Rejected.In case Test was sent in both directions, the edge is Rejected automatically without a Reject message.

Page 55: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

In case of a self lower level:

On receiving the Test message.

4

3

1

7

25

6

8Delay the response until the identity rises sufficiently.

L=0

L=3

ResponseDelayed

Page 56: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

In case of a self higher level:

On receiving the Test message.

4

3

1

7

25

6

8Send an Accept message

L=0

L=3The edge is accepted as a candidate.

Page 57: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Nodes send Report messages along the branches of the MST.

Agreeing on the minimal outgoing edge.

4

3

1

7

25

6

8

If no outgoing edge was found the algorithm is complete.

Page 58: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Nodes send Report messages along the branches of the MST.

Agreeing on the minimal outgoing edge.

4

3

1

7

25

6

8

If no outgoing edge was found the algorithm is complete.After sending they go into Found mode.

Page 59: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Every leaf sends the Report when resolved its outgoing edge.

Agreeing on the minimal outgoing edge.

4

3

1

7

25

6

8

Page 60: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Every leaf sends the Report when resolved its outgoing edge.

Agreeing on the minimal outgoing edge.

4

3

1

7

25

6

8

Page 61: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Every interior sends the Report when resolved its outgoing and all its children sent theirs.

Agreeing on the minimal outgoing edge.

4

3

1

7

25

6

8

Page 62: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

Every interior sends the Report when resolved its outgoing and all its children sent theirs.

Agreeing on the minimal outgoing edge.

4

3

1

7

25

6

8

Page 63: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

4

3

1

7

25

6

8

Agreeing on the minimal outgoing edge.

Every node remembers the branch to the minimal outgoing edge of its sub-tree, denoted best-edge.

minimaloutgoing

best-edge

Page 64: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Minimum outgoing edge discovery

4

3

1

7

25

6

8

Agreeing on the minimal outgoing edge.

The core adjacent nodes exchange Reports and decide on the minimal outgoing edge.

?

Page 65: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Combining segments

4

3

1

7

25

6

8

Changing core.

When decided a Change-core message is sent over branches to the minimal outgoing edge.

?

new core

The tree branches point to the new core.

Page 66: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

4

3

1

7

25

6

8

?

Connect

The tree branches point to the new core.

When decided a Change-core message is sent over branches to the minimal outgoing edge.

Finally a Connect message is sent over the minimal edge.

• Combining segments Changing core

Page 67: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Final notes Connecting same level fragments.

4

8 3

1

7

25

6

L=1L’=1

FF’

Page 68: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

Both core adjacent nodes send a Connect message, which causes the level to be increased.

• Final notes Connecting same level fragments.

4

8 3

1

7

25

6

L=1L’=1

FF’As a result, core is changed and

new Initiate messages are sent.

Page 69: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

When lower level fragment F’ at node n’ joins some fragment F at node n before n sent its Report.

• Final notes Connecting lower level fragments.

We can send n’ an Initiate message with the Find state so it joins the search.

Page 70: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

When lower level fragment F’ at node n’ joins some fragment F at node n after n sent its Report.

• Final notes Connecting lower level fragments.

It means that n already found a lower edge and therefore we can send n’ an Initiate message with the Found state so it doesn’t join the search.

Page 71: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

When forwarding an Initiate message to the leafs, it is also forwarded to any pending fragments at level L-1, as they might be delayed with response.

• Final notes Forwarding the Initiate message at level L.

Page 72: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

Level L+1 contains at least 2 fragments at level L.

• Final notes Upper bound on fragment levels.

Level L contains at least nodes.2L

is an upper bound on fragment levels.2log N

Page 73: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

The Connect message is sent on the minimal outgoing edge only.

• Proof outline Correct MST build-up

As a result of properties 1 & 2 we should obtain an MST.

Page 74: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

Assume there is a deadlock.

• Proof outline No deadlocks

Choose a fragment from the lowest level set and with minimal outgoing edge in that set.Its Test/Connect message surely will be replied.There will always be a working fragment.

Page 75: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

The Algorithm

• Complexity Communication

At most E Reject messages (with corresponding E Test messages, because each edge can be rejected only once.

Page 76: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

At every but the zero or last levels, each node can accept up to 1 Initiate, Accept messages. It can transmit up to 1 Test (successful), Report, ChangeRoot, Connect. Since the number of levels is bounded by number of such messages is at most .

The Algorithm

• Complexity Communication

2log N25 (log 1)N N

Page 77: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

At level zero, each node receives at most one Initiate and transmits at most one Connect. At the last level a node can send at most one Report message, as a result at most 3N such messages.

The Algorithm

• Complexity Communication

Page 78: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

As a result, the upper bound is: .

The Algorithm

• Complexity Communication

25 log 2N N E

Page 79: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

We prove by induction that one needs 5lN - 3N time units for every node to reach level l.

The Algorithm

• Complexity Time (under assumption of initial awakening it is )25 logN N

Page 80: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

l=1 Each node is awakened and sends a Connect message. By time 2N all nodes should be at level 1.

The Algorithm

• Complexity Time (under assumption of initial awakening it is )25 logN N

Page 81: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

Assume l At level l, each node can send at most N Test messages which will be answered before time 51N - N . The propagation of the Report messages, ChangeRoot, Connect, and Initiate messages can take at most 3N units, so that by time 5 ( l + 1)N - 3N all nodes are at level l + 1.

The Algorithm

• Complexity Time (under assumption of initial awakening it is )25 logN N

Page 82: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

At the highest level only Test, Reject, and Report messages are used.

The Algorithm

• Complexity Time (under assumption of initial awakening it is )25 logN N

Page 83: A Distributed Algorithm for Minimum-Weight Spanning Trees by R. G. Gallager, P.A. Humblet, and P. M. Spira ACM, Transactions on Programming Language and

As a result we have the algorithm complete under time units.

The Algorithm

• Complexity

25 logN N

Time (under assumption of initial awakening it is )25 logN N