dag = zeros(N,N);
X2=2;X3=3;X4=4; X1=1;C = 5; B = 6;A = 7;T = 8;
dag([X2 X3],C)=1;
dag([X3 X4],B)=1;
dag([X1 C],A)=1;
dag([A B],T)=1;
discrete_nodes = 1:N;
node_sizes = 2*ones(1,N);
bnet = mk_bnet(dag, node_sizes);
bnet.CPD{
X1
} = tabular_CPD(bnet, X1, [0.01 0.99]);
bnet.CPD{
X2
} = tabular_CPD(bnet, X2, [0.02 0.98]);
bnet.CPD{
X3
} = tabular_CPD(bnet, X3, [0.03 0.97]);
bnet.CPD{
X4
} = tabular_CPD(bnet, X4, [0.04 0.96]);
bnet.CPD{
A
} = tabular_CPD(bnet, A, [1 1 1 0 0 0 0 1]);
bnet.CPD{
B
} = tabular_CPD(bnet, B, [1 1 1 0 0 0 0 1]);
bnet.CPD{
C
} = tabular_CPD(bnet, C, [1 0 0 0 0 1 1 1]);
bnet.CPD{
T
} = tabular_CPD(bnet, T, [1 0 0 0 0 1 1 1]);
G=bnet.dag;
draw_graph(G);
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
[engine,ll]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,[X1]);
m.T