1 / 12

Lecture 9:

Lecture 9:. Graphs & Graph Models. Definition of a Graph. cycle. path. edge. vertex. A. D. F. C. H. B. E. G. Graph Representations. edge list. node list. A B A C A D A E A F B A B C B E B H C A C B C D C E C H D A D C D F D G D H. A - B C D E F B - A C E H

garren
Télécharger la présentation

Lecture 9:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 9: Graphs & Graph Models

  2. Definition of a Graph cycle path edge vertex

  3. A D F C H B E G Graph Representations edge list node list A B A C A D A E A F B A B C B E B H C A C B C D C E C H D A D C D F D G D H A - B C D E F B - A C E H C - A B D E H D - A C F G H E - A B C F G F - A D E G H G - D E F H H - B C D F G E A E B E C E F E G F A F D F E F G F H G D G E G F G H H B H C H D H F H G node list - lists the nodes connected to each node edge list - lists each of the edges as a pair of nodes undirected edges may be listed twice XY and YX in order to simplify algorithm implementation adjacency matrix - for an n-node graph we build an nxn array with 1's indicating edges and 0's no edge the main diagonal of the matrix is unused unless a node has an edge connected to itself. If graph is weighted, 1's are replaced with edge weight values adjacency matrix A B C D E F G H A - 1 1 1 1 1 0 0 B 1 - 1 0 1 0 0 1 C 1 1 - 1 1 0 0 1 D 1 0 1 - 0 1 1 1 E 1 1 1 0 - 1 1 0 F 1 0 0 1 1 - 1 1 G 0 0 0 1 1 1 - 1 H 0 1 1 1 0 1 1 -

  4. Example Applications This graph could represent... a computer network an airline flight route an electrical power grid WalMart warehouse supply lines ...

  5. Niche Overlap Graph Animals are represented as nodes. We place an edge between two nodes if the corresponding animals compete for resources (food, habitat, ...).

  6. Web Links Vertices indicate we pages and arcs indicated links to other web pages.

  7. Round-Robin Tour A directed graph represents a round-robin tour in which each team plays every other team exactly one time. Arc points from winning team to losing team. undefeated 5-0 biggest loser 0-5

  8. An Acquaintanceship Graph In an acquaintanceship graph people are represented as nodes. Nodes are connected by an edge when two people know each other. We can compute the degree of separation between any two people using Floyd's All-Pairs Shortest-Path Algorithm. Eduardo Kamini Jan Paula Todd Kamlesh Lila Amy Ching Liz Steve Joel Gail Koko Kari Shaquira Eduardo Kamini Jan Paula Todd Kamlesh Lila Amy Ching Liz Steve Joel Gail Koko Kari Shaquira 0 3 2 1 2 3 2 2 4 2 3 2 3 4 3 4 3 0 1 2 3 4 2 3 5 3 4 2 3 5 3 4 2 1 0 1 2 3 1 2 4 2 3 1 2 4 2 3 1 2 1 0 1 2 1 1 3 1 2 1 2 3 2 3 2 3 2 1 0 1 2 1 2 2 1 2 3 2 3 2 3 4 3 2 1 0 3 2 1 3 2 3 4 3 4 3 2 2 1 1 2 3 0 2 4 1 2 1 1 3 2 2 2 3 2 1 1 2 2 0 3 1 1 2 3 2 3 2 4 5 4 3 2 1 4 3 0 4 3 4 5 4 5 4 2 3 2 1 2 3 1 1 4 0 1 2 2 2 3 2 3 4 3 2 1 2 2 1 3 1 0 3 2 1 4 1 2 2 1 1 2 3 1 2 4 2 3 0 1 4 1 2 3 3 2 2 3 4 1 3 5 2 2 1 0 3 2 1 4 5 4 3 2 3 3 2 4 2 1 4 3 0 5 2 3 3 2 2 3 4 2 3 5 3 4 1 2 5 0 3 4 4 3 3 2 3 2 2 4 2 1 2 1 2 3 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 staticvoid floyd() { for (int k = 0; k < n; k++) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if(i!=j) W[i, j]=min(W[i,j],W[i,k],W[k,j]); } } } }

  9. A D F C H B E G Simple Graphs vs Multigraphs A simple graph is one in which each edge connects two different vertices and where on two edges connect the same pair of vertices. Graphs that have multiple edges connecting the same pairs of vertices are called multigraphs or pseudographs. An edge that connects a node to itself is called a loop.

  10. Types of Graphs ring bipartite graph complete graph directed acyclic graph

  11. A D F C H B E G Graph Breadth-First Traversal Given a graph G(V,E) and a starting vertex s, perform a breadth-first traversal (BFT) of G. such that each reachable vertex is entered exactly once. If all vertices are reachable, the edges traversed and the set of vertices will represent a spanning tree embedded in the graph G. 1) BFT suggests an iterative process (rather than a recursive one) 2) BFT vertices order of traversal can be maintained using a Queue data structure 3) The preferred representation for the graph is an adjacency matrix 4) We will need a way to keep up with which vertices have been "used" (e.g. a Boolean list) 5) Process begins by placing the starting vertex in the Queue 6) A vertex is taken from the Queue, every unused vertex adj to this vertex is added to the Queue This operation is repeated until the Queue is empty. 8) The output (answer) is returned in the form of a list of vertices in the order they entered the Queue

  12. A D F C H B E G Graph Depth-First Traversal Given a graph G(V,E) and a starting vertex s, perform a depth-first traversal (BFT) of G. such that each reachable vertex is entered exactly once. If all vertices are reachable, the edges traversed and the set of vertices will represent a spanning tree embedded in the graph G. 1) DFT suggests a recursive process (rather than an iterative one) 2) DFT vertices order of traversal are maintained automatically by the recursion process (as a Stack) 3) The preferred representation for the graph is an adjacency matrix. 4) We will need a way to keep up with which vertices have been "used" (e.g. a Boolean list) 5) Process begins by passing the starting vertex to a recursive function DFT(s) 6) For the current vertex, s DFT(s) calls itself for each adjacent, unused vertex remaining. This operation is completed when all calls to DFT( ) are completed. 8) The output is returned as a of a list of vertices in the order they were passed to DFT( ).

More Related