GAP ( Grupos , Algoritmos y Programación ) es un sistema de álgebra computacional de código abierto para álgebra computacional discreta con especial énfasis en la teoría de grupos computacional .
GAP se desarrolló en Lehrstuhl D für Mathematik (LDFM), Rheinisch-Westfälische Technische Hochschule Aachen , Alemania, de 1986 a 1997. Después de la jubilación de Joachim Neubüser de la presidencia de LDFM, el desarrollo y mantenimiento de GAP fue coordinado por la Escuela de Matemáticas. y Ciencias Computacionales en la Universidad de St Andrews , Escocia . [2] En el verano de 2005, la coordinación se transfirió a una asociación igualitaria de cuatro 'Centros GAP', ubicados en la Universidad de St Andrews, RWTH Aachen, Technische Universität Braunschweig y la Universidad Estatal de Colorado en Fort Collins ; en abril de 2020 se añadió un quinto centro GAP ubicado en la TU Kaiserslautern . [3]
GAP contiene un lenguaje de programación procedimental y una gran colección de funciones para crear y manipular diversos objetos matemáticos. Admite números enteros y racionales de tamaño arbitrario, si la memoria lo permite. Los grupos finitos se pueden definir como grupos de permutaciones y también es posible definir grupos presentados finitamente especificando generadores y relaciones. Se incluyen varias bases de datos de importantes grupos finitos. GAP también permite trabajar con matrices y con campos finitos (que se representan mediante polinomios de Conway ). También se admiten anillos , módulos y álgebras de Lie .
GAP y sus fuentes, incluidos los paquetes (conjuntos de programas aportados por el usuario), la biblioteca de datos (incluida una lista de grupos pequeños ) y el manual, se distribuyen gratuitamente, sujetos a condiciones de " copyleft ". GAP se ejecuta en cualquier sistema Unix , Windows y Macintosh . La distribución estándar requiere unos 300 MB (unos 400 MB si están cargados todos los paquetes).
Los paquetes aportados por el usuario son una característica importante del sistema y añaden una gran cantidad de funcionalidades. GAP ofrece a los autores de paquetes la oportunidad de enviar estos paquetes para un proceso de revisión por pares , con la esperanza de mejorar la calidad de los paquetes finales y brindar un reconocimiento similar a una publicación académica para sus autores. A marzo de 2021 [actualizar], existen 151 paquetes distribuidos con GAP, de los cuales aproximadamente 71 han pasado por este proceso.
Hay una interfaz disponible para usar el sistema de álgebra informática SINGULAR desde GAP. GAP también está incluido en el sistema de software matemático SageMath .
espacio> G := Grupo pequeño ( 8 , 1 ) ; # Establezca G como un grupo de orden 8. <grupo pc de tamaño 8 con 3 generadores> brecha> i := IsomorphismPermGroup ( G ) ; # Encuentra un isomorfismo de G a un grupo de permutaciones. <isomorfismo de acción> brecha> Imagen ( i , G ) ; # Generadores para la imagen de G bajo i, escritos como productos de permutaciones cíclicas disjuntas. Grupo([ (1,5,3,7,2,6,4,8), (1,3,2,4)(5,7,6,8), (1,2)(3,4) (5,6)(7,8) ]) brecha> Elementos ( Imagen ( i , G )) ; # Todos los elementos de im G. [ (), (1,2)(3,4)(5,6)(7,8), (1,3,2,4)(5,7,6,8 ), (1,4,2,3)(5,8,6,7), (1,5,3,7,2,6,4,8), (1,6,3,8,2, 5,4,7), (1,7,4,5,2,8,3,6), (1,8,4,6,2,7,3,5) ]