
in the number of particles
in both cases.
The forwards pass provides a weighted sample set
at each time point
for
. Initialising with
, the backwards step to calculate weights at time
is as follows:
where
is element-wise division and
element-wise multiplication.
These are then normalised so that
and the smoothed result
for
is stored.
This implementation performs calculations in the above matrix form to take advantage of low-level optimisations in the matrix library. It also uses a sparse matrix implementation of
to alleviate spatial complexity somewhat.
Definition at line 78 of file ParticleSmoother.hpp.
Public Member Functions | |
| ParticleSmoother (ParticleSmootherModel< T > *model, const T tT, const indii::ml::aux::DiracMixturePdf &p_xT) | |
| Create new particle smoother. | |
| virtual | ~ParticleSmoother () |
| Destructor. | |
| virtual ParticleSmootherModel < T > * | getModel () |
| Get the model being estimated. | |
| virtual void | smooth (const T tn, const indii::ml::aux::DiracMixturePdf &p_xtn_ytn) |
| Rewind system to time of previous measurement and smooth. | |
| virtual indii::ml::aux::DiracMixturePdf | smoothedMeasure () |
| Apply the measurement function to the current smoothed state to obtain an estimated measurement. | |
| void | smoothedResample (ParticleResampler *resampler) |
| Resample the smoothed state. | |
| ParticleSmoother | ( | ParticleSmootherModel< T > * | model, | |
| const T | tT, | |||
| const indii::ml::aux::DiracMixturePdf & | p_xT | |||
| ) | [inline] |
Create new particle smoother.
| model | Model to estimate. | |
| tT | ; starting time. | |
| p_xT | ; prior over the state at time . |
Definition at line 145 of file ParticleSmoother.hpp.
| ~ParticleSmoother | ( | ) | [inline, virtual] |
| indii::ml::filter::ParticleSmootherModel< T > * getModel | ( | ) | [inline, virtual] |
Get the model being estimated.
Definition at line 159 of file ParticleSmoother.hpp.
| void smooth | ( | const T | tn, | |
| const indii::ml::aux::DiracMixturePdf & | p_xtn_ytn | |||
| ) | [inline, virtual] |
Rewind system to time of previous measurement and smooth.
| tn | ; the time to which to rewind the system. This must be less than the current time . | |
| p_xtn_ytn | ; filter density at time . |
Definition at line 164 of file ParticleSmoother.hpp.
| indii::ml::aux::DiracMixturePdf smoothedMeasure | ( | ) | [inline, virtual] |
Apply the measurement function to the current smoothed state to obtain an estimated measurement.
Implements Smoother< T, indii::ml::aux::DiracMixturePdf >.
Definition at line 228 of file ParticleSmoother.hpp.
| void smoothedResample | ( | ParticleResampler * | resampler | ) | [inline] |
Resample the smoothed state.
Definition at line 245 of file ParticleSmoother.hpp.
1.5.3