/Users/fpy/titan-1-5-MBARI/Mers/Estimation/Discrete/ApproximateBeliefState/BFBSE/BFBSE.h

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_)

Generated on Mon Dec 4 14:16:42 2006 for Mers by  doxygen 1.5.0