У меня есть неориентированный плоский график, где каждый узел имеет вес. Я хочу разбить график на как можно большее число связных непересекающихся подграфов (EDIT: или достичь минимального среднего веса возможных подграфов), учитывая условие, что каждый подграф должен достичь фиксированного минимального веса (который представляет собой сумму весов его узлов). Подграф, содержащий только один узел, также хорошо (если вес узла больше фиксированного минимума).Максимальное количество подграфов с заданным минимальным весом
То, что я узнал, до сих пор является эвристическим:
create a subgraph out of every node
while there is an underweight subgraph:
select the subgraph S with the lowest weight
find a subgraph N that has the lowest weight among the neighbouring subgraphs of S
merge S to N
Очевидно, что это не является оптимальным. Кто-нибудь получил лучшее решение? (Возможно, я просто незначителен, и это не сложная проблема, но я никогда не изучал теорию графа ...)
EDIT (дополнительные сведения о форе): Узлы на этом графике представляют собой низкоуровневые административные единицы, для которых статистические данные должны быть предоставлены. Тем не менее, подразделениям необходимо иметь определенный минимальный размер населения, чтобы избежать конфликтов с законодательством о персональных данных. Моя цель - создать агрегаты, чтобы как можно меньше информации терялось в пути. Соотношения соседства служат ребрами графа, так как результирующие единицы должны быть смежными.
Большинство узлов (узлов) в наборе значительно превышают минимальный порог. Около 5-10% из них находится ниже порогового значения с различными размерами, как это видно на примере (минимальный размер 50):
Без условия планальности эта проблема, безусловно, сильно NP-жесткая. Я не ожидаю простого способа использования планарности, кроме, возможно, динамической программы, чья работа экспоненциальна в √n (в отличие от n, используя тот факт, что плоские графы имеют тройную O (√n)). –
Насколько большой график интереса? Насколько важно получить оптимальное решение? –
Максимальное число - в десятках тысяч узлов, с appx. 5 ребер на узел, в среднем (это граф окрестности диаграммы административного деления). Продолжительность работы не является основной проблемой, но решение должно быть оптимальным. –