2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Как определить число несвязанных подграфов графа?
Сообщение14.09.2018, 19:50 


12/03/17
686
Здравствуйте. Пусть есть 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: Как определить число несвязанных подграфов графа?
Сообщение14.09.2018, 20:30 
Заслуженный участник


10/01/16
2315
granit201z
Погуглите Число компонент связности графа

 Профиль  
                  
 
 Re: Как определить число несвязанных подграфов графа?
Сообщение15.09.2018, 00:03 


13/05/14
476
granit201z в сообщении #1339024 писал(а):
Может быть есть более простой способ это сделать?
Есть. Надо просто использовать алгоритм "поиска в ширину".

 Профиль  
                  
 
 Re: Как определить число несвязанных подграфов графа?
Сообщение15.09.2018, 00:44 


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

 Профиль  
                  
 
 Re: Как определить число несвязанных подграфов графа?
Сообщение15.09.2018, 01:39 
Заслуженный участник
Аватара пользователя


16/07/14
8494
Цюрих
Если кластеризовать - то вершины, а не ребра.
Но, конечно, шансов обогнать поиск в ширину / в глубину ни у какого алгоритма кластеризации нет.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: kthxbye


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group