wolffd@0: % Same as cg1, except we assume all discretes are observed, wolffd@0: % and use loopy for approximate inference. wolffd@0: wolffd@0: ns = 2*ones(1,9); wolffd@0: F = 1; W = 2; E = 3; B = 4; C = 5; D = 6; Min = 7; Mout = 8; L = 9; wolffd@0: n = 9; wolffd@0: dnodes = [B F W]; wolffd@0: cnodes = mysetdiff(1:n, dnodes); wolffd@0: wolffd@0: %bnet = mk_incinerator_bnet(ns); wolffd@0: bnet = mk_incinerator_bnet; wolffd@0: wolffd@0: bnet.observed = [dnodes E]; wolffd@0: wolffd@0: engines = {}; wolffd@0: engines{end+1} = jtree_inf_engine(bnet); wolffd@0: engines{end+1} = pearl_inf_engine(bnet, 'protocol', 'parallel'); wolffd@0: nengines = length(engines); wolffd@0: wolffd@0: wolffd@0: [time, engines] = cmp_inference_static(bnet, engines, 'maximize', 0, 'check_ll', 0, ... wolffd@0: 'singletons_only', 0, 'exact', 1, 'check_converged', 2);