METIS-一种图切分的软件包(简介)
来源:互联网 发布:淘宝客怎样推广店铺 编辑:程序博客网 时间:2024/04/28 14:04
METIS是由Karypis Lab开发的一个具有强大功能的图切分软件包。准确来说,METIS是一个串行图切分的软件包,Karypis Lab还提供了并行版的图切分软件包parMETIS和支持超图和电路划分的hMETIS。METIS的算法设计主要基于多层次递归二分切分法、多层次K路切分法以及多约束划分机制。用户使用METIS软件包时,可以根据需要选择相应的切分方式。
METIS主要的特性如下。首先,METIS具有高质量的划分结果,据称比通常的谱聚类(spectral clustering)要精确10%-50%。其中Chaco支持谱聚类算法。其次,METIS执行效率非常高,比常见的划分算方法快1-2个数量级。百万级顶点的图几秒钟之内就可以切分为256个类。最后,METIS具有很低的注入元(fill-in ),从而降低了存储负载和计算量。
METIS的工作原理:以k路多层次划分为例。
整个划分过程分成coarsening, initial partitioning 和 uncoarsening (refinement) 三个部分。coarsening将图的大小逐渐缩小,G1->G2->G3-G4。在G4阶段执行K路划分,然后在uncoarsening阶段将图中的原始节点映射到G4划分的cluster中。
METIS的安装:用户需要到Karypis Lab的官网下载最新的METIS安装包,目前最新版本为METIS 5.1,然后解压软件包。需要保证系统上已经安装了C编译器和GNU make和C Make 2.8,根据操作系统的位数修改metis.h文件中的IDXTYPEWIDTH常量的值为32或者64,然后在metis底层文件下执行make指令,既可以完成安装。
METIS的使用:以gpmetis为例,其使用方法为 gpmetis [options] graphfile nparts。gpmetis是编译生成的可执行文件,[options]是执行gpmetis可选项,graphfile是将要划分的文件名,nparts是用户指定的划分的cluster的个数。用户通过配置options的-ptype参数可以指定gpmetis切分方式,-ptype = rb时,使用的是多层次递归二分切割算法,-ptype = kway时,使用的是多层次k路划分算法(默认值)。-ctype指定了coarsen操作时的策略,-ctype = rm时,随机匹配,-ctype = shem时使用SHEM(Sorted heavy-edge matching)方法进行匹配(默认值)。
METIS输入和输出文件的格式:输入文件格式如下图所示。
左图是无权重图,第一行是顶点个数和边的条数。除第一行之外,第 i 行表示 i-1 节点连接的顶点编号。比如第2行表示的是顶点1与5,3,2顶点之间有边直接相连。右图是有权图,第一行表示顶点个数和边的条数,以及format格式为带权重图。第 i 行表示 i-1 节点连接的顶点编号,紧跟边的权重值。
图划分输出文件格式非常简单,一共有n行(n个顶点的图),每行一个整数表示该节点所属cluster的编号。
- METIS-一种图切分的软件包(简介)
- yum介绍(一种管理软件包的工具)
- yum介绍(一种管理软件包的工具)
- 比较了metis和我的算法
- 一种面向搜索引擎的中文切分词方法
- 一种HBase的表region切分和rowkey设计方案
- 一种HBase的表region切分和rowkey设计方案
- 一种面向搜索引擎的中文切分词方法
- javac编译源文件提示软件包不存在的一种解决方案
- 单源最短路径算法的MapReduce实现(Metis版本)
- 窗口切分的静态切分
- LinuxStudyNote(39)-Linux软件包管理(1)-Linux软件包简介之源码包与RPM包、源码包的优缺点、RPM二进制包的优缺点
- LIBSVM 软件包简介
- 软件包管理-简介
- iputils软件包简介
- Linux 软件包管理简介
- Linux-软件包管理简介
- Linux中软件包简介
- Optimal ArrayMultiplication Sequence
- Android开发之设置60s倒计时
- CocoaPods操作
- 纯css3实现的圆形进度条
- 立贴见证
- METIS-一种图切分的软件包(简介)
- requiredJS----AMD模块加载器
- C++ 静态成员变量和静态成员函数
- Step into Kotlin - 23 - 与 Java 交互
- 关于DAO和分页实现
- try-catch-finally异常处理(二)
- SQL - DEFAULT约束
- 启程
- UILabel UI中添加文字框