biconncomp

Компоненты графа без сочленений

Синтаксис

bins = biconncomp(G)
bins = biconncomp(G,'OutputForm',form)
[bins,iC] = biconncomp(___)

Описание

пример

bins = biconncomp(G) возвращает двусвязные компоненты графика G как интервалы. Числа интервала указывают, какому двусвязному компоненту каждый край в графике принадлежит. Каждый край в G принадлежит единственному двусвязному компоненту, тогда как узлы в G могут принадлежать больше чем одному двусвязному компоненту. Два узла принадлежат тому же двусвязному компоненту, если удаление любого узла из графика не отключает их.

пример

bins = biconncomp(G,'OutputForm',form), где form является 'cell', возвращает вывод как массив ячеек, таким образом, что bins{j} содержит идентификаторы узла всех узлов в компоненте j. Значением по умолчанию для form является 'vector'.

пример

[bins,iC] = biconncomp(___) дополнительно возвращает индексы узла iC, указывающий, какие узлы являются вершинами сокращения (также названный точками разборчивости).

Примеры

свернуть все

Создайте и постройте график. Окрасьте края, на основе которого двусвязного компонента каждый край принадлежит.

s = [1 1 2 2 3 4 4 5 6 6 7 7 8];
t = [2 3 3 4 4 5 7 6 7 10 8 9 9];
G = graph(s,t);
p = plot(G,'LineWidth',2);

p.EdgeCData =  biconncomp(G);

Этот пример показывает, как извлечь двусвязные компоненты из графика как подграфы, и затем маркировать узлы в каждом подграфе с помощью индексов узла в исходном графике.

Создайте и постройте график.

s = [1 1 2 2 3 4 4 5 6 6 7 7 8];
t = [2 3 3 4 4 5 7 6 7 10 8 9 9];
G = graph(s,t);
plot(G)

Сгруппируйте вершины графика в интервалы, на основе которого двусвязного компонента (компонентов) каждый узел принадлежит. Затем цикл через каждый из интервалов и извлечения подграф для каждого двусвязного компонента. Маркируйте узлы в каждом подграфе с помощью их исходных индексов узла.

bincell = biconncomp(G, 'OutputForm', 'cell');
n = length(bincell);

for ii = 1:n
    subplot(2,2,ii)
    plot(subgraph(G, bincell{ii}), 'NodeLabel', bincell{ii});
end

Идентифицируйте вершины сокращения в графике и затем подсветите те вершины в графике графика.

Создайте и постройте график. Вычислите, какому двусвязному компоненту каждый край графика принадлежит, и задайте второй вывод, чтобы возвратить вектор, идентифицирующий вершины сокращения.

s = [1 1 2 2 3 4 4 5 6 6 7 7 8];
t = [2 3 3 4 4 5 7 6 7 10 8 9 9];
G = graph(s,t);
p = plot(G);

[edgebins,iC] = biconncomp(G)
edgebins = 1×13

     4     4     4     4     4     3     3     3     3     2     1     1     1

iC = 1×3

     4     6     7

Узлы 4, 6, и 7 являются вершинами сокращения графика G. Используйте highlight, чтобы увеличить вершины сокращения, на которые ссылаются в iC.

highlight(p, iC)

Входные параметры

свернуть все

Введите график, заданный как объект graph. Используйте graph, чтобы создать объект неориентированного графа.

Пример: G = график (1,2)

Тип вывода, заданного как одно из этих значений:

ОпцияВывод
'vector' (значение по умолчанию)bins является числовым вектором, указывающим, какому двусвязному компоненту каждый край принадлежит.
ячейкаbins является массивом ячеек, и bins{j} содержит идентификаторы узла для всех узлов, которые принадлежат компоненту j.

Выходные аргументы

свернуть все

Двусвязные компоненты, возвращенные как векторный массив или массив ячеек. Числа интервала присваивают каждый край или узел в графике к двусвязному компоненту:

  • Если OutputForm является 'vector' (значение по умолчанию), то bins является числовым вектором, указывающим, который соединил компонент (интервал), каждый край принадлежит.

  • Если OutputForm является 'cell', то bins является массивом ячеек с bins{j}, содержащим идентификаторы узла для всех узлов, которые принадлежат компоненту j.

Индексы вершин сокращения, возвращенных как вектор числовых идентификаторов узла.

Больше о

свернуть все

Двусвязные компоненты

Двусвязный компонент графика максимально biconnected подграф. График является biconnected, если это не содержит вершин сокращения.

Разложение графика в его двусвязные компоненты помогает измериться, насколько имеющий хорошие связи график. Можно анализировать любой связный граф в дерево двусвязных компонентов, названных сокращенным из блока деревом. Блоки в дереве присоединяются в разделяемых вершинах, которые являются вершинами сокращения.

Иллюстрация изображает:

  • (a) Неориентированный граф с 11 узлами.

  • (b) Пять двусвязных компонентов графика, с вершинами сокращения исходного графика, окрашенного для каждого компонента, которому они принадлежат.

  • (c) Сокращенное из блока дерево графика, который содержит узел для каждого двусвязного компонента (как большие круги) и узел для каждой вершины сокращения (как меньшие разноцветные круги). В сокращенном из блока дереве край соединяет каждую вершину сокращения с каждым компонентом, которому это принадлежит.

Сокращение вершин

Также известный как точки разборчивости, вершины сокращения являются вершинами графика, удаление которых увеличивает число связанных компонентов. На предыдущей иллюстрации вершины сокращения являются теми узлами больше чем с одним цветом: узлы 4, 6, и 7.

Введенный в R2017b

Была ли эта тема полезной?