Designing and implementing an object to handle mixed-graphs

Contact: Sepehr Elahi

Mixed graphs [1] such as those found in Bayesian networks, causal inference, and causal discovery, are often implemented in code as two separate graphs, one directed and one bidirected. However, this method is rather inefficient, as, among other problems, the nodes need to be stored twice. The aim of this project is to design and implement an efficient and smart object/class that handles mixed graphs.


  • Knowledge of graphs and basic graph algorithms (like DFS and BFS).
  • Knowledge of either Python or Julia.

If interested, please send your CV and transcript to Sepehr Elahi at


[1] Wikipedia contributors. (2022, October 22). Mixed graph. In Wikipedia, The Free Encyclopedia. Retrieved November 4, 2023, from