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

# /Users/fpy/titan-1-5-MBARI/Mers/Estimation/Discrete/CompiledME/CompiledModeEstimator.h

    00001 //=============================================================================
    00002 // CompiledModeEstimator.h: interface for the CompiledModeEstimator class.
    00003 //
    00004 // Copyright (c) 2004           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 CompiledModeEstimator is an HHM estimation engine that generates estimates
    00015 //  that are consistent with the CCA model, commands, and observations. Estimates
    00016 //  are generated in best-first order (highest posterior probability first) by
    00017 //  using BFIG to find the most likely diagnoses. This implimentation of
    00018 //  ModeEstimator tracks the most likely trajectories using a compiled CCA model
    00019 //  consisting of dissents and compiled transitions.
    00020 //
    00021 //=============================================================================
    00022
    00023
    00024 #if !defined(_COMPILEDMODEESTIMATOR_H_)
    00025 #define _COMPILEDMODEESTIMATOR_H_
    00026
    00027 #if _MSC_VER > 1000
    00028 #pragma once
    00029 #endif // _MSC_VER > 1000
    00030
    00031
    00032 #include <vector>
    00033
    00034 #include "../ModeEstimatorBase.h"
    00035
    00036 namespace Mers {
    00037         namespace Generators {
    00038                 namespace BFIG {
    00039                         class BFIGGenerator;
    00040                 }
    00041         }
    00042         namespace Estimation {
    00043                 namespace Discrete {
    00044
    00045                         class Dissent;
    00046                         class CompiledTransition;
    00047                         class Trajectories;
    00048
    00049                         namespace CompiledME {
    00050
    00051
    00060                                 class CompiledModeEstimator : public Mers::Estimation::Discrete::ModeEstimatorBase
    00061                                 {
    00062
    00063                                 public:
    00064                                         //-----------------------------------------
    00065                                         // Constructors
    00066                                         //-----------------------------------------
    00067
    00077                                         CompiledModeEstimator(const Mers::Models::Base::BaseModel &bm,
    00078                                                 std::vector<const Mers::Estimation::Discrete::Dissent *> dissents,
    00079                                                 std::vector<const Mers::Estimation::Discrete::CompiledTransition *> compiledTransitions,
    00080                                                 Mers::Estimation::Discrete::Trajectories * initialTrajectories = NULL);
    00081
    00082
    00083                                         //-----------------------------------------
    00084                                         // Destructors
    00085                                         //-----------------------------------------
    00086
    00090                                         virtual ~CompiledModeEstimator();
    00091
    00092
    00093                                         //-----------------------------------------
    00094                                         // Functions
    00095                                         //-----------------------------------------
    00096
    00102                                         virtual void                    setDebug(const unsigned short db);
    00103
    00104                                 protected:
    00105
    00112                                         virtual bool                    generateTrajectories(void);
    00113
    00123                                         virtual const Mers::Models::Base::BaseModelAssignmentArray *
    00124                                                                                 generateBestSolution(unsigned int generatorNum, long int maximumVisitedNodeCount,
    00125                                                                                 long int maxQueueSize);
    00126
    00136                                         virtual bool            addEstimate(Mers::Estimation::Discrete::Estimate * theEst,
    00137                                                                                         Mers::Estimation::Discrete::EstimateHeap * nextTrajsEstHeap = NULL);
    00138
    00147                                         virtual bool            releaseMemoryAndNormalize(Mers::Estimation::Discrete::EstimateHeap * nextTrajsEstHeap);
    00148
    00153                                         void                            resetBFIGs(void);
    00154
    00155                                         //-----------------------------------------
    00156                                         // Data Members
    00157                                         //-----------------------------------------
    00158
    00163                                         std::vector<Mers::Generators::BFIG::BFIGGenerator *> bfigGen;
    00164                                 };
    00165                         }
    00166                 }
    00167         }
    00168 }
    00169
    00170 #endif // !defined(_COMPILEDMODEESTIMATOR_H_)