Graph Triangle Counting via Neighbor List Pruning and Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems face significant computational challenges and latency when counting triangles in graphs, requiring extensive hardware resources and time, making them unsuitable for efficient graph analysis.

Innovation Solution

The techniques involve binary splitting, segmenting index creation, pruning of neighbor lists, and compiler optimizations to identify common neighbors and count triangles efficiently, using methods like linear searching, binary splitting, and hybrid searching to reduce computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional systems are used for triangle counting in graphs, then the computation can be performed using standard hardware, but the computation time becomes excessively large (over six hours for Twitter graph) and requires extensive hardware resources (over 1,000 Hadoop nodes)

Engineering Contradiction:
Improvetriangle counting speedVSAvoidcomputation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the graph into multiple partitions and processes triangle counting in parallel across different nodes. Each node handles a specific partition, identifying triangles within that partition independently. This segmentation allows the computation to be distributed, reducing the time required on any single node and enabling faster overall processing compared to conventional sequential approaches.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary filtering of neighbor lists before triangle counting by identifying and removing nodes that cannot possibly form triangles. This preprocessing step eliminates unnecessary computations by removing nodes with insufficient connectivity or those that cannot contribute to triangle formation, thereby reducing the computational workload and accelerating the triangle counting process.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If conventional triangle counting methods are implemented, then the approach can be applied to any graph, but the hardware requirements become unacceptable (over 1,000 Hadoop nodes)

Engineering Contradiction:
Improvegraph analysis applicabilityVSAvoidhardware resources
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent changes key parameters of the triangle counting algorithm, including the use of optimized neighbor list representations, improved traversal strategies, and adjusted filtering thresholds. These parameter changes enable the system to achieve high performance with fewer hardware resources while maintaining the ability to process various graph types and sizes, thus reducing device complexity without sacrificing adaptability.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If exhaustive neighbor list comparison is used to identify common neighbors, then all possible triangles can be found, but the computational overhead becomes excessive

Engineering Contradiction:
Improvetriangle counting accuracyVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts and removes nodes from neighbor lists that cannot possibly participate in triangle formation. By identifying and eliminating such nodes through filtering criteria (e.g., nodes with insufficient degree or those already processed), the system reduces the size of neighbor lists that need to be compared, thereby maintaining accurate triangle counting while significantly reducing computational overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by performing triangle counting only on relevant subsets of the graph rather than exhaustively processing all possible node combinations. Through strategic filtering and selective processing of neighbor lists, the system achieves sufficient counting accuracy without the excessive computational cost of examining every possible triangle candidate, thus balancing precision with reduced complexity.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9361403B2Efficiently counting triangles in a graph
Publication Date: 2016.06.07 ORACLE INT CORP

AI summary

Techniques for identifying common neighbors of two nodes in a graph are provided. One technique involves performing a binary split search and/or a linear search. Another technique involves creating a segmenting index for a first neighbor list. A second neighbor list is scanned and, for each node indicated in the second neighbor list, the segmenting index is used to determine whether the node is also indicated in the first neighbor list. Techniques are also provided for counting the number of triangles. One technique involves pruning nodes from neighbor lists based on the node values of the nodes whose neighbor lists are being pruned. Another technique involves sorting the nodes in a node array (and, thus, their respective neighbor lists) based on the nodes' respective degrees prior to identifying common neighbors. In this way, when pruning the neighbor lists, the neighbor lists of the highly connected nodes are significantly reduced.