conncomp (biograph)

Найдите сильно или слабо связанные компоненты в объекте биографика

Синтаксис

[S, C] = conncomp(BGObj)
[S, C] = conncomp(BGObj, ...'Directed', DirectedValue, ...)
[S, C] = conncomp(BGObj, ...'Weak', WeakValue, ...)

Аргументы

BGObj Объект биографика, созданный biograph (конструктор объектов).
DirectedValueСвойство, которое указывает, направлен ли график или не направлен. Введите false для неориентированного графа. Это приводит к игнорированию верхнего треугольника разреженной матрицы. По умолчанию это true.

Алгоритм на основе DFS вычисляет подключенные компоненты. Сложность во времени O(N+E), где N и E являются числом узлов и кромками соответственно.

WeakValueСвойство, которое указывает, находить ли слабо соединенные компоненты или сильно соединенные компоненты. Слабо связанный компонент является максимальной группой узлов, которые взаимно достижимы путем нарушения краевых направлений. Задайте WeakValue на true для поиска слабо связанных компонентов. По умолчанию это false, который находит сильно связанные компоненты. Состояние этого параметра не влияет на неориентированные графы, потому что слабо и сильно связанные компоненты одинаковы в неориентированных графах. Сложность во времени O(N+E), где N и E являются числом узлов и кромками соответственно.

Описание

Совет

Для получения вводной информации о функциях теории графиков, см. «Функции теории графиков».

[S, C] = conncomp(BGObj) находит сильно связанные компоненты матрицы смежности N на N, извлеченные из объекта биографика, BGObj использование алгоритма Тарьяна. Сильно связанный компонент является максимальной группой узлов, которые взаимно достижимы, не нарушая краевых направлений. N-на-N разреженная матрица представляет ориентированный граф; все ненулевые значения в матрице указывают на наличие ребра.

Количество найденных компонентов возвращается в S, и C - вектор, указывающий, к какому компоненту принадлежит каждый узел.

Алгоритм Тарьяна имеет временную сложность O(N+E), где N и E являются числом узлов и кромками соответственно.

[S, C] = conncomp (BGObj... 'PropertyName', PropertyValue, ...) вызывает conncomp с необязательными свойствами, которые используют пары имя/значение свойства. Можно задать одно или несколько свойств в любом порядке. Каждый PropertyName должны быть заключены в одинарные кавычки и нечувствительны к регистру. Эти имена свойства/пары значения свойств следующие:

[S, C] = conncomp(BGObj, ...'Directed', DirectedValue, ...) указывает, направлен ли график или не направлен. Задайте DirectedValue на false для неориентированного графа. Это приводит к игнорированию верхнего треугольника разреженной матрицы. По умолчанию это true. Алгоритм на основе DFS вычисляет подключенные компоненты. Сложность во времени O(N+E), где N и E являются числом узлов и кромками соответственно.

[S, C] = conncomp(BGObj, ...'Weak', WeakValue, ...) указывает, нужно ли находить слабо соединенные компоненты или сильно соединенные компоненты. Слабо связанный компонент является максимальной группой узлов, которые взаимно достижимы путем нарушения краевых направлений. Задайте WeakValue на true для поиска слабо связанных компонентов. По умолчанию это false, который находит сильно связанные компоненты. Состояние этого параметра не влияет на неориентированные графы, потому что слабо и сильно связанные компоненты одинаковы в неориентированных графах. Сложность во времени O(N+E), где N и E являются числом узлов и кромками соответственно.

Примечание

По определению, один узел может быть тесно связанным компонентом.

Примечание

Ориентированный ациклический график (DAG) не может иметь каких-либо сильно связанных компонентов, больше единицы.

Ссылки

[1] Тарьян, Р.Э., (1972). Глубина первого поиска и алгоритмы линейного графика. SIAM Journal on Computing 1 (2), 146-160.

[2] Sedgewick, R., (2002). Алгоритмы в C++, Алгоритмы графика части 5 (Эддисон-Уэсли).

[3] Siek, J.G., Lee, L-Q, and Lumsdaine, A. (2002). Руководство пользователя библиотеки График (Upper Saddle River, NJ: Pearson Education).

Введенный в R2006b