Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Система компьютерной алгебры GAP - # 28 (13-10-03)


Информационный Канал Subscribe.Ru

Рассылка "Система компьютерной алгебры GAP"
ведущий рассылки А.Б.Коновалов,
a_konovalov@hotmail.com
выпуск 28 от 13 октября 2003 г.

СОДЕРЖАНИЕ ВЫПУСКА:

  1. Соответствия в системе GAP
  2. Присвоение статуса "accepted" пакету QuaGroup
  3. GAP в дистрибутивах Linux
  4. Новые конференции:
  • Мальцевские чтения (Новосибирск, ноябрь 2003 г.)
  • XI Encuentro Rioplatense de Algebra y Geometria (Уругвай, декабрь 2003 г.)
  • Курс современной криптографии (Испания, февраль 2004 г.)
  • Алгебры Ли и Жордановы алгебры, их представления и приложения - I I (Бразилия, май 2004 г.)
  • Международная алгебраическая конференция, посвященная 250-летию Московского государственного университета и 75 летию кафедры алгебры МГУ (май-июнь 2004 г.)
  • Ferrara Algebra Workshop (Италия, июнь 2004 г.)
  • XVIII ESCOLA DE ALGEBRA (Бразилия, июль 2004 г.)
  • Некоммутативные артиновы алгебры, представления и когомологии (Франция, сентябрь 2004 г.)

На сайте Украинской группы пользователей GAP в разделе "Изучаем алгебру с GAP" в ближайшие дни будет опубликован материал по теме "Соответствия". Его полный текст приводится ниже.

Соответствия в GAP
Для задания соответствия в GAP необходимо указать область отправления X, область прибытия Y и либо график соответствия G (который является списком, состоящим из упорядоченных пар, в которых первый элемент принадлежит области отправления, а второй - области прибытия), либо функцию, которая будет определять элемент из Y, соответствующий заданному элементу из X.

Для задания соответствий с помощью графика используется функция GeneralMappingByElements. В качестве примера зададим соответствие между множествами натуральных чисел и целых чисел, определяемое упорядоченными парами (1,1), (2,2), (2,-2), (3,3) и (4,3). Обратите внимание на то, что обыкновенный список их двух элементов [a,b] является упорядоченной парой в обычном понимании этого термина, однако не может быть использован для задания графика соответствия - к нему необходимо сначала применить функцию Tuple для создания упорядоченной пары специального вида.
gap> l:=[[1,1],[2,2],[2,-2],[3,3],[4,3]];
[ [ 1, 1 ], [ 2, 2 ], [ 2, -2 ], [ 3, 3 ], [ 4, 3 ] ]
gap> lt:=List(l,Tuple);
[ Tuple( [ 1, 1 ] ), Tuple( [ 2, 2 ] ), Tuple( [ 2, -2 ] ),
Tuple( [ 3, 3 ] ), Tuple( [ 4, 3 ] ) ]

gap> f:=GeneralMappingByElements(PositiveIntegers,Integers,lt);
<general mapping: PositiveIntegers -> Integers >
Для задания соответствий вторым способом используется функция MappingByFunction. В качестве примера зададим функцию, которая каждому целому числу будет ставить в соответствие его остаток от деления на 2:
gap> g:=MappingByFunction(Integers,Integers, x -> x mod 2);
MappingByFunction( Integers, Integers, function( x ) ... end )
Область отправления и область прибытия соответствия определяются с помощью функций Source и Range соответственно:
gap> Source(f);
PositiveIntegers
gap> Source(g);
Integers
gap> Range(f);
Integers
gap> Range(g);
Integers
Если f - cоответствие, то определяющее его отношение можно получить с помощью функции UnderlyingRelation. Обратно, имея отношение, можно узнать соответствие, из которого оно получено, с помощью функции UnderlyingGeneralMapping:
gap> r1:=UnderlyingRelation(f);
<object>
gap> r2:=UnderlyingRelation(g);
<object>
gap> g=UnderlyingGeneralMapping(r2);
true
Поскольку r1 конечно, мы можем теперь получить график соответствия как список элементов r1:
gap> l:=AsList(r1);
[ Tuple( [ 1, 1 ] ), Tuple( [ 2, 2 ] ), Tuple( [ 2, -2 ] ),
Tuple( [ 3, 3 ] ), Tuple( [ 4, 3 ] ) ]
После этого несложно вычислить его область определения и область значения, получив их как множество соответственно первых и вторых компонент упорядоченных пар, входящих в его график:
gap> Set(List(l, x -> x[1]));
[ 1, 2, 3, 4 ]
gap> Set(List(l, x -> x[2]));
[ -2, 1, 2, 3 ]
Для второго соответствия мы не можем получить бесконечный список упорядоченных пар, но зато можем проверить, принадлежит ли та или иная упорядоченная пара графику соответствия:
gap> Tuple([10,0]) in r2;
true
gap> Tuple([10,1]) in r2;
false
Далее, образы и прообразы элементов можно находить с помощью функций Images и PreImages (см. также другие функции для работы с образами и прообразами в конце данной статьи):
gap> Images(f,1);
[ 1 ]
gap> Images(f,2);
[ -2, 2 ]
gap> PreImages(f,2);
[ 2 ]
gap> PreImages(f,3);
[ 3, 4 ]

Обратное соответствие определяется с помощью функции InverseGeneralMapping:
gap> InverseGeneralMapping(f);
InverseGeneralMapping( <general mapping: PositiveIntegers -> Integers > )
Функция CompositionMapping вычисляет композицию соответствий. Пример ее применения будет дан ниже. Обратите внимание на порядок записи аргументов в ней - соответствия начинают рассматриваться, начиная с последнего.

Завершим первую половину статьи заданием двух соответствий специального вида. С помощью функции IdentityMapping задается тождественное отображение:
gap> i:=IdentityMapping(Integers);
IdentityMapping( Integers )
gap> Images(i,100);
[ 100 ]
Далее, если область прибытия содержит нулевой элемент, то можно задать отображение в него всех элементов области отправления с помощью функции ZeroMapping:
gap> z:=ZeroMapping(PositiveIntegers,Integers);
ZeroMapping( PositiveIntegers, Integers )
gap> Images(z,2);
[ 0 ]
Прежде чем перейти к следующему примеру, необходимо сделать небольшое примечание об ограничениях, налагаемых в GAP на область отправления и область прибытия. Для задания соответствия они должны являться доменами (domain) - так в GAP называются множества с дополнительной структурой (например, группы, классы сопряженных элементов, векторные пространства и т.п.). Поэтому в предыдущих примерах в их областей отправления и прибытия использовались системы натуральных и целых чисел, а не их конечные подмножества. Примерам соответствий, в которых областями отправления и прибытия являются конечные множества с дополнительной алгебраической структурой, посвящена вторая половина данной статьи. Тем, кто впервые изучает курс алгебры, рекомендуется вернуться к этому материалу после ознакомления с элементами теории групп.

Для построения примера сначала зададим симметрические группы подстановок третьей и второй степени:
gap> S3:=SymmetricGroup(3);
Sym( [ 1 .. 3 ] )
gap> S2:=SymmetricGroup(2);
Sym( [ 1 .. 2 ] )
Кроме того, нам понадобится мультипликативная группа кольца целых чисел {-1,1}.Для ее задания мы сначала создадим полугруппу, порожденную -1, а потом укажем, что будем рассматривать ее, как группу:
gap> U:=Semigroup(-1);
<semigroup with 1 generator>
gap> AsList(U);
[ -1, 1 ]
gap> U:=AsGroup(U);
<group of size 2 with 1 generators>
Примечание. Для построения примера было бы достаточно использовать полугруппу U, однако мы превратили ее в группу, чтобы обратить внимание на еще одну тонкость. Дело в том, что в GAP нельзя непосредственно задать группу, состоящую из целых, рациональных или комплексных чисел, так как тогда невозможно будет однозначно истолковать операцию ^, которая, в зависимости от аргументов, может означать как возведение в степень, так и сопряжение с помощью элемента группы (и даже образ элемента под действием отображения). Поэтому U сначала задается в виде полугруппы, а потом "превращается" в группу.

Теперь зададим цепочку соответствий между S3, U и S2. Первое из них будет отображать подстановки из S3 в их знак, равный единице, если подстановка четная, и -1, если подстановка нечетная:
gap> f:=MappingByFunction(S3,U, SignPerm);
MappingByFunction( Sym( [ 1 .. 3 ] ), <group of size 2 with 1 generators>,
function( perm ) ... end )

Второе отображение действует из U в S2 и отображает -1 в тождественную подстановку (), а 1 - в транспозицию (1,2). Заметим, что отображение g намеренно выбрано таким образом, чтобы оно не являлось гомоморфизмом, поскольку в для гомоморфизмов в GAP имеются свои, более эффективные инструменты.
gap> g:=GeneralMappingByElements(U,S2,[Tuple([-1,()]),Tuple([1,(1,2)])]);
<general mapping: Group( [ -1 ] ) -> SymmetricGroup( [ 1 .. 2 ] ) >
Наконец, третье соответствие отображает все подстановки из S2 в тождественную подстановку, а четвертое является тождественным отображением на S2:
gap> h:=MappingByFunction(S2,S2, x -> ());
MappingByFunction( Sym( [ 1 .. 2 ] ), Sym( [ 1 .. 2 ] ), function( x ) ... end )
gap> i:=IdentityMapping(S2);
IdentityMapping( Sym( [ 1 .. 2 ] ) )

Теперь мы можем вычислить композицию g и h (обратите внимание на порядок следования отображений - они выполняются в обратном порядке):
comp:=CompositionMapping(h,g);
CompositionMapping( <general mapping: SymmetricGroup( [ 1 .. 2 ] ) ->
SymmetricGroup(
[ 1 .. 2 ] ) >, <general mapping: Group( [ -1 ] ) ->
SymmetricGroup( [ 1 .. 2 ] ) > )

Аналогично вычисляется композиция трех отображений:
gap> comp:=CompositionMapping(h,g,f);
CompositionMapping( MappingByFunction( Sym( [ 1 .. 2 ] ), Sym( [ 1 .. 2 ] ),
function( x ) ... end ),
CompositionMapping( <general mapping: Group( [ -1 ] ) ->
SymmetricGroup( [ 1 .. 2 ] ) >,
MappingByFunction( Sym( [ 1 .. 3 ] ),
<group of size 2 with 1 generators>, function( perm ) ... end ) ) )

Легко видеть, что последнее отображение переводит любой элемент группы S3 в тождественную подстановку. Проверим это, например, для подстановки (1,2,3), обратив внимание на еще один вариант записи образа элемента относительно отображения:
gap> (1,2,3)^comp;
()
Функция InverseGeneralMapping вычисляет обратное соответствие. Вычислим обратное соответствие к соответствию g, а затем найдем образы элементов S2 под его действием:
gap> v:=InverseGeneralMapping(g);
InverseGeneralMapping( <mapping: Group( [ -1 ] ) -> SymmetricGroup( [ 1 .. 2 ] ) > )
gap> ()^v;
-1
gap> (1,2)^v;
1
Для использования в последующих примерах вычислим композицию t соответствий f и g:
gap> t:=CompositionMapping(g,f);
CompositionMapping( <mapping: Group( [ -1 ] ) ->
SymmetricGroup( [ 1 .. 2 ] ) >, MappingByFunction( Sym( [ 1 .. 3 ] ),
<group of size 2 with 1 generators>, function( perm ) ... end ) )

Очевидным образом определяется, является ли t всюду определенным, функциональным, инъективным, сюръективным и биективным:
gap> IsTotal(t);
true
gap> IsSingleValued(t);
true
gap> IsInjective(t);
false
gap> IsSurjective(t);
true
gap> IsBijective(t);
false
Как и в предыдущих примерах, мы можем получить график соответствия t:
gap> UnderlyingRelation(t);
<object>
gap> AsList(last);
[ Tuple( [ (), (1,2) ] ), Tuple( [ (2,3), () ] ), Tuple( [ (1,2), () ] ),
Tuple( [ (1,2,3), (1,2) ] ), Tuple( [ (1,3,2), (1,2) ] ), Tuple( [ (1,3), () ] ) ]
В завершение укажем функции, которые используются для определения образов и прообразов отдельных элементов и их множеств. Напомним, что область отправления и область прибытия опредеделяются с помощью функций Source и Range соответвственно:
gap> Range(t);
Sym( [ 1 .. 2 ] )
gap> Source(t);
Sym( [ 1 .. 3 ] )
Образ соответствия можно определять с помощью функций ImagesSource или Image:
gap> ImagesSource(t);
Sym( [ 1 .. 2 ] )
gap> Image(t);
Sym( [ 1 .. 2 ] )

Кроме того, имеются различные функции для определения образов элемента или даже целого множества:
gap> ImagesElm(t,(1,2,3)); # множество всех образов элемента
[ (1,2) ]
gap> ImagesRepresentative(t,(1,2,3)); # представитель множества образов элемента
(1,2)
gap> ImagesSet(t,[(1,2,3),(1,2)]); # множество всех образов элементов множества
[ (), (1,2) ] # (второй аргумент и результат - множества)
gap> Images(t,[(1,2,3),(1,2)]); # образ множества или поддомена
[ (), (1,2) ] # (второй аргумент и результат -
# множества или домены)

gap> ImageElm(t,(1,2,3)); # образ элемента (для всюду определенного
(1,2) # и функционального соответствия)
gap> Image(t,(1,2,3)); # для всюду определенного и функционального
(1,2) # соответствия в зависмости от второго аргумента
# - образ всего соответствия, отдельного
# элемента, подмножества или поддомена


Аналогичная функциональность имеется и для прообразов:
gap> PreImagesRange(t); # прообраз (область определения) соответствия
Sym( [ 1 .. 3 ] )
gap> PreImagesElm(t,()); # множество всех прообразов элемента
[ (2,3), (1,2), (1,3) ]
gap> PreImagesRepresentative(t,()); # представитель множества прообразов элемента
(2,3)

gap> PreImagesSet(t,[(1,2)]); # множество всех прообразов элементов множества
[ (), (1,2,3), (1,3,2) ]

gap> PreImages(t); # прообраз (область определения соответствия)
Sym( [ 1 .. 3 ] )
gap> PreImages(t,(1,2)); # прообраз элемента
[ (), (1,2,3), (1,3,2) ]
gap> PreImages(t,[(),(1,2)]); # прообраз множества или поддомена
[ (), (2,3), (1,2), (1,2,3), (1,3,2), (1,3) ]

gap> PreImageElm(g,(1,2)); # прообраз элемента (для инъективного и
1 # сюръективного соответствия)
gap> PreImage(t); # прообраз соответствия (не обязательно
Sym( [ 1 .. 3 ] ) # сюръективного и инъективного)
gap> PreImage(g,(1,2)); # прообраз элемента (для сюръективного
1 # и инъективного соответствия
gap> PreImage(g,[(),(1,2)]); # прообраз множества или поддомена (для
[ -1, 1 ] # инъективного и сюръективного соответствия,
# результат - множество или домен)

Более подробно различия между функциями дял работы с образами и прообразами, а также особенности их использования описаны в разделе "Mappings" документации по системе GAP.

GAP Forum, 06 октября 2003 г.

Присвоение статуса "accepted" пакету QuaGroup

Пакет QuaGroup (автор - Willem de Graaf), вышедший 29 мая 2002 г., прошел реферирование и получил статус
"accepted". Он предназначен для работы с квантовыми обертывающими алгебрами конечномерных полупростых алгебр Ли, в том числе для построения базиса типа Пуанкаре-Биркгофа-Витта, неприводимых модулей и элементов канонического базиса. Страница пакета - http://www.math.uu.nl/people/graaf/quagroup.html.


GAP в дистрибутивах Linux


Система компьютерной алгебры GAP (в виде пакетов Debian GNU/Linux) вошла в состав еще одного дистрибутива Linux, получившего название Quantian. Этот дистрибутив состоит из одного компакт-диска и позволяет запустить Debian GNU/Linux без предварительной инсталляции системы на жесткий диск. Для этого нужно только лишь загрузить компьютер с данного компакт-диска. Естественно, что такая загрузка требует больше времени, однако, она может быть удобной для быстрой подготовки и демонстрации GAP в случае нехватки времени на инсталляцию системы.

Quantian разработал Dirk Eddelbuettel (являющийся также одним из разработчиков Debian) на базе другого подобного дистрибутива на загрузочном компакт-диске, называемого Knoppix (см. также http://www.knoppix.org/) Помимо GAP, в Quantian включены и другие математические пакеты - PARI/GP и Maxima. Quantian 0.4 содержит ядро системы GAP, библиотеки групп и библиотеку таблиц характеров (последняя доступна в Debian/unstable в виде пакета gap-character-tables). Объем диска не позволил поместить на нем полную версию системы GAP, так как она заполнила бы почти весь диск, а идея дистрибутива заключалась в предоставлении пользователям как можно более разнообразного специализированного математического программного обеспечения.

Более подробная информация о Quantian находится на странице http://dirk.eddelbuettel.com/quantian.html.

Система GAP также официально входит в состав дистрибутива Debian GNU/Linux в виде следующих Linux-пакетов: gap, gap-core, gap-dev, gap-doc, gap-libs, gap-online-help, gap-prim-groups, gap-small-groups, gap-small-groups-extra, gap-trans-groups.

Linux-пакеты, входящие в дистрибутив GAP для Debian, можно получить здесь:

Мальцевские чтения
Новосибирск, 17--19 ноября 2003 г.
http://www.math.nsc.ru/conference/malmeet/03/Main.htm

Институт дискретной математики и информатики, Новосибирский государственный университет и Институт математики им. С. Л. Соболева СО РАН организуют традиционную международную конференцию "МАЛЬЦЕВСКИЕ ЧТЕНИЯ". В этом году конференция пройдет с 17 по 19 ноября в Институте математики им. С. Л. Соболева СО РАН (г. Новосибирск). По традиции, любое выступление на конференции приравнивается к выступлению на семинаре "Алгебра и логика", т. е. изложенные результаты могут быть представлены к публикации в журнале "Алгебра и логика".

К участию приглашаются специалисты по всем направлениям алгебры, математической логики: теории групп, теории колец, универсальной алгебре, теории решеток, теории алгоритмов, теории моделей, приложениям алгебры и логики в информационных технологиях, и т.д. В программу конференции будут включены пленарные доклады и секционные сообщения в секциях алгебры, математической логики и алгебро-логических методов в информационных технологиях. Названия секций будут уточняться в соответствии с поступающими заявками на доклады. Программный комитет возглавляет академик РАН Ю. Л. Ершов. Председатель организационного комитета - д.ф.-м.н., проф. А. С. Морозов.

Второй день работы конференции, 18 ноября, будет посвящен 75-летию со дня рождения М. И. Каргаполова. В программу этого дня будут включены пленарные доклады по направлениям алгебры и математической логики, отражающим научные интересы Михаила Ивановича, а также доклады и воспоминания о нем.

Предварительное согласие выступить с докладом подтвердили П. Е. Алаев, В. В. Блудов, О. В. Богопольский, Ю. Л. Ершов, С. И. Мардаев, В. А. Романьков, Е. И. Тимошенко, Л. Н. Шеврин, В. П. Шунков.

XI Encuentro Rioplatense de Algebra y Geometria
Solis, Уругвай, 15-19 декабря 2003 г.
http://www.cmat.edu.uy/eventos/

Advanced Course on Contemporary Cryptology
Политехнический Университет Каталонии, Испания, 2-13 февраля 2004 г.
http://www.crm.es/ContemporaryCryptology
Прием заявок на финансовую помощь до 20 ноября 2003 г.
Регистрация до 31 декабря 2003 г.

Алгебры Ли и Жордановы алгебры, их представления и приложения - I I
Guaruja (возле Сан-Пауло), Бразилия, 3-8 мая 2004 г.
Web-страница конференции находится в стадии разработки.
Страница предыдущей конференции расположена по адресу http://www.ime.usp.br/~liejor/2002
Прием тезисов до 31 марта 2004 г.

Международная алгебраическая конференция,
посвященная 250-летию Московского государственного университета
и 75 летию кафедры алгебры МГУ
Московский государственный университет, 26 мая - 2 июня 2004 г.
http://mech.math.msu.su/department/algebra/IAC04

Тематика конференции:
  • Кольца и модули, гомологическая алгебра, K-теория
  • Квантовые группы и алгебры Хопфа
  • Теория групп
  • Компьютерная алгебра
  • Инварианты и группы алгебраических преобразований
  • Алгебраическая геометрия
  • Коммутативная алгебра и алгебраическая теория чисел
  • Линейная алгебра
  • Алгебраические системы
Тезисы принимаются до 15 января 2004 г. Регистрация до 15 февраля 2004 г.

Ferrara Algebra Workshop
г. Феррара, Италия, 16-19 июня 2004 г.
http://dm.unife.it/ferrara
Основная тематика конференции: алгебры Хопфа и квантовые группы, модули и теория представлений.

XVIII ESCOLA DE ALGEBRA
г.Кампинас, Бразилия, 19-23 июля 2004 г.
http://www.ime.unicamp.br/~escola
http://www.ams.org/mathcal/info/2004_jul19-23_campinas.html
Прием сообщений и постеров до 31 марта 2004 г.

Некоммутативные артиновы алгебры, представления и когомологии
CIRM, Luminy, Франция, 13-17 сентября 2004 г.
http://www.cirm.univ-mrs.fr/Rencontres2004/Cibils04/Cibils04.html

С уважением,
Коновалов Александр Борисович , председатель Украинской группы пользователей GAP ,
доцент кафедры алгебры и геометрии Запорожского государственного университета







http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное