Graphs and Digraphs — Examples

Graphs and Digraphs — Examples

Graphs and Digraphs — Examples An (undirected) graph G = (V,E) adjacency matrix for G A B C D E F F A 0 1 0 1 0 1 A B 1 0 0 0 1 0 B E C 0 0 0 1 0 0 D 1 0 1 0 1 1 D E 0 1 0 1 0 0 C F 1 0 0 1 0 0 B D F A B A E adjacency list for G C D D E A C E F F B D A D n vertices, e edges (0 ≤ e ≤ n(n–1)/2 ≈ n2/2). Adjacency matrix: Θ(n2) space. An algorithm that examines the entire graph structure will require Ω(n2) time. Adjacency list: Θ(n+e) space. An algorithm that examines the entire graph structure will require Ω(n+e) time. Often, e << n2. In this case, the adjacency list may be preferable. A digraph G = ( V, E) adjacency matrix for G A B C D E F F A 0 1 0 0 0 1 A B 0 0 0 0 1 0 B E C 0 0 0 0 0 0 D 1 0 1 0 0 0 D E 0 1 0 1 0 0 C F 0 0 0 1 0 0 B F A B E adjacency list for G C D E A C F B D D In a digraph, e may be as high as n(n–1) ≈ n2, but otherwise the remarks on the previous page hold. A weighted digraph G = (V, E,W) adjacency matrix for G A B CDEF 12 F A ∞ 3 ∞ ∞ ∞ 12 A 3 14 B ∞ ∞ ∞ ∞ 11 ∞ B 11 E C ∞ ∞ ∞ ∞ ∞ ∞ 9 21 17 D 9 ∞ 8 ∞ ∞ ∞ 8 D E ∞ 14 ∞ 17 ∞ ∞ C F ∞ ∞ ∞ 21 ∞ ∞ B 3 F 12 A B E 11 adjacency list for G C D E A 9 C 8 F B 14 D 17 D 21 In the adjacency matrix, a non-existent edge might be denoted by 0 or ∞. For example, a non-existent edge could represent i) a capacity of 0, or ii) a cost of ∞. Directed Acyclic Graphs (DAGs) In any digraph, we define a vertex v to be a source, if there are no edges leading into v, and a sink if there are no edges leading out of v. A directed acyclic graph (or DAG) is a digraph that has no cycles. Example of a DAG: F a source A B E G a sink D C Theorem Every finite DAG has at least one source, and at least one sink. In fact, given any vertex v, there is a path from some source to v, and a path from v to some sink. Note: This theorem need not hold in an infinite DAG. For example, this DAG has neither a source nor a sink. ... -3 -2 -1 0 1 2 3 ... Note: In any digraph, the vertices could represent tasks, and the edges could represent constraints on the order in which the tasks be performed. For example, A must be performed before B, F, or G. B must be performed before C or E. C must be performed before G. D must be performed before C. E must be performed before D. F must be performed before D. We will see that the constraints are consistent if any only if the digraph has no cycles, i.e., is a DAG. A topological sort of a digraph G = (V,E) is labeling of the vertices by 1, 2, ..., |V| (or by elements of some other ordered set) such that (u,v) is a edge ⇒ label(u) < label(v). We will see that a digraph has a topological sort if and only if it is a DAG. For a tasks / constraints graph, a topological sort provides an order in which the tasks can be performed serially, and conversely any valid order for performing the tasks serially gives a topological sort. Strongly Connected Components of a Digraph If G is a digraph, define a relation ~ on the vertices by: a ~ b is there is both a path from a to b, and a path from b to a. This is an equivalence relation. The equivalence classes are called the strong components of G. G is strongly connected if it has just one strong component. This digraph has five strong components. F M A N O B E P D C Q I H G L K J Given a strongly connected digraph G, we may form the component digraph GSCC as follows: i) The vertices of GSCC are the strongly connect components of G. ii) There is an edge from v to w in GSCC if there is an edge from some vertex of component v to some vertex of component w in G. Theorem: The component graph of a digraph is a DAG. Here is the component digraph for the digraph on the preceding page. 2 1 3 4 5.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us