On Tue, Jan 31, 2023 at 2:38 AM Shiyue Li <[email protected]> wrote:
>
> Hi all,
>
> I am hoping to generate a list of all graph isomorphism classes of a given
> size. The current code that I have first generate all the graphs on 2n, and
> then take all the isomorphism class representatives of size n. But the first
> step of generating all graphs on 2n vertices can take a really long time and
> huge amount of memory (run 10 days on my university's research computing
> cloud) and crashes.
>
> See the following for my code:
>
> def iso_graphs(n):
> '''returns all isomorphism classes of simple graphs on n edges on 2*n
> vertices'''
> L = list(graphs(2 * n, loops=False, size=n)) print("Do we ever reach this
> point?")
> L = [G.canonical_label().copy(immutable=True) for G in L if G.size() == n]
> return L
>
> I wonder if what is a correct and efficient way of doing it.
We have a function to do this job very efficently:
graphs.nauty_geng()
it generates non-isomorphic graphs. E.g. list(graphs.nauty_geng("3
-c")) gives you the complete list
(of lengh 2) of all non-isomrphic connected graphs on 3 vertices
(remove "-c" there if you want all graphs,
not only connected)
HTH
Dima
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sage-support/0acb6537-3fe9-42dc-ab1b-c5c79dd5fb5cn%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/CAAWYfq0EG%2BGhzJu%3D6iw%3DHmxe%2Bfwbd3%2BAEVdd%2BWtPnq_DO_8Bsg%40mail.gmail.com.