Определите, являются ли два графиков изоморфными
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.