00001 //============================================================================= 00002 // BFBSE.h: interface for the BFBSE class. 00003 // 00004 // Copyright (c) 2005 Model-based Embedded and Robotic Systems Group 00005 // All Rights Reserved Massachusetts Institute of Technology 00006 // 00007 // This software is provided as is. Model-based Embedded and Robotic Systems 00008 // (MERS) group does not assume any responsibility. 00009 // 00010 // Author: Oliver B. Martin 00011 // Organization: Model-based Embedded and Robotic Systems Group 00012 // Massachusetts Institute of Technology 00013 // 00014 // The BFBSE is a HHM estimation engine that generates 00015 // estimates that are consistent with the CCA model, commands, and 00016 // observations. Estimates are generated in best-first order (highest 00017 // posterior probability first) by using Opsat to find the most likely 00018 // diagnoses. This implimentation of BFBSE tracks the k most 00019 // likely estimates in an approximate belief state using the HMM belief 00020 // state propagation equation in a single Non-MPI OPSAT engine. 00021 //============================================================================= 00022 00023 00024 #if !defined(_BFBSE_H_) 00025 #define _BFBSE_H_ 00026 00027 #if _MSC_VER > 1000 00028 #pragma once 00029 #endif // _MSC_VER > 1000 00030 00031 #include <Mers/Estimation/Discrete/ModeEstimationPerformance/Monitor/ModeEstimatorDebug.h> 00032 00033 namespace Mers { 00034 namespace Models { 00035 namespace CCA { 00036 class CCAModel; 00037 } 00038 } 00039 namespace Estimation { 00040 namespace Discrete { 00041 00042 class Trajectories; 00043 00044 namespace ApproximateBeliefState { 00045 00046 class BSEObjectiveFunction; 00047 00048 namespace BFBSE { 00058 class BFBSE : public Mers::Estimation::Discrete::ModeEstimationPerformance::ModeEstimatorDebug 00059 { 00060 00061 public: 00062 //----------------------------------------- 00063 // Constructors 00064 //----------------------------------------- 00065 00073 BFBSE(const Mers::Models::CCA::CCAModel &cca, Mers::Estimation::Discrete::Trajectories * initialTrajectories = NULL); 00074 00075 00076 //----------------------------------------- 00077 // Destructors 00078 //----------------------------------------- 00079 00083 virtual ~BFBSE(); 00084 00085 00086 //----------------------------------------- 00087 // Functions 00088 //----------------------------------------- 00089 00090 00091 protected: 00092 00097 virtual bool generateTrajectories(void); 00098 00110 virtual bool calculateEstimateProbability(double & estProbability, 00111 const Mers::Models::Base::BaseModelAssignmentArray * state, 00112 unsigned int generatorNum, const std::vector<double> & allProbs) const; 00113 00123 virtual bool addEstimate(Mers::Estimation::Discrete::Estimate * theEst, 00124 Mers::Estimation::Discrete::EstimateHeap * nextTrajsEstHeap = NULL); 00125 00126 //----------------------------------------- 00127 // Data Members 00128 //----------------------------------------- 00129 }; 00130 } 00131 } 00132 } 00133 } 00134 } 00135 00136 #endif // !defined(_BFBSE_H_)
1.5.0