void CompileNet_bn ( net_bn*  net )

Compiles net for fast belief updating (i.e., junction tree propagation).

If the net is an auto-update net (see SetNetAutoUpdate_bn) then belief updating will be done immediately afterwards, but if it isn't, then updating won't be done until you request a belief (e.g., with GetNodeBeliefs_bn).

When the net is compiled, first an "elimination ordering" is determined, which is a list giving all the nodes of the net in some order, and using that list a "junction tree" of cliques is formed. The efficiency of the junction tree may depend greatly on the elimination ordering used, so it is important to find a good elimination ordering. You can determine the elimination ordering used by calling GetNetElimOrder_bn, and you can control it by calling SetNetElimOrder_bn before calling CompileNet_bn.

Calling CompileNet_bn after the net is already compiled has no effect, unless the net or its elimination ordering has been changed, in which case the net will be recompiled.

To find how efficient the compiling was, use SizeCompiledNet_bn, and to get a report on the internal structures created during compiling, use ReportJunctionTree_bn.


This function is available in all versions.

See also:

UncompileNet_bn    (reverse operation) Releases memory used by a compiled net
GetNodeBeliefs_bn    Use the compiled net to find new beliefs given findings
SizeCompiledNet_bn    Size and speed of the junction tree formed during compiling
SetNetElimOrder_bn    Set the elimination ordering to use when compiling the net
GetNetElimOrder_bn    Obtain the elimination ordering used to compile the net
ReportJunctionTree_bn    Print out the junction tree formed during compiling
SetNetAutoUpdate_bn    Have compiled net automatically find new beliefs when findings entered
LimitMemoryUsage_ns    In case this function is consuming too much memory