Нужна техника разбиения графа

У меня есть граф G = (V, E), где V - множество узлов, а E - множество ребер. У меня есть два типа узлов: исходные узлы и потребительские узлы (количество исходных узлов намного меньше, чем количество потребительских узлов). Узлы имеют географическое положение.

Я хочу разделить график на набор подграфов, которые:

а- связные подграфы,

b- подходящего размера (размер разделов должен быть сбалансированным, но не обязательно равным, например, между 2000-3000 узлов),

c - разделы предпочтительно должны быть напрямую подключены к источнику. Таким образом, если в разделе нет источника, путь между разделом и узлом источника не должен включать никакие узлы в других разделах. (Самое важное ограничение)

г- Узлы в разделе должны быть близко друг к другу (географически)

Желательно минимальное количество разрезов. Узлы-источники могут быть изолированы от других разделов (могут быть в разделах одного; только сами по себе).

Есть ли какой-нибудь существующий метод разделения, который я могу использовать? Любая помощь приветствуется.


person Saeed Hajebi    schedule 19.01.2014    source источник
comment
Этот вопрос кажется не по теме, потому что он о матах / теоретической CS.   -  person    schedule 19.01.2014
comment
Недостаточно информации о топологии вашего графа. Как связаны исходный и потребительский узлы?   -  person kuroi neko    schedule 19.01.2014
comment
Это водопроводная сеть. Таким образом, в сети есть несколько узлов-источников (например, 3) и несколько узлов-потребителей (например, 14000). Потребители подключаются к источникам звеньями (трубами), которые проходят через другие узлы. Таким образом, обычно путь между источником и потребителем включает некоторые другие узлы-потребители.   -  person Saeed Hajebi    schedule 20.01.2014


Ответы (1)


Есть некоторые работы, основанные на мере модульности, используемой при обнаружении сообществ. Например, в Chen et al. 2012, они распространяют модульность на пространственные, взвешенные, направленные сети. Пространственное расстояние используется для модуляции веса ссылок.

Это соответствовало бы вашим пунктам а) и г). Однако (обычная) модульность не предназначена для поиска сообществ аналогичного размера, поэтому она не будет соответствовать вашему пункту b). Возможно, вам лучше использовать классический подход с минимальным сокращением, изменив такой показатель, как проводимости аналогично тому, как это сделали Чен и другие.

Что касается вашего пункта c), я должен сказать, что никогда раньше не встречал такого типа ограничения, и мне это очень интересно. Я предполагаю, что вы могли бы попытаться выполнить некоторую оптимизацию по двум критериям, пытаясь минимизировать как проводимость (или модульность), так и такой критерий, как среднее расстояние до ближайшего источника. Но это не гарантирует соблюдения пункта c). Вы также можете настроить количество обнаруженных сообществ так, чтобы оно было меньше количества источников.

person Vincent Labatut    schedule 21.01.2014
comment
Насколько я понимаю, в) не столько запрос, сколько границы количества разделов. Для источника существует не более чем количество соседних разделов, содержащих его или соприкасающихся с ним. Например. если есть 3 источника и у каждого 10 соседей, то всего всего будет не более 30 разделов. - person Ante; 22.01.2014
comment
Большое спасибо за ваш ответ, Винсент Лабатут. - person Saeed Hajebi; 22.01.2014