本文整理汇总了C++中ListDigraph::nodeFromId方法的典型用法代码示例。如果您正苦于以下问题:C++ ListDigraph::nodeFromId方法的具体用法?C++ ListDigraph::nodeFromId怎么用?C++ ListDigraph::nodeFromId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ListDigraph
的用法示例。
在下文中一共展示了ListDigraph::nodeFromId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
<< (*iterArcs).second << endl;
}
// =========================================================================================
// Create Graph and Format in a Lemon friendly way
// Hier erhalten die Knoten und Kanten LEMON IDs
ListDigraph myCulmiGraph;
ListDigraph::NodeMap< unsigned int > nameNodeMap( myCulmiGraph );
ListDigraph::ArcMap< unsigned int > fromNdArcMap( myCulmiGraph );
ListDigraph::ArcMap< unsigned int> toNdArcMap ( myCulmiGraph );
ListDigraph::ArcMap< bool > activeArcsMap( myCulmiGraph );
timeToActiveArcs dayActivityArcIDs; //Menge an Zeitpunkten (int) und den dazu gehörigen aktiven Kanten (vec)
boost::unordered_map< unsigned int, unsigned int > origIDtoLemon;
// Hier besitzen die Knoten & Kanten noch original IDs (name)
digraphReader( myCulmiGraph, lemonFileTmp)
.nodeMap( "name", nameNodeMap )
.arcMap( "from", fromNdArcMap )
.arcMap( "to", toNdArcMap)
.run();
cout << "LEMON - Nodes: " << countNodes( myCulmiGraph ) << " Arcs: " << countArcs( myCulmiGraph ) << endl;
// Ausgabe der neuen LEMON IDs für Knoten und Kanten
digraphWriter( myCulmiGraph, lemonFileOut)
.nodeMap( "name", nameNodeMap )
.arcMap( "from", fromNdArcMap )
.arcMap( "to" , toNdArcMap )
.run();
// =========================================================================================
// Create HashMap of time and active arc pairs
// Eine Map, die original KnotenIDs zu LEMON IDs zuweist (LemonMap Umkehr, statisch)
// Nötig, da ich die orginalIDs aus der Ursprungsdatei einlese
for (ListDigraph::NodeIt n( myCulmiGraph ) ; n!=INVALID; ++n) {
origIDtoLemon[ nameNodeMap[ n ] ] = myCulmiGraph.id( n );
}
myEdgeListFile.close();
myEdgeListFile.open( edgeListSource );
getline(myEdgeListFile, foo);
// Einlesen der Werte in die Menge. Paar-Erstellung.
while ( myEdgeListFile.good() ){
myEdgeListFile >> from;
myEdgeListFile >> to;
myEdgeListFile >> amount;
myEdgeListFile >> day;
(dayActivityArcIDs[ day ]).push_back( findArc( myCulmiGraph, myCulmiGraph.nodeFromId( origIDtoLemon[ from ] ),
myCulmiGraph.nodeFromId( origIDtoLemon[ to ] ) ) );
}
// =========================================================================================
// ================== Dies art von Map kann über alle true Werte iterieren ============
//
IterableBoolMap< ListDigraph, ListDigraph::Arc > myItBoolMap( myCulmiGraph, false );
// =========================================================================================
// ===================== Creating the NetEvo System ==================
//
System mapSys, odeSys;
ActiveArcsInteractionMap interaction( myItBoolMap );
SIRdynamic odeDyn( 10, 0.1 );
mapSys.addNodeDynamic( &interaction );
mapSys.copyDigraph( myCulmiGraph, "InteractionMap", "NoArcDynamic");
odeSys.addNodeDynamic( & odeDyn );
odeSys.copyDigraph( myCulmiGraph, "SIRdynamic", "NoArcDynamic");
SimObserverToStream coutObserver(cout);
SimObserver nullObserver;
ChangeLog nullLogger;
SimulateMap simMap;
SimulateOdeFixed simODE( RK_4, 0.01 );
State initial = State( mapSys.totalStates(), 1.0) ;
initDegreeDistributed( mapSys, initial, 3, 10.0);
Timer t;
cout << "Days to calculate: " << dayActivityArcIDs.size() << endl;
cout << "Starte Simulation!" << endl;
t.restart();
for( int i = 1; i < dayActivityArcIDs.size() ; i++){
setBoolMapOfDay( myItBoolMap, dayActivityArcIDs, i );
// cout << "Zeit: " << i << " Aktive Kanten: " << myItBoolMap.trueNum() << endl << " ODE:" << endl;
simODE.simulate( odeSys, 1, initial, nullObserver, nullLogger);
simMap.simulate( mapSys, 1, initial, nullObserver, nullLogger);
}
cout << "Laufzeit: " << t.realTime() << endl;
}