Although there are some orange links that go from blue to red and a few purple ones
that go from red to blue. And this gives some insight to the in the
political blogosphere at least in 2004. Here's another one.
This is a study of the crash in 2008, and it was a graph that showed the structure
of banks lending to one another. An edge corresponds from an overnight loan
and a vertex corresponds to the bank. And from studying this diagram, experts
can see how the banks divided into groups and were therefore vulnerable in these
groups and we'll look at a more detailed definitions of how these groups are
defined a little later on. This is just an example of the use of a
digraph. And it's a digraph, the bank.
One bank lends money to another, that's not the same as the banks being connected,
in some as in an undirected graph. The direction really matters.
This is another one from logic where the vertices correspond to Boolean variables
and the edges correspond to implication. And people use graphs like this to study
in, in logical verification, and also studying electric circuits.
Electric circuits themselves can be diagraphs where circuit elements have
input and output. And so, the edge of course takes the
output of one element to the input of another.
Trying to understand the behavior of such a circuit involves processing a digraph.
Here's another abstraction so-called wordnet graph.
Where vertices correspond in what is called synsets and edges correspond to
hypernym relationships where a, a word is an instance of another one.
So, there's a lot of different events like a miracle or human activity and so forth.
And graphs of this type are very useful in studying applications involving meanings,
meanings in human languages. Here's a famous one.
General McChrystal said that once we understand this graph the war in
Afghanistan will be over. So, with all these types of applications
and there's many, many others just as with graph processing.
Now, the digraph as it, as it is modeled distinct from graph processing is
important. There's many direct applications where we
have connections between objects but the direction of the connection matters.
So, what about digraph processing algorithms.
Well, we're going to look at many problems that are very similar to the ones that we
looked at for undirected graphs. But you can see that they are going to be
a bit more complicated. Even a human has trouble looking at a
diagraph trying to figure out a simple problem like, is there a path from s to t
in this, in this diagraph. Seems like there's quite a few
possibilities to consider to convince yourself whether or not there's a path.
And for the huge diagraphs examples that I looked at before obviously we're going to
need a computer program. And we're going to have a bit of a
challenge figuring what's going on. Of course, you might want to know the
shortest directed path from s to t for example, if you are driving around lower
Manhattan and certainly, I want to have a solution to that problem.
Then, there's another problem called the topological sort problem which is a
general model that's useful in all kinds of applications where were scheduling
events that involve precedence constraints.
In the graph obstruction or the digraph obstruction, it amounts to the problem of
trying to draw the digraph so that all the edges point up.
That's called topological sorting. And then, connectivity is more complicated
for digraphs than for undirected graphs. There's the concept of strong
connectivity, which means for any given pair of vertices u and v, you want to know
is there going to be a directed path from u to v and another directed path from v to
u. That's a much more complicated problem
than connectivity in undirected graphs. And, a generalization of, of that or a
query related to strong connectivities, so-called transitive closure.
And for that, you just want to be able answer the query given vertices v and w as
their path from w to v, a transitive closure.
And actually, you're familiar with the web is a gigantic directed graph.
If there's a link from page a to page b, B, that's a directed edge.
And digraph processing is used in famous page rank algorithm to determine the
importance of a web page. Those are just a couple of examples of
digraph processing problems that introduce the idea.