Can anyone enlighten me , what is wrong with the following CBNet:Create ? Thank you very much .
// ===========================// PNL_USING
int main() { const int nnodes = 101; const int numberOfNodeTypes = 101; int i; CGraph *pGraph = CGraph::Create(0, NULL, NULL, NULL); pGraph->AddNodes(101); pGraph->AddEdge(0,100,1); pGraph->AddEdge(5,19,1); pGraph->AddEdge(5,47,1); pGraph->AddEdge(7,31,1); pGraph->AddEdge(7,52,1); pGraph->AddEdge(7,97,1); pGraph->AddEdge(7,100,1); pGraph->AddEdge(8,84,1); pGraph->AddEdge(15,100,1); pGraph->AddEdge(16,80,1); pGraph->AddEdge(19,45,1); pGraph->AddEdge(19,68,1); pGraph->AddEdge(19,80,1); pGraph->AddEdge(19,99,1); pGraph->AddEdge(21,7,1); pGraph->AddEdge(21,100,1); pGraph->AddEdge(24,99,1); pGraph->AddEdge(26,63,1); pGraph->AddEdge(26,83,1); pGraph->AddEdge(27,66,1); pGraph->AddEdge(28,34,1); pGraph->AddEdge(28,84,1); pGraph->AddEdge(29,12,1); pGraph->AddEdge(29,18,1); pGraph->AddEdge(29,27,1); pGraph->AddEdge(29,45,1); pGraph->AddEdge(29,47,1); pGraph->AddEdge(29,66,1); pGraph->AddEdge(29,95,1); pGraph->AddEdge(29,99,1); pGraph->AddEdge(29,100,1); pGraph->AddEdge(31,0,1); pGraph->AddEdge(31,38,1); pGraph->AddEdge(31,41,1); pGraph->AddEdge(31,100,1); pGraph->AddEdge(33,72,1); pGraph->AddEdge(36,5,1); pGraph->AddEdge(36,53,1); pGraph->AddEdge(36,78,1); pGraph->AddEdge(36,88,1); pGraph->AddEdge(38,100,1); pGraph->AddEdge(39,2,1); pGraph->AddEdge(39,55,1); pGraph->AddEdge(40,99,1); pGraph->AddEdge(41,71,1); pGraph->AddEdge(41,100,1); pGraph->AddEdge(43,39,1); pGraph->AddEdge(43,56,1); pGraph->AddEdge(44,28,1); pGraph->AddEdge(51,23,1); pGraph->AddEdge(52,89,1); pGraph->AddEdge(52,100,1); pGraph->AddEdge(56,100,1); pGraph->AddEdge(59,17,1); pGraph->AddEdge(59,23,1); pGraph->AddEdge(59,28,1); pGraph->AddEdge(60,12,1); pGraph->AddEdge(60,47,1); pGraph->AddEdge(61,34,1); pGraph->AddEdge(69,21,1); pGraph->AddEdge(71,37,1); pGraph->AddEdge(71,100,1); pGraph->AddEdge(75,12,1); pGraph->AddEdge(75,37,1); pGraph->AddEdge(75,47,1); pGraph->AddEdge(75,66,1); pGraph->AddEdge(76,12,1); pGraph->AddEdge(79,12,1); pGraph->AddEdge(79,27,1); pGraph->AddEdge(82,18,1); pGraph->AddEdge(82,53,1); pGraph->AddEdge(82,99,1); pGraph->AddEdge(82,100,1); pGraph->AddEdge(85,66,1); pGraph->AddEdge(89,15,1); pGraph->AddEdge(89,43,1); pGraph->AddEdge(89,100,1); pGraph->AddEdge(94,72,1); pGraph->AddEdge(95,99,1); pGraph->AddEdge(95,100,1); pGraph->AddEdge(96,17,1); pGraph->AddEdge(97,100,1); pGraph->AddEdge(98,18,1);
CNodeType *nodeTypes = new CNodeType [101];
for (i=0; i<nnodes;i++) { nodeTypes[i].SetType(1,2); } int *nodeAssociation = new int[nnodes]; for ( i = 0; i < nnodes; i++ ) { nodeAssociation[i] = i; } std::cout<<"1"<<std::endl; CBNet *pBNet = CBNet::Create( nnodes, numberOfNodeTypes, nodeTypes, nodeAssociation, pGraph );
}
You graph is not topologically sorted. For example, node 21 have child with number 7.
Log in to post a comment.
Can anyone enlighten me , what is wrong with the following CBNet:Create ? Thank you very much .
// ===========================//
PNL_USING
int main()
{
const int nnodes = 101;
const int numberOfNodeTypes = 101;
int i;
CGraph *pGraph = CGraph::Create(0, NULL, NULL, NULL);
pGraph->AddNodes(101);
pGraph->AddEdge(0,100,1);
pGraph->AddEdge(5,19,1);
pGraph->AddEdge(5,47,1);
pGraph->AddEdge(7,31,1);
pGraph->AddEdge(7,52,1);
pGraph->AddEdge(7,97,1);
pGraph->AddEdge(7,100,1);
pGraph->AddEdge(8,84,1);
pGraph->AddEdge(15,100,1);
pGraph->AddEdge(16,80,1);
pGraph->AddEdge(19,45,1);
pGraph->AddEdge(19,68,1);
pGraph->AddEdge(19,80,1);
pGraph->AddEdge(19,99,1);
pGraph->AddEdge(21,7,1);
pGraph->AddEdge(21,100,1);
pGraph->AddEdge(24,99,1);
pGraph->AddEdge(26,63,1);
pGraph->AddEdge(26,83,1);
pGraph->AddEdge(27,66,1);
pGraph->AddEdge(28,34,1);
pGraph->AddEdge(28,84,1);
pGraph->AddEdge(29,12,1);
pGraph->AddEdge(29,18,1);
pGraph->AddEdge(29,27,1);
pGraph->AddEdge(29,45,1);
pGraph->AddEdge(29,47,1);
pGraph->AddEdge(29,66,1);
pGraph->AddEdge(29,95,1);
pGraph->AddEdge(29,99,1);
pGraph->AddEdge(29,100,1);
pGraph->AddEdge(31,0,1);
pGraph->AddEdge(31,38,1);
pGraph->AddEdge(31,41,1);
pGraph->AddEdge(31,100,1);
pGraph->AddEdge(33,72,1);
pGraph->AddEdge(36,5,1);
pGraph->AddEdge(36,53,1);
pGraph->AddEdge(36,78,1);
pGraph->AddEdge(36,88,1);
pGraph->AddEdge(38,100,1);
pGraph->AddEdge(39,2,1);
pGraph->AddEdge(39,55,1);
pGraph->AddEdge(40,99,1);
pGraph->AddEdge(41,71,1);
pGraph->AddEdge(41,100,1);
pGraph->AddEdge(43,39,1);
pGraph->AddEdge(43,56,1);
pGraph->AddEdge(44,28,1);
pGraph->AddEdge(51,23,1);
pGraph->AddEdge(52,89,1);
pGraph->AddEdge(52,100,1);
pGraph->AddEdge(56,100,1);
pGraph->AddEdge(59,17,1);
pGraph->AddEdge(59,23,1);
pGraph->AddEdge(59,28,1);
pGraph->AddEdge(60,12,1);
pGraph->AddEdge(60,47,1);
pGraph->AddEdge(61,34,1);
pGraph->AddEdge(69,21,1);
pGraph->AddEdge(71,37,1);
pGraph->AddEdge(71,100,1);
pGraph->AddEdge(75,12,1);
pGraph->AddEdge(75,37,1);
pGraph->AddEdge(75,47,1);
pGraph->AddEdge(75,66,1);
pGraph->AddEdge(76,12,1);
pGraph->AddEdge(79,12,1);
pGraph->AddEdge(79,27,1);
pGraph->AddEdge(82,18,1);
pGraph->AddEdge(82,53,1);
pGraph->AddEdge(82,99,1);
pGraph->AddEdge(82,100,1);
pGraph->AddEdge(85,66,1);
pGraph->AddEdge(89,15,1);
pGraph->AddEdge(89,43,1);
pGraph->AddEdge(89,100,1);
pGraph->AddEdge(94,72,1);
pGraph->AddEdge(95,99,1);
pGraph->AddEdge(95,100,1);
pGraph->AddEdge(96,17,1);
pGraph->AddEdge(97,100,1);
pGraph->AddEdge(98,18,1);
CNodeType *nodeTypes = new CNodeType [101];
for (i=0; i<nnodes;i++)
{ nodeTypes[i].SetType(1,2);
}
int *nodeAssociation = new int[nnodes];
for ( i = 0; i < nnodes; i++ )
{
nodeAssociation[i] = i;
}
std::cout<<"1"<<std::endl;
CBNet *pBNet = CBNet::Create( nnodes, numberOfNodeTypes, nodeTypes,
nodeAssociation, pGraph );
}
You graph is not topologically sorted. For example, node 21 have child with number 7.