- Main Page
- Namespaces
- Classes
- Files
- Related Pages

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