#13721: Additional tests for graph symmetries and an improvement of
is_vertex_transitive
----------------------------------+-----------------------------------------
       Reporter:  azi             |         Owner:  jason, ncohen, rlm
           Type:  enhancement     |        Status:  needs_work        
       Priority:  major           |     Milestone:  sage-5.6          
      Component:  graph theory    |    Resolution:                    
       Keywords:                  |   Work issues:                    
Report Upstream:  N/A             |     Reviewers:                    
        Authors:  Jernej Azarija  |     Merged in:                    
   Dependencies:                  |      Stopgaps:                    
----------------------------------+-----------------------------------------

Comment (by ncohen):

 Hellooooooo Jernej !

 First, thank you ver much for these patches ! I love to have fun with the
 graphs' automorphism groups these days -- though I really am a beginner --
 and it is nice to see Sage improve on that side :-)

 I have many questions, though :
 * Why do you insist on returnin the group ? It feels like it is a very
 complicated object that shouldn't be built unless necessary :-)
   I do agree that the current implementation seems QUITE wasteful when
 just checking that a graph is indeed vertex_transitive. But I do not
 really get what the four lines after ``new_partition = ...`` actually do.
 Isn't it totally equivalent to check that the two partitions are equal up
 to reordering ? Something like that should do the trick, as (if I make no
 mistake) the partition can only be more refined than the one given as an
 input) : ``sorted(map(len,partition)) == sorted(map(len,new_partition))``
   And I expect that this plugged with the current code, should be faster
 than calling GAP :-)
 * You write is_edge_transitive by copying the graph twice. Wouldn't it
 work to just build the automorphism group, and then ask GAP to give you
 the order or the Orbit of *only one edge* with the permutation group acts
 on it ? I think that this can be done (and probably faster), but I am a
 beginner with GAP so perhaps you are right.
 * Not sure if this can also be done on is_arc_transitive, because we are
 not talking of sets anymore, but of ordered pairs.
 * ``return self.is_edge_transitive() and self.is_vertex_transitive() and
 not self.is_arc_transitive()`` this line makes Sage compute the
 automorphism group 3 times, but I have no idea how bad it is. Perhaps not
 worth the trouble.
 * ``is_symmetric`` I share Tom's advice on aliases `^^;`. His wording is
 actually very nice : "I love the amount of stuff we can do with graphs...
 but I hate the length of the list." `:-P`
 * There are some problems with the documentation and doctests : the way it
 is written (the "::" are not placed where they should) many doctests do
 not appear correctly on the HTML documentation.
 * The way it is written, the function is_edge_transitive is a member of
 DiGraph objects. When in doubt, the behaviour of the method should be made
 clear in the documentation. Or else we can move it to Graph.py `:-)`

 Nathann

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13721#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to