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

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

    00001
    00002 //
    00003 // Copyright (c) 2005           Model-based Embedded and Robotic Systems Group
    00004 // All Rights Reserved          Massachusetts Institute of Technology
    00005 //
    00006 // This software is provided as is. Model-based Embedded and Robotic Systems
    00007 // (MERS) group does not assume any responsibility.
    00008 //
    00009 // Organization:        Model-based Embedded and Robotic Systems Group
    00010 //                      Massachusetts Institute of Technology
    00011 //
    00013
    00014 #ifndef _BSUOBJECTIVEFUNCTION_H_
    00015 #define _BSUOBJECTIVEFUNCTION_H_
    00016
    00017 #include <vector>
    00018 #include <map>
    00019 #include <math.h>
    00020
    00021 #include <Mers/Estimation/Discrete/ApproximateBeliefState/BSEObjectiveFunction.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                         namespace ProbabilityRules {
    00033                                 class Rule;
    00034                                 class ObsProbRule;
    00035                                 namespace RuleTriggering {
    00036                                         class RuleTrigger;
    00037                                 }
    00038                         }
    00039                         namespace ApproximateBeliefState {
    00040
    00041
    00054                         class BSUObjectiveFunction : public Mers::Estimation::Discrete::ApproximateBeliefState::BSEObjectiveFunction
    00055                         {
    00056
    00057                         public:
    00058                                 //--------------------------------------------
    00059                                 //      CONSTRUCTOR
    00060                                 //--------------------------------------------
    00061
    00079                                 BSUObjectiveFunction(Mers::Models::Base::BaseModelVariableArray const * dVs,
    00080                                                 const std::map<unsigned int, unsigned int> pMap,
    00081                                                 std::vector<double> allTransProbs,
    00082                                                 std::map<unsigned int,double> sProbs,
    00083                                                 std::vector<const Mers::Estimation::Discrete::ProbabilityRules::ObsProbRule *> & theObsProbabilityRules);
    00084
    00089                                 virtual ~BSUObjectiveFunction();
    00090
    00091                                 //--------------------------------------------
    00092                                 //      PUBLIC FUNCTION METHODS
    00093                                 //--------------------------------------------
    00094
    00095                         protected:
    00096                                 //--------------------------------------------
    00097                                 //      PROTECTED FUNCTION METHODS
    00098                                 //--------------------------------------------
    00099
    00111                                  virtual double calculateUtility(std::vector<Mers::Models::Base::BaseModelAssignment const *> & implicantAssignments,
    00112                                                                                                         int sourceStateIndex = -1) const;
    00113
    00114                         private:
    00115                                 //--------------------------------------------
    00116                                 //      PRIVATE FUNCTION METHODS
    00117                                 //--------------------------------------------
    00118
    00119
    00120                                 //--------------------------------------------
    00121                                 //      PRIVATE DATA MEMBERS
    00122                                 //--------------------------------------------
    00123
    00127                                 Mers::Estimation::Discrete::ProbabilityRules::RuleTriggering::RuleTrigger *     obsProbabilityRuleTrigger;
    00128
    00133                                 std::vector<Mers::Estimation::Discrete::ProbabilityRules::Rule *>               triggerRules;
    00134                                 };
    00135                         }
    00136                 }
    00137         }
    00138 }
    00139
    00140 #endif //ndef _BSUOBJECTIVEFUNCTION_H_
    00141