32
ECE669 L10: Graph Applications March 2, 2004 ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

  • Upload
    felice

  • View
    32

  • Download
    2

Embed Size (px)

DESCRIPTION

ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications. Outline. Many applications can be modeled as graphs Graphs require determination of shortest paths, adjacency, and other values Efficient parallel algorithms exist which break up the search Used to model many applications - PowerPoint PPT Presentation

Citation preview

Page 1: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

ECE 669

Parallel Computer Architecture

Lecture 10

Graph Applications

Page 2: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Outline

° Many applications can be modeled as graphs

° Graphs require determination of shortest paths, adjacency, and other values

° Efficient parallel algorithms exist which break up the search

° Used to model many applications

• VLSI CAD

• Mapping

• Sales planning

Page 3: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Graph

° A graph is a pair (V, E), where

• V is a set of nodes, called vertices

• E is a collection of pairs of vertices, called edges

• Vertices and edges are positions and store elements

° Example:

• A vertex represents an airport and stores the three-letter airport code

• An edge represents a flight route between two airports and stores the mileage of the route

ORD PVD

MIADFW

SFO

LAX

LGA

HNL

849

802

13871743

1843

10991120

1233337

2555

142

Page 4: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Edge Types

° Directed edge

• ordered pair of vertices (u,v)

• first vertex u is the origin

• second vertex v is the destination

• e.g., a flight

° Undirected edge

• unordered pair of vertices (u,v)

• e.g., a flight route

° Directed graph

• all the edges are directed

• e.g., route network

° Undirected graph

• all the edges are undirected

• e.g., flight network

ORD PVDflight

AA 1206

ORD PVD849

miles

Page 5: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

John

DavidPaul

brown.edu

cox.net

cs.brown.edu

att.netqwest.net

math.brown.edu

cslab1bcslab1a

Applications° Electronic circuits

• Printed circuit board

• Integrated circuit

° Transportation networks

• Highway network

• Flight network

° Computer networks

• Local area network

• Internet

• Web

° Databases

• Entity-relationship diagram

Page 6: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Terminology

° End vertices (or endpoints) of an edge

• U and V are the endpoints of a

° Edges incident on a vertex

• a, d, and b are incident on V

° Adjacent vertices

• U and V are adjacent

° Degree of a vertex

• X has degree 5

° Parallel edges

• h and i are parallel edges

° Self-loop

• j is a self-loop

XU

V

W

Z

Y

a

c

b

e

d

f

g

h

i

j

Page 7: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

P1

Terminology

° Path

• sequence of alternating vertices and edges

• begins with a vertex

• ends with a vertex

• each edge is preceded and followed by its endpoints

° Simple path

• path such that all its vertices and edges are distinct

° Examples

• P1=(V,b,X,h,Z) is a simple path

• P2=(U,c,W,e,X,g,Y,f,W,d,V) is a path that is not simple

XU

V

W

Z

Y

a

c

b

e

d

f

g

hP2

Page 8: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Terminology

° Cycle

• circular sequence of alternating vertices and edges

• each edge is preceded and followed by its endpoints

° Simple cycle

• cycle such that all its vertices and edges are distinct

° Examples

• C1=(V,b,X,g,Y,f,W,c,U,a,) is a simple cycle

• C2=(U,c,W,e,X,g,Y,f,W,d,V,a,) is a cycle that is not simple

C1

XU

V

W

Z

Y

a

c

b

e

d

f

g

hC2

Page 9: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Edge List Structure

° Vertex object

• element

• reference to position in vertex sequence

° Edge object

• element

• origin vertex object

• destination vertex object

• reference to position in edge sequence

° Vertex sequence

• sequence of vertex objects

° Edge sequence

• sequence of edge objects

v

u

w

a c

b

a

zd

u v w z

b c d

Page 10: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

• Goal is to find the shortest route that starts at one city and visit each of a list of other cities exactly once before returning to the first city.

• For n cities there are (n-1)! diferent paths starting and ending in city 1.

• In practice an exact solution is infeasible except for small values of n.

• Many approximation algorithms are developed.

Traveling Salesman Problem

Page 11: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Backtracking Algorithm

One sequential solution is to examine all feasible paths.

A path is feasible if it is not longer than the best complete path that has been determined so far.

We start with city 1, there are n-1 possible cities to visit next.

From each of these, there are n-2 possible cities to visit and so on.

1

23

4

3

4

4

3

2

4

4

2

2

3

3

2

Page 12: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Backtracking Algorithm

1

23

4

3

4

4

3

2

4

4

2

2

3

3

2

The standard method to examine all the paths in a tree is to use depth-first search method (DFS).

There is no need to consider a path that is known to be longer than the shortest completed path that has been found so far.

Page 13: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Parallel Solution

• The paths are independent; thus, we could examine all of them in parallel.

• The approach is to provide a fixed number of slave processes that share a pool of tasks.

• Each task consists of a partial path, the number of cities visited on a path, and the path length.

• Each process takes a partial path and extends it with every city which has not been considered.

• If the length of the path is longer than the length of the shortest complete path, the path is discarded.

Page 14: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Traveling Salesman

° Example

° Find shortest tour: E.g. (1 2 5 6 3 4) and then back to 1

•2

1

5

4

3

•6

2

3

2

2

21

1

5

6

6

4

7

Page 15: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Exhaustive Search

° Find lowest c path,

• But tours!!!

• Can exploit parallelism though!2

n 1 !

2

XXXX

• •

• •

•••

• • • •

1

643

54

23

,c=0

,c=6,c=7,c=4

,c=3

,c=1

c=3

c=5

1

2 76

22

4

Page 16: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Branch and Bound Algorithms - Prune!

° Naive

•••

1,c=0

2,c=1

3,c=2

4,c=7 6,c=6

1

27 6

Page 17: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Naive

• (1, 2 ...) Most promising, follow that lead -- greedy

Branch and Bound Algorithms - Prune!

° •

•••

1,c=0

2,c=1

3,c=2

4,c=7 6,c=6

1

27 6

4

2 23

4 5c=5

c=3 c=3

Page 18: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Naive

• (1, 2 ...) Most promising, follow that lead -- greedy

• (1, 3 ...) Most promising

Branch and Bound Algorithms - Prune!

••

1,c=0

2,c=1

3,c=2

4,c=7 6,c=6

1

2

7 64

2 23

4 5c=5

c=3 c=3

• •• •2 4 5 6c=6 c=8 c=7 c=3

46 5 1

Page 19: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

• (1, 2 ...) Most promising, follow that lead -- greedy

• (1, 3 ...) Most promising

• Continue ... till a tour is found

Branch and Bound Algorithms - Prune!

•••

1,c=0

2,c=1

3,c=2

4,c=7 6,c=6

1

27 64

2 23

4 5c=5

c=3 c=3

• •• •2 4 5 6c=6 c=8 c=7 c=3

4 6 5 1•

6

3

5

5

2

6

5

1 c=21

c=16

c=14

c=9

Page 20: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

• Continue ... ‘til a tour is found

Branch and Bound Algorithms - Prune!

••

•••

1,c=0

2,c=1

3,c=2

4,c=7 6,c=6

1

27 64

2 23

4 5c=5

c=3 c=3

• •• •2 4 5 6c=6 c=8 c=7 c=3

4 6 5 1•

6

3

5

5

2

6

5

1 c=21

c=16

c=14

c=9

(1 2 4 3 5 6) BOUND: 21 19

2

1

6

7

c=6

1

4

3

6c=5

c=12

c=19

Page 21: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Representing a graph in an algorithm may be accomplished via two different methods: adjacency matrix and linked list.

1. Consider a graph with n vertices that are numbered 1,2,…, n. The adjacency matrix of this graph can be defined as n x n matrix A with the following properties:

1 if (v(I), v(j)) E

A(i, j) =

0 otherwise.

Representing Graphs

Page 22: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Better Algorithm, but basically Branch and Bound

° Little et al.

° Basic Ideas:

1

1

2

3

4

2 3 4

4 9 6

2 6

1 2 4

2 2

Cost matrix

1

4

3

2

6

2

41

9

24

62 2

Page 23: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Better Algorithm, but basically Branch and Bound

Little et al.

Notion of reduction:

• Subtract same value from each row or column•

1

2

3

4

4

9

6

To

At least 4

4

1

1

2

3

4

2 3 4

4 9 6

2 6

1 2 4

2 2

0 5 21

4

3

2

6

2

41

9

24

62 2

Page 24: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Better Algorithm, but basically Branch and Bound

Little et al.

1

2

3

4

4

9

6

To

At least 4

4

1

1

2

3

4

2 3 4

4 9 6

2 6

1 2 4

2 2

0 5 2

1

4

3

2

6

2

41

9

24

62 2

2

3

4

2

2

1

At least 1

From

1

0

1

1

Page 25: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Better Algorithm, but basically Branch and Bound

Little et al.

1

2

3

4

4

9

6

To

At least 4

4

1

1

2

3

4

2 3 4

4 9 6

2 6

1 2 4

2 2

0 5 2

1

4

3

2

6

2

41

9

24

62 2

2

3

4

2

2

1

At least 1

From

1

0

1

1

Page 26: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Better Algorithm

1

2

3

4

4

9

6

To

At least 4

2

3

4

2

2

1

At least 1

From

Reduce allrows & columns10 is cost of opt. tour

1+1+2+1+1+4

1

1

2

3

4

2 3 4

4 9 6

2 6

1 2 4

2 2

1

0

1

0 2

1

54

2

01

21

0

0

4

1

1

05

4

1

4

3

2

6

2

41

9

24

62 2

Page 27: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

In other words, the Traveling Salesman Problem is stated as:

Given a set of vertices and non-negative cost C(I,J) associated with each pair of vertices I and J, find a circuit containing every vertex in the graph so that the cost of the entire path is minimized.

The problem can be classified as

• Symmetric Salesman Problem – C(I,J)=C(J,I) for all I,J

• Asymmetric Traveling Salesman Problem - C(I,J) C(J,I) for all I, J.

Further Analysis

Page 28: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

1

2

3

4

5

6

7

9

3

4

5

38

2

4

9

5

7

28

6

1

2

3

4

5

6

7

Another Example

Page 29: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Graph Coloring Problem

Let G be undirected graph and let c be an integer.

Assignment of colors to the vertices or edges such that no two adjacent vertices are to be similarly colored.

We want to minimize the number of colors used.

The smallest c such that a c-coloring exists is called the graph’s chromatic number and any such c-coloring is an optimal coloring.

Page 30: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Coloring of Graph

1. The graph coloring optimization problem: find the minimum number of colors needed to color a graph.

2. The graph coloring decision problem: determine if there exists a coloring for a given graph which uses at most m colors.

Two colors No solution with two colors

Page 31: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Coloring of Graphs

Practical applications: scheduling, time-tabling, register allocation for compilers, coloring of maps.

A simple graph coloring algorithm - choose a color and an arbitrary starting vertex and color all the vertices that can be colored with that color.

Choose next starting vertex and next color and repeat the coloring until all the vertices are colored.

Four colors Three colors are enough

Page 32: ECE 669 Parallel Computer Architecture Lecture 10 Graph Applications

ECE669 L10: Graph Applications March 2, 2004

Summary

° Many applications can be modeled as graphs

° Graphs require determination of shortest paths, adjacency, and other values

° Efficient parallel algorithms exist which break up the search

° Used to model many applications

• VLSI CAD

• Mapping

• Sales planning