Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package tpri;
import java.io.IOException;
import org.graphstream.algorithm.Toolkit;
import org.graphstream.graph.Graph;
import org.graphstream.graph.implementations.SingleGraph;
import org.graphstream.stream.file.FileSourceEdge;
public class ReadDblpWithFSE {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
System.setProperty("org.graphstream.ui", "swing"); // utile si tu visualises
String filename = "com-dblp.ungraph.txt";
Graph graph = new SingleGraph("DBLP");
FileSourceEdge fs = new FileSourceEdge();
fs.addSink(graph);
try {
fs.readAll(filename); // <-- méthode FileSourceEdge
} finally {
fs.removeSink(graph);
}
//Nombre de noeuds et liens (arêtes)
int n = graph.getNodeCount();
int m = graph.getEdgeCount();
double avgDegree = Toolkit.averageDegree(graph);
double clustering = Toolkit.averageClusteringCoefficient(graph);
// Coefficient de clustering d’un graphe aléatoire G(n,p)
// p = <k> / (n - 1)
double p = avgDegree / (n - 1);
double clusteringRandom = p; // pour un ER, C ≈ p
System.out.println("Lecture terminée !");
System.out.println("Nombre de nœuds : " + n);
System.out.println("Nombre d'arêtes : " + m);
System.out.printf("Degré moyen : %.6f%n", avgDegree);
System.out.printf("Clustering coefficient : %.6f%n", clustering);
System.out.printf("Clustering réseau aléatoire (même n et degré moyen) : %.10f%n", clusteringRandom);
}
}