Определить, являются ли два графика изоморфными
tf = isisomorphic( возвращает логический G1,G2)1 (true), если между графами существует изоморфизм графа G1 и G2; в противном случае возвращается логическое 0 (false).
tf = isisomorphic( указывает дополнительные параметры с одним или несколькими аргументами пары имя-значение. Например, можно указать G1,G2,Name,Value)'NodeVariables' и список узловых переменных, указывающий, что изоморфизм должен сохранять эти переменные действительными.
Создайте и постройте два направленных графика, а затем определите, являются ли они изоморфными.
G1 = digraph([1 1 1 2 3 4],[2 3 4 4 4 1]); G2 = digraph([3 3 3 2 1 4],[1 4 2 3 2 2]); subplot(1,2,1) plot(G1) subplot(1,2,2) plot(G2)

isisomorphic(G1,G2)
ans = logical
1
Создайте и постройте два графика, G1 и G2.
G1 = graph([1 1 1 2 2 3 3 4 5 5 7 7],[2 4 5 3 6 4 7 8 6 8 6 8]); plot(G1,'XData',[1 4 4 1 2 3 3 2],'YData',[4 4 1 1 3 3 2 2])

G2 = graph({'a' 'a' 'a' 'b' 'b' 'b' 'c' 'c' 'c' 'd' 'd' 'd'}, ...
{'g' 'h' 'i' 'g' 'h' 'j' 'g' 'i' 'j' 'h' 'i' 'j'});
plot(G2,'XData',[1 2 2 2 1 2 1 1],'YData',[4 4 3 2 3 1 2 1])
Определите, существует ли изоморфизм для G1 и G2. Результат показывает, что графики структурно одинаковы, несмотря на их различные метки и макеты.
tf = isisomorphic(G1,G2)
tf = logical
1
Используйте два различных сравнения, чтобы определить, существует ли отношение изоморфизма между двумя графами. Одно из сравнений сохраняет свойство узла, а другое игнорирует его.
Создайте два похожих графика. Добавление свойства узла Color к каждому из графиков.
G1 = graph({'d' 'e' 'f'},{'e' 'f' 'd'});
G1.Nodes.Color = {'red' 'red' 'blue'}';
G2 = graph({'a' 'b' 'c'},{'b' 'c' 'a'});
G2.Nodes.Color = {'blue' 'blue' 'red'}';Постройте графики рядом на том же рисунке. Окрашивание узлов в красный цвет Color = 'red'.
subplot(1,2,1)
p1 = plot(G1);
highlight(p1,{'d' 'e'},'NodeColor','r')
subplot(1,2,2)
p2 = plot(G2);
highlight(p2,'c','NodeColor','r')
Определите, являются ли графики изоморфными, игнорируя Color собственность.
tf = isisomorphic(G1,G2)
tf = logical
1
Определите, являются ли графики изоморфными, и сохраните значение Color свойство в сравнении. В этом случае нет изоморфизма, поскольку Color свойство каждого графа содержит различные числа 'red' и 'blue' значения.
tf = isisomorphic(G1,G2,'NodeVariables','Color')
tf = logical
0
G1,G2 - Входные графики (как отдельные аргументы)graph объекты | digraph объектыВходные графики, указанные как отдельные аргументы graph или digraph объекты. Использовать graph для создания неориентированного графика или digraph для создания направленного графа.
G1 и G2 должно быть и то, и другое graph объекты или оба digraph объекты.
Пример: G1 = graph(1,2)
Пример: G1 = digraph([1 2],[2 3])
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
tf = isisomorphic(G1,G2,'NodeVariables',{'Var1' 'Var2'})'EdgeVariables' - Краевые переменные для сохраненияКраевые переменные для сохранения, указанные как разделенная запятыми пара, состоящая из 'EdgeVariables' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Используйте этот параметр, чтобы указать одну или несколько переменных кромки, которые находятся в обоих G1.Edges и G2.Edges. Сравнение изоморфизма должно сохранять указанные граничные переменные, чтобы они были допустимыми. Для мультиграфов с несколькими ребрами между одними и теми же двумя узлами порядок граничных переменных для одной и той же пары узлов не имеет значения.
Типы данных: char | string | cell
'NodeVariables' - Переменные узла для сохраненияСохраняемые переменные узла, указанные как пара, разделенная запятыми, состоящая из 'NodeVariables' и символьный вектор, строковый скаляр, клеточный массив символьных векторов или строковый массив. Используйте этот параметр, чтобы указать одну или несколько переменных узла, которые находятся в обоих G1.Nodes и G2.Nodes. Сравнение изоморфизма должно сохранять указанные узловые переменные, чтобы они были допустимыми.
Типы данных: char | string | cell
Два графика, G1 и G2, являются изоморфными, если существует перестановка узлов P такой, что reordernodes(G2,P) имеет ту же структуру, что и G1.
Два изоморфных графа имеют сходную структуру. Например, если граф содержит один цикл, то все изоморфные этому графу графы также содержат один цикл.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.