This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: CS161  Graph Algorithms David Kauchak Types of graphs What is a graph? A graph is a set of vertices V and a set of edges ( u,v ) E where u,v V undirected directed weighted Some special cases tree  connected, undirected graph without any cycles DAG (directed acyclic graph)  directed graph without any cycles complete graph  a graph where every vertex is connected bipartite graph  a graph where every vertex can be partitioned into two sets X and Y such that all edges connect a vertex u X and a vertex v Y Examples Transportation networks (flights, roads, etc.) Communication networks Web Bayesian networks Social networks Circuit design Representation 1 Adjacency list Each vertex u V contains an adjacency list of the set of vertices v such that there exists an edge ( u,v ) E Example of undirected and directed Adjacency matrix A graph is represented by a  V  x  V  matrix A such that a ij = braceleftBigg 1 if ( i,j ) E 0 otherwise Example of undirected and directed Tradeoffs Dense vs. sparse graph Adjacency list: Space efficient, e.g. web Adjacency matrix: constant time lookup to see if an edge exists Best of both worlds? Weighted graphs Adjacency list: store the weight in the adjacency list Adjacency matrix: a ij = braceleftBigg weight if ( i,j ) E otherwise Graph algorithms graph traversal (BFS, DFS) Shortest path from a to b * unwieghted * weighted positive weights * negative/positive weights All pair shortest paths Are all nodes in the graph connected?...
View Full
Document
 Summer '09
 Algorithms

Click to edit the document details