1 searching in a graph jeff edmonds york university cosc 3101 lecture 5 generic search breadth first...

180
1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture Lecture 5 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First Search Linear Order

Upload: shreya-stile

Post on 29-Mar-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

1

Searching in a Graph

Jeff EdmondsYork University COSC 3101LectureLecture 55

Generic SearchBreadth First SearchDijkstra's Shortest Paths AlgorithmDepth First SearchLinear Order

Page 2: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

2

Graph

a

c

b Node ~ city or computer

Edge ~ road or network

Undirected or Directed

A surprisingly large number of problems in computer science can be expressed as a graph theory problem.

Page 3: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

3

Graph Search

Specification: Reachability-from-single-source s•<preCond>: The input is a graph G (either directed or undirected) and a source node s. •<postCond>: Output all the nodes u that are reachable by a path in G from s.

Page 4: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

4

Graph Search

Basic Steps:

su

Suppose you know that u is reachable from s

v

& there is an edge from u to v

You know that v is reachable from s

Build up a set of reachable nodes.

Page 5: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

5

Graph Search

s

reachable

fuj reachable

dvw reachable

ehd reachable

btd

vw

ehd

bt

•How do we keep track of all of this information?

•How do we avoid cycling?

Page 6: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

6

s

a

c

hk

fi

lm

j

eb

gd

Graph Search

Page 7: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

7

Graph Search

s

a

c

hk

fi

lm

j

eb

gd

Page 8: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

8

Graph Search

s

a

c

hk

fi

lm

j

eb

gd

Page 9: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

9

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

l

s

a

c

hk

fi

lm

j

eb

gd

Page 10: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

10

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

i.e. find its neighborsDon’t re-find a node.

s

a

c

hk

fi

lm

j

eb

gd

Handle some foundNotHandled node

Page 11: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

11

s

a

c

hk

fi

lm

j

eb

gd

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

Handle some foundNotHandled nodei.e. find its neighbors

Page 12: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

12

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

# of found nodes.measureprogress

# of handled nodes.Might not increase.

s

a

c

hk

fi

lm

j

eb

gd

Page 13: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

13

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

Node s is foundNotHandledOther nodes notFound

s

a

c

hk

fi

lm

j

eb

gd

Page 14: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

14

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

All nodes found.Exit When can’t make any more progress.

No. Might not find all.

When all found nodes are have been handled.Handle some foundNotHandled node

s

a

c

hk

fi

lm

j

eb

gd

Page 15: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

15

Page 16: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

16

Graph Search

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

a

c

hk

fi

m

j

eb

gd

lExit All found nodes are handled.

Exit

•<postCond>: Output all the nodes u that are reachable by a path in G from s.

Output Found nodes

Page 17: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

17

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

Exit

a

c

hk

fi

m

j

eb

gd

lAll found nodes are handled.

Exit Found nodes are reachable from s. Reachable nodes have been found.

•<postCond>:

Page 18: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

18

We know found nodes are reachable from s because we have traced out a path.

If a node has been handled, then all of its neighbors have been found.

Graph Search

Exit

a

c

hk

fi

m

j

eb

gd

lAll found nodes are handled.

Exit Reachable nodes have been Found. •<postCond>:

Found = handled

handled

notfound

[A B] = [B A]notFound nodes not reachable.

Page 19: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

19

Graph Search

Specification of Reachability-from-single-source s•<preCond>: The input is a graph G (either directed or undirected) and a source node s. •<postCond>: Output all the nodes u that are reachable by a path in G from s.

EndingInitial ConditionsMake Progress

Maintain Loop InvDefine Exit ConditionDefine Step

Define Measure of Progress

Define Loop Invariants

Define Problem

km

79 km

to school

Exit

Exit

79 km 75 km

Exit

Exit

0 km Exit

Page 20: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

20

Graph Search

# of handled nodes.

Handle some foundNotHandled node

Time = O(n)

fuj

O(n) iterations, but iteration takes more than O(1)

O(n) neighbors= O(n2)Could be fewer?

Each edge visited, times.2= O(E)

Size = O(E)Linear time.

Page 21: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

21

Graph Search

Which foundNotHandled node do we handle?

•Queue: Handle in order found.

•Breadth-First Search

•Stack: Handle most recently found

•Depth-First Search

•Priority Queue: Handle node that seems to be closest to s.

•Shortest (Weighted) Paths:

Page 22: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

22

Breadth First Search

<preCond> & <postCond>

Algorithm

Page 23: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

23

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

Page 24: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

24

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

s

Page 25: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

25

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

a

bgd

Page 26: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

26

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bgd

cf

Page 27: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

27

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bg

cfme

Page 28: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

28

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bcfmej

Page 29: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

29

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

cfmej

Page 30: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

30

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

fmejh

i

Page 31: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

31

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

mejh

i

Page 32: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

32

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

ejh

il

Page 33: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

33

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

jh

il

Page 34: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

34

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

h

il

Page 35: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

35

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

ilk

Page 36: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

36

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

lk

Page 37: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

37

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

k

Page 38: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

38

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

Page 39: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

39

BFS

What order are the nodes found?

i.e. Breadth First Search

Algorithm

So far, the nodes have been found in order of length from s.

Page 40: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

40

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

Page 41: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

41

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

s

d=0

d=0

Page 42: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

42

BFS FoundNot Handled

Queue

d=0a

bgd

d=1

s

a

c

h

k

f

i

l

m

j

e

b

gd

d=0d=1

Page 43: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

43

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

a

bgd

d=0d=1

d=1

Page 44: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

44

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bgd

cf

d=0d=1

d=2

d=1

d=2

Page 45: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

45

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

bg

cfme

d=0d=1

d=2

d=1

d=2

Page 46: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

46

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queued=0

d=1

d=2

b

j

cfme

d=1

d=2

Page 47: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

47

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queued=0

d=1

d=2

j

cfme

d=1

d=2

Page 48: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

48

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

cfmej

d=0d=1

d=2

d=2

Page 49: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

49

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

fmejh

i

d=0d=1

d=2

d=3

d=2

d=3

Page 50: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

50

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

mejh

i

d=0d=1

d=2

d=3

d=2

d=3

Page 51: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

51

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

ejh

il

d=0d=1

d=2

d=3

d=2

d=3

Page 52: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

52

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

jh

il

d=0d=1

d=2

d=3

d=2

d=3

Page 53: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

53

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

h

il

d=0d=1

d=2

d=3

d=2

d=3

Page 54: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

54

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

h

d=0d=1

d=2

d=3

il

d=3

Page 55: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

55

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

ilk

d=0d=1

d=2

d=3d=4

d=3

d=4

Page 56: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

56

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

lk

d=0d=1

d=2

d=3d=4

d=3

d=4

Page 57: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

57

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

k

d=0d=1

d=2

d=3d=4

d=3

d=4

Page 58: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

58

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queue

k

d=0d=1

d=2

d=3d=4

d=4

Page 59: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

59

BFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Queued=0

d=1

d=2

d=3d=4

d=4d=5

Page 60: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

60

BFS

What order are the nodes found?

So far, the nodes have been found in order of length from s.

<postCond>: Finds a shortest path from sto each node v and its length.

To prove path is shortest:Prove there is a path of this length.Prove there are no shorter paths.

Give a path(witness)

Page 61: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

61

Basic Steps:

su

The shortest path to uhas length d

v

& there is an edge from u to v

There is a path to v with length d+1.

BFS

Page 62: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

62

BFS

What order are the nodes found?

So far, the nodes have been found in order of length from s.

<postCond>: Finds a shortest path from sto each node v and its length.

When we find v, we know there isn't a shorter path to it because ?

Prove there are no shorter paths.

Otherwise, we would have found it already.

Page 63: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

63

BFSData structure for storing tree: For each node v, store (v) to be parent of v.

Page 64: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

64

Basic Steps:

su

Path to u

v

& there is an edge from u to v

Parent of v is

(v)

(v) = u.

BFS

Page 65: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

65

Page 66: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

66

Graph Search

Handle some foundNotHandled node

•Queue: Handle in order found.

•Breadth-First Search

•Stack: Handle most recently found

•Depth-First Search

•Priority Queue: Handle node that seems to be closest to s.

•Shortest (Weighted) Paths:

Page 67: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

67

Dijkstra's Shortest-Weighted Paths

Specification: Dijkstra's Shortest-Weighted Paths Reachability-from-single-source s

•<preCond>: The input is a graph G (either directed or undirected) with positive edge weights and a source node s. •<postCond>: Finds a shortest weighted path from s to each node v and its length.

Page 68: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

68

Dijkstra's Shortest-Weighted Paths

s

u

v

100

11

1

1w

r

Length of shortest path from s to u?

4

Page 69: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

69

So far, the nodes have been found in order of length from s.

BFS

s

u

v

100

11

1

1w

r

Which node is found first?

Is the same true for Dijkstra's Alg?

Page 70: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

70

So far, the nodes have been found in order of length from s.

s

u

v

100

11

1

1w

r

It has the longest path from s.Which node is found first?

Is the same true for Dijkstra's Alg?

BFS

Page 71: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

71

So far, the nodes have been found in order of length from s.

s

u

v

100

11

1

1w

r

In what order do we handle the foundNotHandled nodes?

handled

Dijkstra's

Handle node that “seems” to be closest to s.

Page 72: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

72

To prove path is shortest:Prove there is a path of this length.Prove there are no shorter paths.

Give a path(witness)

Dijkstra'sSo far, the nodes have been handled in order of length from s.

<postCond>: Finds a shortest weighted path from s to each node v and its length.

Desired

Page 73: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

73

To prove path is shortest:Prove there is a path of this length.Prove there are no shorter paths.

Dijkstra's

When we handle v, we know there isn't a shorter path to it because ?

Otherwise, we would have handled it already.

<postCond>: Finds a shortest weighted path from s to each node v and its length.

So far, the nodes have been handled in order of length from s.

Page 74: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

74

Dijkstra's

Handle node that “seems” to be closest to s.

Need to keep approximate shortest distances.•Path that we have “seen so far” will be calledhandled paths.•Let d(v) the length of the shortest such path to v.

Basic Steps:

uvs

Which is further?

Page 75: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

75

Basic Steps:

u

The shortest of handled paths to u has length d(u)

Dijkstra's

& there is an edge from u to v

w<u,v>

vs

The shortest of handled paths to v has length d(v)

The shortest known path to v has length

min( d(v), d(u)+w<u,v> ).

Updating d(u).

Page 76: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

76

Page 77: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

77

Dijkstra's

uvs

Handled nodes Found nodes

Handled Edges?

Definition of handled paths and d(v)

Page 78: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

78

Dijkstra's

uvs

Handled nodes Found nodes

Handled Edges

Handled Paths?

Definition of handled paths and d(v)

Page 79: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

79

Dijkstra's

uvs

Handled nodes Found nodes

Definition of handled paths and d(v)

Handled Edges

Handled Paths?

Page 80: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

80

Dijkstra's

uvs

Handled nodes

d(v) is the length of the shortest handled paths to v.

For handled u,d(u) is the length of the

shortest paths to u.

NotFound

d(v’)=

Definition of handled paths and d(v)

Page 81: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

81

Exit

Page 82: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

82

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

15

1

2

6

8

1

230

3

d=

d=

d= d=

d=

d=

d=

d=0

d=

d=

d=

30

12

3

3

Page 83: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

83

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1 6

8

1

230

3

d=1

d= d=

d=

d=

d=10

d=0

d=40

d=

d=30

30

1152

2

3

d=

3

Page 84: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

84

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=

d=

d=10

d=0

d=31

d=

d=30

30

152

2

3

3

Page 85: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

85

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=

d=

d=10

d=0

d=31

d=4

d=18

30

152

2

3

3

Page 86: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

86

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=10

d=

d=10

d=0

d=6

d=4

d=5

30

1152

3

3

Page 87: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

87

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=

d=10

d=0

d=6

d=4

d=5

30

1152

3

3

Page 88: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

88

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=

d=9

d=0

d=6

d=4

d=5

30

1152

3

3

Page 89: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

89

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=15

d=8

d=0

d=6

d=4

d=5

30

1152

3

3

Page 90: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

90

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=10

d=8

d=0

d=6

d=4

d=5

30

1152

3

3

Page 91: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

91

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=10

d=8

d=0

d=6

d=4

d=5

30

1152

3

3

Page 92: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

92

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=10

d=8

d=0

d=6

d=4

d=5

30

1152

3

3

Page 93: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

93

s

c

b

Dijkstra's

a

d

f

i j

h

e

g

40

110

2

1

1

6

8

1

230

3

d=1

d=3

d= d=

d=7

d=10

d=8

d=0

d=6

d=4

d=5

30

1152

3

DONE3

Page 94: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

94

Dijkstra'sFor handled w,

d(w) is the length of the shortest paths to w.

Handle node with smallest d(u).

For handled u, d(u) is the length of the shortest paths to u.

d(v) is the length of the shortest handled

path to v.

Page 95: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

95

Dijkstra'sFor handled w,

d(w) is the length of the shortest paths to w.

Handle node with smallest d(u).

For handled u, d(u) is the length of the shortest paths to u.

d(u) is the length of the shortest handled

path to u.

d(u)

Page 96: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

96

Dijkstra'sFor handled w,

d(w) is the length of the shortest paths to w.

Handle node with smallest d(u).

For handled u, d(u) is the length of the shortest paths to u.

d(u)

d(u) is the length of the shortest handled

path to u.

First not handled node in path.

Page 97: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

97

Dijkstra'sFor handled w,

d(w) is the length of the shortest paths to w.

Handle node with smallest d(u).

For handled u, d(u) is the length of the shortest paths to u.

d(u)

First not handled node in path.d(u’)

d(u) & d(u’) are the length of the shortest handled

paths to u and u’.

Page 98: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

98

Dijkstra'sd(v) is the length

of the shortest handled path to v.

For handled w,d(w) is the length of the

shortest paths to w.

Handle node with smallest d(u).

d(v) is the length of the shortest handled path to v.

d(u)

d(v)

w<u,v>

d(v) = min( d(v), d(u)+w<u,v> ).

Page 99: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

99

Time = O(E)Each edge visited, times.2

?

Dijkstra's

This number of times following an edge.

Must update Priority Queue.

Takes time O(log(n))

Time = O(E log(n))

For each update, d(v) = min( d(v), d(u)+w<u,v> ).

Heap

Page 100: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

100

Dijkstra's Shortest-Weighted PathsSpecification: Dijkstra's Shortest-Weighted Paths Reachability-from-single-source s

•<preCond>: The input is a graph G (either directed or undirected) with positive edge weights and a source node s. •<postCond>: Finds a shortest weighted path from s to each node v and its length.

EndingInitial ConditionsMake Progress

Maintain Loop InvDefine Exit ConditionDefine Step

Define Measure of Progress

Define Loop Invariants

Define Problem

km

79 km

to school

Exit

Exit

79 km 75 km

Exit

Exit

0 km Exit

Page 101: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

101

Dijkstra's

Page 102: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

102

Dijkstra's

Page 103: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

103

Graph Search

Handle some foundNotHandled node

•Queue: Handle in order found.

•Breadth-First Search

•Stack: Handle most recently found

•Depth-First Search

•Priority Queue: Handle node that seems to be closest to s.

•Shortest (Weighted) Paths:

Page 104: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

104

DFS

Breadth first search makes a lot of sense for dating in general actually. It suggests dating a bunch of people casually before getting

serious rather than having a series of

five year relationships.

Page 105: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

105

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack

Page 106: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

106

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack

s

Page 107: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

107

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack

a

bgd

Page 108: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

108

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack

a

mgd

e

Page 109: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

109

DFS

Page 110: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

110

DFS

The nodes in the stack form a path starting at s.

Page 111: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

111

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack <node,# edges>

Page 112: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

112

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack <node,# edges>

s,0

Page 113: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

113

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,0

Page 114: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

114

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,0

Page 115: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

115

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,1h,0

Page 116: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

116

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,1h,1k,0

Page 117: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

117

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,1h,1

Tree Edge

Path on Stack

Page 118: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

118

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,1

Page 119: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

119

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,0

Page 120: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

120

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,1

Cross Edgeto handled node

Page 121: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

121

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,2

Page 122: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

122

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,3l,0

Page 123: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

123

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,3l,1

Page 124: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

124

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,3

Page 125: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

125

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,0

Page 126: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

126

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,1j,0

Page 127: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

127

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,1j,1

Back Edgeto node on Stack

Forms a cycle

Page 128: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

128

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,1j,2m,0

Page 129: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

129

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,1j,2m,1

Page 130: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

130

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,1j,2

Page 131: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

131

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4g,1

Page 132: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

132

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,4

Page 133: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

133

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,5f,0

Page 134: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

134

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,5f,1

Page 135: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

135

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2i,5

Page 136: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

136

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,2

Page 137: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

137

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1c,3

Page 138: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

138

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,1

Page 139: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

139

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

a,2

Page 140: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

140

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,1

FoundNot Handled

Stack <node,# edges>

Page 141: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

141

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,2

FoundNot Handled

Stack <node,# edges>

d,1

Page 142: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

142

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,2

FoundNot Handled

Stack <node,# edges>

d,2

Page 143: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

143

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,2

FoundNot Handled

Stack <node,# edges>

d,3e,0

Page 144: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

144

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,2

FoundNot Handled

Stack <node,# edges>

d,3e,1

Page 145: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

145

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,2

FoundNot Handled

Stack <node,# edges>

d,3

Page 146: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

146

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,2

FoundNot Handled

Stack <node,# edges>

Page 147: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

147

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,3

FoundNot Handled

Stack <node,# edges>

Page 148: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

148

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,4

FoundNot Handled

Stack <node,# edges>

b,0

Page 149: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

149

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,4

FoundNot Handled

Stack <node,# edges>

b,1

Page 150: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

150

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,4

FoundNot Handled

Stack <node,# edges>

b,2

Page 151: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

151

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,4

FoundNot Handled

Stack <node,# edges>

b,3

Page 152: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

152

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

s,4

FoundNot Handled

Stack <node,# edges>

Page 153: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

153

DFS

s

a

c

h

k

f

i

l

m

j

e

b

gd

FoundNot Handled

Stack <node,# edges>

done

Page 154: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

154

Page 155: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

155

RecursiveDepth First

Search

Get help from friends

Page 156: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

156

Page 157: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

157

Linear Order

underwear

pants

socks

shoes

underwearpantssocksshoes

socks underwearpantsshoes

Page 158: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

158

Linear Order

underwear

pants

socks

shoes

?

Page 159: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

159

Linear Order

a

b h

c i

d j

e k

f l

g

<preCond>: A Directed Acyclic Graph (DAG)

<postCond>: Find one valid linear order

….. l

Algorithm: •Find a sink.•Put it last in order.•Delete & Repeat

?

Page 160: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

160

Linear Order

a

b h

c i

d j

e k

f l

g

<preCond>: A Directed Acyclic Graph (DAG)

<postCond>: Find one valid linear order

(n)(n2)

Algorithm: •Find a sink.•Put it last in order.•Delete & Repeat

….. l

Page 161: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

161

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

degf

l

….. f

Page 162: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

162

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

degl

l

When take off stackadd to backwards order

….. f

Page 163: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

163

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

deg

l

When take off stackadd to backwards order

l,f

Page 164: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

164

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

del

When take off stackadd to backwards order

g,l,f

Page 165: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

165

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

dl

When take off stackadd to backwards order

e,g,l,f

Page 166: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

166

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

l

When take off stackadd to backwards order

d,e,g,l,f

Page 167: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

167

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

il

When take off stackadd to backwards order

d,e,g,l,f

jk

Page 168: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

168

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

il

When take off stackadd to backwards order

k,d,e,g,l,f

j

Page 169: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

169

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

il

When take off stackadd to backwards order

j,k,d,e,g,l,f

Page 170: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

170

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

l

When take off stackadd to backwards order

i,j,k,d,e,g,l,f

Page 171: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

171

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

bl

When take off stackadd to backwards order

c

i,j,k,d,e,g,l,f

Page 172: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

172

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

bl

When take off stackadd to backwards order

c,i,j,k,d,e,g,l,f

Page 173: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

173

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

l

When take off stackadd to backwards order

b,c,i,j,k,d,e,g,l,f

Page 174: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

174

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

al

When take off stackadd to backwards order

h

b,c,i,j,k,d,e,g,l,f

Page 175: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

175

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

al

When take off stackadd to backwards order

h,b,c,i,j,k,d,e,g,l,f

Page 176: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

176

Linear Order

a

b h

c i

d j

e k

f

g

FoundNot Handled

Stack

Alg: DFS

l

When take off stackadd to backwards order

a,h,b,c,i,j,k,d,e,g,l,f done

Page 177: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

177

Linear OrderFound

Not HandledStack

Proof:•Case 1: u goes on stack first before v.

•Because of edge, v goes on before u comes off•v comes off before u comes off•v goes after u in order.

u vv…u…

Consider each edge

v

u

Page 178: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

178

Linear OrderFound

Not HandledStack

Proof:•Case 1: u goes on stack first before v.•Case 2: v goes on stack first before u. v comes off before u goes on.

•v goes after u in order.

u vv…u…

Consider each edge

u

v

Page 179: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

179

Linear OrderFound

Not HandledStack

Proof:•Case 1: u goes on stack first before v.•Case 2: v goes on stack first before u. v comes off before u goes on.Case 3: v goes on stack first before u. u goes on before v comes off.

•Panic: u goes after v in order. •Cycle means linear order is impossible

u vu…v…

Consider each edge

u

v

The nodes in the stack form a path starting at s.

done

Page 180: 1 Searching in a Graph Jeff Edmonds York University COSC 3101 Lecture 5 Generic Search Breadth First Search Dijkstra's Shortest Paths Algorithm Depth First

180

End