Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Как определить число несвязанных подграфов графа?
Здравствуйте. Пусть есть 7 узлов. Таким образом, что от узла 6 отходят радиальные связи к узлам 2, 4, 7. А от узла 3 отходят радиальные связи к узлам 1 и 5. Таким образом мы имеем внутри этого графа два несвязанных между собой подграфа: (2, 4, 6, 7) и (1, 3, 5)
В свою очередь этот большой граф задан парами чисел 1-3, 2-6, 3-5, 4-6, 6-7. Как наилучшим образом (имея только пары чисел) вычислить количество несвязанных подграфов?

Мне на ум приходит только такой алгоритм:
1. взять первое число первой пары.
2. сравнить его со всеми числами оставшихся пар, если найдутся совпадения - считать эти пары, принадлежащими одному подграфу, если нет совпадений, то:
3. взять второе число первой пары и выполнить аналогичное сравнение, если совпадений нет, то исключить первую пару из списка и считать ее отдельным подграфом
и т.д. пока не будут перебраны все пары.
Но этот алгоритм очень трудоемкий, и если узлов не 7, а 700 000, то комп не потянет все эти переборы пар.

Может быть есть более простой способ это сделать?

 Re: Как определить число несвязанных подграфов графа?
granit201z
Погуглите Число компонент связности графа

 Re: Как определить число несвязанных подграфов графа?
granit201z в сообщении #1339024 писал(а):
Может быть есть более простой способ это сделать?
Есть. Надо просто использовать алгоритм "поиска в ширину".

 Re: Как определить число несвязанных подграфов графа?
Провести кластеризацию пар алгоритмом CLOPE. Количество кластеров будет количеством несвязанных графов. Сейчас, насколько я знаю, это самый быстрый алгоритм для подобных задач.

 Re: Как определить число несвязанных подграфов графа?
Аватара пользователя
Если кластеризовать - то вершины, а не ребра.
Но, конечно, шансов обогнать поиск в ширину / в глубину ни у какого алгоритма кластеризации нет.

 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group