exponenta event banner

ismultigraph

Определение наличия нескольких рёбер на графике

Описание

пример

tf = ismultigraph(G) возвращает логический 1 (true), если G имеет несколько ребер между любыми двумя узлами. В противном случае возвращается логическое значение 0 (false).

По конвенции, ismultigraph возвращает логический 0 (false) для графов, которые содержат самокольцы, но не повторяющиеся рёбра. Однако граф с несколькими самокольцами считается мультиграфом.

Примеры

свернуть все

Использовать ismultigraph чтобы определить, имеет ли входной граф несколько рёбер между двумя узлами.

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

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

Figure contains an axes. The axes contains an object of type graphplot.

Проверьте, нет ли G является мультиграфом. Результат логичен 1 (true), потому что есть два края между узлами 1 и 2.

tf = ismultigraph(G)
tf = logical
   1

Использовать ismultigraph для определения необходимости упрощения графика.

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

Чтобы продемонстрировать это, создайте пустой граф и матрицу с двумя столбцами случайных чисел. Так как случайные числа находятся только в диапазоне от 1 до 5, эти данные создают множество рёбер.

G = graph;
rng default % for reproducibility
X = randi(5,15,2)
X = 15×2

     5     1
     5     3
     1     5
     5     4
     4     5
     1     4
     2     1
     3     5
     5     5
     5     4
      ⋮

Вместо очистки исходных данных для обеспечения уникальности строк добавьте в график все ребра. Постройте график для справки.

G = addedge(G,X(:,1),X(:,2));
plot(G)

Figure contains an axes. The axes contains an object of type graphplot.

Проверьте, является ли график мультиграфом, и, если он есть, используйте simplify для удаления повторяющихся кромок и петель.

if ismultigraph(G)
    G = simplify(G);
end

Постройте график.

plot(G)

Figure contains an axes. The axes contains an object of type graphplot.

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

свернуть все

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

Пример: G = graph(1,2)

Пример: G = digraph([1 2],[2 3])

Представлен в R2018a