blob: 466a7a72b8b0373a1e07131d41989c9e4bc74b2e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
function [reduced_pot,successful] = reduce(pot,tailnodes)
% Executes the reduce operation defined in
% Stable Local Computation with Conditional Gaussian Distributions
% Steffen L. Lauritzen
% Frank Jensen
% September 1999
% The potential pot is reduced if B contains any zero columns
% The test are restricted to the positions in tailnodes.
% Any columns successfully deleted are entered in the array successful
if nargin < 2
tailnodes = 1:pot.ctailsize;
end
successful = [];
% Look for all columns beeing equal to zero
for i = tailnodes
if ~any(pot.B(:,i))
successful = [successful i];
end
end
remain = mysetdiff(1:pot.ctailsize,successful);
% Erase the zero-columns and decrease the tailsize
pot.B = pot.B(:,remain);
pot.ctailsize = pot.ctailsize - length(successful);
% Return the reduced potential
reduced_pot = pot;
|