Skip to content

clay-matt/bsscl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#############################
 
Stable Commutator Length in BS(m,l)

Description: Sage/Python scripts to compute lower bound on the stable
commutator length in the Baumslag-Solitar group BS(m,l):

BS(m,l) = < a,t | t a^m T = a^l >

When the element is alternating, then the lower bound is scl.

#############################

Two ways to compute scl(g):

** Command-line **

usage: bsscl [-h] [-v] [-e name] g m l

Compute lower bound for scl(g) in BS(m,l)

positional arguments:
  g                     string in a,A,t,T representing the element
  m                     non-zero integer
  l                     non-zero integer

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         increase output verbosity
  -e name, --element_name name
                        element name used for creating files

Verboisty Levels:
-v: shows current process, where files are saved and linear program
    solution
-vv: additionally opens turn graph file and shows variables and linear
     program if number of variables is less than 100

Example:

$ ./bsscl ataT 2 5 -vv
m,l = 2,5
ataT = taTa
ataT is alternating
Extremal Surface: False
Turn Degrees: [1, 1]
Turn Types: [2, 1]
Plotting turn graph...
Turn graph saved to /Users/mclay/Programs/bsscl/ataT_2_5.png
Setting up the linear programming problem...
There are 3 variables.
x_0: {(0, 0): 5}
x_1: {(1, 1): 2}
x_2: {(1, 1): 4}
Variables saved to /Users/mclay/Programs/bsscl/x_ataT_2_5.sobj
Maximization:
  x_0 + x_1 + x_2
Constraints:
  Dual Edge (0, 0): 0.0 <= 5.0 x_0 - 2.0 x_1 - 4.0 x_2 <= 0.0
  Normalize n(S) = 1: 1.0 <= 5.0 x_0 <= 1.0
Variables:
  x_0 is a continuous variable (min=0.0, max=+oo)
  x_1 is a continuous variable (min=0.0, max=+oo)
  x_2 is a continuous variable (min=0.0, max=+oo)
Linear program saved to /Users/mclay/Programs/bsscl/ataT_2_5.sobj
There are 1 optimal vertices.
Optimal vertices saved to /Users/mclay/Programs/bsscl/v_ataT_2_5.sobj
Linear Programming Solution = 0.7
0.2 : {(0, 0): 5}
0.5 : {(1, 1): 2}
scl(ataT) = 0.15

********

Note: the output gets very big very quickly, consider redirecting output to a file.

** In a Sage session **

Enter Sage and load the files utils.py and scl.py via: 

%attach "utils.py"
%attach "scl.py"

To compute lower bound on scl(g) use scl(g,m,l,verbose,g_name).

Examples:

sage: scl('ataT',2,5,verbose = 1)
m,l = 2,5
ataT = taTa
ataT is alternating
Extremal Surface: False
Turn Degrees: [1, 1]
Turn Types: [2, 1]
Plotting turn graph...
Turn graph saved to /Users/mclay/Programs/bsscl/ataT_2_5.png
Setting up the linear programming problem...
There are 3 variables.
Variables saved to /Users/mclay/Programs/bsscl/x_ataT_2_5.sobj
Linear program saved to /Users/mclay/Programs/bsscl/ataT_2_5.sobj
There are 1 optimal vertices.
Optimal vertices saved to /Users/mclay/Programs/bsscl/v_ataT_2_5.sobj
Linear Programming Solution = 0.7
0.2 : {(0, 0): 5}
0.5 : {(1, 1): 2}
scl(ataT) = 0.15
0.15000000000000002

sage: scl('ataT',2,5)
0.15000000000000002

#############################

Report bugs, issues and problems to:
mattclay@uark.edu

About

Stable Commutator Length for Baumslag-Solitar Groups

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages