#13721: Additional tests for graph symmetries and an improvement of
is_vertex_transitive
----------------------------+-----------------------------------------------
   Reporter:  azi           |             Owner:  jason, ncohen, rlm
       Type:  enhancement   |            Status:  new               
   Priority:  major         |         Milestone:  sage-5.6          
  Component:  graph theory  |          Keywords:                    
Work issues:                |   Report Upstream:  N/A               
  Reviewers:                |           Authors:  Jernej Azarija    
  Merged in:                |      Dependencies:                    
   Stopgaps:                |  
----------------------------+-----------------------------------------------
 The following ticket aims at enhancing the is_vertex_transitive method and
 introducing new symmetry tests for graphs namely if a graph is edge-
 transitive, arc-transitive, half-transitive and semi-symmetric.

 I am still struggling to digest all sage development conventions so it
 might well be that the code is not yet in the proper format. I apologize
 for the inconvenience and hope someone can correct this.

 Following are some comments related to the patch.

 * is_vertex_transitive. This function has been changed so that it uses GAP
 to test transitivity. In addition a quick check for regularity has been
 added.  The change was tested using the following function
 {{{
 def f(n):
     for i in xrange(1,n+1):
         c = 0
         for el in graphs.nauty_geng(str(n)):
             if el.is_vertex_transitive():
                 c+=1
         print i,c
 }}}

 and the results are

 %timeit f(10)
 5 loops, best of 3: 567 s per loop

 for the old function and

 %timeit f(10)
 5 loops, best of 3: 222 s per loop

 for the improvement.


 * is_edge_transitive. This new function tests if a graph is edge-
 transitive. The main idea of the this test was suggested by Tom Boothby,
 see this sage-devel [https://groups.google.com/forum/?fromgroups=#!topic
 /sage-devel/b-wsvun9L7g post].

 * is_arc_transitive. Similar to the edge-transitive case. I believe there
 is a more efficient way to test for arc-transitivity but for now I suppose
 this one is good enough.

 * is_half_transitive. This function tests if a graph is vertex and edge-
 transitive but not arc-transitive. As a speedup it uses the fact that a
 half-transitive graph is Eulerian (see Lemma 3.2.2 in the book Algebraic
 graph theory by Godsil and Royle.)

 * is_semi_symmetric. Tests if a graph is regular, edge-transitive but not
 vertex-transitive. Again we use the fact that such graphs are always
 bipartite (Lemma 3.2.1 in Godsil & Royle) to speed up the test.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13721>
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