Юнг: Как мы можем сделать кластеризацию графа на основе некоторых свойств вершины?

У меня есть база данных графов с 500+ вершинами и 700+ ребрами. Вершина в моем графе представляет объект класса «Бумага», в котором есть такие элементы, как идентификатор, название, год, издатель, идентификатор издателя, автор, идентификатор автора и т. д. Я хочу сгруппировать подграфы на основе некоторых свойств вершины, как и все вершины с одним и тем же автором или издателем будут в одном кластере. Таким образом, для каждого атрибута будет отдельный кластер (может иметь разный цвет для каждого типа кластера). Так есть ли какой-нибудь алгоритм для достижения этого??


person Parvez Kazi    schedule 09.03.2015    source источник
comment
Этот вопрос может быть слишком широким. Существуют десятки подходов к кластеризации графов. Некоторые общие алгоритмы кластеризации реализованы в jung.sourceforge.net/doc/api/edu/uci/ics/jung/algorithms/ (и демонстрационный апплет кластеризации в jung.sourceforge.net/examples.html ). Однако, судя по вашему описанию, вам даже не нужен конкретный алгоритм, а просто нужно группировать вершины на основе одного атрибута...   -  person Marco13    schedule 09.03.2015


Ответы (1)


Как сказал @Marco13, похоже, что «кластеризация», которую вы хотите сделать, на самом деле просто визуальная идентификация вершин с некоторым общим свойством. (Возможно, вы также хотите, чтобы эти вершины располагались близко друг к другу, но это не ясно из вашей формулировки и может быть неудобным в зависимости от топологии графа.)

В JUNG достаточно просто отображать вершины по-разному в зависимости от их свойств; см. http://jung.sourceforge.net/doc/api/edu/uci/ics/jung/visualization/PluggableRenderContext.html для получения подробной информации и ознакомьтесь с примерами PluggableRendererDemo.

person Joshua O'Madadhain    schedule 10.03.2015