同构
计算两个图形之间的同构
描述
例子
计算类质同晶置换
创建和阴谋的两个有向图,然后计算它们之间的同构关系。
G1 =有向图([1 1 1 2 3 4],[1 2 3 4 4 4]);G2 =有向图([3 3 3 2 1 4],[1 4 2 3 2 2]);次要情节(1、2、1)情节(G1)次要情节(1、2、2)情节(G2)
p =同构(G1, G2)
p =4×13 1 4 2
结果表明,reordernodes (G2, p)
有相同的结构G1
。
计算之间的同构图形不同的标签和布局
创建和情节两个图,G1
和G2
。
G1 =图([1 1 1 2 3 2 3 4 5 5 7 7]、[4 2 3 4 5 6 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])
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 1 2 1 1),“YData”,(4 4 3 2 3 1 2 1))
计算图形之间的同构关系,如果一个人的存在。结果表明,可以排列图节点代表相同的图尽管他们不同的标签和布局。
p =同构(G1, G2)
p =8×11 2 3 4 5 6 7 8
计算同构和保存节点属性
计算两个不同的两个图形之间的同构关系。保存节点属性的关系之一,而另一个忽略了它。
创建两个类似的图。添加一个节点属性颜色
每一个图。
G1 =图({' d '“e”“f”},{“e”“f”' d '});G1.Nodes。颜色= {“蓝”“红色”“红色”}';G2 =图({“一个”“b”“c”},{“b”“c”“一个”});G2.Nodes。颜色= {“红色”“红色”“蓝”}';
画出图并排在同一图。颜色的红色节点颜色= '红色'
。
次要情节(1、2、1)p1 =情节(G1);突出(p1, {“e”“f”},“NodeColor”,“r”次要情节(1、2、2)p2 =情节(G2);突出(p2, {“一个”“b”},“NodeColor”,“r”)
计算之间的同构图形,忽略了颜色
财产。
p =同构(G1, G2)
p =3×11 2 3
再次计算同构,但这一次保存的值颜色
属性的比较。同构
返回一个不同的排列,保留了颜色
财产。
p =同构(G1, G2,“NodeVariables”,“颜色”)
p =3×13 1 2
视图中的节点G1
和G2
同构匹配在一起。
[G1.Nodes。的名字,G2.Nodes。的名字(p)]
ans =3 x2细胞{' d '} {' c '} {“e”} {a} {' f '} {b}
输入参数
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:P =同构(G1、G2 NodeVariables, {‘Var1’‘Var2})
EdgeVariables
- - - - - -边缘变量保存
特征向量|字符串标量|单元阵列的特征向量|字符串数组
边缘变量保存,指定为逗号分隔组成的“EdgeVariables”
和一个特征向量,字符串标量,单元阵列的特征向量,或字符串数组。使用这个选项来指定一个或多个变量,在边缘G1.Edges
和G2.Edges
。同构必须保持指定的边缘变量是有效的。
如果G
是油印,那么您可以指定第二个输出edgeperms
使重新排序变量边缘。
数据类型:字符
|字符串
|细胞
NodeVariables
- - - - - -节点变量保存
特征向量|字符串标量|单元阵列的特征向量|字符串数组
节点变量来保存,指定为逗号分隔组成的“NodeVariables”
和一个特征向量,字符串标量,单元阵列的特征向量,或字符串数组。使用这个选项来指定一个或多个节点在两个变量G1.Nodes
和G2.Nodes
。同构必须保留指定节点变量是有效的。
数据类型:字符
|字符串
|细胞
输出参数
P
——排列向量为同构
列向量|[]
同构排列向量,作为一个列向量返回当一个同构的存在或空数组[]
当一个同构并不存在。如果P
不是空的,然后呢reordernodes (G2, P)
有相同的结构G1
。
edgeperm
——边缘排列
列向量
边缘排列,作为一个列向量返回。在处理多重图时,边缘排列向量使您能够保持边缘变量指定的“EdgeVariables”
名称-值对。使用这些命令来重新排序重复边缘的边缘变量:
[p, edgeperm] =同构(g1、g2 EdgeVariables, edgevars);g2perm = reordernodes (g2, p);g2perm。(:,2:结束)= g2perm边缘。边(edgeperm, 2:结束);
更多关于
图的同构
两个图,G1
和G2
同构,如果存在一个节点的排列P
这样reordernodes (G2, P)
有相同的结构G1
。
两个同构的图也有类似的结构。例如,如果一个图包含一个周期,那么所有图同构,图也包含一个周期。
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。