Определите, изоморфны ли два графика
tf = isisomorphic(
возвращает логический G1,G2
)1
TRUE
) если изоморфизм графов существует между графиками G1
и G2
; в противном случае это возвращает логический 0
ложь
).
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
.
Два графика, которые изоморфны, имеют подобную структуру. Например, если график содержит один цикл, то все графики, изоморфные к тому графику также, содержат один цикл.
digraph
| graph
| isomorphism
| reordernodes
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.