TODO List - NyxAether/QPN-Inference GitHub Wiki
- TODO List#
Note that there is no priority order on this list. Some of this are quite important and other are just fantasies.
- Document the code.
- The product synergy implementation needs a review. It's possible that is doesn't do the right thing when there are uninstanciated parents. (For more details, see Intercausal Reasoning with Uninstantiated Ancestor Nodes, Marek J. Druzdzel)
- Enhance the QPN to propagating multiple simultaneous observations.
- Make an user-friendly interface providing the creation of a QPN.
- Add capability to _save_ a entire QPN, maybe using an XML format like ProbModelXML for instance
- Change the Sign structure. For now, the constants Sign::[Sign] is a monstrosity which needs to be transform into an enum structure.
- The pointer management need to be completed. For now, almost no one pointer is deleted. So we need to delete them or make its some shared_pointer.
- Give to Meta-QPN the capability to deal with other type of data than booleans. The modifications implied seem to be light. In fact, it just needs to fix a dummy value that separate the possible values into two sets and use them as boolean values. However if we want to manage multi-sets of value (greater than 2 obviously) maybe the code needs a strong modification. Moreover, the person, of whom the task will fall, will have to found some article on the subject.
- The MLS algorithm does not take into account the specificity of the partial order on the parent configuration. More precisely some of the lower sets can be ignored when at least one of the parent always propagated an ambiguous sign. This case create a set of partial orders where each one can be analysed separately from the other. More details can be found into the article "_Learning Bayesian Networks Parameters Under Order Constraints_" from Ad Feelders ad Linda C. van der Gaag, Section 6 "Complexity of the Lower Sets Algorithm".
- Provide real capability to a node to manage other value than boolean especially by setting a dumb value that define a positive or negative variation.
- The MLS Algorithm doesn't work when data aren't boolean values. To be precise, the algorithm can manage data of any type but it's not implemented yet and moreover the output bayesian network can only manage binary type value. To the best of our knowledge, no paper exists about this subject.