wolffd@0: function [clpot, seppot] = collect_evidence(engine, clpot, seppot) wolffd@0: % COLLECT_EVIDENCE Do message passing from leaves to root (children then parents) wolffd@0: % [clpot, seppot] = collect_evidence(engine, clpot, seppot) wolffd@0: wolffd@0: for n=engine.postorder %postorder(1:end-1) wolffd@0: for p=engine.postorder_parents{n} wolffd@0: %clpot{p} = divide_by_pot(clpot{n}, seppot{p,n}); % dividing by 1 is redundant wolffd@0: seppot{p,n} = marginalize_pot(clpot{n}, engine.separator{p,n}, engine.maximize); wolffd@0: clpot{p} = multiply_by_pot(clpot{p}, seppot{p,n}); wolffd@0: end wolffd@0: end wolffd@0: