I think I have understood a particular situation as described below, but I lack the theoretical knowledge to conduct a proof and I couldn't find any source that mentions it. If my understanding is correct, I can save half the space on my adjacency matrix, if it isn't I'm likely to have pretty weird bugs. So I'd like to be sure, and I'd appreciate if someone with a more solid background could review my reasoning.
Say I represent a DAG of n vertices in an n * n adjacency matrix such that the entry i,j
is 1
if there is an edge from vertex i
to vertex j
, 0
otherwise. Because the graph is directed and acyclic, it follows that, if i,j = 1
, then j,i = 0
. If I now sort the nodes in the matrix such that the topological level of the node at in is equal to or greater than the node at in-1, then it seems to me that half of the adjacency matrix will always only contain 0
s, as it is the case in the following example:
V 1 V 2 from V 1 2 3 4 5 6 7 8 / \ / \ / \ / \ to V 1 0 0 0 0 0 0 0 0 / \ / \ 2 0 0 0 0 0 0 0 0 e1/ e2\ e3/ e4\ 3 1 0 0 0 0 0 0 0 / \ / \ 4 1 1 0 0 0 0 0 0 V 3 V 4 V 5 5 0 1 0 0 0 0 0 0 /|\ / 6 0 0 0 1 0 0 0 0 / | \ / 7 0 0 0 1 0 0 0 0 / | \ / 8 0 0 0 1 1 0 0 0 e5/ e6| e7\ e8/ / | \ / V 6 V 7 V 8
Maybe I'm just right, but is there a formal way to check this?