SNAP(Standford Network Analysis Project)运行环境的搭建与配置

    因为我女朋友的研究方向是复杂网络(Complex Network),所以我有时也关注一下这个领域的相关知识,更重要的是要帮女朋友做论文的实验。虽然对复杂网络了解不是很深入,但是其对于数据和实验结果的依赖是非常严重的事实我还是非常明了的,这个领域的论文特点就是通篇贯穿实验数据,通过实验数据来说明模型的优劣。反观我研究的信念修正领域,基本上都是数学证明。对于我这样一个数学功底十分薄弱的人来说,无疑是难上加难。闲话少说,切入本文的主题。SNAP,全称Standford Network Analysis Project,是斯坦福大学提供的一个功能非常强大的开源工具。这个工具主要用于复杂网络领域的研究工作,它的出现实为科研人员的福音。如果读者您编程能力极佳,且英文非常给力,那么本篇博文就不要看了,这篇文章是写给像我这样的初学者屌丝,高富帅们请绕行。

    1、进入SNAP的官方主页
  
  英语好的的同学可以直接按照官网的说明进行配置,下面的内容就不用看了。如果你懒得看英文,那么就按照下面的步骤操作就可以了,本文也就是为了这个目的而写的。

          点击进入SNAP官方主页
    
    2、下载SNAP的源码

          点击进入下载SNAP源码

    3、下载SNAP相关的三个插件
         
          Gnuplot  一个绘图的插件,在SNAP中会调用它来绘制一个复杂网络的相关属性的统计图,支持2D和3D。
    
           点击进入Gnuplot官网下载安装包
  
  Graphviz  同样是绘图的插件,在SNAP中调用它来绘制带有节点和边的复杂网络图。

  点击进入Graphviz官网下载安装包 

  NodeXL  Office的插件,这个的确非常给力,直接可以做图,再也不用编程画图了。

  点击进入NodeXL官网下载安装包

    4、安装必要软件
  
  (1)Gnuplot和Graphviz是必须安装的,至于NodeXL,对于SNAP的编译和运行没有影响。Gnuplot和Graphviz的安装非常简单,一路都是下一步就行了。

  (2)作为一名技术屌丝,我用的是Windows+Visual Studio 2008的环境,使用Linux+GCC的高富帅们请绕行(官方文档有说明),这里只介绍前者环境下的安装。如果    你没有安装Visual Studio 2008,那么请自行下载安装吧,这里就不给出下载地址了。

  (3)安装好Visual Studio 2008之后第一次进入是需要选择编译环境,选择Visual C++。如果你以前就安装过Visual Studio 2008,用它做的C#或Web开发,那么这时需    要更改一下编译环境。具体操作如下:工具->导入和导出设置向导->重置所有设置->否,仅重置设置,从而覆盖我的当前设置->Visual C++开发设置->完成。

    5、设置系统环境变量

          我的系统的Windows 7 x64 旗舰版,一下步骤请大家参考,不同的Windows系统略有差异,但是问题不大。
    
  (1)右键单击计算机

     SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第1张图片

    (2)点击高级系统设置

SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第2张图片

    (3)点击环境变量


    (4)在系统变量中找到Path,单击编辑



    (5)在最后加上两个路径:
      
      C:\Program Files (x86)\gnuplot\bin
      C:\Program Files (x86)\Graphviz 2.28\bin
      
      这里注意最后一个路径之前,任意两个路径之间需要用分号";"来分割,而且是英文输入法状态下的,最后一个路径后面没有分号";"。完成保存即可。

6、Visual Studio 2008的相关配置

    (1)解压下载好的Snap-1.10文件,可以看到内部组成如下:

SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第3张图片

        这里简单说明一下这篇文章用到的文件夹和对应的功能。examples文件夹是一个Visual Studio的解决方案,里面包括和SNAP的功能例子,虽然都是控制台应 用程序,但是足够强大了。glib-core、snap-adv、snap-core这三个文件夹是类库,需要引入到工程中,具体引入方法在后面会具体说明。


    (2)打开examples文件夹

SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第4张图片

    (3)打开解决方案

SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第5张图片

    (4)这里有很多工程,随便点击一个工程,每个工程对应着NSAP的一个功能。这里以motifs工程为例说明一下配置操作。

      首先,选中motifs工程,项目->属性->配置属性->常规->项目默认值->字符集->选择“使用多字节字符集”,点击确定完成。这个操作,对每个工程都要操作一遍。

SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第6张图片

      其次,工具->选项->项目和解决方案->VC++目录->在“显示一下内容的目录”处选择“包含文件”(这里千万不要忽略,导致包含目录出错)->分别增加snap-core、       snap-adv和glib-core三个文件夹的目录。这个操作只要做一次就可以了。





    最后,编译运行这个工程就可以了。

7、功能测试

    (1)在命令行中手都执行程序

    在编译运行之后会发现控制台应用一闪而过,这是因为这些控制台应用都是需要使用参数来运行的。这里采用在命令行中用手动的方式调用控制台应用,这样的好处     是不用担心控制台会关闭,而且程序执行过程的记录容易查看。下面是步骤:

    首先,在Snap-1.10/examples/Debug(如果你编译的时候选的是Release,这里就是Release)里面找到motifs.exe、motifs.ilk和motifs.pdb三个文件,将这三个     文件拷贝。



    在桌面上创建一个文件夹,命名为motifs,将这三个文件粘贴到这个文件夹中。然后将Snap-1.10/examples下的as20graph.txt,也拷贝到motifs文件夹中。


    其次,打开命令行:
输入cd Desktop/motifs
回车
motifs.exe
回车


这里提示说发生了错误,不能打开as20graph.txt文件,因为我们在执行motifs.exe时候没有添加参数,所以默认的../as20graph.txt文件路径不对。但是这个操 作失误,却让我们看到了参数的具体用法,于是便有了下面这条命令:

输入 motifs.exe -i:as20graph.txt -m:3 -d:T -o:kbawyg
回车

在看motifs文件夹,生成了许多文件:


这个功能是用来查找整个复杂网络中的子图的,每个子图结构有两个文件。随便打开一个gif文件可以在浏览器中看到

SNAP(Standford Network Analysis Project)运行环境的搭建与配置_第7张图片


8、总结
    
    经过一下午和一晚上的努力,终于把SNAP弄明白了一点,而且可以看到它强大的功能了,希望对那些想用SNAP做实验和分析的初学者有帮助。SNAP的其他功能,使用方法类似,大家可以试用一下。折腾了半天,觉得这东西的确是很好很强大,对斯坦福、对开源精神充满无限敬意。

          

你可能感兴趣的:(SNAP(Standford Network Analysis Project)运行环境的搭建与配置)