about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/inference/@inf_engine
diff options
context:
space:
mode:
authorziejd22018-03-14 23:23:33 -0500
committerGitHub2018-03-14 23:23:33 -0500
commit1ff6baa44e22b91eefb48aea6f3befa078c0489b (patch)
treee0fd79d2e32fd2aedda2eadaed0f19af3514c520 /sourcecodes/bnt-master/BNT/inference/@inf_engine
parent6882395afdadf4e982b25b5215071a0932730950 (diff)
parentc80226899f5cdd9f11c163817d59445213f5bef0 (diff)
downloadBNW-1ff6baa44e22b91eefb48aea6f3befa078c0489b.tar.gz
Merge pull request #1 from ziejd2/octave_php_separate
Octave php separate
Diffstat (limited to 'sourcecodes/bnt-master/BNT/inference/@inf_engine')
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries7
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries.Log1
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Repository1
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Root1
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Entries3
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Repository1
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Root1
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/marginal_family_pot.m14
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/observed_nodes.m5
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/bnet_from_engine.m12
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/get_field.m15
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/inf_engine.m6
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/marginal_family.m24
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/set_fields.m13
-rw-r--r--sourcecodes/bnt-master/BNT/inference/@inf_engine/update_engine.m7
15 files changed, 111 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries
new file mode 100644
index 00000000..a5ebeece
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries
@@ -0,0 +1,7 @@
+/bnet_from_engine.m/1.1.1.1/Wed May 29 15:59:56 2002//
+/get_field.m/1.1.1.1/Wed May 29 15:59:56 2002//
+/inf_engine.m/1.1.1.1/Wed May 29 15:59:56 2002//
+/marginal_family.m/1.1.1.1/Wed May 29 15:59:56 2002//
+/set_fields.m/1.1.1.1/Wed May 29 15:59:56 2002//
+/update_engine.m/1.1.1.1/Wed May 29 15:59:56 2002//
+D
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries.Log b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries.Log
new file mode 100644
index 00000000..24f16336
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Entries.Log
@@ -0,0 +1 @@
+A D/Old////
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Repository b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Repository
new file mode 100644
index 00000000..07b838d4
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Repository
@@ -0,0 +1 @@
+FullBNT/BNT/inference/@inf_engine
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Root b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Root
new file mode 100644
index 00000000..f3bd14a6
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/CVS/Root
@@ -0,0 +1 @@
+:ext:nsaunier@bnt.cvs.sourceforge.net:/cvsroot/bnt
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Entries b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Entries
new file mode 100644
index 00000000..ce1f8c1e
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Entries
@@ -0,0 +1,3 @@
+/marginal_family_pot.m/1.1.1.1/Wed May 29 15:59:56 2002//
+/observed_nodes.m/1.1.1.1/Wed May 29 15:59:56 2002//
+D
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Repository b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Repository
new file mode 100644
index 00000000..de36d64e
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Repository
@@ -0,0 +1 @@
+FullBNT/BNT/inference/@inf_engine/Old
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Root b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Root
new file mode 100644
index 00000000..f3bd14a6
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/CVS/Root
@@ -0,0 +1 @@
+:ext:nsaunier@bnt.cvs.sourceforge.net:/cvsroot/bnt
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/marginal_family_pot.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/marginal_family_pot.m
new file mode 100644
index 00000000..c1e63710
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/marginal_family_pot.m
@@ -0,0 +1,14 @@
+function pot = marginal_family_pot(engine, i)
+% MARGINAL_FAMILY_POT Compute the marginal on i's family and return as a potentila (inf_engine)
+% function pot = marginal_family_pot(engine,i)
+
+% This function is only called by solve_limid.
+% It requires that engine's marginal_family function return a potential.
+% This is true for jtree_inf_engine, but not for, say, jtree_ndx_inf_engine.
+% All limids must be solved using potentials,
+% but this is not true for bnets.
+
+%[m, pot] = marginal_family(engine, i);
+
+bnet = bnet_from_engine(engine);
+[m, pot] = marginal_nodes(engine, family(bnet.dag, i));
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/observed_nodes.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/observed_nodes.m
new file mode 100644
index 00000000..97fccdb3
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/Old/observed_nodes.m
@@ -0,0 +1,5 @@
+function onodes = observed_nodes(engine)
+% OBSERVED_NODES  Return nodes that are guaranteed to be observed, indep of evidence (generic inf_engine)
+% onodes = observed_nodes(engine)
+
+onodes = [];
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/bnet_from_engine.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/bnet_from_engine.m
new file mode 100644
index 00000000..cf579fb0
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/bnet_from_engine.m
@@ -0,0 +1,12 @@
+function bnet = bnet_from_engine(engine)
+% BNET_FROM_ENGINE Return the bnet structure stored inside the engine (inf_engine)
+% bnet = bnet_from_engine(engine)
+
+bnet = engine.bnet;
+
+% We cannot write 'engine.bnet' without writing a 'subsref' function,
+% since engine is an object with private parts.
+% The bnet field should be the only thing external users of the engine should need access to.
+% We do not pass bnet as a separate argument, since it could get out of synch with the one
+% encoded inside the engine.
+       
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/get_field.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/get_field.m
new file mode 100644
index 00000000..a1d16335
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/get_field.m
@@ -0,0 +1,15 @@
+function val = get_field(engine, name)
+% GET_FIELD Get the value of a named field from a generic engine
+% val = get_field(engine, name)
+%
+% The following fields can be accessed
+%
+% bnet
+%
+% e.g., bnet = get_field(engine, 'bnet')
+
+switch name
+ case 'bnet',      val = engine.bnet;
+ otherwise,
+  error(['invalid argument name ' name]);
+end                                  
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/inf_engine.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/inf_engine.m
new file mode 100644
index 00000000..f08e2438
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/inf_engine.m
@@ -0,0 +1,6 @@
+function engine = inf_engine(bnet)
+
+engine.bnet = bnet;
+engine = class(engine, 'inf_engine');
+
+
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/marginal_family.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/marginal_family.m
new file mode 100644
index 00000000..0107f1d3
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/marginal_family.m
@@ -0,0 +1,24 @@
+function m = marginal_family(engine, i, t)
+% MARGINAL_FAMILY Compute the marginal on i's family (inf_engine)
+% m = marginal_family(engine, i, t)
+%
+% t defaults to 1.
+
+if nargin < 3, t = 1; end
+
+bnet = bnet_from_engine(engine);
+if t==1
+  m = marginal_nodes(engine, family(bnet.dag, i));
+else
+  ss = length(bnet.intra);
+  fam = family(bnet.dag, i+ss);
+  if any(fam<=ss)
+    % i has a parent in the preceeding slice
+    % Hence the lowest numbered slice containing the family is t-1
+    m = marginal_nodes(engine, fam, t-1);
+  else
+    % The family all fits inside slice t
+    % Hence shift the indexes back to slice 1
+    m = marginal_nodes(engine, fam-ss, t);
+  end
+end     
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/set_fields.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/set_fields.m
new file mode 100644
index 00000000..e75cfa45
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/set_fields.m
@@ -0,0 +1,13 @@
+function engine = set_fields(engine, varargin)
+% SET_FIELDS Set the fields for a generic engine
+% engine = set_fields(engine, name/value pairs)
+%
+% e.g., engine = set_fields(engine, 'maximize', 1)
+
+args = varargin;
+nargs = length(args);
+for i=1:2:nargs
+  switch args{i},
+   case 'maximize', engine.maximize = args{i+1};
+  end
+end
diff --git a/sourcecodes/bnt-master/BNT/inference/@inf_engine/update_engine.m b/sourcecodes/bnt-master/BNT/inference/@inf_engine/update_engine.m
new file mode 100644
index 00000000..afafdeb9
--- /dev/null
+++ b/sourcecodes/bnt-master/BNT/inference/@inf_engine/update_engine.m
@@ -0,0 +1,7 @@
+function engine = update_engine(engine, newCPDs)
+% UPDATE_ENGINE Update the engine to take into account the new parameters (inf_engine).
+% engine = update_engine(engine, newCPDs)
+%
+% This generic method is suitable for engines that do not process the parameters until 'enter_evidence'.
+
+engine.bnet.CPD = newCPDs;