sensv_bn* NewSensvToFinding_bn ( const node_bn*  Qnode,   const nodelist_bn*  Fnodes,   int  what_find )

Creates a sensitivity measuring object, which measures how much the beliefs at one node (called the "query node") will change if a finding is entered at another node (called the "findings node"). This is sometimes called "utility-free value of information".

For Qnode, pass the query node, and for Fnodes, pass a list of all nodes that might later be used as findings nodes.

There are two different measures available: variance reduction and entropy reduction (i.e. mutual information).

For what_find, pass the bitwise-OR of which measures you want the created object capable of measuring. To measure variance reduction, pass REAL_SENSV + VARIANCE_SENSV, and to measure mutual information, pass ENTROPY_SENSV.

After the object is created, to measure variance reduction, pass the new object to VarianceOfReal_bn along with a particular findings node. To measure mutual information between two nodes, pass it to MutualInfo_bn.

When you are finished with the sensitivity object, free the resources it uses by calling DeleteSensvToFinding_bn.

Netica uses an efficient algorithm that takes the current findings into account, and requires only a few belief updatings no matter how many nodes are contained in Fnodes. When you request the first sensitivity measure of the query node relative to one of the findings nodes (by calling MutualInfo_bn or VarianceOfReal_bn), the belief updatings are done and the results cached for subsequent calls involving other findings nodes.

These functions are available as "Network -> Sensitivity to Finding" in Netica Application. For more information on them, contact Norsys for the "Sensitivity" document.

Version:

Versions 2.03 and later have this function.

See also:

DeleteSensvToFinding_bn  (reverse operation) Delete the sensv_bn when finished with it
VarianceOfReal_bn  Use the sensv_bn to find the variance reduction due to finding
MutualInfo_bn  Use the sensv_bn to find the mutual info (entropy reduction)

Example:

net_bn* net = ReadNet_bn (NewStreamFile_ns ("Asia.dne", env, NULL), NO_WINDOW);
sensv_bn* svCancer = NewSensvToFinding_bn (NodeNamed_bn ("Cancer", net), 
                                           GetNetNodes_bn (net), ENTROPY_SENSV);
double mutinfo = MutualInfo_bn (svCancer, NodeNamed_bn ("Dyspnea", net));
double entropy = MutualInfo_bn (svCancer, NodeNamed_bn ("Cancer", net));
DeleteSensvToFinding_bn (svCancer);