PNLtoGraphviz
Package
and
LinkConnectionStrength Package
The two
packages below are extensions
for
PNL
(Intel's
Open-Source Probabilistic Networks Library).
There are two components that are bundled together:
- PNLtoGraphviz
Interface
(last updated Mar 11, 2006):
Short Description:
- PNLtoGraphviz is an
interface from PNL
(Intel's Open-Source Probabilistic Networks Library) to Graphviz (Open-Source
Graph
Vizualization Software) that facilitates the vizualization of PNL
network graphs.
- It applies to any PNL network of
type BayesNet,
DBN
or LIMID.
- It generates a graph description for the network and writes it to
a
file that can be read by Graphviz. The Graphviz package can then
be invoked to generate the actual graph layout and rendering.
- LinkConnectionStrength
Package
(last updated Mar 11, 2006)
Short Description:
- LinkConnectionStrength is a
package for the Calculation and
Vizualization of Entropy, Link
Strengths and Connection Strengths in Discrete Bayesian Networks.
- It currently applies only to Discrete
Bayesian Networks.
- It provides functions for
the calculation of
- entropy,
- mutual information (to
measure connection
strength between two nodes)
- and certain derivatives of
mutual information (to measure
link strength of any directed arc).
- Several output routines allow the user to print the resulting
values to the screen in a formatted way.
- Another set of output routines uses the PNLtoGraphviz interface
to generate a picture of the graph, employing
varying gray scales of links and nodes to indicate link
strengths and connections strengths.
See the documentation below for more details.
Documentation (all
in
PDF format, last updated January 21, 2006):
- PNLtoGraphviz
and LinkConnectionStrength (Version 1.0) - Overview,
Installation and Quick Command Reference.
- User's Guide for
the PNLtoGraphviz Package (Version 1.0) - Details
of PNLtoGraphviz Package.
- User's
Guide for the LinkConnectionStrength
Package (Version 1.0) - Details of LinkConnectionStrength
Package.
Related Publications and Research Reports:
Download of Version 1.01 (last updated March 11,
2006):
For installation instructions, see documentation above.
- Required files
(includes both components):
The two packages depend on each
other, so you have to download all four files above, even if you only
want to use one of the two packages.
- Optional files (demonstrate use of interface)
- SampleUsePTG.cpp (Main
file
to
demonstrate
use of PNLtoGraphviz interface.)
- SampleUseLCS.cpp (Main file to
demonstrate use of
LinkConnectionStrength package)
- models.cpp (various network
models used as examples in SampleUse files above)
- models.h (corresponding header
file)
- Required package (only
required if you want to generate graphs):
Complete List of Changes Since Version 1.0 (Jan 20, 2006):
- Remedy for Numerical Error in Mutual Information or Link Strength:
Problem:
In
theory, MI, LS_true and LS_blind are always positive, but
in practice they can become slightly
negative due to numerical error. The
negative values can create problems for choosing gray scale, etc.,
later on.
Changes:
If
any of the values MI, LS_true or LS_blind are between (- 0.0001) and
0,
set it to zero.
- Deal with Degenerate Cases for Mutual Information Percentage and Link Strength Percentage
Problem:
If MI=0, then MI% is undefined. If LS=0, then LS% is
undefined. Division by zero would occur.
Changes:
In calculation of MI and LS:
If MI<EPSILON, print warning
on screen + set MI% to impossible value (-1).
If LS<EPSILON, print warning
on screen + set LS% to impossible value (-1).
In vizualization routines:
If MI% is undefined (i.e. value
-1), write
"(Undefined %)" as corresponding percentage value in graph.
If LS% is undefined (i.e. value -1), write "(Undefined %)" as
corresponding percentage
value in graph.
- Ensure the Sample Model AsiaModelCorrected
is topologically sorted
Problem:
Previously
Dyspnoea was
defined before CancerOrTuberculosis,
although
CancerOrTuberculosis
is a parent of Dyspnoea.
This
can cause problems with SaveNet and other functions in PNL.
Changes: Switched order of
definitions of nodes CancerOrTuberculosis
and Dyspnoea.
Acknowledgements:
If you use the above packages in
your work, please consider doing one of the following:
- Placing a link from your web page to the main page,
www.DataOnStage.com. (This will help to increase use of the
packages, which helps everyone using them.)
- Mentioning the packages in your publications, but only if they
really made a difference for the work reported therein.
- Providing feedback and suggestions for improvements.
When working on voluntary
projects (such as these extensions) there is nothing as rewarding as
hearing from people who actually use them! Even constructive
criticism is much better than no feedback at all...
So, please send me your comments
and questions!