This internal project aims at implementing a new approach to learning the structure and parameters of Bayesian networks. It is mostly an implementation project, as the novel ideas are already established (but never published, so the approach is novel). It requires high expertise in C or C++ (core optimiser) and Python (wrapper to pgmpy and/or other libraries), as well as very good knowledge of data structures, branch and bound, A*, etc.
Relevant literature:
https://www.jmlr.org/papers/volume12/decampos11a/decampos11a.pdf
https://www.sciencedirect.com/science/article/pii/S000437021830167X
https://proceedings.neurips.cc/paper/2016/file/e2a2dcc36a08a345332c751b2f2e476c-Paper.pdf
http://proceedings.mlr.press/v108/correia20a/correia20a.pdf