61 bool AddApp(
const std::string& app_name,
62 const std::vector<uint64_t>& fod_subsets,
63 const std::vector<std::string>& fod_subset_names =
64 std::vector<std::string>());
91 const uint64_t& fod_subset);
100 uint64_t
IndToFodSubset(
const std::string& app_name,
const size_t& ind);
110 void BuildSubsetsIndMap(DstCommonData* dst_data);
117 void FodCheck(DstCommonData* dst_data);
124 void ComputeCardinalities(DstCommonData* st_data);
133 bool ComputeRelations(DstCommonData* dst_data);
141 void BuildNamesMap(
const std::vector<std::string>& fod_subset_names,
142 DstCommonData* dst_data);
146 std::map<std::string, DstCommonData> dst_common_data_;
148 std::mutex map_mutex_;
153 explicit Dst(
const std::string& app_name);
162 bool SetBbaVec(
const std::vector<double>& bba_vec);
171 bool SetBba(
const std::map<uint64_t, double>& bba_map);
190 const std::vector<double>&
GetBbaVec()
const {
return bba_vec_; }
228 return plausibility_vec_;
237 return uncertainty_vec_;
246 return probability_vec_;
279 std::string
Name()
const {
return app_name_; }
292 void SelfCheck()
const;
295 std::string app_name_;
298 mutable std::vector<double> bba_vec_;
299 mutable std::vector<double> support_vec_;
300 mutable std::vector<double> plausibility_vec_;
301 mutable std::vector<double> uncertainty_vec_;
302 mutable std::vector<double> probability_vec_;
uint64_t IndToFodSubset(const std::string &app_name, const size_t &ind)
DstCommonDataPtr GetAppDataPtr(const std::string &app_name)
Get the app data ptr object
bool IsAppAdded(const std::string &app_name)
Whether app added
size_t FodSubsetToInd(const std::string &app_name, const uint64_t &fod_subset)
static DstManager * Instance()
bool AddApp(const std::string &app_name, const std::vector< uint64_t > &fod_subsets, const std::vector< std::string > &fod_subset_names=std::vector< std::string >())
const std::vector< double > & GetUncertaintyVec() const
Get the Uncertainty Vec object
const size_t GetBbaSize() const
Get the Bba Size object
const std::vector< double > & GetSupportVec() const
Get the Support Vec object
const std::vector< double > & GetProbabilityVec() const
Get the Probability Vec object
double GetIndBfmass(size_t ind) const
Get the Ind Bfmass object
const std::vector< double > & GetPlausibilityVec() const
Get the Plausibility Vec object
friend Dst operator*(const Dst &dst_evidence, double w)
double GetSubsetBfmass(uint64_t fod_subset) const
Get the Subset Bfmass object
void ComputeProbability() const
friend Dst operator+(const Dst &lhs, const Dst &rhs)
void ComputeSptPlsUct() const
bool SetBbaVec(const std::vector< double > &bba_vec)
Set the Bba Vec object
std::string PrintBba() const
bool SetBba(const std::map< uint64_t, double > &bba_map)
Set the Bba object, strictly require the fod in bba_map is valid
const std::vector< double > & GetBbaVec() const
Get the Bba Vec object
DstCommonData * DstCommonDataPtr
std::vector< size_t > fod_subset_cardinalities_
std::vector< std::vector< std::pair< size_t, size_t > > > combination_relations_
std::vector< std::vector< size_t > > subset_relations_
std::vector< std::string > fod_subset_names_
std::vector< uint64_t > fod_subsets_
std::vector< std::vector< size_t > > inter_relations_
std::map< uint64_t, size_t > subsets_ind_map_