The HUGIN API
The HUGIN API (application program interface) is a library that allows a programmer to use Bayesian belief networks (with both discrete and continuous
variables) and influence diagrams in his own application.
The HUGIN API is used as most other libraries: the application program
invokes HUGIN API functions whenever it wants to have belief network
operations performed (the HUGIN API doesn't take control of the
application as a typical graphical user interface library would do).
The HUGIN API is currently available as a C library and as an ActiveX server.
Here is a short list of the most important functions/facilities
provided by the HUGIN API:
- Construction of models (known as domains within the HUGIN API):
- creation/deletion of domains/nodes;
- adding/removing edges;
- editing table data (probabilities and utilities);
- accessing/changing the number of states of a node;
- accessing/changing the name of a node; etc.
- Compilation of a domain (i.e., the creation of a secondary
structure - the junction tree - which is needed for
inference); some special options are available:
- Evidence and inference (i.e., the computation of conditional
probabilities/densities for random variables and expected utilities
for decision variables); some of the following
options only apply to belief networks with all variables being of
discrete type:
- evidence types: instantiations and likelihoods;
- joint distribution for an arbitrary set of random variables;
- choice of inference (propagation) method: `sum' or `max' ([Dawid92]);
- choice of evidence incorporation mode: `normal' or `fast retraction'
([Cowel&Dawid92]) ;
- detection of conflicts within data ([Jensen et.al.91]);
- the joint probability/density of the propagated evidence;
- the probability of the most probable configuration given evidence;
- simulation: given evidence, a configuration for
all variables can be sampled according to the distribution
determined by the evidence ([Dawid92]);
- adaptation: update the conditional probability for a random
variable given propagated evidence and past experience
([Spiegelhalter&Lauritzen90] and [Olesen et.al.92]).
- Miscellaneous:
- error handling: whenever a HUGIN API operation fails, an error
indicator is returned - it is then up to the application to
decide what action to take;
- saving/loading of domains:
- using a textual format (known as the NET format - a
"source" representation of belief networks and influence
diagrams), or
- using a "binary" format (which additionally is capable of
representing the compiled structure of a domain);
- associating user data with domains and nodes:
- as arbitrary data, managed by the user, or
- as attributes (key/value pairs - where both key and value must
be character strings), managed by the HUGIN API;
- table operations: manipulation of probability and utility tables;
- accessing the nodes of a domain, junction tree, or a clique;
- display information: accessing/modifying the information used by
HUGIN Runtime.
You can download the HUGIN API reference manual from http://www.hugin.dk/documentation.
Back