Сохор Ирина Леонидовна СИСТЕМА КОМПЬЮТЕРНОЙ АЛГЕБРЫ GAP Гомель, УО «Гомельский государственный университет имени Ф. Скорины»
GAP (Groups, Algorithms, Programming - Группы, Алгоритмы, Программирование) - свободно распространяемая на условиях лицензии GPL (General Public License - универсальная общественная лицензия) открытая, кроссплатформенная система компьютерной алгебры для вычислительной дискретной алгебры. Последняя версия системы - GAP 4.7.6 (15 ноября 2014) [1]. Разработка данной системы была начата в 1986 г. в г. Аахен (Германия), в 1997 г. координационный центр разработки и технической поддержки пользователей переместился в Университет города Сент-Эндрюс (Шотландия). В настоящее время GAP - это совместный научный проект, объединяющий специалистов в области алгебры, теории чисел, математической логики, информатики и др. наук из различных стран мира. Система GAP поставляется вместе с исходными текстами, которые написаны на двух языках: ядро системы написано на языке С, а библиотека функций - на специальном паскалеподобном языке (язык GAP), который в отличии от Pascal является языком объектно-ориентированным программирования. Важной особенностью GAP является ее расширяемость. Функционал системы может быть расширен как с помощью внешних специализированных пакетов и библиотек, так и посредством самостоятельного описания недостающих компонент на языке GAP. Интересным является тот факт [2], что разработчики программ для данной сисетемы могут оформить свои разработки в виде пакета для GAP и представить их на рассмотрение в Совет GAP. После прохождения процедуры рецензирования и одобрения советом GAP такой пакет включается в приложение к дистрибутиву GAP и распространяется вместе с ним. Процедура рецензирования позволяет приравнивать принятые Советом GAP пакеты к научной публикации, и ссылаться на них наравне с другими источниками. Помимо различных пакетов, GAP включает в себя ядро системы, обеспечивающее работу с системой в программном и интерактивном режиме, библиотеки функций и данных и обширную документацию, доступную в различных форматах (txt, pdf, html). Как уже отмечалось, GAP является кроссплатформенной системой, тем не менее максимальная эффективность достигается при ее применении в операционной системе Unix/Linux. Так, стандартный интерфейс GAP реализован посредством командной строки, но существует графический пользовательский интерфейс XGAP, который работает исключительно в среде Unix/Linux и кроме всего прочего позволяет строить графические иллюстрации связей групповых структур. Система GAP прежде всего была задумана как инструмент комбинаторной теории групп - раздела алгебры, изучающего группы, заданные порождающими элементами и определяющими соотношениями. Однако в процессе разработки функционал системы был значительно расширен. Сегодня GAP работает с конечными полями, многочленами от многих переменных, рациональными функциями, векторами и матрицами, доступны разнообразные комбинаторные функции, элементарные теоретико-числовые функции, функции для работы с множествами и списками. В тоже время приоритетной областью применения системы GAP по-прежнему остается абстрактная алгебра. Остановимся на этом более подробно. В системе GAP группы могут быть заданы в различной форме: как группы подстановок, матричные группы, группы, заданные порождающими элементами и определяющими соотношениями. Кроме того, построив групповую алгебру, можно вычислить ее мультипликативную группу и при необходимости задать ее подгруппу, порожденную конкретными обратимыми элементами групповой алгебры. Ряд групп может быть задан непосредственным обращением к специализированным библиотекам GAP: библиотека всех групп порядка не более 2000 (SmallGroups), библиотека примитивных групп (PrimitiveGroups), библиотека простых групп (SimpleGroups) и т.д. При этом каждая группа в библиотеке имеет свой уникальный номер среди групп своего порядка и в любой момент может быть по нему идентифицирована. Весьма разнообразен и функциональный аппарат для работы с группами. В GAP включены функции определения порядка группы, нахождения всех подгрупп группы, максимальных подгрупп, коммутанта группы, вычисления различных групповых инвариантов. Здесь стоит отметить, что синтаксис функций максимально приближен к соответствующим математическим идентификаторам. Таким образом, система компьютерной алгебры GAP является эффективным средством тестирования научных гипотез в области теории групп.
1. GAP // GAP - Groups, Algorithms, Programming - a System for Computational Discrete Algebra [Электронный ресурс]. – 2015. – Режим доступа: http://www.gap-system.org. – Дата доступа: 02.02.2015. 2. Коновалов, А.Б. Cистема компьютерной алгебры GAP 4.7 / А.Б. Коновалов // Brief GAP Guidebook in Russian [Электронный ресурс]. – 2015. – Режим доступа: http://www.gap-system.org/ukrgap/gapbook/chap0.html. – Дата доступа: 02.02.2015.
|