To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
root / _FullBNT / BNT / graph / triangulate_test.m @ 8:b5b38998ef3b
History | View | Annotate | Download (1.04 KB)
| 1 |
% Test the code using the dag in Fig 1 of Jensen, Jensen, Dittmer, |
|---|---|
| 2 |
% "From influence diagrams to junction trees", UAI 94 |
| 3 |
|
| 4 |
% By reverse enginering Fig 2, we infer that the following arcs should |
| 5 |
% be absent from the original dag: b->d1, e->d2, f->d2, g->d4 |
| 6 |
a=1; b=2; d1=3; c=4; d=5; e=6; f=7; g=8; d2=9; d4=10; i=11; h=12; d3=13; l=14; j=15; k=16; |
| 7 |
dag=zeros(16); |
| 8 |
dag(a,c)=1; |
| 9 |
%dag(b,[c d d1])=1; |
| 10 |
dag(b,[c d])=1; |
| 11 |
dag(d1,d)=1; |
| 12 |
dag(c,e)=1; |
| 13 |
dag(d,[e f])=1; |
| 14 |
%dag(e,[g d2])=1; |
| 15 |
dag(e,[g])=1; |
| 16 |
%dag(f,[d2 h])=1; |
| 17 |
dag(f,[h])=1; |
| 18 |
%dag(g,[d4 i])=1; |
| 19 |
dag(g,[i])=1; |
| 20 |
dag(d2,i)=1; |
| 21 |
dag(d4,l)=1; |
| 22 |
dag(i,l)=1; |
| 23 |
dag(h,[j k])=1; |
| 24 |
dag(d3,k)=1; |
| 25 |
|
| 26 |
|
| 27 |
[MG, moral_edges] = moralize(dag); |
| 28 |
MG(j,k)=1; MG(k,j)=1; % simulate having a common utility child |
| 29 |
% MG now equals fig 2 |
| 30 |
order = [l j k i h a c d d4 g d3 d2 f e d1 b]; |
| 31 |
[MTG, cliques, fill_ins] = triangulate(MG, order); |
| 32 |
% MTG equals fig 3 |
| 33 |
ns = 2*ones(1,16); |
| 34 |
[jtree, root, cliques2] = mk_strong_jtree(cliques, ns, order, MTG); |
| 35 |
jtree2 = mk_rooted_tree(jtree, root); |
| 36 |
% jtree2 equals fig 4, with their arrows reversed |