aboutsummaryrefslogtreecommitdiff
path: root/beliefs/utils/random_variables.py
diff options
context:
space:
mode:
authorCathy Yeh <cathy@driver.xyz>2017-11-13 14:42:52 -0800
committerCathy Yeh <cathy@driver.xyz>2017-11-17 13:48:16 -0800
commit77d8b323d4f6e05ca97d9cbef43ac85fd8040d61 (patch)
treebd589afff10efce13b6f017e544958454f3a8ef7 /beliefs/utils/random_variables.py
parent6a1b35f5bf122232d058ed0f3ea19c15629c0cbc (diff)
downloadbeliefs-77d8b323d4f6e05ca97d9cbef43ac85fd8040d61.tar.gz
beliefs-77d8b323d4f6e05ca97d9cbef43ac85fd8040d61.tar.bz2
beliefs-77d8b323d4f6e05ca97d9cbef43ac85fd8040d61.zip
copy scripts from lgs branch
Diffstat (limited to 'beliefs/utils/random_variables.py')
-rw-r--r--beliefs/utils/random_variables.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/beliefs/utils/random_variables.py b/beliefs/utils/random_variables.py
new file mode 100644
index 0000000..1a0b0f7
--- /dev/null
+++ b/beliefs/utils/random_variables.py
@@ -0,0 +1,21 @@
+
+
+def get_reachable_observed_variables_for_inferred_variables(model, observed=set()):
+ """
+ After performing inference on a BayesianModel, get the labels of observed variables
+ ("reachable observed variables") that influenced the beliefs of variables inferred
+ to be in a definite state.
+
+ INPUT
+ model: instance of BayesianModel class or subclass
+ observed: set of labels (strings) corresponding to vars pinned to definite
+ state during inference.
+ RETURNS
+ dict, of form key - source label (a string), value - a list of strings
+ """
+ if not observed:
+ return {}
+
+ source_vars = model.get_unobserved_variables_in_definite_state(observed)
+
+ return {var: model.reachable_observed_variables(var, observed) for var in source_vars}