#17464: Computing the automorphism group of a graph
-------------------------+-------------------------------------------------
       Reporter:  azi    |        Owner:
           Type:         |       Status:  needs_work
  enhancement            |    Milestone:  sage-6.5
       Priority:  major  |   Resolution:
      Component:  graph  |    Merged in:
  theory                 |    Reviewers:
       Keywords:         |  Work issues:
        Authors:         |       Commit:
Report Upstream:  N/A    |  3c37cb81e7bfbc58f953035054dd4c30d0750880
         Branch:         |     Stopgaps:
  public/bliss           |
   Dependencies:         |
  #17552                 |
-------------------------+-------------------------------------------------

Comment (by azi):

 Replying to [comment:24 ncohen]:
 > Yo !
 >
 > > Before we change Graph.canonical_form,is_isomorphic,automorphism_group
 I suggest that we address >the FIXME stuff in the bliss.pyx code.
 >
 > I am already writing some code at the moment and when I will be done I
 must go back to my blackboard. Is there is some specific question that you
 have for this patch please ask it, but if I begin to look at bliss' API,
 understand your code and answer the questions that you wrote inside it
 will probably take me as much time as writing the interface from scratch
 `:-P`
 Okay.

 Sooo

 1. Bliss returns a list of automorphisms as bijections. There is a
 function inside the code that then in one pass creates the respective
 cycle notation for the permutation while also applying the labelling of
 the graph. We have Permutation.to_cycle() that does the job but only on
 integer valued bijections. As is I'd like to leave this function in
 bliss.pyx and then perhaps once labelled permutations are supported by
 to_cycle(), revert to that. The main reason being that I am using Sage on
 graphs with 700k vertices and its a pain to have to iterate over and over
 for sake of labels.

 2. There is a very erratic bug  using bliss on digraphs.

 {{{
     sage: D = digraphs.Kautz(10,2,1)
     sage: from sage.graphs.bliss import *
     sage: D.automorphism_group().is_isomorphic(automorphism_group(D))
     True
     sage: D.automorphism_group().is_isomorphic(automorphism_group(D))
     Bliss fatal error: Internal error - unknown splitting heuristics
     Aborting!
 }}}

 I have no clue why this is happening. Do you have any intuition as to
 where to look for the issue? The code for Graph/Digraph that raises this
 exception is identical yet this only happens sporadically with digraphs.

 As far as technical questions go, this are the main things I need some
 input about.

 Best,

 Jernej

 > > Another "issue" that is not in the code is what are we to do with the
 heuristics. There are a few heuristics for bliss and we can make them as
 an available choice for Sage or just go ahead with the default one.
 >
 > The current branch contains already many commits, and there are many
 things to pay attention to (we really don't want this code to return wrong
 results because of a typo) so it will probably be best to keep this branch
 to a minimum.
 >
 > That does not mean that anything will have to be delayed: this branch
 will be sooner in `positive_review`, and then you can expose those
 features in another ticket.
 >
 > Good luck ! `:-P`
 >
 > Nathann

--
Ticket URL: <http://trac.sagemath.org/ticket/17464#comment:25>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to