J'ai un grand graphique que je traite en utilisant JUNG. Je me demandais si JUNG fournit un moyen d'extraire un voisinage de deux sauts d'un sommet (complet avec tous les bords entre eux) dans un graphique séparé?Extraire un sous-graphe d'un graphe en utilisant JUNG?
Répondre
Try edu.uci.ics.jung.algorithms.connectivity.KNeighborhoodExtractor
Dans JUNG 2.0 il est edu.uci.ics.jung.algorithms.filters.KNeighborhoodFilter:
Un filtre utilisé pour extraire le k-voisinage autour d'un ou plusieurs nœud racine (s). Le voisinage-k est défini comme le sous-graphe induit par l'ensemble de sommets qui sont k ou moins de sauts (distance non pondérée du plus court chemin) en s'éloignant du nœud racine.
Voilà comment vous utiliseriez (vous avez déjà en supposant un graphique et sommet/types arêtes):
Graph<V, E> graph = // ...
int k = 3; // maximum hops
V startVertex = // ... (pick your starting node)
Filter<V, E> filter = new KNeighborhoodFilter<V, E>(
startVertex, k, EdgeType.IN_OUT);
Graph<V, E> neighborhood = filter.transform(graph);
Le graphique neighborhood
sera de la même classe que votre graphique d'origine. Vous devrez créer un nouveau filtre pour chaque noeud de démarrage différent.
pouvez-vous fournir un exemple de code? – Daniel
@Christoph, merci de poster cet exemple de code, ça m'a beaucoup aidé. Je sais que ce billet a quatre ans, mais bon, je viens juste de tomber sur cette réponse et c'est de loin la meilleure. Cela devrait être marqué comme la bonne réponse! – David
C'est à partir de la JUNG 1.x maintenant très périmée. La réponse ci-dessus est correcte. –