Directed Graphs

A directed graph, or "digraph", is a graph whose edges have direction and are called arcs. Arrows on the arcs are used to encode the directional information: an arc from vertex A to vertex B indicates that one may move from A to B but not from B to A.

Suppose that you wished to go to the main branch of the Cincinnati Public Library. The following directed graph is a map to the library from the nearby major interstates:

We have obviously omitted a number of downtown streets for reasons of clarity. Similarly, we have labeled the arcs instead of the vertices in many cases; we trust it is obvious that the vertex connecting, for instance, 9th Street with Vine Street, is the intersection of 9th and Vine. Note that all of the streets in this directed graph are one-way; a two-way street would have arcs in both directions connecting vertices corresponding to neighboring intersections.

In a directed graph, vertices have both "indegrees" and "outdegrees": the indegree of a vertex is the number of arcs leading to that vertex, and the outdegree of a vertex is the number of arcs leading away from that vertex. In the directed graph above,

A vertex with an indegree of 0 is called a source (since one can only leave it) and a vertex with an outdegree of 0 is called a sink (since one cannot leave it). It is relatively easy to see that
a directed graph with no cycles has at least one source and one sink.

Matrices

Directed graphs are often described using matrices (singular matrix). For our purposes, a matrix is a table whose rows and columns are labeled, usually by numbers. The entries in the table are called matrix elements and are typically identified using subscripts:
M i, j
is the element of the matrix M which is located at the intersection of the ith row and the jth column. The following matrix, in which each element M i, j is the number of arcs from vertex i to vertex j, describes the directed graph above:

I-75I-719th & Vine9th & Walnut 8th & Vine8th & Walnut7th & Vine7th & Walnut 5th & Vine5th & WalnutI-75 N
I-75000000 10100
I-71000001 00000
9th & Vine100000 00000
9th & Walnut001001 00000
8th & Vine001000 00000
8th & Walnut000010 01000
7th & Vine000010 01000
7th & Walnut010000 00010
5th & Vine000000 10010
5th & Walnut000000 00000
I-75 N000000 00100

There are several things to notice about this matrix:

Our notion of connectivity changes somewhat when we talk about directed graphs:
In the directed graph example above,
I-75, 7th & Vine, 8th & Vine, 9th & Vine, I-75
is a walk,
I-75, 7th & Vine, 5th & Vine, I-75
is a semi-walk,
I-75, 7th & Vine, 8th & Vine
is a path and
I-75, 7th & Vine, 5th & Vine, 5th & Walnut, 7 & Walnut
is a semi-path. There are obviously many more examples of each: find them!

Using these definitions, we can further define various levels of connectivity:

Our directed graph example is strictly weakly connected, as is any directed graph with sources or sinks.

We now move to one of the most interesting applications of the directed graph: the finite state machine.


Go to:Title PageTable of ContentsIndex

©2002, Kenneth R. Koehler. All Rights Reserved. This document may be freely reproduced provided that this copyright notice is included.

Please send comments or suggestions to the author.