25
smc/merging/estimation/JointEstimation.h
Normal file
25
smc/merging/estimation/JointEstimation.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef JOINTESTIMATION_H
|
||||
#define JOINTESTIMATION_H
|
||||
|
||||
#include "../../filtering/ParticleFilterMixing.h"
|
||||
|
||||
namespace SMC {
|
||||
|
||||
/**
|
||||
* interface for all available joint estimations
|
||||
* within the IMMPF we have multiple particle filters
|
||||
* the "true" estimation is a joint state of all
|
||||
*/
|
||||
template <typename State, typename Control, typename Observation>
|
||||
class JointEstimation {
|
||||
|
||||
public:
|
||||
|
||||
// get the current state estimation for the given particle set
|
||||
virtual const State estimate(std::vector<ParticleFilterMixing<State, Control, Observation>>& modes) = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // JOINTESTIMATION_H
|
||||
28
smc/merging/estimation/JointEstimationPosteriorOnly.h
Normal file
28
smc/merging/estimation/JointEstimationPosteriorOnly.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef JOINTESTIMATIONPOSTERIORONLY_H
|
||||
#define JOINTESTIMATIONPOSTERIORONLY_H
|
||||
|
||||
#include "JointEstimation.h"
|
||||
|
||||
#include "../../filtering/ParticleFilterMixing.h"
|
||||
|
||||
namespace SMC {
|
||||
|
||||
/**
|
||||
* Use only the posterior distribution (first mode entry) for the joint estimaton
|
||||
*/
|
||||
template <typename State, typename Control, typename Observation>
|
||||
class JointEstimationPosteriorOnly
|
||||
: public JointEstimation<State, Control, Observation> {
|
||||
|
||||
public:
|
||||
|
||||
// get the current state estimation for the given particle set
|
||||
const State estimate(std::vector<ParticleFilterMixing<State, Control, Observation>>& modes) override {
|
||||
return modes[0].getEstimation();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // JOINTESTIMATIONPOSTERIORONLY_H
|
||||
Reference in New Issue
Block a user