如何理解和编程实现证据理论的Dempster组合规则?

由于CSDN编公式太麻烦,我就先在文档里写好,然后转成图片了

如何理解和编程实现证据理论的Dempster组合规则?_第1张图片

如何理解和编程实现证据理论的Dempster组合规则?_第2张图片

OK,接下来我们来一段代码,把上述过程实现了

clear all;

% Matlab code for Dempster's combinatonal rule in belief function theory.
% Just a demo edition, I don't do any validation on it, thus there may 
% exist some bugs, so please be carefule if you want to use it.
% contact me at [email protected]


n_class = 3;
P = [1 2 3 12 23 123];
mp1 = [0.1 0.1 0.5 0.2 0 0.1];
mp2 = [0.2 0 0.6 0.1 0.1 0];

L = length(P);
mp = zeros(1,L);
for k = 1:L
    F_k = zeros(L,L);
    label = num2str(P(k));
    for i = 1:L
        label_i = num2str(P(i));
        for j = 1:L
            label_j = num2str(P(j));
            itersect_ij = intersect(label_i,label_j);
            if strcmp(itersect_ij,label)      
                F_k(i,j) = 1;
            end
        end
    end  
    mp(k) = sum(sum(mp1'*mp2.*F_k));
end
mp = mp/sum(mp)

 
  

上面mp(k)就是合成后的BBA了。我再次强调下,这个只是一个demo,可能会存在问题(虽然我觉得应该没啥硬伤)

如果你要使用,请先做下测试,确保无误后,再用。

一个小心得,如果你有这方面的研究需求,我相信没人把Dempster组合规则讲的比这更容易懂又有深度了(哈哈,允许我吹下牛比),肯定对你会有帮助。




你可能感兴趣的:(学术算法)