about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/SLP/examples/test_gs2.m
diff options
context:
space:
mode:
Diffstat (limited to 'sourcecodes/bnt-master/SLP/examples/test_gs2.m')
-rw-r--r--sourcecodes/bnt-master/SLP/examples/test_gs2.m54
1 files changed, 54 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/SLP/examples/test_gs2.m b/sourcecodes/bnt-master/SLP/examples/test_gs2.m
new file mode 100644
index 00000000..0188977e
--- /dev/null
+++ b/sourcecodes/bnt-master/SLP/examples/test_gs2.m
@@ -0,0 +1,54 @@
+% test Greedy Search with cache
+clear all;
+
+fprintf('\n=== Structure Learning with Greedy Search algorithm and cache implementation\n');
+
+n=8;
+names={ 'A' , 'S' , 'T' , 'L' , 'B' , 'O' , 'X' , 'D' };
+carre=ones(1,n);
+node_type={'tabular','tabular','tabular','tabular','tabular','tabular','tabular','tabular'};
+
+m=6000;
+bnet=mk_asia2_bnet;
+data = cell(n,m);
+for l = 1:m, data(:,l) = sample_bnet(bnet); end
+data=cell2mat(data);
+fprintf('Complete data have been created.\n\n');
+
+seeddag = mk_rnd_dag(n);
+
+fprintf('\t- Greedy Search (with cache)\n');
+tmp=cputime;
+L=300;
+cache=score_init_cache(n,L);
+[dag1, best_score, cache] =learn_struct_gs2(data,bnet.node_sizes,seeddag,'cache',cache,'scoring_fn','bayesian');
+%cache
+tmp=cputime-tmp;
+fprintf('\t- Execution time : %3.2f seconds\n',tmp);
+
+fprintf('\t- Greedy Search (without cache)\n');
+tmp=cputime;
+dag2=learn_struct_gs2(data,bnet.node_sizes,seeddag,'scoring_fn','bayesian');
+tmp=cputime-tmp;
+fprintf('\t- Execution time : %3.2f seconds\n',tmp);
+
+fprintf('\t- Greedy Search (with cache and MWST initialisation)\n');
+tmp=cputime;
+Tdag=learn_struct_mwst(data, ones(n,1), bnet.node_sizes, node_type,'mutual_info',ceil(n*rand));
+dag3=learn_struct_gs2(data,bnet.node_sizes,full(Tdag),'cache',cache,'scoring_fn','bayesian');
+tmp=cputime-tmp;
+fprintf('\t- Execution time : %3.2f seconds\n',tmp);
+
+
+figure;[xx yy] = make_layout(bnet.dag);
+yy=(yy-0.2)*.8/.6+.1;
+xx=(xx-0.2833)*.8/.517+.1;
+subplot(1,4,1), [xx yy]=draw_graph(bnet.dag,names,carre,xx,yy); %,carre);
+title('ASIA original graph');
+subplot(1,4,2), draw_graph(dag1,names,carre,xx,yy); %,carre);
+title('GS (cache)');
+subplot(1,4,3), [xx yy]=draw_graph(dag2,names,carre,xx,yy); %,carre);
+title('GS (without cache)');
+subplot(1,4,4), [xx yy]=draw_graph(dag3,names,carre,xx,yy); %,carre);
+title('GS (with cache and MWST init)');
+drawnow;