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
ECE669 L10: Graph Applications March 2, 2004
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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