资源简介

通过构造因子图(Factor Graph)关于和积算法(Sum-Product Algorithm)的matlab源码,借此可实现消息传递算法(Message Propagation Algorithm,MPA)、LDPC编解码、卡尔曼滤波、隐性马尔可夫链(HMC)等应用

资源截图

代码片段和文件信息

classdef and_node < factor_node
%AND_NODE a bivalue node & subclass of factor_node constraints the child
%and parent connections to behave as a and gate such that the child message
%become false when any of the parent message is false. 
%
% Description of factor_fun
%   input: in_msg from_id to_id
% if message is directed to child
%   msg(2) = product of all in_msg{i}(2)
%   msg(1) = 1 - msg(2)
% if message is directed to parent
%  msg(2) = product of all in_msg{i}(2) except the message from child
%  msg(2) = child_msg(1) + msg(1)*(child_msg(2) - child_msg(1))
%  msg(1) = child_msg(1)

   properties
   end

   methods
       function s = and_node(id)
           s = s@factor_node(id);
       end
       
       function msg = factor_fun(s in_msg from_id to_id)
           msg = [0 0];
           child_id = s.link_id(size(s.link_id2));
           if to_id == child_id
               % construct message to child
               msg(2) = 1;
               for i = 1:size(s.link_id2)-1
                   msg(2) = msg(2)*in_msg{i}(2);
               end
               msg(1) = 1 - msg(2);
           else
               % construct message to one of the parents
               % identify message from child
               child_idx = find(from_id==child_id);
               child_msg = in_msg{child_idx};
               msg(2) = 1;
               for i = 1:size(s.link_id2)-1
                   if from_id(i) == child_id
                       continue;
                   end
                   msg(2) = msg(2)*in_msg{i}(2);
               end
               msg(2) = child_msg(1) + msg(2)*(child_msg(2) - child_msg(1));
               msg(1) = child_msg(1);
           end
           sum_msg = sum(msg);
           if sum_msg == 0
               msg = ones(size(msg));
           end
           msg = msg/sum(msg);
       end

   end
end 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1915  2010-03-20 00:49  SumProductLab_R3.00\and_node.m
     文件         211  2010-03-20 00:49  SumProductLab_R3.00\connect.m
     文件        1783  2010-03-20 00:49  SumProductLab_R3.00\cp_node.m
     文件        2356  2010-03-20 00:49  SumProductLab_R3.00\cp2_node.m
     文件        2778  2010-03-20 00:49  SumProductLab_R3.00\cp3_node.m
     文件         756  2010-03-20 00:49  SumProductLab_R3.00\equ_node.m
     文件        1306  2010-03-20 00:49  SumProductLab_R3.00\even_parity_node.m
     文件        2462  2010-03-20 00:49  SumProductLab_R3.00\evident_node.m
     文件        1974  2010-03-20 00:49  SumProductLab_R3.00\Examples\and_example.m
     文件        1611  2010-03-20 00:49  SumProductLab_R3.00\Examples\explained_away.m
     文件        1700  2010-03-20 00:49  SumProductLab_R3.00\Examples\factor_graph_test.m
     文件        3354  2010-03-20 00:49  SumProductLab_R3.00\Examples\Hidden_Markov_Chain.m
     文件        2601  2010-03-20 00:49  SumProductLab_R3.00\Examples\hypothesis.m
     文件        2087  2010-03-20 00:49  SumProductLab_R3.00\Examples\Kalman_Filter_Example.m
     文件        2424  2010-03-20 00:49  SumProductLab_R3.00\Examples\LDPC.m
     文件        2932  2010-03-20 00:49  SumProductLab_R3.00\Examples\Linear_Backward_Example.m
     文件        1804  2010-03-20 00:49  SumProductLab_R3.00\Examples\noisy_or_example.m
     文件        2108  2010-03-20 00:49  SumProductLab_R3.00\Examples\or_example.m
     文件         324  2010-03-20 00:49  SumProductLab_R3.00\Examples\sim_hmm.m
     文件        5287  2010-03-20 00:49  SumProductLab_R3.00\Examples\sudoku.m
     文件         212  2010-03-20 00:49  SumProductLab_R3.00\Examples\sudoku_4x4_01.mat
     文件         212  2010-03-20 00:49  SumProductLab_R3.00\Examples\sudoku_4x4_02.mat
     文件         218  2010-03-20 00:49  SumProductLab_R3.00\Examples\sudoku_9x9_01.mat
     文件         218  2010-03-20 00:49  SumProductLab_R3.00\Examples\sudoku_9x9_02.mat
     文件       13266  2010-03-20 00:49  SumProductLab_R3.00\factor_node.m
     文件        1785  2010-03-20 00:49  SumProductLab_R3.00\ls_add_node.m
     文件         926  2010-03-20 00:49  SumProductLab_R3.00\ls_equ_node.m
     文件        1364  2010-03-20 00:49  SumProductLab_R3.00\ls_gain2_node.m
     文件         670  2010-03-20 00:49  SumProductLab_R3.00\ls_marginal.m
     文件         191  2010-03-20 00:49  SumProductLab_R3.00\marginal.m
     文件        3184  2010-03-20 00:49  SumProductLab_R3.00\noisy_or_node.m
............此处省略7个文件信息

评论

共有 条评论