文档

isisomorphic

确定两个图是否同构

语法

tf = isisomorphic (G1, G2)
tf = isisomorphic (G1、G2、名称,值)

描述

例子

tf = isisomorphic (G1, G2返回逻辑1真的)如果一个图同构图之间存在G1G2;否则,返回逻辑的0).

例子

tf = isisomorphic (G1, G2名称,值指定具有一个或多个名称值对参数的其他选项。例如,您可以指定'nodevariables'和节点变量的列表,以表明同构必须保持这些变量是有效的。

例子

全部折叠

创建和绘制两个定向图形,然后确定它们是否是同构。

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)

isisomorphic (G1, G2)
ans =逻辑1

创建并绘制两张图,G1G2

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 2 1 2 1 1],“YData”,[4 4 3 2 3 1 2 1])

确定是否存在的同构G1G2.结果表明,尽管它们不同的标签和布局,但是图形的结构上是相同的。

tf = isisomorphic (G1, G2)
tf =逻辑1

使用两个不同的比较来确定两个图之间是否存在同构关系。其中一个比较保留了node属性,而另一个忽略它。

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

G1 =图({' d '“e”“f”}, {“e”“f”' d '});G1.Nodes。颜色= {“红色”“红色”“蓝”} ';G2 =图({“一个”“b”“c”}, {“b”“c”“一个”});G2.Nodes。颜色= {“蓝”“蓝”“红色”} ';

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

subplot(1,2,1) p1 = plot(G1);突出(p1, {' d '“e”},“NodeColor”“r”) subplot(1,2,2) p2 = plot(G2);突出(p2,“c”“NodeColor”“r”

确定图是否同构,忽略颜色财产。

tf = isisomorphic (G1, G2)
tf =逻辑1

确定图是否同构并保留颜色属性。在这种情况下,没有同构,因为颜色属性的每个图包含不同数量的“红色”“蓝”值。

tf = isisomorphic (G1, G2,'nodevariables''颜色'
tf =逻辑0

输入参数

全部折叠

的单独参数指定的输入图或者有向图对象。用创建无向图或有向图创建有向图。

G1G2必须是物体或两者有向图对象。

例子:G1 =图(1、2)

例子:G1 =有向图([1 2],[2 3])

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值是相应的价值。的名字必须出现在单引号内(' ').可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:if (G1,G2,'NodeVariables',{'Var1' 'Var2'})

全部折叠

要保留的边变量,指定为逗号分隔的对,由“EdgeVariables”和字符向量或特征阵列的字符向量。使用此选项指定两者中的一个或多个边缘变量G1.edges.G2.Edges..同构比较必须保留指定的边缘变量以有效。对于具有相同两个节点之间的多个边缘的多层的多层,相同节点对的边缘变量的排序是无关的。

数据类型:字符|细胞

节点变量保存,指定为逗号分隔对组成'nodevariables'和字符向量或特征阵列的字符向量。使用此选项指定两者中的一个或多个节点变量G1。不desG2。不des.同构比较必须保留指定的节点变量才能有效。

数据类型:字符|细胞

更多关于

全部折叠

图同构

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

两个同构图具有相似的结构。例如,如果一个图包含一个循环,那么与该图同构的所有图也包含一个循环。

介绍了R2016b

这个话题有用吗?