本文整理汇总了C++中CBNet::ConvertToSparse方法的典型用法代码示例。如果您正苦于以下问题:C++ CBNet::ConvertToSparse方法的具体用法?C++ CBNet::ConvertToSparse怎么用?C++ CBNet::ConvertToSparse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBNet
的用法示例。
在下文中一共展示了CBNet::ConvertToSparse方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GibbsForSparseBNet
int GibbsForSparseBNet( float eps)
{
CBNet *pDenseBnet;
CBNet *pSparseBnet;
CGibbsSamplingInfEngine *pGibbsInfDense;
CGibbsSamplingInfEngine *pGibbsInfSparse;
pEvidencesVector evidences;
const CPotential *pQueryPot1, *pQueryPot2;
int ret;
pDenseBnet = tCreateIncineratorBNet();
pSparseBnet = pDenseBnet->ConvertToSparse();
evidences.clear();
pDenseBnet->GenerateSamples( &evidences, 1 );
const int ndsToToggle1[] = { 0, 1, 3 };
evidences[0]->ToggleNodeState( 3, ndsToToggle1 );
const int querySz1 = 2;
const int query1[] = { 0, 1 };
pGibbsInfDense = CGibbsSamplingInfEngine::Create( pDenseBnet );
pGibbsInfSparse = CGibbsSamplingInfEngine::Create( pSparseBnet );
intVecVector queries(1);
queries[0].clear();
queries[0].push_back( 0 );
queries[0].push_back( 1 );
pGibbsInfSparse->SetQueries( queries );
pGibbsInfSparse->EnterEvidence( evidences[0] );
pGibbsInfSparse->MarginalNodes( query1, querySz1 );
pGibbsInfDense->SetQueries( queries );
pGibbsInfDense->EnterEvidence( evidences[0] );
pGibbsInfDense->MarginalNodes( query1, querySz1 );
pQueryPot1 = pGibbsInfDense->GetQueryJPD();
pQueryPot2 = pGibbsInfSparse->GetQueryJPD();
ret = pQueryPot1->IsFactorsDistribFunEqual( pQueryPot2, eps, 0 );
delete evidences[0];
delete pGibbsInfSparse;
delete pGibbsInfDense;
delete pDenseBnet;
delete pSparseBnet;
return ret;
}