Древовидный граф с блочным графиком
возвращает декодированное дерево графика tree
= bctree(G
)G
, таким образом, чтобы каждый узел в tree
представляет собой или двухсоединенный компонент, или разрезанную вершину 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); p = plot(G);
Вычислите дерево вырезания блоков графика и просмотрите свойства узла.
tree = bctree(G); tree.Nodes
ans=7×3 table
IsComponent ComponentIndex CutVertexIndex
___________ ______________ ______________
true 1 0
true 2 0
true 3 0
true 4 0
false 0 4
false 0 6
false 0 7
Постройте график дерева вырезания блоков с помощью красных алмазных маркеров для узлов, которые представляют вырезанные вершины. Круговые узлы представляют двухсоединенные компоненты в исходном графике.
p2 = plot(tree,'MarkerSize',9); highlight(p2,5:7,'Marker','d','NodeColor','r')
Создайте и постройте график.
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);
Вычислите дерево вырезов блоков tr
график и задайте второй выход ix
для возврата индексов узлов.
[tr,ix] = bctree(G)
tr = graph with properties: Edges: [6x1 table] Nodes: [7x3 table]
ix = 1×10
4 4 4 5 3 6 7 1 1 2
Каждый индекс ix(j)
указывает узел в дереве вырезов блоков, который представляет узел j
в вход графика. Для примера, узел 4 в tr
представляет компонент в G
который содержит узлы 1, 2 и 3, поэтому первые три записи в ix
все 4.
G
- Входной графикgraph
объектВходной график, заданный как graph
объект. Использование graph
для создания неориентированного объекта графа.
Пример: G = graph(1,2)
tree
- Блок-вырез древовидного графикаgraph
объектДревовидный граф с вырезом графиков, возвращенный как graph
объект. tree
содержит узел для каждой вырезанной вершины в G
и узел для каждого двухсоединенного компонента в G
. Таблица узлов tree.Nodes
содержит дополнительные атрибуты узла для описания того, что представляет каждый узел:
tree.Nodes.IsComponent(i)
- Значение, равное логическому 1
(true
) если узел i
представляет двухсоединенный компонент. В противном случае значение равно и логически 0
(false
).
tree.Nodes.ComponentIndex(i)
- Индекс, указывающий компонент, представленный узлом i
. Значение меньше нуля, если узел i
представляет собой вырезанную вершину.
tree.Nodes.CutVertexIndex(i)
- Индекс, указывающий вершину выреза, представленную узлом i
. Значение меньше нуля, если узел i
представляет двухсоединенный компонент.
ind
- Индексы узловИндексы узлов, возвращенные как числовой вектор. ind(i)
является узлом в выходе графика tree
который представляет узел i
в вход графика G
:
Если узел i
является вырезанной вершиной в графике G
, затем ind(i)
является связанным узлом в tree
.
Если узел i
не является вырезанной вершиной, но принадлежит к одному из двухсоединенных компонентов в графике G
, затем ind(i)
является узлом в tree
представляющий этот двухсоединенный компонент.
Если узел i
является изолированным узлом в графике G
, затем ind(i)
равен нулю.
Двухсоединенный компонент графика является максимально двухсоединенным подграфиком. График соединяется двоично, если он не содержит каких-либо вырезанных вершин.
Разложение графика на его двухсоединенные компоненты помогает измерить, насколько хорошо связан график. Можно разложить любой связный график на дерево двухсоединенных компонентов, называемое деревом блочной вырезки. Блоки в дереве присоединены в общих вершинах, которые являются вырезанными вершинами.
Рисунок изображает:
(a) Неориентированный граф с 11 узлами.
(b) Пять двухсоединенных компонентов графика с вырезанными вершинами исходного графика, окрашенными для каждого компонента, к которому они относятся.
(c) Блочное дерево графика, которое содержит узел для каждого двухсоединенного компонента (как большие круги) и узел для каждой вырезанной вершины (как меньшие многоцветные круги). В дереве вырезов блоков ребра соединяет каждую вершину выреза с каждым компонентом, к которому она принадлежит.
Также известные как точки сочленения, вырезанные вершины являются узлами графика, удаление которых увеличивает количество связанных компонентов. На предыдущем рисунке вырезанными вершинами являются те узлы с более чем одним цветом: узлы 4, 6 и 7.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.