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
Linear time implementation of Modular Decomposition for Undirected Graphs #23487
Comments
Changed keywords from modular decomposition to modular decomposition, GSOC 2017 |
comment:1
It will use the implementation from https://github.com/lokeshj1703/Undirected-Modular-Decomposition |
This comment has been minimized.
This comment has been minimized.
Changed keywords from modular decomposition, GSOC 2017 to modular decomposition, gsoc2017 |
Branch: u/jlokesh/23487 |
New commits:
|
Commit: |
comment:4
Dear Lokesh, why have you removed file Many improvements are needed in your code that we will slowly address. Dima is certainly more expert than me in this. For instance:
|
Reviewer: David Coudert, Dmitrii Pasechnik |
comment:5
Replying to @dcoudert:
this should be trivial to fix. Let's remove it now for good. |
comment:6
this is the updates needed for Sage to build and run. modular_decomposition doctests in graph.py fail due to some format incompatibility of output of the new implementation. New commits:
|
Changed branch from u/jlokesh/23487 to public/gsoc17_t23487 |
comment:7
Sorry for the late reply. I have started working on the updates. I will push the commit shortly. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:9
I have added a commit for improved readability in the code. This commit addresses first four issues pointed out by David. I will soon add a commit for including examples, test cases and for handling failure of doctests. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:11
I have added the commit for fixing the doctests and added the Tests and Examples for modular_decomposition function. Should I add the examples for other functions as well? Because most of the functions are called from modular_decomposition itself. For the tests for modular_decomposition I have added the graph from Marc Tedder research paper and an example from the wikipedia modular decomposition page. Further I have added a series graph (Tetrahedral Graph). |
comment:13
Is #13744 a duplicate of this? |
comment:47
I am not able to find any resource on building graphs from modular decomposition. I am assuming we are trying to build a graph given a modular decomposition. Please correct me if I am wrong. If so I have a doubt about it being possible. If we consider this example-:
and if we remove the edge (1,3) from it and then find the modular decomposition. Then also the result is same. |
comment:48
You are right, a proper definition is needed and I don't know any. So nothing to do. |
comment:50
Parallel module is easy to build into a graph. Series and Prime module are formed if the induced subgraph is connected but they can not tell how this graph is connected or what edges are there and what are not. As illustrated by example in comment 47. |
comment:51
Replying to @lokeshj1703:
It is irrelevant what happens inside each module, for the vertices of each module used to construct the new graph will be merged into one. What's important is how modules are connected among each other. In the example in comment 47 the graph in question will have just one vertex (or perhaps it should be empty graph, but that's a very minor issue). |
comment:52
to clarify: I am talking about the quotient graph I started talking in comment 19, and you mentioned in comment 21. |
comment:53
In
In
|
comment:54
Replying to @dimpase:
That is not a problem then. Only thing to discuss would be the structure of quotient graph. Should the children have a pointer to quotient graphs they represent(the maximal modules). In such a case the structure would be same as the one on the top right portion of the image you shared. |
comment:55
Replying to @dcoudert:
It is used in graph.py for printing the module type.
Here x.node_type is an object of NodeType class. For NodeType.PARALLEL it would be PARALLEL. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:57
I have made some changes to the documentation of modular_decomposition function in graph.py. Please review it. |
comment:59
You have removed the reference Perhaps it's time that you should check docs for building, before pushing in changes to them :-) Anyhow, I'm putting the reference back. New commits:
New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:61
as you can see from patchbot's output, about 20 functions miss doctests. |
comment:62
Replying to @dimpase:
Thanks for fixing it. Will check it next time :-) |
comment:63
So, how about adding missing tests? If you are too busy now, I can do this, I don't want to sit on this ticket for too long... |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:65
I missed that update - only comments are emailed to me, no commit notifications. Looks good to me. |
Changed branch from public/gsoc17_t23487 to |
Changed commit from |
Changed reviewer from David Coudert, Dmitrii Pasechnik to David Coudert, Dima Pasechnik |
This is aimed at providing linear time implementation for finding modular decomposition of undirected graphs, fixing the currently broken Sage's graph modular decomposition.
CC: @dimpase @dcoudert
Component: graph theory
Keywords: modular decomposition, gsoc2017
Author: Lokesh Jain
Branch:
6688bac
Reviewer: David Coudert, Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/23487
The text was updated successfully, but these errors were encountered: