-
Notifications
You must be signed in to change notification settings - Fork 45
New coloring methods #43
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
Conversation
Implemented greedy star-1 coloring.
While it doesn't make a lot of sense to use star coloring for simple Jacobian computation using orthogonal column partitioning followed by forward mode AD or finite differencing, it can be used later for easier implementation of substitution-based recovery methods. I ran the new algorithm on some random and special graphs and this is what I observed. For a star graph with 200,000 vertices:
So evidently the simple coloring algorithm performs better in this case, by an order of magnitude. We should also take note of the huge difference in the number of allocations and memory consumed. For a cycle graph again with 200,000 vertices,
Thus, for cycle graphs, our new star coloring algorithm is much, much faster than the original greedy coloring, in terms of both time and memory use. However, note that star coloring would return the coloring vector Finally, for randomized input graphs with number of vertices varying from 500 to 2500 and edges per graph varying from EDIT: added latest data |
Given that you don't use vertex removal, any graph can be passed (not only VSafeGraph). For the tests, generate a bunch of graphs, and compute the coloring using different algorithms. One basic property you can test is that the coloring is a valid one. Another one is that the number of colors is upper-bounded (you have to know the true minimum number of colors for that) |
In your tests, you could add the two reference graphs from page 664, fig 4.3 |
@pkj-m you are missing random in the package it seems, go to the project, |
#29