12.07.2015 Views

Multilevel Graph Clustering with Density-Based Quality Measures

Multilevel Graph Clustering with Density-Based Quality Measures

Multilevel Graph Clustering with Density-Based Quality Measures

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.1 The Multi-Level Schemeas starting point. Inversely the coarsening can be interpreted as an agglomerativemethod which regularly stores snapshots as coarsening levels.Data: original graph,coarsener,refinerResult: clusteringcreate level[1] from original graph;for l from 1 to max levels do// coarsening phaseclustering ← coarsener(level[l]);create level[l + 1] from clustering;reduce edge and vertex weights level[l] → level[l + 1];l max ← l;if not successful then break;clustering ← vertices of level[l max ] ; // initial clustering phasefor l from l max to 2 do// refinement phaseproject clustering onto level[l − 1];clustering ←refiner(clustering);project clustering onto original graph;Figure 3.3: The Multi-Level AlgorithmThis approach is also shown in pseudo-code in Figure 3.3. It is known as multilevelpartitioning and is a special form of the Algebraic Multi-Grid method (AMG).To simplify the implementation the method is reformulated in three phases. Thismakes it easier to centrally select the implementations used for the coarsener andrefiner. In the coarsening phase vertex groups are created by merging clusters beginning<strong>with</strong> singleton clusters until the number of groups is satisfyingly reduced.From these groups the coarse graph is build. This is repeated until the graph cannotbe coarsened further. The initial clustering phase simply uses the vertices of thecoarsest graph as initial clustering. Finally during the refinement phase the clusteringis successively projected onto the next finer graph and refined <strong>with</strong> vertexmovements until the original graph is reached.Implementation Notes The vertex groups build during the coarsening phase areclusterings. They are stored as a mapping of vertices to their current cluster. Toefficiently update this mapping on cluster merges the disjoint-set data structure <strong>with</strong>path compression is used like in many union-find algorithms. Thus for all practicalgraph sizes updates and lookups take constant time on average.After each coarsening pass the contracted graph is generated by registering acoarse vertex for each cluster. For each edge in the fine graph an edge betweenthe coarse vertices of their end-vertices is added if not already existing. Withthe necessary edge lookups this costs O(|V | + |E| 2 ), using a temporary search treeO(|V ||E| log |E|). Because in practice this proved to be a significant difference theimplementation uses a tree for each vertex to quickly search in its incident edges.Simultaneously a mapping of fine-graph vertices to their coarse vertex and fineedges to their coarse edge is built. Structurally this is a graph homomorphismrespecting vertex adjacency. The homomorphism is stored together <strong>with</strong> the coarsegraph in level[l+1] and allows to transfer vertex and edge properties between both27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!