Determines the triadic census of a directed graph.

The triadic census is a count of how many of the 16 possible types of triads are present in a directed graph. If a list of nodes is passed, then only those triads are taken into account which have elements of nodelist in them.

Parameters:
Gdigraph

A NetworkX DiGraph

nodelistlist

List of nodes for which you want to calculate triadic census

Returns:
censusdict

Dictionary with triad type as keys and number of occurrences as values.

Raises:
ValueError

If nodelist contains duplicate nodes or nodes not in G. If you want to ignore this you can preprocess with set(nodelist) & G.nodes

triad_graph
This algorithm has complexity $$O(m)$$ where $$m$$ is the number of edges in the graph.