Graph Orientability and Vulnerability

Graph Orientability and Its
Application to Mathematical
Modeling in the Social Sciences
Carmen Frerichs
252a-ao
December 14, 2000
Orientability
What is orientability?
How is orientation in a graph determined?
How do you give a graph the property of orientability?
A naïve algorithm
Analysis of algorithm
What is orientability?
The concept of orientability in graphs was developed as
a means of mathematically modeling traffic flow
problems. Orientability can only be determined in
directed graphs.
Essentially, orientability in a graph answers the question
is there a way to give each edge in a graph G a
direction, or an orientation, so that it is possible to get
from any vertex u to every other vertex v.
The concept of orientation is best
illustrated using the traffic flow problem
that it was designed to model…
Given a network of two-way streets in a city, under
what circumstances can we make each street oneway in such a way that it is possible to travel from
any location to any other.
Translating this problem into graph theory, we draw
a graph G taking as vertices locations in the city and
joining them by an edge if and only if they are
connected by a two way street.
We encountered the concept of being able to get from any
vertex in a graph to any other vertex in the graph earlier in
the semester. This property is that of strong connectivity.
Therefore, the orientability of a graph is determined by
a.) whether the graph is strongly connected and
b.) can an orientation (direction) be assigned to each of
the edges in the graph while still maintaining this property
of strong connectivity.
Graphical representation of traffic flow
problem:
G = (V, E)
V = {a, b, c, d, e, f, g, h, i, j, k}
(locations in the city)
E = { {a,b}, {a,d}, {b,c}, {b,d}, {c,e}, {d,e},
{e,f}, {e,g}, {e,j}, {e,k}, {f,g}, {f,h}, {f,i},
{g,h}, {h,i}, {j,k} }
(two way streets between locations in the
city)
d
a
f
i
e
b
h
c
g
k
j
locations
two-way streets
Naïve algorithm for determining whether
or not a strongly connected orientation of
graph G is possible:
1. Determine if graph G is strongly connected.
2. Attempt to assign an orientation (direction) to
each of the edges in G while maintaining the
property of strong connectivity.
1. Determining if G is strongly
connected
To determine strong connectivity in an
undirected graph, the notion of a bridge is
introduced.
A bridge is an edge {u,v} in a graph G with the
property that if the edge {u,v} (but not the
vertices u and v) is removed the graph G
becomes disconnected.
1. Determining if G is strongly
connected, continued…
Theorem: If G is a strongly connected graph,
then edge {u,v} is a bridge in G if and only if
every chain from u to v in G includes edge {u,v}.
u
v
1. Determining if G is strongly
connected, continued…
From this theorem, we now need to design an algorithm
that will test each edge in graph G to determine if it is a
bridge. If there are no bridges then G is strongly
connected.
As it turns out, in the process of assigning orientation
(direction) to each of the edges in G (step 2 of the naïve
algorithm) we can simultaneously determine whether or
not G was a strongly connected graph. So, proceeding
to the 2nd step…
2. Assigning orientation (while
maintaining assumed strong connectivity).
a.) pick any vertex and label it 1.
b.) pick any neighbor of the newly labeled
vertex 1, label the neighbor 2 and orient the
edge between {1,2} from 1 to 2.
c.) pick any unlabeled neighbor of 2, label it 3
and orient the edge between {2,3} from 2 to 3.
2. Assigning orientation (while maintaining
assumed strong connectivity) continued…
d.) repeat step c. until there are no more
unlabeled neighbors. When there are no more
unlabeled neighbors for a given vertex, back
up to the last vertex with an unlabeled
neighbor and proceed from there.
e.) when there are no unlabeled vertices left in
G, stop.
d
a
1
5
f
6
e
i
8
4
2
b
3
c
9
g
11
k
7
h
10
j
As we can see, this procedure assigns a label to every
vertex but some of the edges between the vertices remain
undirected.
2. Assigning orientation (while maintaining
assumed strong connectivity) continued…
f.) orient the remaining undirected edges
between the now labeled vertices by assigning
direction from the vertex with the greater
numerical value to the vertex of lesser
numerical value.
a
1
2
b
d
5
e
4
3
c
11
k
With this final step, we obtain a
directed subgraph of our
original undirected graph G.
10
j
f
6
i
8
9
7
g
h
Some observations
This algorithm has essentially performed a Depth
First Search on an undirected graph while
simultaneously assigning orientation or direction to
the edges in the graph. The result of this algorithm is
in fact a Depth First Spanning Tree.
By evaluating the edges in the resulting spanning
tree, we can determine if G was a strongly connected
graph.
A Depth First Spanning Tree, T,
is the result of the algorithm to
determine orientability performed
on the original graph G.
1
2
3
4
5
6
10
7
8
11
9
Analysis of algorithm

Running time for DFS = O(n+m)

Running time for part e. of algorithm
(assigning orientability to undirected
edges) = O(m)