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
8491
Цюрих
Если кластеризовать - то вершины, а не ребра.
Но, конечно, шансов обогнать поиск в ширину / в глубину ни у какого алгоритма кластеризации нет.

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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