chapter 14 weighted graphs © john urrutia 2014, all rights reserved1

24
Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved 1

Upload: kari-bunch

Post on 14-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Chapter 14 Weighted Graphs

© John Urrutia 2014, All Rights Reserved 1

Page 2: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Weighted GraphsWeighted Graphs

Similar to directional GraphsAdded attribute called “weight” to the edges

Used to designate a preference between edgesHelps answer questions like

What is the minimum spanning tree for a weighted graph?

What is the shortest (or cheapest) distance from one vertex to another?

© John Urrutia 2014, All Rights Reserved 2

Page 3: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Treewith weighted graphs

Weight changes everythingEach vertex edge must be compared based on

their weightThe lightest weight wins

Given 6 cities where the weight between each city is the cost ($millions)of building an internet cableWhat is/are the least expensive route

© John Urrutia 2014, All Rights Reserved 3

Page 4: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 4

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Repeat until no moreVertices to add

Pick a vertex

Add vertex to MSP

Identify the lightestEdge from this vertex

NewVertex in MSP

Identify the next lightest Edge

from this vertex

No

Page 5: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 5

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Erizo Colina

Flor Bordo

Ajo Danza

5 6 7 6 4

Page 6: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 6

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Flor Colina

Erizo Bordo

Ajo Danza

6 5 7 6 4

Page 7: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 7

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Colina

Erizo Flor Bordo

Ajo Danza

5 6 7 6 4

Page 8: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 8

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Bordo

Ajo Danza Erizo

Colina

Flor

6 4 7 5 6

Page 9: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 9

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Ajo Danza

Bordo

Erizo Colina

Flor

4 6 7 5 6

Page 10: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 10

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

Danza

Ajo Bordo

Erizo Colina

Flor

4 6 7 5 6

Page 11: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Minimum Spanning TreeThe Algorithm

Select a current vertex to start the treeFind all edges from the current vertex to

vertices not already in the tree. Place them into a priority queue.

Select the lowest priority edge from the queue add it and the destination vertex to the tree.

Repeat until no more vertices to add.

© John Urrutia 2014, All Rights Reserved 11

Page 12: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Priority Queue

Vertex List

Minimum Spanning Trees

© John Urrutia 2014, All Rights Reserved 12

Colina

Danza

Flor

Ajo

Bordo

Erizo

10 6

7

124

7

7

8

56

A

D4B6E7C5F6

Ajo Danza

Bordo

Erizo Colina

Flor

4 6 7 5 6

B6D4E12C8B7

B6

C10E7F7C5

Page 13: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Shortest Path ProblemWith the Minimum Spanning Tree we

answer the question:Can we get there from here

With the Shortest Path we answer the questions:What is the shortest way to get there from here

© John Urrutia 2014, All Rights Reserved 13

Page 14: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Dijkstra’s AlgorithmDeveloped in 1959 by Edsger DijkstraBased on an adjacency matrix for a directed

graphFinds the shortest path between one vertex

to anotherFinds the shortest paths between a vertex

and all other verticesSimilar to Warshall’s algorithm but updates a

path when it is shorter than a previous one

© John Urrutia 2014, All Rights Reserved 14

Page 15: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Dijkstra’s AlgorithmFor each unvisited vertex in the weighted

graphSelect the vertex with the smallest total

distanceCalculate the distance through this vertex to

each unvisited neighboring vertexUpdate the neighboring vertex distance if

smaller.Mark the source vertex as visited.

© John Urrutia 2014, All Rights Reserved 15

Page 16: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Shortest Path Array

© John Urrutia 2014, All Rights Reserved 16

Colina

Danza

Flor

Ajo

Bordo

Erizo

$10 $6

$7

$12$4

$7

$7

$8

$3$6

~

~

~

~

~

0

4

6

16

12

18

6 + 10 = 16!< 12 NoChg12 + 3 = 15< 16 Update

15

6 + 7 = 13!< 4 NoChg

Page 17: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

All-pairs Shortest PathWeighted Adjacency Matrix

© John Urrutia 2014, All Rights Reserved 17

¯From / To® Ajo Bordo Colina Danza Erizo Flor

Ajo inf $6 inf $4 inf inf

Bordo inf inf $10 $7 inf inf

Colina inf inf inf inf $3 $6

Danza inf inf $8 inf $12 inf

Erizo inf $7 inf inf inf inf

Flor inf inf inf inf $7 inf

Page 18: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

All-pairs Shortest PathAll-Pairs Table

© John Urrutia 2014, All Rights Reserved 18

¯From / To® Ajo Bordo Colina Danza Erizo Flor

Ajo inf $6 $12 $4 $16 $18

Bordo inf inf $10 $7 $13 $16

Colina inf $10 inf $17 $3 $6

Danza inf $18 $8 inf $12 $14

Erizo inf $7 $17 $14 inf $23

Flor inf $14 $24 $21 $7 inf

Page 19: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Floyd’s AlgorithmDijkstra’s algorithm for producing the All-

Pairs Shortest Path Table runs in O(N2)Floyds algorithm for the All-Pairs Shortest

Path Table is more efficient because it uses a variation on Warshall’s algorithm.

© John Urrutia 2014, All Rights Reserved 19

Page 20: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Floyd’s AlgorithmProcess each row and column

© John Urrutia 2014, All Rights Reserved 20

Adjacency Matrix

Ajo Bordo Colina Dansa Erizo Flor

Ajo 6 4

Bordo 10 7

Colina 3 6

Dansa 8 12

Erizo 7

Flor 7

Ajo goes to Bordo – Bordo goes to?

6 + 7 = 13!< 4 No Chg

SAN goes to LGA,MSP,SFO,STL,TPA – what goes to SAN Nothing?

Nothing goes to Ajo

TPA goes to STL – what goes to TPA

16

4 + 8 = 12< 16 Update

12

Page 21: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

SummaryIn a weighted graph, edges have an associated

number called the weight, which might represent distances, costs, times, or other quantities.

The minimum spanning tree in a weighted graph minimizes the weights of the edges necessary to connect all the vertices. 

An algorithm using a priority queue can be used to find the minimum spanning tree of a weighted graph.

The minimum spanning tree of a weighted graph models real-world situations such as installing utility cables between cities.

© John Urrutia 2014, All Rights Reserved 21

Page 22: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

SummaryThe shortest-path problem in a non-weighted graph

involves finding the minimum number of edges between two vertices.

Solving the shortest-path problem for weighted graphs yields the path with the minimum total edge weight.

The shortest-path problem for weighted graphs can be solved with Dijkstra’s algorithm.

The algorithms for large, sparse graphs generally run much faster if the adja- cency-list representation of the graph is used rather than the adjacency matrix.

© John Urrutia 2014, All Rights Reserved 22

Page 23: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

SummaryThe all-pairs shortest-path problem is to find

the total weight of the edges between every pair of vertices in a graph. Floyd’s algorithm can be used to solve this problem.

Some graph algorithms take exponential time and are therefore not practical for graphs with more than a few vertices.

© John Urrutia 2014, All Rights Reserved 23

Page 24: Chapter 14 Weighted Graphs © John Urrutia 2014, All Rights Reserved1

Directional Weighted Graph

© John Urrutia 2014, All Rights Reserved 24

Colina

Danza

Flor

Ajo

Bordo

Erizo

$10 $6

$7

$12$4

$7

$7

$8

$3$6