当前位置: 首页>>代码示例>>C++>>正文


C++ BayesNet::setJointDistribution方法代码示例

本文整理汇总了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 {
开发者ID:nguyenngodinh,项目名称:bnetTool,代码行数:54,代码来源:bayesnet.cpp


注:本文中的BayesNet::setJointDistribution方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。