public class EnumTrianglesOpt extends Object
The basic algorithm works as follows: It groups all edges that share a common vertex and builds triads, i.e., triples of vertices that are connected by two edges. Finally, all triads are filtered for which no third edge exists that closes the triangle.
For a group of n edges that share a common vertex, the number of built triads is quadratic ((n*(n-1))/2). Therefore, an optimization of the algorithm is to group edges on the vertex with the smaller output degree to reduce the number of triads. This implementation extends the basic algorithm by computing output degrees of edge vertices and grouping on edges on the vertex with the smaller degree.
Input files are plain text files and must be formatted as follows:
"1 2\n2 12\n1 12\n42 63\n"
gives four (undirected) edges (1)-(2), (2)-(12), (1)-(12), and (42)-(63)
that include a triangle
(1) / \ (2)-(12)Usage:
EnumTriangleOpt <edge path> <result path>
EnumTrianglesData
.
This example shows how to use:
Modifier and Type | Class and Description |
---|---|
static class |
EnumTrianglesOpt.TupleEdgeConverter
Converts a Tuple2 into an Edge
|
Constructor and Description |
---|
EnumTrianglesOpt() |
Copyright © 2015 The Apache Software Foundation. All rights reserved.