-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of Louvain Algorithm #1141
Comments
I think this is a good ask. Right not we have no community detection algorithms implemented, but this could be an effort like #315 to start implementing those. Sometimes it is just a matter that no one asked for them before |
A general question: is the goal of One thing I don't know: how complicated is it to write a package that works with |
Firstly, our goal is to expand the graph library. Most of the existing algorithms started like this, someone needed a specific algorithm and we eventually implemented it. There is a lot of upfront cost with implementation & testing for correctness, but once it is released generally our maintenance for algorithms has been pretty easy. Secondly, using However, using |
One last thought: for |
I'm interested in taking this on if nobody has started on it. |
So far all I have done is implement the modularity function (which the Louvain algorithm tries to maximize) in this branch. Before going any further I wanted to check whether the architecture makes sense. The idea is to eventually put the full algorithm in, e.g., Some open questions:
|
It seems that the developers of petgraph believe that these community detection algorithms should be offered as a separate package, plz see petgraph/petgraph#185. However, I’m not sure if their opinion has changed. |
I completely missed this comment. Also, feel free to open a draft PR so that we can discuss. I will try to get a look at it. |
We can be the other crate to host the algorithm. |
The Louvain algorithm is commonly used to identify communities in graphs, and is present in other libraries/tools such as NetworkX and Neo4J.
It would be great if an implementation was available in RustworkX too.
The text was updated successfully, but these errors were encountered: