$search
00001 /* 00002 * AssignmentSet.h 00003 * 00004 * Created on: Jul 29, 2011 00005 * Author: sdries 00006 */ 00007 00008 #ifndef ASSIGNMENTSET_H_ 00009 #define ASSIGNMENTSET_H_ 00010 00011 #include <list> 00012 #include <vector> 00013 #include <map> 00014 00015 namespace mhf { 00016 00017 class Assignment; 00018 class Hypothesis; 00019 class AssignmentMatrix; 00020 class SemanticObject; 00021 00022 class AssignmentSet { 00023 00024 public: 00025 00026 AssignmentSet(Hypothesis* hyp, AssignmentMatrix* assignment_matrix); 00027 00028 AssignmentSet(const AssignmentSet& orig); 00029 00030 virtual ~AssignmentSet(); 00031 00032 void init(); 00033 00034 void expand(std::list<AssignmentSet*>& children) const; 00035 00036 bool allMeasurementsAssigned() const; 00037 00038 bool allObjectsAssigned() const; 00039 00040 AssignmentSet* constructNextBest() const; 00041 00042 const Assignment& getMeasurementAssignment(unsigned int i_ev) const; 00043 00044 void getAllAssignments(std::list<const Assignment*>& assignments) const; 00045 00046 double getProbability() const; 00047 00048 Hypothesis* getHypothesis() const; 00049 00050 int getNumMeasurements() const; 00051 00052 bool isValid() const; 00053 00054 void print() const; 00055 00056 protected: 00057 00058 Hypothesis* hyp_; 00059 00060 AssignmentMatrix* assignment_matrix_; 00061 00062 double probability_; 00063 00064 std::vector<unsigned int> evidence_assignments_; 00065 00066 int n_blocked_; 00067 00068 }; 00069 00070 } 00071 00072 #endif /* ASSIGNMENTSET_H_ */