annotate toolboxes/FullBNT-1.0.7/bnt/examples/dynamic/orig_water1.m @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
rev   line source
wolffd@0 1 % Compare the speeds of various inference engines on the water DBN
wolffd@0 2 seed = 0;
wolffd@0 3 rand('state', seed);
wolffd@0 4 randn('state', seed);
wolffd@0 5
wolffd@0 6 %bnet = mk_water_dbn;
wolffd@0 7 bnet = mk_orig_water_dbn;
wolffd@0 8
wolffd@0 9 T = 3;
wolffd@0 10 engine = {};
wolffd@0 11 %engine{end+1} = smoother_engine(jtree_2TBN_inf_engine(bnet));
wolffd@0 12 %engine{end+1} = smoother_engine(hmm_2TBN_inf_engine(bnet));
wolffd@0 13 %engine{end+1} = jtree_dbn_inf_engine(bnet);
wolffd@0 14 engine{end+1} = jtree_unrolled_dbn_inf_engine(bnet, T);
wolffd@0 15 engine{end+1} = cbk_inf_engine(bnet, 'clusters', {[1],[2],[3],[4],[5],[6],[7],[8]}); %ff
wolffd@0 16 engine{end+1} = cbk_inf_engine(bnet, 'clusters', {[1 2],[3 4 5 6],[7 8]}); %manually designed marginally independent by BK
wolffd@0 17 engine{end+1} = cbk_inf_engine(bnet, 'clusters', {[1:5], [3:7], [7:8]}); %manually designed conditionally independent by BK
wolffd@0 18 engine{end+1} = cbk_inf_engine(bnet, 'clusters', {[1 3], [2 3 7], [3 5], [3 4 7], [6 7 8]}); %automatically found using TJTs offline
wolffd@0 19 engine{end+1} = cbk_inf_engine(bnet, 'clusters', {[1 3 5], [2 3 5 7], [3 4 7], [4 6 7], [6 7 8]}); %automatically found using TJTs offline
wolffd@0 20 engine{end+1} = cbk_inf_engine(bnet, 'clusters', {[1 3 4 5], [2 3 4 7 8], [4 6 7 8]}); %automatically found using TJTs offline
wolffd@0 21
wolffd@0 22 % bk_inf_engine yields exactly the same results for the marginally independent cases.
wolffd@0 23 %engine{end+1} = bk_inf_engine(bnet, 'clusters', 'ff');
wolffd@0 24 %engine{end+1} = bk_inf_engine(bnet, 'clusters', { [1 2], [3 4 5 6], [7 8] });
wolffd@0 25
wolffd@0 26
wolffd@0 27 inf_time = cmp_inference_dbn(bnet, engine, T, 'exact', 1)
wolffd@0 28 learning_time = cmp_learning_dbn(bnet, engine, T, 'exact', 1)