文档帮助中心文档
计算两个图之间的同构
P =同构(G1, G2)
P =同构(___、名称、值)
[P, edgeperm] =同构(___)
例子
P=同构(G1, G2)计算一个图的同构图间等价关系G1和G2,如果存在的话。如果不存在同构,则P为空数组。
P=同构(G1, G2)
P
G1, G2
G1
G2
P=同构(___,名称,值)使用一个或多个名称-值对参数指定其他选项。例如,可以指定“NodeVariables”和节点变量的列表,以表明同构必须保持这些变量是有效的。
P=同构(___,名称,值)
名称,值
“NodeVariables”
[P,edgeperm) =同构(___)另外,返回一个边排列向量,edgeperm.这个输出使您能够在处理多重图时保留边变量。
[P,edgeperm) =同构(___)
edgeperm
全部折叠
创建并绘制两个有向图,然后计算它们之间的同构关系。
G1 =有向图([1 1 1 2 3 4],[2 3 4 4 1]);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.
reordernodes (G2, p)
创建并绘制两张图,G1和G2.
G1 = graph([1 1 2 2 3 3 4 5 5 7 7],[2 4 5 3 6 4 7 8 6 8 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 1 2 1 1],“YData”,[4 4 3 2 3 1 2 1])
计算图之间的同构关系(如果存在)。结果表明,尽管图节点的标签和布局不同,但它们可以被排列来表示相同的图。
p =8×11 2 5 3 4 7 6 8
计算两个图之间的两个不同的同构关系。其中一个关系保留了节点属性,而另一个则忽略它。
创建两个相似的图。添加节点属性颜色每一个图。
颜色
G1 =图({' d '“e”“f”},{“e”“f”' d '});G1.Nodes。颜色= {“蓝”“红色”“红色”} ';G2 =图({“一个”“b”“c”},{“b”“c”“一个”});G2.Nodes。颜色= {“红色”“红色”“蓝”} ';
在同一个图中并排绘制这些图表。将具有的节点涂成红色颜色= '红色'.
颜色= '红色'
subplot(1,2,1) p1 = plot(G1);突出(p1, {“e”“f”},“NodeColor”,“r”) subplot(1,2,2) p2 = plot(G2);突出(p2, {“一个”“b”},“NodeColor”,“r”)
计算图之间的同构,忽略颜色财产。
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'}
图
有向图
的单独参数指定的输入图图或有向图对象。使用图创建无向图或有向图创建有向图。
G1和G2必须两个图对象或两有向图对象。
例子:G1 =图(1、2)
G1 =图(1、2)
例子:G1 =有向图([1 2],[2 3])
G1 =有向图([1 2],[2 3])
指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
P = isomorphism(G1,G2,'NodeVariables',{'Var1' 'Var2'})
“EdgeVariables”
要保留的边变量,指定为逗号分隔的对,由“EdgeVariables”以及字符向量、字符串标量、字符向量的单元数组或字符串数组。使用此选项可指定一个或多个边变量G1。边缘和G2。边缘.同构必须保留指定的边变量才能有效。
G1。边缘
G2。边缘
如果G是一个multigraph,那么您可以指定第二个输出edgeperms重新排序边缘变量。
G
edgeperms
数据类型:字符|字符串|细胞
字符
字符串
细胞
要保留的节点变量,指定为逗号分隔的对,由“NodeVariables”以及字符向量、字符串标量、字符向量的单元数组或字符串数组。使用此选项可指定两个节点中的一个或多个节点变量G1。节点和G2。节点.同构必须保留指定的节点变量才能有效。
G1。节点
G2。节点
[]
用于同构的排列向量,当存在同构时作为列向量返回,或作为空数组返回[]当同构不存在时。如果P难道不是空的吗reordernodes (G2, P)具有相同的结构G1.
reordernodes (G2, P)
边排列,作为列向量返回。在处理多重图时,边排列向量使您能够保留由“EdgeVariables”名称-值对。使用以下命令重新排列重复边的边变量:
[p, edgeperm] =同构(g1、g2 EdgeVariables, edgevars);G2perm = reordernodes(g2, p);g2perm。边缘(:, 2:end) = g2perm.Edges(edgeperm, 2:end);
两个图,G1和G2,如果存在节点的排列,则为同构P这样reordernodes (G2, P)具有相同的结构G1.
两个同构图具有相似的结构。例如,如果一个图包含一个循环,那么与该图同构的所有图也包含一个循环。
有向图|图|isisomorphic|reordernodes
isisomorphic
reordernodes
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系