接下来,需要介绍的是重要性重采样类Bayesian_filter::Improtance_resampler。该类实现了两种重采样方法[1][2],和其子类的继承关系图如下:
其中Standard_resampler的实现来自论文[1]中实现的方法,Systematic_resampler实现了论文[2]提出的方法。
该算法对应的实现文件为SIRFlt.hpp,这里我们需要注意的是1) SIR algorithm is sensitive to random generator. In particular random uniform must be [0..1) NOT [0..1];2) Quantisation in the random number generator must not approach the sample size. This will result in quantisation of the resampling. For example if random identically equal to 0 becomes highly probable due to quantisation this will result in the first sample being selectively draw whatever its likelihood.
References
[1] "Novel approach to nonlinear-non-Guassian Bayesian state estimation".NJ Gordon, DJ Salmond, AFM Smith IEE Proceeding-F Vol.140 No.2 April 1993.
[2] Building Robust Simulation-based Filter for Evolving Data Sets". J Carpenter, P Clifford, P Fearnhead Technical Report Unversity of Oxford.