Our interface to nauty geng is in Python, but the difficulty is not here. - It takes time to build graphs from graph6 strings, and also to build Sandpiles (12 for each graph) - The number of biconnected graphs with 12 nodes is huge: 153.620.333.545 See https://oeis.org/A002218 Some parallelism could certainly help here, but there will be no miracle. A faster method for the tests on Sandpile is needed.
Le jeudi 21 mars 2019 19:47:37 UTC+1, Dima Pasechnik a écrit : > > > > On Thu, 21 Mar 2019 18:42 Ai Bo, <boai...@gmail.com <javascript:>> wrote: > >> I found it. Thank you. >> I also tried the command listed above. >> I am confused. Where is this "I]~~~~~~w"? >> > > This is a particular way to encode graph as a string of characters (8 bits > per character). > Read Sage docs on Graph for details. > > Is it a file? How did Graph load this? >> >> In my program, my code looks like this: >> i=12 >> for G in graphs.nauty_geng(str(i) + " -C"): >> q = True >> for j in range (0,i): >> S = Sandpile(G,j) >> if S.identity() != S.max_stable(): >> q = False >> break >> >> >> >> If I use geng to generate graphs, how should I load them in my for loop >> so I can check with Sandpile? >> > > Ideally one should create a fast interface from Python to geng, probably > using Cython, if it is not already done. > > >> On Thursday, March 21, 2019 at 8:46:56 AM UTC-7, Dima Pasechnik wrote: >>> >>> On Thu, Mar 21, 2019 at 3:03 PM Ai Bo <boai...@gmail.com> wrote: >>> >>> > is this "nauty26r7/geng" a program available? >>> >>> geng is installed in local/bin/ sub-directory of your Sage >>> installation, as a part of Sage's standard package nauty. >>> >>> > Also, as Python is slow, any part of the nautygen can be written in >>> other language, such as C/C++? >>> >>> it is written in C, so it's quite fast in this sense. >>> >>> > >>> > Thanks, >>> > Laura >>> > >>> > On Wednesday, March 20, 2019 at 11:48:38 PM UTC-7, Jori Mäntysalo >>> (TAU) wrote: >>> >> >>> >> On Thu, 21 Mar 2019, Ai Bo wrote: >>> >> >>> >> > Is there a way to "random access"? For example, access the nth >>> element >>> >> > in the "generator", instead of one by one? >>> >> >>> >> Kind of. As a most time is propably spent by creating Python data >>> >> structures for SageMath, you can use nautygen directly to generate >>> huge >>> >> number of graphs. >>> >> >>> >> As an example, it takes below 5 seconds to generate all biconnected >>> graphs >>> >> on 10 vertices, and I took third last one: >>> >> >>> >> $ nauty26r7/geng 10 -C | tail -3 | head -1 >>> >> >A /home/jm58660/lat-koe/nauty26r7/geng -Cd2D9 n=10 e=10-45 >>> >> >Z 9743542 graphs generated in 4.59 sec >>> >> I]~~~~~~w >>> >> >>> >> and now >>> >> >>> >> sage: g = Graph('I]~~~~~~w', format='graph6') >>> >> sage: g.is_biconnected() >>> >> True >>> >> >>> >> >>> >> -- >>> >> Jori Mäntysalo >>> >> >>> >> Tampereen yliopisto - Ihminen ratkaisee >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> Groups "sage-devel" group. >>> > To unsubscribe from this group and stop receiving emails from it, send >>> an email to sage-devel+...@googlegroups.com. >>> > To post to this group, send email to sage-...@googlegroups.com. >>> > Visit this group at https://groups.google.com/group/sage-devel. >>> > For more options, visit https://groups.google.com/d/optout. >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-devel" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sage-devel+...@googlegroups.com <javascript:>. >> To post to this group, send email to sage-...@googlegroups.com >> <javascript:>. >> Visit this group at https://groups.google.com/group/sage-devel. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.