考虑一个问题,有两个长宽不同的房间,如何选择一种地砖,在不进行任何割锯的情况下就可以完美地平铺两个房间?
这是一种类似于获得“最大公约面积”的问题(当然你可以选择足够小的地砖,比如一粒沙子那么大小,这样就可以完美的平铺两个房间,但谁也不会这么做)。
为了更好的解决这个问题,我们可以先考虑在一维情况下,如何获取两根长度不一的筷子的“最大公约长度”,这就等价于计算两个数的最大公约数,具体算法就是“更相减损法”。具体演示如下:
因此对于二维情况,我们也可以分别对每一维进行上述操作便可以获得“最大公约面积”,具体演示如下:
这样我们就可以获得二维情况下的“最大公约面积”,进一步的,我们可以推广该算法至更高维。
对于一些互作网络,如人际关系网络,基因互作网络,蛋白质互作网络等等,我们如何来判断同一类别的不同网络之间的相似程度?即例如不同人所具有的人际关系网络是否具有相似性(这种相似性更确切的定义是指他们之间的“模型近似性”),从一定角度来说,我们可以通过计算他们之间的“最大公约数”,并以此作为依据来判断其相似性是否很高。若要解决这个问题,则首先必须得知道网络本身的维数。在这里我们可以计算网络的分形维数(PS:有资料表明,人际关系网络,基因互作网络,蛋白质互作网络等等这些网络是分形的(Fractal)),公式为:d=logN / log(1/ε) , PS:d为网络的维数,N为网络划分的个数,ε为每个小网络的“长度”(这里指的是定点的度)。同时,我们也可以根据ε来确定网络在不同维度的“长度”,之后便可以利用前面所述的算法来计算不同网络间的“最大公约数”。进而评估网络间的相似性。
注意:
该相似度评估算法基于一个假设,即同类网络具有相同的维度,且该网络是分形的。
(如若转载,请注明网址 http://blog.csdn.net/lexwoefm/article/details/18505797,谢谢)