Система компьютернойалгебри GAP

Коновалов О.Б.

Система комп'ютерної алгебри
GAP
(
http://www-gap.dcs.st-and.ac.uk/~gap
), Назва якої розшифровується як “Groups, Algorithms and
Programming”
, Була задумана близько 15 років тому як інструмент комбінаторної
теорії груп – розділу алгебри, що вивчає групи, задані породжують
елементами і визначальними співвідношеннями. Однак з виходом кожної нової
версії програми сфера її застосування охоплювала все нові і нові розділи
алгебри, і зараз це досить масштабна за своїм охопленням система. Кожна
з систем такого роду, будь то MathCAD, Maple, Mathematica або Statistica,
має свої переваги для представників тієї чи іншої області математики,
і GAP найбільш привабливий для досліджень в області абстрактної алгебри.

Розробка системи була почата в
1986 р. в г.Аахен, Німеччина ( http://www.math.rwth-aachen.de/LDFM/
). У 1997 р. центр, який здійснює координацію розробки та технічну
підтримку користувачів, перемістився в Університет м. Сент-Ендрюс (Шотландія).
Поточна версія системи – GAP 4.2 – вийшла у світ у лютому 2000 р.

Спочатку система GAP розроблялася
під Unix, а потім була портована для роботи в інших операційних системах.
В даний час вона працює під різноманітними версіями Unix / Linux,
а також під Windows 9x, Windows NT, MacOS. Зауважимо, що продуктивність
системи під Unix / Linux зростає на 20-40% в порівнянні з Windows.

GAP розповсюджується вільно,
відкритої і розширюваною системою. Вона поширюється безкоштовно (виняток
можуть становити тільки накладні витрати), і користувачі можуть вільно
передавати її іншим користувачам (з деякими обмеженнями, що стосуються
модифікації системи або її частин). Далі, система поставляється разом
з вихідними текстами, які написані на двох мовах: ядро системи написано
на Сі, а бібліотека функцій – на спеціальному мовою, також званому GAP,
який нагадує Pascal. Користувачі можуть створювати свої власні
програми на цій мові, і тут вихідні тексти є незамінним наочним
посібником. Нарешті, розробники програм для GAP можуть оформити свої розробки
в стандарті share package і представити їх на розгляд до ради GAP.
Після проходження процедури рецензування та схвалення радою GAP ця
розробка включається в додаток до дистрибутиву GAP для розповсюдження
разом з ним, і прирівнюється до наукової публікації.

Крім уже згаданих share packages,
система складається з наступних чотирьох основних компонентів:

  • ядра системи, що забезпечує інтерпретацію
    мови GAP, роботу з системою в програмному та інтерактивному режимі;
  • бібліотеки функцій, в якій реалізовані
    різноманітні алгебраїчні алгоритми (більше 4000 призначених для користувача функцій,
    більше 140000 рядків програм на мові GAP);
  • бібліотеки даних, включаючи, наприклад,
    бібліотеку всіх груп порядку не більше 2000 (за винятком 49487365422
    груп порядку 1024), бібліотеку примітивних груп підстановок, таблиці
    характерів кінцевих груп і т.д., що в сукупності становить ефективне
    засіб для висунення і тестування наукових гіпотез;
  • великої (близько півтора тисяч сторінок)
    документації, доступної в різноманітних форматах (tex, ps, pdf, htm), а
    також через Інтернет.


Короткий огляд можливостей
GAP

для роботи з різними видами
алгебраїчних об'єктів

Перш за все, це можливість виробляти
обчислення з гігантськими цілими і раціональними числами, допустимі значення
яких обмежені тільки об'ємом доступної пам'яті. Далі, система працює
з циклотомічеськімі полями, кінцевими полями, р-Адічеськімі числами,
многочленами від багатьох змінних, раціональними функціями, векторами і
матрицями. Користувачу доступні різні комбінаторні функції, елементарні
теоретико-числові функції, різноманітні функції для роботи з множинами
і списками.

Групи можуть бути задані в різній
формі, наприклад, як групи підстановок, матричні групи, групи, задані
породжують елементами і визначальними співвідношеннями. Більш того, побудувавши,
наприклад, групову алгебру, можна обчислити її мультипликативную групу,
і навіть задати її підгрупу, породжену конкретними оборотними елементами
груповий алгебри. Ряд груп може бути заданий безпосереднім зверненням
до бібліотечних функцій (наприклад, симетрична і знакозмінна групи,
група діедра, циклічна група та ін.)

Функції для роботи з групами включають
визначення порядку групи, обчислення класів спряжених елементів, центру
і коммутанта групи, верхнього та нижнього центрального рядів, ряду коммутантов,
Сіловскіх підгруп, максимальних підгруп, нормальних підгруп, грат
підгруп, груп автоморфізмів, і т.д. Для ряду кінцевих груп є
визначення їх типу ізоморфізму.

Цікава демонстрація можливостей
системи на прикладі побудови математичної моделі кубика Рубіка і дослідження
описує його групи підстановок за допомогою системи GAP може бути знайдена
на сайті GAP за адресою http://www-history.mcs.st-and.ac.uk/~gap/Intro/rubik.html

Теорія уявлень груп також
входить в сферу застосування системи GAP. Тут є інструменти для
обчислення таблиць характерів конкретних груп, дій над характерами
та інтерактивного побудови таблиць характерів, визначення теоретико-групових
властивостей на підставі властивостей таблиці характерів групи. Модулярні подання
груп (тобто уявлення над полем, характеристика якого ділить порядок
групи) також можуть бути досліджені за допомогою GAP.

В останній версії системи істотним
чином розширені можливості для роботи з векторними просторами, алгебрами
і модулями. У системі можуть бути визначені векторні простору над
всіма доступними полями та модулі над усіма доступними кільцями. Є
алгоритми для обчислення структури скінченновимірних алгебр Лі, які можуть
бути, наприклад, задані структурними константами або породжують елементами,
обчислення різних їх Ліевскіх підалгебр та ідеалів.

Серед інших областей застосування
системи – теорія графів і їх автоморфізмів, теорія кодування, групи
Галуа, напівгрупи, кристалографічні групи, і багато іншого. Існує
графічний інтерфейс XGAP, який працює під OC Linux або Unix і дозволяє,
наприклад, графічно зобразити грати підгруп групи. Інформація про існуючі
розробках для застосування в тій чи проблемної області може бути знайдена
на сайті GAP ( http://www-gap.dcs.st-and.ac.uk/~gap
) У розділі "share packages".

 

Отримання й інсталяція системи

Дистрибутив системи може бути завантажений
з одного з чотирьох сайтів, головним з яких є сайт GAP Group
http://www-history.mcs.st-and.ac.uk/~gap/
. Решта три знаходяться в г.Аахен (Німеччина), г.Бостон (США), г.Канберра
(Австралія). Посилання на них можуть бути знайдені на сайті GAP Group. Опис
дистрибутива знаходиться за адресою http://www-history.mcs.st-and.ac.uk/~gap/Info4/distrib.html.
Каталог, що містить дистрибутив GAP 4.2 на FTP-сервер – ftp://ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/
.

Дистрибутив займає близько 40 MB,
в розгорнутому вигляді повна версія вимагає близько 156 МВ (без деяких спеціальних
інструментів теорії зображень груп, які вимагають ще 130 МВ). Для
економії місця можна спочатку встановити частковий версію, а потім у міру
необхідності доповнювати її новими модулями. GAP цілком нормально працює
на ПК Pentium 166-MMX, RAM 32 MB, але рекомендується RAM 64 MB.

Спочатку за допомогою опису дистрибутива
необхідно визначити, який набір файлів необхідний для Вашої операційної
системи. Насправді, відмінності між дистрибутивами (як за розміром,
так і за змістом) дуже невеликі. GAP розроблений таким чином, що
при переході від однієї операційної системи до іншої змінюється тільки його
ядро, написане на Сі, і спосіб запуску програми. Основна ж частина інформації
(Бібліотеки функцій і даних), що мають формат текстових файлів – програм
на мові GAP або спеціальним чином представлених даних – залишається незмінною,
а ядро вже, у свою чергу, звертається до них.

З урахуванням незначної відмінності
складу дистрибутива для різних систем можна рекомендувати варіант завантаження
повної версії дистрибутива (тобто для Unix / Linux-систем), після чого користувачам
Windows потрібно додати всього декілька файлів, щоб система могла працювати
і під Windows. Це дасть їм можливість ознайомитися з перспективами використання
системи під Linux, і, можливо, приведе їх до рішення про перехід до її використання,
наприклад, у випадку великого обсягу обчислень, або необхідності використовувати
деякі share packages, що працюють тільки під Unix / Linux.

У загальному випадку для інсталяції
знадобляться наступні файли:

Отже, необхідні файли отримані. Почнемо
з інсталяції під Linux. Автор особисто інсталював GAP під Linux Red Hat
5.2, Linux Black Cat 6.2, Linux Red Hat 7.0, і мушу зауважити, що це
відбувається навіть більш злагоджено, ніж під Windows, в повній відповідності
з інструкціями з файлу INSTALL. Ви компіліруете unzoo, розпаковуєте
дистрибутив, bugfixes і share packages, а потім запускаєте configure і
make для збірки ядра системи. GAP запускається файлом gap4r2/bin/gap.sh
після, може бути, його невеликого редагування. Процедура інсталяції
графічного інтерфейсу XGAP аналогічна. При інсталяції під Windows збірка
ядра не проводиться. Замість цього необхідно розпакувати файл wbin4r2n5.zoo.
Система запускається файлом Gap4r2 \ bin \ gap.bat, відредагованим згідно
містяться в ньому інструкцій. Запустивши GAP (у всіх системах), Ви повинні
побачити на екрані щось подібне:

#########
###### ###########
###

#############
###### ############
####

##############
######## #############
#####

###############
######## ##### ######
#####

######
# #########
#####    #####     ######

######
########## #####
#####    #######

#####
##### # # # # ##### ######
########

# # # #
##### ##### #############
###  ####

##### #######
# # # # # # # # ###########
####  ####

##### #######
##### ##### ######
####   ####

##### #######
##### ##### #####
#############

##### #####
################ #####
#############

###### #####
################ #####
#############

################ ##################
#####
####

###############
##### ##### #####
####

#############
##### ##### #####
####

#########
##### #####
#####
####

Information at: http://www-gap.dcs.st-and.ac.uk/ ~ gap

? for help. Copyright and authors list by? Copyright,
?authors

Loading the library. Please be patient, this may take
a while.

GAP4, Version: 4r2 fix5 of 26-September-2000, i586-pc-cygwin-gcc

Components: small, small2, small3, small4, small5, small6,
small7,

            
small8, id2, id3, id4, id5, id6, trans, prim, tbl,


            
tom  installed.


gap>

Якщо це так – вітаємо з успішним
завершенням інсталяції! До речі, стартова сторінка керівництва в форматі
html знаходиться у файлі GAP4r2/doc/htm/INDEX.HTM

Російською мовою є розроблене
автором методичний посібник з попередньої версії системи – GAP 3.4.4.
Особливості системи, описані в ньому, незначно змінилися при переході
до нової версії 4.2, тому його можна використовувати для отримання загального
уявлення про систему. Текст посібника розміщений на сайті GAP Group за адресами
http://www-history.mcs.st-and.ac.uk/~gap/Deposit/GAP-rus.htm
і ftp://ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/deposit/teaching/GAP-rus.zip
, А також на сайті Exponenta.ru за адресою http://www.exponenta.ru/SOFT/OTHERS/gap/0.asp

Подальша інформація про систему GAP
може бути знайдена на сайті GAP Group за адресою http://www-gap.dcs.st-and.ac.uk/~gap
. Там же можна підписатися на GAP-Forum – список розсилки новин системи
GAP.

 

Коновалов О.Б.,

доцент кафедри алгебри і геометрії
Запорізького державного університету

E-mail: konovalov@member.ams.org

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*