Convertir un SingleGraph à un Graph
Résolu/Fermé
Aaa_dh
Messages postés
10
Date d'inscription
mardi 26 janvier 2016
Statut
Membre
Dernière intervention
11 avril 2016
-
27 janv. 2016 à 22:27
Aaa_dh Messages postés 10 Date d'inscription mardi 26 janvier 2016 Statut Membre Dernière intervention 11 avril 2016 - 29 janv. 2016 à 16:32
Aaa_dh Messages postés 10 Date d'inscription mardi 26 janvier 2016 Statut Membre Dernière intervention 11 avril 2016 - 29 janv. 2016 à 16:32
A voir également:
- Convertir un SingleGraph à un Graph
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir epub en kindle - Guide
- Convertir audio en texte word - Guide
- Convertir clavier qwerty en azerty - Guide
1 réponse
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
27 janv. 2016 à 22:46
27 janv. 2016 à 22:46
Bonjour,
La classe SingleGraph implémente l'interface Graph, donc tu peux donner n'importe quelle implémentation de graphe à cette méthode...
La classe SingleGraph implémente l'interface Graph, donc tu peux donner n'importe quelle implémentation de graphe à cette méthode...
Graph g = new SingleGraph("");
28 janv. 2016 à 08:37
Meme en essayant votre proposition ça marche pas!!!!
moi j'ai déja construit le graphe avec la biblio GraphStream et j'ai ça:
SingleGraph graph=FileHelper.createGraph("Graphe", adjacencyMatrixboolean);
for (org.graphstream.graph.Node node : graph.getNodeSet())
node.addAttribute("ui.label", node.getId());
for (Edge edge : graph.getEdgeSet())
edge.addAttribute("ui.label", edge.getId());
graph.display();
Ce même graphe la je voudrais l'introduire comme input à l'algo HITS de JUNG.
J'utilise ça:
HITS ranker = new HITS((edu.uci.ics.jung.graph.Graph)graph);
ranker.evaluate();
ranker.printRankings(true,false);
mais eclipse m'affiche ça:
Exception in thread "main" java.lang.ClassCastException: org.graphstream.graph.implementations.SingleGraph cannot be cast to com.sun.corba.se.impl.orbutil.graph.Graph
at com.tweets.test.Main.main(Main.java:69)
je sais très bien qu'il y a une erreur de cast mais je ne sais pas comment la résoudre.
Merci d'avance pour votre aide.
PS: le code de l'algo HITS de JUNG est dispo sur ce lien:
http://logic.cse.unt.edu/tarau/teaching/GraphTheory/jung/OLD/jung/src/edu/uci/ics/jung/algorithms/importance/HITS.java
C'est tres urgent SVP est ce que vous pouvez m'aider?
Modifié par KX le 29/01/2016 à 00:09
Du coup je ne sais pas, mais je doute que l'on puisse facilement passer de GraphStream à JUNG directement.
GraphStream permet de lire des graphes depuis différents formats, il faudrait voir lesquels JUNG supporte et en choisir un commun.
https://graphstream-project.org/doc/Tutorials/Reading-files-using-FileSource/
29 janv. 2016 à 08:39
J'ai essayé ça:
String filePath = "D:\\SavingGraph.DGS";
//Graph g = new DefaultGraph("g");
FileSource fs = FileSourceFactory.sourceFor(filePath);
fs.addSink(graph);
try {
fs.begin(filePath);
while (fs.nextEvents()) {
// Optionally some code here ...
}
} catch( IOException e) {
e.printStackTrace();
}
try {
fs.end();
} catch( IOException e) {
e.printStackTrace();
} finally {
fs.removeSink(graph);
}
mais cette erreur s'affiche:
Exception in thread "main" java.io.IOException: not a regular file 'D:\SavingGraph.DGS'
at org.graphstream.stream.file.FileSourceFactory.sourceFor(FileSourceFactory.java:83)
at com.tweets.test.Main.main(Main.java:77)
29 janv. 2016 à 10:41
En cherchant sur le net, j'ai trouvé que JUNG est plutôt manipulable plutôt a travers GraphML et non pas GraphStream, cependant moi j'ai déja crée mon graphe avec GraphSTream. Je crois que je dois plutôt changer l'étape de la création de mon graphe avec GraphML. Est ce que vous avez une idée de comment créer le graphe avec GraphML en partant d'une matrice d'adjacence.
Modifié par Aaa_dh le 29/01/2016 à 16:33
J'ai réussi à avoir le graphe compatible avec la librairie jung, mais pour le contruire j'ai pas utilisé GraphStreamn mais jung lui meme avec ce petit code:
mais il fallait aussi éliminer la biblio GraphStream et la remplacer par la biblio JUNG.
Dans mon main j'ai ajouté qlq lignes afin de créer le graphe et le sauvgarder dans un fichier:
Voila.