Skip to main content
`Ctrl`+`K`

# moral_graph

moral_graph(G)

  Return the Moral Graph

  Returns the moralized graph of a given directed graph.

  Parameters:
    G NetworkX graph

      Directed graph

  Returns:
    H NetworkX graph

      The undirected moralized graph of G

  Raises:
    NetworkXNotImplemented

      If `G` is undirected.

  Notes

  A moral graph is an undirected graph H = (V, E) generated from a directed Graph, where if a node has more than one parent node, edges between these parent nodes are inserted and all directed edges become undirected.

  https://en.wikipedia.org/wiki/Moral_graph

  References

  [1]

  Wray L. Buntine. 1995. Chain graphs for learning. In Proceedings of the Eleventh conference on Uncertainty in artificial intelligence (UAI’95)

  Examples

      >>> G = nx.DiGraph([(1, 2), (2, 3), (2, 5), (3, 4), (4, 3)])
      >>> G_moral = nx.moral_graph(G)
      >>> G_moral.edges()
      EdgeView([(1, 2), (2, 3), (2, 5), (2, 4), (3, 4)])