5 votos

Clases de conjugación de PSL(6,7)

Necesito los tamaños de las clases de conjugación del grupo lineal especial proyectivo PSL(6,7). No he podido encontrarlo usando GAP. ¿Podría alguien encontrarlo?

4voto

ahulpke Puntos 2612

Existe una función GAP NrConjugacyClassesPSL que devuelve el número de clases en poco tiempo. Para los representantes de las clases reales, no conozco una función especial para PSL, pero hay una (basada en polinomios y formas normales) para SL. Así que el mejor enfoque es probablemente para piggy-back en este. Adaptando el código, lo más probable es que se puedan escribir los representantes de las clases directamente para la imagen proyectiva, el siguiente enfoque es una versión pobre que simplemente toma las clases de SL, mapea los representantes en la imagen proyectiva y comprueba la conjugación (con alguna contabilidad mínima por los tamaños de las clases y las preimágenes y la posible fusión de las clases, utilizando la teoría de las formas normales). Si $SL\cong PSL$ Por supuesto, no es necesario que se produzca ninguna fusión. Esto se implementa mediante la siguiente función (versión 2 muy mejorada):

ClassesProjectiveImage:=function(G)
local dom,act,PG,cl,c,i,r,s,sel,p,z,a,x,prop,fus,f,reps,repi,repo,zel,fcl,
      real,goal,good,e;

  # elementary divisors for GL-class identification
  x:=X(DefaultFieldOfMatrixGroup(G),1);
  prop:=y->Set(Filtered(ElementaryDivisorsMat(y-x*y^0),
              y->DegreeOfUnivariateLaurentPolynomial(y)>0));

  # compute real fusion
  real:=function(set)
  local new,i,a,b;
    new:=[];
    for i in set do
      if i in set then # might have been removed by now
        b:=ConjugacyClass(PG,repi[i]);
        a:=Filtered(set,x->x<>i and repi[x] in b);
        a:=Union(a,[i]);
        fcl[a[1]]:=b;
        Add(new,a);
        set:=Difference(set,a);
      fi;
    od;
    return new;
  end;

  dom:=NormedVectors(DefaultFieldOfMatrixGroup(G)^Length(One(G)));
  act:=ActionHomomorphism(G,dom,OnLines,"surjective");
  PG:=Image(act); # this will be PSL etc.
  StabChainMutable(PG);; # needed anyhow and will speed up images under act
  z:=Size(Centre(G));
  zel:=Filtered(Elements(Centre(G)),x->Order(x)>1);
  cl:=ConjugacyClasses(G);
  if IsNaturalGL(G) then
    goal:=NrConjugacyClassesPGL(Length(One(G)),
          Size(DefaultFieldOfMatrixGroup(G)));
  elif IsNaturalSL(G) then
    goal:=NrConjugacyClassesPSL(Length(One(G)),
          Size(DefaultFieldOfMatrixGroup(G)));
  else
    goal:=Length(cl); # this is too loose, but upper limit
  fi;

  s:=[]; # count how much of pre-images we still need to account for
  sel:=[];
  reps:=List(cl,Representative);
  repi:=List(reps,x->ImagesRepresentative(act,x));
  repo:=List(repi,Order);
  e:=List(reps,prop);

  sel:=[1..Length(cl)];
  fcl:=[]; # cached factor group classes
  if z=1 then
    fus:=List(sel,x->[x]);
  else
    # fuse maximally under centre multiplication
    fus:=[];
    while Length(sel)>0 do
      a:=sel[1]; sel:=sel{[2..Length(sel)]};
      p:=Union(e{[a]},List(zel,x->prop(reps[a]*x)));
      f:=Filtered(sel,x->e[x] in p and repo[a]=repo[x]);
      sel:=Difference(sel,f);
      AddSet(f,a);
      Add(fus,f);
    od;

    # separate those that clearly cannot fuse fully
    good:=[];
    for i in Filtered(fus,x->Length(x)>z or z mod Length(x)<>0) do
      a:=real(i);
      fus:=Union(Filtered(fus,x->x<>i),a);
      good:=Union(good,a); # record that we properly tested
    od;

    # now go through and test properly and fuse, unless we reached the
    # proper class number
    for i in fus do
      if not i in good and Length(fus)<goal then
        # fusion could split up -- test
        a:=real(i);
        fus:=Union(Filtered(fus,x->x<>i),a);
      fi;
    od;
  fi;

  # now fusion is good -- form classes
  c:=[];
  for i in fus do
    if IsBound(fcl[i[1]]) then
      a:=fcl[i[1]];
    else
      a:=ConjugacyClass(PG,repi[i[1]]);
    fi;
    Add(c,a);
    f:=Sum(cl{i},Size)/z;
    SetSize(a,f);
  od;

  SetConjugacyClasses(PG,c);
  return [act,PG,c];
end;

Para utilizarlo, hay que llamar a ClassesProjectiveImage(SL(dim,field));; y se obtiene como resultado una lista de longitud 3, [action homomorphism SL->PSL, PSL, class list] .

Encuentra las 3324 clases de PSL(6,7) y sus tamaños (pero sólo eso, no los generadores reales de los centralizadores) en unos 30 minutos en mi ordenador.

2voto

El tiempo de ejecución del cálculo directo de las clases de conjugación de PSL(n,7) utilizando ConjugacyClasses parece depender de $n$ de forma exponencial. Aquí hay algunos valores iniciales y tiempos de ejecución:

\begin {Ecuación} \begin {array}{l|lllll} n & |G| & Nr.classes & Runtime \\ \hline 2 & 168 & 6 & \lt 0,01s \\ 3 & 1876896 & 22 & 0,5s \\ 4 & 2317591180800 & 217 & 37s \\ 5 & 187035198320488089600 & 2792 & 644m \\ 6 & 61637759336805268655956377600 & 3324 & ? \end {array} \end {Ecuación}

Para $n=6$ si fuera, por ejemplo $1000$ veces más largo que $n=5$ En este caso, ya se tardaría más de un año, por lo que habría que emplear un enfoque mejor: véase la respuesta de Alexander, que tarda sólo media hora.

Observación: Tenga en cuenta que para los grupos cuya tabla de caracteres está disponible en la biblioteca de tablas de caracteres de GAP, existe otra forma de obtener dicha información sin necesidad de realizar cálculos: consulte mi respuesta a la pregunta "el número de todos los órdenes de elementos en HS (grupo Higman-Sims) con GAP" .

Observación 2: Para los grupos clásicos, existen funciones NrConjugacyClassesName donde Name es uno de $GU$ , $SL$ , $SU$ , $PGL$ , $PGU$ , $PSL$ , $PSU$ etc. utilizando las fórmulas para el número de clases de conjugación de Macdonald, I. G., Numbers of conjugacy classes in some finite classical groups, Bull. Austral. Math. Soc., 23 (1) (1981), 23-48 - ver Clases de conjugación en grupos clásicos del manual GAP.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X