本文整理汇总了C++中BayesNet::setJointDistribution方法的典型用法代码示例。如果您正苦于以下问题:C++ BayesNet::setJointDistribution方法的具体用法?C++ BayesNet::setJointDistribution怎么用?C++ BayesNet::setJointDistribution使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BayesNet
的用法示例。
在下文中一共展示了BayesNet::setJointDistribution方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: inf
BayesNet *BayesNet::loadFromTextFile(const string & filename) {
BayesNet* bn = nullptr;
uint nNodes; // number of nodes in network
vector<uint> nodeSizes; // number of the values each node can take (discrete variables)
vector<vector<uint>> mMapParents; // each node has a set of parent-nodes
vector<vector<double>> mapCpt; // each node has a conditional probability table (mMapCpt)
vector<double> listJointProbabilities; // use for pre-compute all joint probability over network
uint value;
double dValue;
ifstream inf(filename);
if (!inf.is_open()) {
cout << "Open file error!" << "\n";
return nullptr;
}
/// nodeSizes
inf >> nNodes;
for (uint i = 0; i < nNodes; ++i) {
inf >> value;
nodeSizes.push_back(value);
mMapParents.push_back(vector<uint>());
mapCpt.push_back(vector<double>());
}
/// mMapParents
uint nodeIndex, nParents;
for (uint i = 0; i < nNodes; ++i) {
inf >> nodeIndex >> nParents;
for (uint j = 0; j < nParents; ++j) {
inf >> value;
mMapParents[nodeIndex].push_back(value);
}
}
/// CPTs
for (uint i = 0; i < nNodes; ++i) {
inf >> nodeIndex >> nParents;
for (uint j = 0; j < nParents; ++j) {
inf >> dValue;
mapCpt[nodeIndex].push_back(dValue);
}
}
bn = new BayesNet(nNodes, nodeSizes, mMapParents, mapCpt);
/// jointProbabilities
uint size = 0;
inf >> size;
if (size > 0) {
for (uint i = 0; i < size; ++i) {
inf >> dValue;
listJointProbabilities.push_back(dValue);
}
bn->setJointDistribution(listJointProbabilities);
} else {