void SetNetElimOrder_bn ( net_bn*  net,   const nodelist_bn*  elim_order )

Associates the list of nodes elim_order with net to be used as its "elimination order" the next time net is compiled.

elim_order must include all the nodes of net without any duplication (except it should not include any nodes whose kind is UTILITY_NODE or CONSTANT_NODE). Alternately, elim_order can be NULL, in which case any elimination order currently associated with net will be removed.

The elimination order guides the process of triangulation during the compilation of net, and can effect both the time and memory efficiency of belief updating considerably.

If no elimination order is supplied, Netica finds one automatically as the first step of compiling. When a net is written to file, the elimination order is included. Whenever the structure of a net changes, Netica removes the existing elimination order.

Calling this function has no effect on the current compilation; it only takes action during the next compilation. It doesn't matter if the net is compiled or not when this function is called.

Netica will make a copy of elim_order; it won't modify or free the passed list.


This function is available in all versions.

See also:

GetNetElimOrder_bn    Retrieves the elimination order currently being used
CompileNet_bn    Do or redo the compilation to use the new elimination order
AddNodeToList_bn    Can use with NewNodeList2_bn to build the list
SizeCompiledNet_bn    See how good the current ordering is
ReportJunctionTree_bn    Analyze the effect of the current order