Skip to content
This repository has been archived by the owner on Dec 22, 2022. It is now read-only.

Vertex k-Core Decomposition App #77

Merged
merged 5 commits into from
May 27, 2021
Merged

Vertex k-Core Decomposition App #77

merged 5 commits into from
May 27, 2021

Conversation

angeil
Copy link
Contributor

@angeil angeil commented May 24, 2021

Computes the k-core value for all vertices in the input graph. A k-core is a maximal subgraph in which all vertices have degree >= k. A vertex’s k-core value is the largest value of k for which it is a member of a k-core.

This implementation is intended for undirected graphs. For directed graphs, there are concepts of directional k-core values based on vertices' in- and out-degrees, but I have not yet implemented that.

How it works:
To find the k-cores, start with the full graph and set k=iteration. Then iteratively remove vertices (mark them as deleted) with degree <= k, set those vertices’ k-core values to the current value of k, and decrement the degree for all neighbor vertices. Increment k when all vertices with degree <= k have been removed. Repeat the vertex removal process. Continue until no vertices remain.

There are some differences in results between this and k-core app in gunrock/gunrock, which come from differences in the graph pre-processing; specifically, directed graphs and self-loops. Graphs that are symmetric and contain no self-loops have same k-core results for essentials and gunrock/gunrock. Graphs that are not symmetric and/or include self-loops will have different results, because the reported vertex degrees differ in the two graph implementations.

@neoblizz neoblizz added the 🍍 algorithms New or existing graph algorithms question. label May 27, 2021
@neoblizz
Copy link
Member

Merging this, I'll make some improvements and tag you in the new version.

@neoblizz neoblizz merged commit bf43d99 into gunrock:dev May 27, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🍍 algorithms New or existing graph algorithms question.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants