Creo que la enumeración de grupos finitos de un orden dado está definitivamente entre los experimentos reproducibles más deseados. Aquí "enumeración" significa proporcionar una lista completa y no redundante de grupos, "completa" significa que no faltan grupos en esta lista, y "no redundante" significa que los grupos de esta lista son no isomorfos entre sí. Garantizar estas propiedades es crucial para resultados que dependen de verificar todos los grupos de un orden dado, o que se refieren a un grupo en particular por su "número de catálogo".
La colección más completa de grupos de ciertos órdenes está disponible en el sistema GAP a través de varios paquetes interconectados:
En conjunto, esto proporciona algunas colecciones precalculadas de grupos para algunos órdenes, así como funciones para construir todos los grupos de un orden dado para algunas series infinitas. Ninguno de estos paquetes es en realidad solo una base de datos que almacena ciertos grupos, ya que incluso los paquetes que predominantemente proporcionan bases de datos también implementan algoritmos para construcciones genéricas de grupos de orden $p^n$ para algunos $p$ y $n$, y para grupos de órdenes libres de cuadrados. Estos paquetes están estrechamente interconectados: por ejemplo, mientras que GrpConst se utilizó para construir algunos grupos de la biblioteca SmallGroups, también utiliza la biblioteca SmallGroups para enumerar grupos de algunos otros órdenes.
Es muy importante tener resultados tan cruzados y reproducibles como sea posible: incluso si la parte de base de datos de las bibliotecas permanece sin cambios, eso no garantiza que cualquier otro cambio en GAP y/o estos paquetes no vaya a romper el código. Por supuesto, se han realizado muchas comprobaciones cruzadas, y esta funcionalidad se considera muy confiable:
-
Los números de grupo en la biblioteca SmallGroups se cruzan en gran medida, se calculan utilizando enfoques diferentes y también se comparan con los resultados teóricos, cuando están disponibles (ver [Hans Ulrich Besche, Bettina Eick y Eamonn O'Brien. UN PROYECTO DEL MILENIO: CONSTRUCCIÓN DE GRUPOS PEQUEÑOS. Int. J. Álgebra Computacional. 12, 623 (2002), http://dx.doi.org/10.1142/S0218196702001115], en particular 4.1. Confiabilidad de los datos).
-
El paquete Cubefree se comprobó con la Biblioteca SmallGroups y el paquete IRREDSOL como se describe en http://www.gap-system.org/Manuals/pkg/cubefree/htm/CHAP002.htm#SECT005.
-
El conjunto de pruebas estándar de GAP, que se ejecuta todas las noches y es parte del flujo de trabajo de preparación de la versión, incluye pruebas de ConstructAllGroups
del paquete GrpConst.
Pero las herramientas modernas nos permiten hacer aún más, y en particular mejorar la situación para órdenes donde no están disponibles colecciones precalculadas de todos los grupos. Recientemente he iniciado un "Proyecto de Reproducibilidad de Números de Grupo" (que fue inspirado por algunas preguntas bajo la etiqueta 'groups-enumeration' tag aquí - ver en particular esta). Este proyecto utiliza un enfoque de colaboración para reunir una base de datos de números de tipos de isomorfismos de grupos finitos. En otras palabras, completa la tabla de valores de la función $gnu(n)$, que devuelve el número de tipos de isomorfismos de grupos finitos de orden n (por lo tanto, "gnu" significa el "NÚmero de Grupo"). Reúne datos de varias fuentes, incluidos valores calculados en tiempo de ejecución utilizando los paquetes mencionados anteriormente y números publicados por el grupo AG Álgebra y Matemáticas Discretas de la TU Braunschweig en http://www.icm.tu-bs.de/ag_algebra/software/small/number.html. Además, acepta informes sobre nuevos valores, no disponibles en ninguna de las fuentes mencionadas anteriormente y sobre la recomputación de valores previamente conocidos. Los datos se agregan a la base de datos solo después de que sean replicados por el administrador. El proyecto también utiliza dos otras designaciones para las presentaciones: "reproducido", cuando se obtuvo el mismo resultado utilizando otra implementación, y "de acuerdo con la teoría", cuando corresponde al resultado teóricamente demostrado.
En la versión actual de la base de datos, el valor de $gnu(n)$ está disponible desde el nivel del sistema de álgebra computacional (desde GAP local o remoto, y desde cualquier otro cliente SCSCP de forma remota). Usando el historial de control de versiones, uno también podría acceder a información de procedencia (tiempo de ejecución, versiones del software, etc.). Esto podría ser útil para los investigadores interesados en producir la lista de todos los grupos localmente, ya que pueden verificar si alguien más ya ha intentado hacer esto y cuánto tiempo esperaron. Desde el inicio del proyecto, casi se han enviado, replicado y agregado a la base de datos casi 200 entradas nuevas, lo que proporciona ahora la tabla de valores conocidos más completa disponible de $gnu(n)$.
Se pueden encontrar más detalles en el archivo README.md en https://github.com/olexandr-konovalov/gnu. Vea también mi presentación "El Álgebra Computacional se Encuentra con la Ciencia Abierta: Proyecto de Reproducibilidad de Números de Grupo".