子图同构----复杂网络分析(一)

这个系列的博客,怎么说呢?就是一些零散的知识,当然,自己在完成导师给的任务、自己通过互联网寻找解决问题的方法,对我自己的相应能力的提升都是很重要的。也希望大家能在互联网上找到自己想要的东西。如果你对这方面感兴趣的话,可以自己做一做,我会把老师让我们做的放在这篇文章的前面部分,他下发的任务用红字标红,你们可以自己花点时间试一试。

一、大家先看看这个图

假设啊,图中的每个节点(那些数字)代表相应的某一个人,图中的有向边代表某人和某人的关系(比如,1->3,可以表示1认识3),那么如上图所示,我们就有了这么一个圈子(网络),就好像你和你身边的人组成的一个圈子N。

然后呢,我们观察一下啊,图中是不是有类似于

这样的结构呢?比如:(1,2,3)组成的一个子圈子n1、(1,2,4)组成另外一个子圈子n2......

然后呢,我们就找出所有的类似于M7这样的结构,根据在N中出现的类似于M7的所有的n,我们可以得到这么一个矩阵:

然后呢我就说说这个矩阵中的元素是什么意思(矩阵的行和列的概念我默认你们懂的。。哦)

首先看第1行第2列的这个3代表的是:

上面3个和M7是结构相似的,而1,2这两个节点是不是出现了3次,所以第1行第2列的值就是3;

同理,1,3这两个节点是不是在和M7相似的结构中出现过1次,所以第1行第3列的值就是1;

同理,2,1这两个节点是不是在和M7相似的结构中出现过3次,所以第2行第1列的值就是3;

...

当你统计完所有的数据时,就得到了这样一个矩阵。

导师让我们做的就是:

1.找出下面哪个出现在N中的次数最多?

2.根据M1你可以画出对应于M1的矩阵,根据M7你可以画出对应于M7的矩阵,把13个矩阵都画出来;

3.计算每个矩阵对应的非零值个数、矩阵中所有非零值的和(如和M7对于的矩阵中非零值个数为30,非零值的和为36)

提示,可使用python,再利用networkx库来做。

(没学过python的不要紧,你只要有些许的编程基础,知道hello world,那么入门python肯定很easy。

安装好python,再安装一个pycharm,网上有很多教程)

猜你喜欢

转载自blog.csdn.net/a_cherry_blossoms/article/details/109442019