Advertisement
Guest User

Untitled

a guest
Feb 16th, 2011
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3. int main(int argc, char* argv[]) {
  4.   Env = TEnv(argc, argv, TNotify::StdNotify);
  5.   Env.PrepArgs(TStr::Fmt("Node Centrality. build: %s, %s. Time: %s", __TIME__, __DATE__, TExeTm::GetCurTm()));
  6.   TExeTm ExeTm;
  7.   Try
  8.   const TStr InFNm = Env.GetIfArgPrefixStr("-i:", "graph.txt", "Input undirected graph");
  9.   const TStr OutFNm = Env.GetIfArgPrefixStr("-o:", "node_centrality.tab", "Output file");
  10.  
  11.   printf("Loading %s...", InFNm.CStr());
  12.   PUNGraph Graph = TSnap::LoadEdgeList<PUNGraph>(InFNm);
  13.   //PUNGraph Graph = TSnap::GenRndGnm<PUNGraph>(500, 2000);
  14.   printf("nodes:%d  edges:%d\n", Graph->GetNodes(), Graph->GetEdges());
  15.   FILE *F = fopen(OutFNm.CStr(), "wt");
  16.   fprintf(F,"#File: %s\n",OutFNm());
  17.   fprintf(F,"#Nodes: %d\tEdges: %d\n", Graph->GetNodes(), Graph->GetEdges());
  18.   fprintf(F,"#NodeId\tDegree\tCloseness\tBetweennes\tEigenVector\tPageRank\n");
  19.  
  20.   TIntFltH BtwH, EigH, PRankH;
  21.   TSnap::GetBetweennessCentr(Graph, BtwH, 1.0);
  22.   TSnap::GetEigenVectorCentr(Graph, EigH);
  23.   TSnap::GetPageRank(Graph, PRankH, 0.15);
  24.   for (TNEGraph::TNodeI NI = Graph->BegNI(); NI < Graph->EndNI(); NI++) {    
  25.     const int NId = NI.GetId();
  26.     const double DegCentr = TSnap::GetDegreeCentr(Graph, NId);
  27.     const double CloCentr = TSnap::GetClosenessCentr(Graph, NId);
  28.     const double BtwCentr = BtwH.GetDat(NId);
  29.     const double EigCentr = EigH.GetDat(NId);
  30.     const double PgrCentr = PRankH.GetDat(NId);
  31.     fprintf(F, "%d\t%f\t%f\t%f\t%f\t%f\n", NId, DegCentr, CloCentr, BtwCentr, EigCentr, PgrCentr);
  32.   }
  33.   fclose(F);
  34.  
  35.   Catch
  36.   printf("\nrun time: %s (%s)\n", ExeTm.GetTmStr(), TSecTm::GetCurTm().GetTmStr().CStr());
  37.   return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement