相关文章推荐
哥尼斯堡七桥问题:如何在不重复的情况下遍历所有的7座桥?

我们当然可以一遍一遍的尝试,得到最后的结果,但是这样实在是太慢,人们问有没有什么诀窍呢?或者说有没有什么一般规律可以解决诸如此类的问题?

1735年,大数学家 Euler 应邀来到此地尝试解决此问题,一年以后,29岁的 Euler 以一篇论文《哥尼斯堡的七座桥》论文宣布解决了此类问题,如今我们称这一类问题为“一笔画”问题,欧给出了对于此类能够不重复的走完所有路线(即一笔画完不间断)的问题的充要条件。

欧拉的解答开辟了图论与几何拓扑等重要数学分支,其重要性不言而喻,但是我们这里着重于他解决该问题的一个重要的思维转变,即为了简化此问题,欧拉将该问题转化为如下的数学模型:他将两岸B与C、两岛A与D抽象为节点( node ),将连接岸和岛的桥视作为比边( edge ),从而得到如下的数学模型:

这图片是我用 inkscape 画的示意图,由此一来问题就变为:在最多经过每一条边一次的的情况下,是否可能遍历图中所有的节点。

Euler 对于实际问题的简化其实就是建立数学模型的一个过程,本质上和我们今天参加数学建模大赛时进行建模的过程是一样的。从此,对图,即节点和连边组成的对象的研究就蓬勃发展起来了。

一直以来人们都认为图论是一门高度抽象化的数学分支,其实际意义不是很大,转机出现在上世纪的90年代,这个时候,基于对一些特殊的图,例如规则图( Regular Graph )、随机图( Random Graph )的研究、以及罗马尼亚裔的匈牙利美国物理学家巴拉巴西( Albert-LászlóBarabási )对万维网进行研究之后,发现了所谓的无标度( Scale free Network )网络,物理学家发现现实生活中的很多现象和结构,可以在网络( network )的层面上进行理解,而网络在本质上就是图的演化,如此一来,我们就可以构建出抽象的网络来模拟实际的网络,如交通网络、电力网络、神经网络、流行病网络、甚至全球气候网络。由此以来便发展出了复杂网络这门交叉型的学科,复杂网络发展非常迅猛,科学家对各种网络在各种层面上进行研究,这样一来就带来一个问题,如何能够快速理解建模之后得到的网络?一个方式就是可视化,俗话说一语胜千言,图像能够表达的信息较之文字会形象许多,在这个背景下, Gephi 这个网络可视化软件就诞生了。

Gephi 软件的宗旨,用开发者的话说,就是 Exploring dynamic networks in an easy and intuitive way has been incorporated in Gephi from the beginging. 以一种简单且直观的方式来呈现动力学网络是 Gephi 一开始就追求的目标。 Gephi 可处理20000+节点的大型网络,在这个基础上,还能依据不同的研究者的追求调用不同的高质量分层算法、进行数据清洗、聚类、统计以及注释,接下来我们就开始学习这个软件的使用。

二、 Gephi 软件安装

gephi 是一个免费的大型的复杂网络可视化的软件,由 Bastian M 等人编写,并一直在更新,目前最新的版本是 Gephi 0.9.2 ,其官网网址是: 官方网站 ,值得一提的是,该软件在 mac linux 上也有相应的版本,读者可各取所需进行下载。

Gephi封面

如图所示,我们首先点击进入官网,然后点击按钮 Download Free 进行免费下载,软件大约有72M的大小,一般情况下下载都较快,如果觉得下载速度太慢可以打开迅雷复制下载网址进行下载。

下载之后,按理说就可以进行正常的双击 exe 安装的步骤了,但其实这软件有一个要求,它必须在 java 1.8版本以上才能正常运行,否则在安装之后,会出现如下窗口:

Java1.8 错误

导致无法运行该软件,网上有修改 conf 文件的做法,但是我觉得比较麻烦,直接安装相应的版本就好了,若各位嫌麻烦,我这里也附上一个下载链接,下载完默认安装即可。装好 java 1.8 以后再安装 gephi 软件,就没什么问题啦!

链接: https://pan.baidu.com/s/1haUM4Xgv3_P599mIkd6rag
提取码:mj0h
复制这段内容后打开百度网盘手机App,操作更方便哦

三、界面介绍

gephi界面

安装完毕之后,双击图标打开 gephi ,进入上图所示的界面,简单来说,概览窗口是你进行网络可视化并后期调整的主要窗口;数据资料是你导入的电子表格资料;预览窗口就是你可视化之后导出图片之前的预览窗口。

四、通过例子来学习可视化

接下来我们直接举一个例子来说明如何操作 Gephi 软件作出你的第一张图:

首先我脑子里有一个想法,例如说我想可视化一个一维的链式网络,且首尾相连,我们假设有 n=10 个节点,每个节点和下一个节点相连,即网络的连边数为 l=9 ,那么就需要这两组数据:

一个表格用来指出节点的 \color{red}{数量信息、编号信息}

一个表格用来指出节点和节点之间的 \color{red}{连边信息}

如下图所示

网络的连边信息

左边的 node 表格的是节点信息表格,就两列,分别是 Id Label 列,这两列分别代表了节点的数量和编号,一共是10个节点,编号是从1到10;右边的 link 表格是连边信息表格,一共三列,分别是 Source Target Weight 列,也很好理解, Source 指的就是一条边的出发节点(源节点), Target 指的就是一条边的到达节点(汇节点), Weight 就是这条边的权重,一般设为1,举个例子,第5行中, Source = 4,Target = 5, Weight = 1 代表该边从节点4出发,指向节点5,权重为1,注意是出发节点指向目标节点。

准备好表格之后就可以开始画图了!我们关闭数据表格,打开 gephi ,点击导入数据表格,由于表格有两个,所以数据也要导入两次:

添加节点标签

这个时候图像还不够好看,我们在左边的布局选项卡中选择 YifanHu 布局,点击运行,便可以得到上述的图像,然后再点击下方选项卡中的显示标签 T ,调整大小至不超出节点即可,这样一来你的图像就完成啦!最后点击上方的预览窗口,开始准备导出工作。

五、导出图像

如下图所示,点击预览窗口后,先点击刷新,发现出来的图像和我们 WorkSpace 中给的图像并不一致?!没关系~,我们依次调整左边选项卡中的数据,大部分选项一眼能看明白,可自行调节,实在不行就按照我标记的数字来调整,调整完以后点击一下刷新(4),满意后点击左下方的图片格式导出(5)即可!共有三种格式可以选择,一般建议选择 SVG 进一步做调整或者直接导出 PDF 文档,而 PNG 格式实测存在图像失真的现象。

 
推荐文章