Supongamos que $A_{1},\ldots, A_{k}$ son matrices de #% de #% % racional que generan un grupo finito. Es un hecho bien conocido que hay un % de la matriz $n\times n$tal que $T$ matrices integer (y generar así un subgrupo isomorfo de $T^{-1}A_{1}T,\ldots, T^{-1}A_{k}T$. ¿Existe un algoritmo que toma el % dado matrices $\operatorname{GL}_{n}(\mathbb{Z})$y salidas de una matriz conveniente $A_{i}$?
Respuesta
¿Demasiados anuncios?Sí, he programado un algoritmo de mí mismo en un sistema de álgebra computacional, y por lo general funciona bien!
Deje $b_1,b_2,\ldots,b_n$ ser la base natural del espacio de vectores fila en la que el grupo $G$ hechos por la multiplicación por la derecha. (Por supuesto, usted puede hacer la multiplicación por la izquierda por los vectores columna si usted prefiere!) Luego de que el aditivo grupo abelian $M$ atravesado por $\{b_ig : g \in G \}$ es invariante bajo $G$.
Tan sólo tenemos que buscar una base de $M$ libre de abelian grupo, o, equivalentemente, como un libre ${\mathbb Z}$-módulo de rango $n$, hacen que en las filas de una matriz de $T$, y, a continuación, $TgT^{-1}$ tienen entradas en ${\mathbb Z}$ todos los $g \in G$.
Para encontrar una base de $M$, probablemente es más fácil si primero se multiplica la generación de vectores $b_ig$ por el mínimo común denominador $d$ de sus entradas, para llevarlos a ${\mathbb Z}^n$ (de modo que usted realmente va a ser la búsqueda de forma libre y gratuita de $dM$, pero eso está bien). Luego de hacer todos estos vectores en las filas de una matriz, y la puso en Forma Normal de Hermite. (Hay buenas implementaciones de HNF). El resto distinto de cero filas a dar a su matriz $T$.
En la práctica, usted desea utilizar este método en grupos muy grandes, así que usted realmente no desea calcular el $b_ig$ todos los $g \in G$. Generalmente funciona bien si usted acaba de hacer esto para $g$ en un pequeño subconjunto de $G$. En mi implementaciones primero trato con $g$ que se extiende a través de todas las palabras de longitud en la mayoría de los dos en los generadores $A_i$. Se puede saber si se ha trabajado con sólo comprobar si todas las matrices de $TA_iT^{-1}$ han entero entradas. Esto generalmente funciona, pero si no puedes ir a palabras de longitud 3, o se trate de una muestra aleatoria de 20 palabras o algo por el estilo!