00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013
00014 #ifndef __BSEObjectiveFunction__
00015 #define __BSEObjectiveFunction__
00016
00017 #include <vector>
00018 #include <map>
00019 #include <math.h>
00020
00021 #include <Mers/Estimation/Discrete/MEObjectiveFunction.h>
00022
00023 namespace Mers {
00024 namespace Models {
00025 namespace Base {
00026 class BaseModelVariableArray;
00027 class BaseModelAssignment;
00028 }
00029 }
00030 namespace Estimation {
00031 namespace Discrete {
00032 class Trajectories;
00033 class MEObjectiveFunction;
00034
00035 namespace ApproximateBeliefState {
00036
00037
00049 class BSEObjectiveFunction : public Mers::Estimation::Discrete::MEObjectiveFunction
00050 {
00051
00052 public:
00053
00054
00055
00056
00072 BSEObjectiveFunction(Mers::Models::Base::BaseModelVariableArray const * dVs,
00073 const std::map<unsigned int, unsigned int> pMap,
00074 std::vector<double> allTransProbs,
00075 std::map<unsigned int,double> sProbs);
00076
00080 virtual ~BSEObjectiveFunction();
00081
00082
00083
00084
00085
00086
00087 protected:
00088
00089
00090
00091
00092
00104 virtual double calculateUtility(std::vector<Mers::Models::Base::BaseModelAssignment const *> & bmAssignments,
00105 int sourceStateIndex = -1) const;
00106
00107
00118 virtual double calculatePropagationUtility(
00119 std::vector<Mers::Models::Base::BaseModelAssignment const *> & bmAssignments,
00120 int sourceStateIndex = -1) const;
00121
00122
00123
00124
00125
00126 };
00127 }
00128 }
00129 }
00130 }
00131
00132 #endif //ndef __BSEObjectiveFunction__
00133