-
图谱理论是图论研究的一个重要分支,广泛地应用于复杂网络、聚类算法、机器学习、人脸表情识别及网络可靠性等领域的研究,同时在物理、化学等领域中也有广泛的应用.因此图谱理论的研究就显得尤为重要[1-2].
图谱理论主要通过图矩阵的数量特征来研究图的组合结构,所涉及的图矩阵主要包括邻接矩阵、关联矩阵、拉普拉斯矩阵、广义邻接矩阵、距离矩阵等[3-4].设图G为简单连通图,其邻接矩阵定义为为A=[aij]n×n,其中
${a_{ij}} = \left\{ \begin{gathered} 0\;\;\;\;\;i \ne j \hfill \\ 1\;\;\;\;\;i = j \hfill \\ \end{gathered} \right.$ .令PG(λ)=|λI-A|为A的邻接特征多项式,其中I为单位矩阵.方程|λI-A|=0的所有值以及重数称为图的谱,具有相同谱的图称为同谱图,同谱但不同构的图称为同谱偶.对于给定的图G,若“任意的图H与G同谱”蕴含着“H与G同构”,则称G是谱确定的[5-6].早在20世纪,Gunthard和Primas在研究化学中的Huckel理论时提出了“哪些图是谱确定的?”,近年来,这一问题引起了学者们的广泛关注.如果直接从谱确定的定义出发来回答这一问题,显然是困难的.相反地,对于某个给定的图,如果我们能找到它的一个同谱偶,则说明这个图一定不是谱确定的,因此关于谱确定的研究主要围绕两个问题展开:(a)判断哪些图是谱确定的;(b)如果不是谱确定的,寻找其所有的同谱偶.对于同谱偶的研究,从目前已知的结果来看,常用方法有:GM-变换[7]和Schwenk-方法[8].遗憾的是,通过设计算法来寻找同谱偶的研究甚少.文献[9-12]主要研究了谱确定性问题,提到了“同谱”,同时给了相关证明,但没有具体涉及同型图内部同谱偶的研究.文献[13]针对Π-型树的谱做了研究,将其分为6个类型,分别研究每个类型的特殊性质,同时给出了与Π-型树同谱的其它图的结构以及相关的数学证明.文献[14-15]给出了类似于Π-型树的H-型树和T-型树,结论与文献[13]的结论类似.
以上文献都没有研究在点边数相同的情况下Π-型树、H-型树之间的性质.本文针对此情况设计了一种新的算法,此算法设计生成了Π-型树,并求得了给定点数的Π-型树内部的同谱偶,同时给出了算法的详细描述和实验结果.
全文HTML
-
针对Π-型树设计了算法.在算法中,首先按照目标生成不同的Π-型树,然后求解出树对应矩阵的特征值,最后将所有的特征值进行两两比较,找出相等的特征值所对应的树图.
本算法包含算法1、算法2和算法3.算法1是Π-型树的生成算法,算法2是求Π-型树对应矩阵的特征值的算法,算法3是比较矩阵特征值并找出对应相等的参数Lp(p=1,2,3,4,5)的值的算法.
算法1 Π-型树生成算法
输入:总点数N
输出:点数为N的所有非同构Π-型树图的邻接矩阵
当给定总点数时,通过循环变量依次控制Lp(p=1,2,3,4,5)的值,使得其满足条件,最终输出Π-型树的矩阵A[][].算法伪代码如下所示:
Begin
For i=1 to N
For j=1 to N
If ∑Lp=N /*保证生成树图的点数为N*/
and L1<=L2 and L4<=L5 and L1<=L4 and L2<=L5 /*保证生成的树与已有的不同*/
Then开始生成图
If (Lp!=0)
Then A[][]=1
For j=start Lp to end Lp/*start Lp和end Lp分别表示开始点和结束点*/
A[j][j+1]=A[j+1][j]=1
Else break
End If
memset(A)/*对A[][]清零,保证树图中不出现环*/
If A[][]中有对应的树图同构
Then不生成
Else Then生成
End For
End For
算法2 求矩阵的特征值的算法
输入:矩阵A[][]
输出:A[][]的特征值
首先对A[][]进行三角化(triangle(A)),对三角化后的矩阵按照QR分解法求其特征值,并将特征值分为实部和虚部存储在矩阵tzz[][]中.求的过程中设置一定的迭代次数L,保证求得解满足预设精度.同时求出A[][]矩阵的所有特征值.算法伪代码如下所示:
Begin
L:迭代次数:2 000
预设精度:ac=1.0e-12
M=N-1
triangle(A)/*对矩阵进行三角化*/
For i=0 to N-1
For j=0 to 1
tzz[i][j]=0
End for
End for
For k=0 to L
If (fabs(A[M][M-1]<=ac))
Then tzz[][0]=A[M][M] M--
Else if (M==0) Then tzz[][0]=A[0][0]
Else if (M==1)
Then a=1,b=-(A[m-1][m-1]+A[m][m]),
c=A[m-1][m-1]*A[m][m]-A[m-1][m]*A[m][m-1]
root(a,b,c)/*求解一元二次方程*/
If (fabs(A[M-1][M-2]<=ac))
Then root(a,b,c)
Else Then
For i=0 to N-1
For j=0 to N-1
If ((i>=m+1)||(j>=m+1))
Then A[][]=0
End for
End for
QR(M)/*求矩阵全部特征值的方法*/
End for
算法3 比较矩阵特征值并找出对应相等的参数Lp的算法
输入:矩阵特征值
输出:对应矩阵的参数对
将求出的矩阵特征值进行排序处理,然后对应比较,当出现两个矩阵的特征值相等时,输出矩阵对应的参数值Lp.算法伪代码如下:
Begin
For i=1 to N
For w=1 to N-1-i
sort(tzz[][])
End for
End for
For i=i to s/*s表示Π-型树的个数*/
For k=i+1 to s
For j=1 to N
If (tzz[k][j]==tzz[i][j])
Then output Lp对
End for
End for
End for
-
本算法是在Windows 64位操作系统、4G内存、VS2010的环境下,针对Π-型树专门设计的.
1) 生成图.用n×n的矩阵来存储生成图,所以对于n个点的树而言,时间复杂度只与点数有关:T1(Π)=Ο(n2);
2) 求谱.是针对矩阵进行的,需要双层循环,同时令最大迭代次数为L,时间复杂度为T2(Π)=Ο(L*n2);
3) 比较特征值.由于每个矩阵有n个特征值且要进行两两比较,所以设置3层循环比较对应的值,时间复杂度为T3(Π)=Ο(n3);
综上分析,此算法的时间复杂度只与点数有关,所以为T(Π)=Ο(n3).
-
本算法具有创新性和实用性,在之前的图论研究中没有类似的算法,可以用来解决化学领域的同分异构问题.由于计算机计算能力限制,本文求解得到了30个点以内的Π-型树内部的同谱偶,如果增加计算能力,可以利用本算法求解得到更大点数的Π-型树的同谱偶,为以后的图论研究提供可靠的数据.同时可以利用本算法思想,设计针对其它特殊图的同谱偶算法.但是仍然有一个问题,就是本算法的复杂度随着点数的增大而增大,希望以后的读者给予改进.