主要内容

同构

计算两个图之间的构态

描述

例子

P.=同构(G1,G2.计算A.图同构图之间的等价关系G1.G2.,如果存在。如果没有同构,那么P.是一个空的阵列。

例子

P.=同构(___名称,价值指定具有一个或多个名称值对参数的其他选项。例如,您可以指定'nodevariables'和节点变量列表以指示同构必须保留这些变量有效。

[P.edgeperm.] =同构(___另外返回边缘置换的向量,edgeperm.。此输出使您可以在使用多层游泳时保留边缘变量。

例子

全部收缩

创建和绘制两个定向图形,然后计算它们之间的同构关系。

G1 = Digraph([1 1 11 2 3 4],[2 3 4 4 4 1]);G2 = Digraph([3 3 3 2 11],[1 4 2 3 2 2]);子图(1,2,1)绘图(G1)子图(1,2,2)图(G2)

图包含2个轴。轴1包含Type Graphplot的对象。轴2包含Type Graphplot的对象。

p =同构(g1,g2)
P =4×13 1 4 2

结果表明Reordernodes(G2,P)具有相同的结构G1.

创建和绘制两个图形,G1.G2.

G1 =曲线图([11 11 2 3 3 4 5 5 7 7],[2 4 5 3 6 4 7 8 6 8 6 8]);绘图(G1,'xdata',[1 4 4 1 2 3 3 2],'ydata',[4 4 1 1 3 3 2 2])

图包含轴。轴包含Type Graphplot的对象。

g2 =图表({'一种''一种''一种''B''B''B''C''C''C''D''D''D'},......{'G''H''一世''G''H''j''G''一世''j''H''一世''j'});绘图(G2,'xdata',[1 2 2 2 11 2 1 1],'ydata',[4 4 3 2 3 11 2 1])

图包含轴。轴包含Type Graphplot的对象。

如果存在,则计算图形之间的同构关系。结果表明,尽管有不同的标签和布局,但是可以置换图形节点表示相同的图表。

p =同构(g1,g2)
P =8×11 2 5 3 4 7 6 8

计算两个图之间的两个不同的同构关系。其中一个关系保留了一个节点属性,而另一个关系忽略它。

创建两个类似的图表。添加节点属性颜色每个图表。

g1 =图表({'D''e''F'},{'e''F''D'});g1.nodes.color = {'蓝色的''红色的''红色的'}'g2 =图表({'一种''B''C'},{'B''C''一种'});g2.nodes.color = {'红色的''红色的''蓝色的'}'

在同一图中并排绘制图形。颜色具有红色的节点color ='红色'

子图(1,2,1)p1 = plot(g1);突出显示(P1,{'e''F'},'nodeColor''r')子图(1,2,2)p2 = plot(g2);突出显示(p2,{'一种''B'},'nodeColor''r'

图包含2个轴。轴1包含Type Graphplot的对象。轴2包含Type Graphplot的对象。

计算图之间的同构,忽略了颜色财产。

p =同构(g1,g2)
P =3×11 2 3.

再次计算同构异构,但这一次保留价值颜色比较中的财产。同构返回保留的不同排列颜色财产。

p =同构(G1,G2,'nodevariables''颜色'
P =3×13 1 2

查看节点G1.G2.同构在一起比赛。

[g1.nodes.name,g2.nodes.name(p)]
ans =.3x2细胞{'d'} {'c'} {'e'} {'a'} {'f'} {'f'} {'b'}

输入参数

全部收缩

输入图形,指定为单独的参数图形或者dig对象。用图形创建一个无向图形或dig创建定向图形。

G1.G2.必须是图形物体或两者dig对象。

例子:g1 =图表(1,2)

例子:G1 = Digraph([1 2],[2 3])

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:p =同构(g1,g2,'nodevariables',{'var1''var2'})

边缘变量要保存,指定为逗号分隔对组成'EdgeVariables'和字符矢量,字符串标量,字符向量的单元格数组,或字符串数​​组。使用此选项可指定两者中的一个或多个边缘变量G1.edges.G2.Edges.。同构必须保留指定的边缘变量以有效。

如果G是一个多密码,那么你可以指定第二个输出edgeperms.启用重新排序的边缘变量。

数据类型:char|细绳|细胞

节点变量保留,指定为逗号分隔对组成'nodevariables'和字符矢量,字符串标量,字符向量的单元格数组,或字符串数​​组。使用此选项可指定两个中的一个或多个节点变量g1.nodes.g2.nodes.。同构必须保留指定的节点变量以便有效。

数据类型:char|细绳|细胞

输出参数

全部收缩

同构的排列载体,当存在同构或作为空数组时作为列向量返回[]当不存在同构时。如果P.那不是空的,然后Reordernodes(G2,P)具有相同的结构G1.

边缘排列,作为列向量返回。使用多层游文时,边缘置换向量使您可以保留由此指定的边缘变量'EdgeVariables'名称值对。使用这些命令重新排序重复边缘的边缘变量:

[p,edgeperm] =同构(g1,g2,'边缘variables',Edgevars);g2perm = reordernodes(g2,p);g2perm.edges(:,2:结束)= g2perm.edges(边缘Perm,2:结束);

更多关于

全部收缩

图同构

两个图表,G1.G2.,如果存在节点的置换,则是同义P.这样Reordernodes(G2,P)具有相同的结构G1.

两个是同构的图形具有相似的结构。例如,如果图表包含一个周期,那么所有图都不同于该图形也包含一个周期。

介绍在R2016B.