-
Notifications
You must be signed in to change notification settings - Fork 5
Improve performance of graph automorphism via faster refinement and r… #38
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
base: main
Are you sure you want to change the base?
Conversation
| for u_i in self._u_vector: | ||
| for h in u_i: | ||
| f = mult(g, h) | ||
| if (f == self._identity).all(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For large graphs this short-circuit takes longer to check than it ends up saving, hence its removal.
randomir
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, just a few minor suggestions.
I'll defer the algorithm validation to @jackraymond.
…emoval of ``change_base()`` - uses an optimized colour refinement algorithm - more efficiently handles graphs with disjoint components - fixes issue where automorphisms could be missed if coset representatives could belong to multiple left transversals - supports canonical labelling - faster graph comparison using refinement trace - no longer relies on ``change_base()`` to perform pruning by automorphism - uses more efficient data structures - now returns mapping to original graph labelling - improves test coverage of edge cases - caches coset representative inverses
…emoval of
change_base()change_base()to perform pruning by automorphism