% data = getSample_net2(alpha,N) generates N samples form Network 2 in % Figure 5 parameterized with alpha. % data is NxM matrix where each row corresponds to sample from the network % the columns are ordered as: A,B,C,D,E,F,G function data = genSample_net2(alpha,N) %number of variables M = 7; A=1; B=2; C=3; D=4; E=5; F=6; G=7; %simple encoding of the bayesian network for problem 1 condProb = cell(M,1); parents = cell(M,1); condProb{A}=.3; condProb{B}= [.4, .6]; condProb{C} = .3; condProb{D} = [.4, .6]; condProb{E}= [.1 .3 * alpha .8 * alpha alpha]; condProb{F}= [.2 .5 * alpha .5 * alpha alpha]; condProb{G} = [.2 alpha]; parents{A}=[]; parents{B}= A; parents{C}= []; parents{D}= B; parents{E}= [B C]; parents{F}= [C E]; parents{G}= F; %the seed number should be function of alpha and N rand('state',floor(10000*alpha + N)); data= size(N,M); for i=1:N for j=1:M if(~isempty(parents{j})) parentsValue = data(i,parents{j}); else parentsValue=[]; end prob = condProb{j}(toInt(parentsValue)); if(rand