Извлечение подграфа из графа с использованием JUNG? - PullRequest
3 голосов
/ 02 июля 2010

У меня есть большой график, который я обрабатываю, используя JUNG.Мне было интересно, если там есть JUNG способ выделить, скажем, 2-х скачок окрестности вершины (вместе со всеми ребрами между собой) в отдельный граф?

Ответы [ 2 ]

7 голосов
/ 29 июля 2010

В JUNG 2.0 это edu.uci.ics.jung.algorithms.filters.KNeighborhoodFilter :

Фильтр, используемый для извлечения k-окрестности вокруг одного или несколькихкорневой узел (ы).K-окрестность определяется как подграф, индуцированный набором вершин, которые находятся на расстоянии k или менее прыжков (невзвешенное расстояние по кратчайшему пути) от корневого узла.

Вот как вы можете его использовать(при условии, что у вас уже есть граф и типы вершин / ребер):

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);

Граф neighborhood будет того же класса, что и исходный граф.Вам нужно будет создать новый фильтр для каждого начального узла.

0 голосов
/ 08 июля 2010

Попробуйте edu.uci.ics.jung.algorithms.connectivity.KNeighborhoodExtractor

...