Est-ce que quelqu'un connaît une bonne bibliothèque Java pour comparer des graphes en recherchant l'isomorphisme sous-graphe commun maximal pour obtenir des informations sur leur similarité? Je ne veux pas comparer des graphiques basés sur des étiquettes de noeud. Ou y a-t-il un autre moyen de comparer topologiquement des graphes avec de bonnes bibliothèques Java? Maintenant j'utilise la bibliothèque SimPack et c'est utile mais j'ai besoin de quelque chose de plus. Toutes les suggestions seront très utiles.Bibliothèque de graphes Java pour comparer 2 graphes
Répondre
Après un peu de navigation, j'ai trouvé du code C++ implémentant plusieurs algorithmes de correspondance (Shmidt-Druffel, Ullman, VF, VF2) sans besoin d'étiquetage de bord ou de nœud. SimPack utilise l'algorithme de Valiente, qui semble être (je n'ai pas trouvé de bonne description) attribut-graphique spécifique. Si vous le réécrivez en Java ou si vous écrivez une bibliothèque JNI pour l'interfacer, veuillez la rendre publique.
Voir http://amalfi.dis.unina.it/graph/db/vflib-2.0
Un bon examen de l'état de l'art se trouve dans un document par les auteurs du code ci-dessus: « Thirty years of graph matching in pattern recognition »
J'espère toujours qu'il existe une bonne bibliothèque en Java. – user311909
Vous pourriez obtenir des réponses de ce fil Good Java graph algorithm library?
Un couple Java Graphique Les bibliothèques sont: Graphique Visualisation Bibliothèque JGraph
Java Graphique algorithme Bibliothèque JGraphT
Si aucun de ces travaux ne vous convient, vous devrez probablement organiser les graphes en utilisant une structure comme ci-dessous et lancer l'algorithme.
public class Node<T>
{
public T NodeData;
public List<Edge> edges;
}
public class Edge
{
public Node<S> Source;
public Node<D> Destination;
public int weight;
}
- 1. GraphViz: quelle bibliothèque de graphes utiliser?
- 2. Graphes en temps réel
- 3. visualiseur de graphes/tiroir pour C#?
- 4. Graphes 3D utilisant pChart
- 5. La bibliothèque de graphes Jung2 peut-elle parcourir un digramme?
- 6. Algorithme d'espacement des graphes
- 7. Python: outil de visualisation pour les graphes
- 8. Utilisation de la bibliothèque de graphes Boost sur Mac Eclipse
- 9. Trouver des sous-graphes égaux
- 10. DB Nosql pour les graphes non orientés?
- 11. Algorithme de découverte de corrélation de graphes
- 12. Outils pour les graphes orientés XML?
- 13. graphes non pondérés dirigés C
- 14. Graphviz ou Dynagraph pour le programme de manipulation de graphes?
- 15. Théorie des graphes: Trouver le centre Jordan?
- 16. partitionnement de digrammes en sous-graphes
- 17. Génération de la forêt de graphes BFS
- 18. Création de graphes de dépendances en Python
- 19. Théorème des graphes de Kowalski prouvant
- 20. Qu'est-ce qu'une "sculpture de graphes"?
- 21. Graphes à deux axes - Reporting Services 2005
- 22. Profileurs de graphes d'appel en Python
- 23. Comment utiliser la bibliothèque de graphes Boost pour disposer des verticies?
- 24. Quelles sont les bibliothèques de graphes de qualité pour C?
- 25. simple théorie des graphes terminologie question
- 26. aide à la terminologie des sous-graphes
- 27. Rendre des graphes orientés dans un navigateur
- 28. bibliothèque Open Source pour on-the-fly animation des graphes acycliques dirigés
- 29. Optimisation de la disposition des graphes en C#
- 30. Y at-il une bibliothèque de graphes côté client (javascript) qui ne nécessite pas de serveur?
Je serais vraiment intéressé à connaître la réponse; mais je soupçonne fortement qu'il n'y a pas une telle bibliothèque. Quel serait le résultat de la comparaison? – tucuxi
Je m'attends à ce que la sortie de la comparaison soit une information sur le mappage des nœuds entre les graphes - quel nœud du premier graphe mappé à quel nœud du deuxième graphe et le numéro de leur similarité. – user311909