| 1 | initial version |
Yes they are different, the documentation of canonical_label states that it takes an algorithm parameter, and the default is to use bliss if it is available. There is no nauty option because SageMath currently has only a very limited integration of nauty, only using some of its executables to generate graphs.
Relevant:
Here is a workaround, using the labelg executable (assuming SageMath has nauty installed):
def nauty_canonical_label(g):
from sage.env import SAGE_NAUTY_BINS_PREFIX
import subprocess
labelg = subprocess.run([SAGE_NAUTY_BINS_PREFIX + 'labelg', '-q'], input=g.graph6_string(), encoding='ascii', capture_output=True)
return labelg.stdout.strip()
Example:
sage: nauty_canonical_label(Graph('E{EG'))
'E@ro'
| 2 | No.2 Revision |
Yes they are different, the documentation of canonical_label states that it takes an algorithm parameter, and the default is to use bliss if it is available. There is no nauty option because SageMath currently has only a very limited integration of nauty, only using some of its executables to generate graphs.
Relevant:
Here is a workaround, using the labelg executable (assuming SageMath has nauty installed):
def nauty_canonical_label(g):
from sage.env import SAGE_NAUTY_BINS_PREFIX
import subprocess
labelg = subprocess.run([SAGE_NAUTY_BINS_PREFIX + 'labelg', '-q'], input=g.graph6_string(), encoding='ascii', capture_output=True)
return labelg.stdout.strip()
Example:
sage: nauty_canonical_label(Graph('E{EG'))
'E@ro'
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.