Estoy tratando de escribir algunas de Magma código que, dado un grupo de $G$, devuelve una lista de pares de $(x,y)$ $x,y\in G$ tal que $[x,y]\neq 1$ y tales que cada par $(z,w)$ en el grupo con $[z,w]\neq 1$ es conjugado (sin tomar en cuenta el orden) a algunos de los $(x,y)$ salida por el algoritmo. Me di cuenta cuando empecé que no tengo idea de que el coste computacional de los diversos pasos en el proceso. Me encantaría aprender mucho acerca de esto, pero para mantenerse enfocado, voy a pedir un restringido pregunta:
Cuál de los siguientes tres algoritmo de diseños de manera más eficiente de resolver el problema anterior? Y ¿cómo será la respuesta a este ser afectados por el orden del grupo? Por el número de clases conjugacy?
Algoritmo de 1a
- Calcular la acción por la conjugación de la $G$ en el conjunto de $Sym^2 G$ de pares no ordenados de elementos de $G$.
- Restringir la atención a las parejas que no conmutan.
- Partición de $Sym^2 G$ en órbitas y seleccione un representante de cada órbita. Volver a estas selecciones.
Algoritmo 1b
Mismo como el algoritmo 1, excepto que permiten la redundancia mediante el trabajo con los pares ordenados $G\times G$ en lugar de $Sym^2 G$.
Algoritmo 2
- Descomponer $G$ en las clases conjugacy.
- Ignorando el singleton clases, seleccione un representante de $x$ de cada clase.
- Para cada representante de $x$, calcular el centralizador $H=Z_G(x)$.
- Calcular la acción de la $H$ por conjugación en el complemento $G\setminus H$.
- De cada órbita de esta acción, seleccione una $y$, y la salida de $(x,y)$.
Pensamientos
Matemática estética punto de vista, por ejemplo si yo estuviera escribiendo una prueba, el algoritmo de 1a sería el camino a seguir, claramente. Otros algoritmos se producen redundante listas que contengan $(x,y)$ $(y',x')$ como salidas, donde $x,x'$ $y,y'$ son simultáneamente conjugada (a menos que el grupo tiene una propiedad muy especial). Más fundamentalmente, el conjunto de conjugacy órbitas de pares no ordenados es en realidad lo que estoy tratando de conseguir un asimiento de, por lo que el algoritmo de 1a apunta directamente por él, mientras que los otros dos desde el lado.
Pero OTOH, si yo fuera a tratar de generar esta lista a mano, yo sería absolutamente escoger el algoritmo 2. Otros algoritmos de fuerza que me sostenga el conjunto de pares (ordenadas o no) todos a la vez, que es cuadrática en el orden del grupo, mientras que el algoritmo 2 nunca me obliga a contemplar un conjunto más grande que el propio grupo en cualquier momento.
¿Cómo sería un equipo de tarifa con estas preguntas? Es la computación órbitas de una acción en un gran conjunto mucho más difícil que en un pequeño conjunto? Cómo acerca de la computación en todos los centralizadores? La necesidad en el algoritmo 2 para la partición de $G$ en las órbitas de los diferentes grupos de causar más dificultades? ¿Cuáles son los temas relevantes?
Gracias de antemano.