BP_SEQFIX: BP[updates=SEQFIX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0] BP_SEQRND: BP[updates=SEQRND,tol=1e-9,maxiter=10000,verbose=0,logdomain=0] BP_SEQMAX: BP[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0] BP_PARALL: BP[updates=PARALL,tol=1e-9,maxiter=10000,verbose=0,logdomain=0] BP_SEQFIX_LOG: BP[updates=SEQFIX,tol=1e-9,maxiter=10000,verbose=0,logdomain=1] BP_SEQRND_LOG: BP[updates=SEQRND,tol=1e-9,maxiter=10000,verbose=0,logdomain=1] BP_SEQMAX_LOG: BP[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=1] BP_PARALL_LOG: BP[updates=PARALL,tol=1e-9,maxiter=10000,verbose=0,logdomain=1] JTREE_HUGIN: JTREE[updates=HUGIN,verbose=0] JTREE_SHSH: JTREE[updates=SHSH,verbose=0] MF_SEQRND: MF[tol=1e-9,maxiter=10000,verbose=0] TREEEP: TREEEP[type=ORG,tol=1e-9,maxiter=10000,verbose=0] TREEEPWC: TREEEP[type=ALT,tol=1e-9,maxiter=10000,verbose=0] MR: MR[updates=FULL,inits=RESPPROP,verbose=0,tol=1e-9] MR_RESPPROP_FULL: MR[updates=FULL,inits=RESPPROP,verbose=0,tol=1e-9] MR_RESPPROP_LINEAR: MR[updates=LINEAR,inits=RESPPROP,verbose=0,tol=1e-9] MR_CLAMPING_FULL: MR[updates=FULL,inits=CLAMPING,verbose=0,tol=1e-9] MR_CLAMPING_LINEAR: MR[updates=LINEAR,inits=CLAMPING,verbose=0,tol=1e-9] MR_EXACT_FULL: MR[updates=FULL,inits=EXACT,verbose=0,tol=1e-9] MR_EXACT_LINEAR: MR[updates=LINEAR,inits=EXACT,verbose=0,tol=1e-9] LCBP_FULLCAVin_SEQFIX: LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_FULLCAVin_SEQRND: LC[cavity=FULL,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_FULLCAVin_NONE: LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_FULLCAV_SEQFIX: LC[cavity=FULL,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_FULLCAV_SEQRND: LC[cavity=FULL,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_FULLCAV_NONE: LC[cavity=FULL,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCAVin_SEQFIX: LC[cavity=PAIR,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCAVin_SEQRND: LC[cavity=PAIR,reinit=1,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCAVin_NONE: LC[cavity=PAIR,reinit=1,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCAV_SEQFIX: LC[cavity=PAIR,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCAV_SEQRND: LC[cavity=PAIR,reinit=0,updates=SEQRND,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCAV_NONE: LC[cavity=PAIR,reinit=0,updates=SEQFIX,maxiter=0,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_UNICAV_SEQFIX: LC[cavity=UNIFORM,updates=SEQFIX,maxiter=10000,tol=1e-9,verbose=0,cavaiopts=[],cavainame=NONE] LCBP_UNICAV_SEQRND: LC[cavity=UNIFORM,updates=SEQRND,maxiter=10000,tol=1e-9,verbose=0,cavaiopts=[],cavainame=NONE] LCBP_PAIR2CAV_SEQFIX: LC[cavity=PAIR2,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRINTCAV_SEQFIX: LC[cavity=PAIRINT,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCBP_PAIRCUMCAV_SEQFIX: LC[cavity=PAIRCUM,reinit=0,updates=SEQFIX,maxiter=10000,cavainame=BP,cavaiopts=[updates=SEQMAX,tol=1e-9,maxiter=10000,verbose=0,logdomain=0],tol=1e-9,verbose=0] LCTREEEP: LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=TREEEP,cavaiopts=[type=ORG,tol=1e-9,maxiter=10000,verbose=0],tol=1e-9,verbose=0] LCMF: LC[cavity=FULL,reinit=1,updates=SEQFIX,maxiter=10000,cavainame=MF,cavaiopts=[tol=1e-9,maxiter=10000,verbose=0],tol=1e-9,verbose=0] GBP_MIN: HAK[doubleloop=0,clusters=MIN,tol=1e-9,maxiter=10000,verbose=0] GBP_DELTA: HAK[doubleloop=0,clusters=DELTA,tol=1e-9,maxiter=10000,verbose=0] GBP_LOOP3: HAK[doubleloop=0,clusters=LOOP,loopdepth=3,tol=1e-9,maxiter=10000,verbose=0] GBP_LOOP4: HAK[doubleloop=0,clusters=LOOP,loopdepth=4,tol=1e-9,maxiter=10000,verbose=0] GBP_LOOP6: HAK[doubleloop=0,clusters=LOOP,loopdepth=6,tol=1e-9,maxiter=10000,verbose=0] GBP_LOOP8: HAK[doubleloop=0,clusters=LOOP,loopdepth=8,tol=1e-9,maxiter=10000,verbose=0] HAK_MIN: HAK[doubleloop=1,clusters=MIN,tol=1e-9,maxiter=10000,verbose=0] HAK_DELTA: HAK[doubleloop=1,clusters=DELTA,tol=1e-9,maxiter=10000,verbose=0] HAK_LOOP3: HAK[doubleloop=1,clusters=LOOP,loopdepth=3,tol=1e-9,maxiter=10000,verbose=0] HAK_LOOP4: HAK[doubleloop=1,clusters=LOOP,loopdepth=4,tol=1e-9,maxiter=10000,verbose=0] HAK_LOOP5: HAK[doubleloop=1,clusters=LOOP,loopdepth=5,tol=1e-9,maxiter=10000,verbose=0] HAK_LOOP6: HAK[doubleloop=1,clusters=LOOP,loopdepth=6,tol=1e-9,maxiter=10000,verbose=0] HAK_LOOP8: HAK[doubleloop=1,clusters=LOOP,loopdepth=8,tol=1e-9,maxiter=10000,verbose=0] #--------------------------------------------------------------- #EXACT # # #} else if( method.substr(0,5) == "EXACT" ) { // EXACT # // Look if the network is small enough to do brute-force exact method # bool toolarge = false; # size_t total_statespace = 1; # for( size_t i = 0; i < fg.nrVars(); i++ ) { # total_statespace *= fg.var(i).states(); # if( total_statespace > (1UL << 16) ) # toolarge = true; # } # # if( !toolarge ) { # Factor piet; # for( size_t I = 0; I < fg.nrFactors(); I++ ) # piet *= fg.factor( I ); # for( size_t i = 0; i < fg.nrVars(); i++ ) # q.push_back(piet.marginal(fg.var(i))); # time += toc() - tic; # logZ = fg.ExactlogZ(); # } else # throw "Network too large for EXACT method";