# Application Programmers Manual: Performing Inference with a Network

From DSL

SMILE includes functions for several popular Bayesian network inference algorithms, including the clustering algorithm, and several approximate stochastic sampling algorithms. It is up to the programmer to define the default algorithm that will be used when updating the network. This can be accomplished by using the SetDefaultBNAlgorithm() and SetDefaultIDAlgorithm() network methods. The following algorithms, as described in the listed papers, are supported:

- Huang Cecil, and Darwiche, Adnan. (1996) Inference in Belief Networks: A Procedural Guide. International Journal of Approximate Reasoning, 15, 225-263. [1]

- Henrion, Max. (1988). Propagating Uncertainty in Bayesian Networks by Probabilistic Logic Sampling. In Lemmer, J.F. and Kanal, L.N. (Eds.) Uncertainty in Artificial Intelligence, 2. North Holland. 149-163.

- Judea Pearl. (1986). Fusion, Propagation, and Structuring in Belief Networks. Artificial Intelligence, 29(3), 241-288. [2]

- Fung, Robert and Chang, Kuo-Chu. (1990). Weighing and Integrating Evidence for Stochastic Simulation in Bayesian Networks. In M. Henrion and R.D. Shachter and L.N. Kanal and J.F. Lemmer (Eds.) Uncertainty in Artificial Intelligence, 5. North Holland. 209-219 (Link is of Workshop version [3])

- Shachter, Ross D. and Peot, Mark A. (1990). Simulation Approaches to General Probabilistic Inference on Belief Networks. In M. Henrion and R.D. Shachter and L.N. Kanal and J.F. Lemmer (Eds.) Uncertainty in Artificial Intelligence, 5. North Holland. 221-231. (Link is of Workshop version [4])

- Fung, Robert and Favero, Brendan Del. (1994). Backward Simulation in Bayesian Networks. Proceedings of the Tenth Conference on Uncertainty in Artificial Intelligence, 227-234. San Francisco, CA. [5]

- Cooper, G. F. (1988), A Method for Using Belief Networks as Influence Diagrams, Proceedings of the 1988 AAAI Workshop on Uncertainty in Artificial Intelligence, Minneapolis MN. [6]

- Shachter, Ross D. and Peot, Mark A. (1992). Decision Making Using Probabilistic Inference Methods. Proceedings of the Eighth Annual Conference on Uncertainty in Artificial Intelligence, 227-234. Stanford University, California. [7]

- Cheng, Jian and Druzdzel, Marek J. (2000). AIS-BN: An Adaptive Importance Sampling Algorithm for Evidential Reasoning in Large Bayesian Networks. Journal of Artificial Intelligence Research 13(2000) 155-188. Pittsburgh, PA. [8]

- Yuan, Changhe and Druzdzel, Marek J. (2003). An Importance Sampling Algorithm Based on Evidence Pre-propagation. In Kjærulff, U. and Meek, C. (Eds.) Uncertainty in Artificial Intelligence, 19. Acapulco, Mexico. 624-631 [9]

- Judea Pearl, (1982) "Reverend Bayes on inference engines: A distributed hierarchical approach". Proceedings of the Second National Conference on Artificial Intelligence. AAAI-82: Pittsburgh, PA. [10]

To update the network, the UpdateBeliefs() method should be called. You can check if the value of a given node was updated by calling the IsValueValid() method of a DSL_nodeValue class. To learn how to update arbitrary parts of a network, read the section on relevance reasoning.