Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Научно-практический журнал "Exponenta Pro. Математика в приложениях". Вышел 1/2004 номер журнала
 
Ряды нормализаторов в конечных группах и проблема Стройновского
выполнили: доцент, к.ф.-м.н. Коновалов А.Б., Цапок Анастасия, 4 курс
Запорожский государственный университет

archive.gif (75 bytes) Архив разработки (14 кб, Word)

    В статье построен контрпример для проблемы А. Стройновского (Варшавский университет): пусть G — группа, H Í G — ее подгруппа. Рассмотрим ряд нормализаторов H < NG(H) < NG(NG(H)) < …, и обозначим его объединение через HN. Пусть теперь A Í G — подгруппа, для которой H < < A. Всегда ли выполняется условие A Í HN ? Контрпример найден с помощью системы компьютерной алгебры GAP.

Пусть G - группа, H Í G - ее подгруппа. Подгруппа NG(H) = {g Î G | " h Î H g-1hg Î H } называется нормализатором подгруппы H в групе G. Если NG(H) = G, то H называется нормальной подгруппой групы G, что обозначается H < G. Подгруппа H группы G называется субнормальной подгруппой, что обозначается H < < G, если она содержится в субнормальном ряде группы G, т.е. в таком ряде подгрупп

 

G = U1 Ê U2 ÊUn Ê Un+1 Ê …,

 

где каждая подгруппа Ui+1 нормальна в подгруппе Ui.

В 2000 г. А. Стройновский (Варшавский университет) предложил следующую проблему: пусть G — произвольная группа, H Í G — ее подгруппа. Рассмотрим ряд нормализаторов

 

H < NG(H) < NG(NG(H)) < … ,

 

и обозначим через объединение всех подгрупп из этого ряда, которое назовем гипернормалью подгруппы H в группе G . Пусть теперь A Í G — подгруппа такая, что H < < A. Всегда ли выполняется следующее условие:

 

A Í HN ?                                                     (*)

 

Он же предположил, что существует контрпример, который можно найти с помощью ЭВМ.

 

Для поиска контпримера была использована система компьютерной алгебры GAP [1]. Эта система, название которой означает "Группы, алгоритмы и программирование", была задумана как инструмент комбинаторной теории групп в 1986 г., и в дальнейшем была распространена и на другие разделы алгебры. GAP - свободно распространяемая открытая система, кроме того, одним из ее компонентов является специальный язык программирования, который также называется GAP, на котором можно создавать собственные программы и расширять систему.

 

Группы в GAP могут быть заданы в разных формах, например, в виде групп подстановок, матричных групп, групп, заданных порождающими элементами и определяющими соотношениями. Среди функций для работы с группами — вычисление порядка группы, классов сопряженных элементов, центра и коммутанта группы, рядов подгрупп, Силовских подгрупп, максимальных подгрупп, нормальных подгрупп, групп автоморфизмов, решеток подгрупп, и др. Для многих конечных групп можно определить их тип изоморфизма.

 

Дальнейшая информация о системе может быть найдена в методическом пособии [2], а также на личной странице одного из авторов [3] и на странице Украинской группы пользователей GAP [4].

 

Для поиска контрпримера было решено начать проверку с неразрешимых групп подстановок из библиотеки конечных групп системы компьютерной алгебры GAP, среди которых с большей вероятностью ожидался контрпример. Алгоритм проверки для каждой отдельной группы состоял из следующих этапов:

  1. Вычисление списка подгрупп заданной группы;

  2. Отбор всех подгрупп H, которые не являются субнормальными в G;

  3. Отбор всех подгрупп A таких, что H < < A, для каждой подгруппы H, найденной в п.2;

  4. Проверка условия A Í HN для каждой такой подгруппы A и соответствующей гипернормали HN.

Проверка прекращается, когда будет найдена пара подгрупп A и N, для которых не выполняется условие A Í HN.

 

Этот алгоритм был реализован в программе на языке GAP. Разработанная программа состоит из двух функций:

 

1. Функции Row(G,H), возвращающей ряд нормализаторов { H, NG(H), NG(NG(H)), … } подгруппы H в группе G, например:

    gap> G:=SymmetricGroup(6);

    Sym( [ 1 .. 6 ] )

    gap> H:=Subgroup(G,[(1,2,3)]);

    Group([ (1,2,3) ])

    gap> Row(G,H);

    [ Group([ (1,2,3) ]), Group([ (1,2,3), (5,6), (4,5,6), (2,3)(5,6) ]),

    Group([ (1,3,2), (4,5), (4,5,6), (2,3)(4,5), (1,4,3,6)(2,5) ]) ]

 

Так как группа конечна, процесс построения ряда завершается, когда получаем самонормализующуюся подгруппу K, для которой K=NG(K).

 

2. Функции Test(G), проверяющей выполнение условия (*) для группы G. Если условие выполняется, функция возвращает значение true, в противном случае она возвращает подгруппы Н та А, для которых не выполняется условие (*). Пример работы с этой функцией приведен ниже..

 

Кроме указанных функций, в программе используются стандартные библиотечные функции системы GAP:

 

1. Функция ConjugacyClassesSubgroups(G), возвращающая список классов сопряженных подгрупп группы G, например:

    gap> G:=SymmetricGroup(3);

    Sym( [ 1 .. 3 ] )

    gap> ConjugacyClassesSubgroups(G);

    [ Group( () )^G, Group( [ (2,3) ] )^G, Group( [ (1,2,3) ] )^G,

    SymmetricGroup( [ 1 .. 3 ] )^G ]

Аргументом этой функции может быть не только группа, но также и решетка подгрупп группы (см. ниже).

 

2. Функция IsSubnormal(G,U), проверяющая, является ли U субнормальной подгруппой группы G.

 

3. Функция IsSubset(G,U), проверяющая, является ли U подмножеством G. Фактически, в программе можно было бы использовать функцию IsSubgroup(G,U), которая возвращает true, если U является группой, которая, в свою очередь, является подмножеством алгебраической структуры G. Это реализуется с помощью проверки условия IsGroup(U) and IsSubset(G,U), однако для IsSubset доступны специальные методы, которые проверяют только порождающие элементы U, если G замкнуто относительно групповой операции. Поэтому в ряде случаев, например, когда уже известно, что U является группой, лучше использовать только IsSubset.

 

4. Функция LatticeSubgroups(G), вычисляющая решетку подгрупп группы G, например:

    gap> g:=SymmetricGroup(4);

    gap> l:=LatticeSubgroups(g);

    <subgroup lattice of Sym( [ 1 .. 4 ] ), 11 classes, 30 subgroups>

Эта решетка содержит классы сопряженных подгрупп как атрибут ConjugacyClassesSubgroups.

 

5. Функция Normaliser(G,U), возвращающая нормализатор подгруппы U в группе G, например:

    gap> G:=SymmetricGroup(4);

    Sym( [ 1 .. 4 ] )

    gap> H:=Subgroup(G,[(1,2,3)]);

    Group([ (1,2,3) ])

    gap> Normalizer(G,H);

    Group([ (1,2,3), (2,3) ])

Текст программы, разработанной для поиска контрпримера, приведен ниже.

    Row:=function(G,H)

    local i,        # параметр цикла

           Row,   # ряд нормализаторов

           T;       # текущая подгруппа, нормализатор которой вычисляется

                     #

    Row:=[];    # создаем пустой список

    T:=H;         # начинаем с подгруппы H

    i:=0;          # начальное значение параметра цикла

    repeat

      i:=i+1;                       # переход к следующему эл-ту ряда нормализаторов

      Row[i]:=T;                 # его запись

      T:=Normalizer(G,T);   # вычисление его нормализатора

    until T=Row[i];             # проверка, является ли он самонормализующимся

    return Row;

    end;

     

    Test:=function(G)

    local A,      # подгруппа из списка всех подгрупп группы G

            c,      # класс сопряженных подгрупп

                    # из списка классов сопряженных подгрупп

            H,     # подгруппа из списка всех подгрупп группы G

            m,    # список классов сопряженных подгрупп

            res,  # результат проверки условия (*)

             row, # ряд нормализаторов подгруппы H в группе G

            s;      # список всех подгрупп группы G

    #

    LatticeSubgroups(G); #решетка подгрупп группы G

    Print("Subgroup lattice calculated \n");

    #

    m:=ConjugacyClassesSubgroups(G); #классы сопряженных подгрупп группы G

    Print("ConjugacyClassesSubgroups calculated \ n");

    #

    # Создание списка всех подгрупп группы G

    #

    s:=[];           #создаем пустой список

    for c in m do

      Append(s,AsList(c)); #присоединяем к нему по одному элементу

    od;

    #

    # Перебор пар (H,A) и проверка для них условия (*)

    #

    for H in s do

      if IsSubnormal(G,H)=false then                 #H субнормальная => HN=G

                                                                    #поэтому не проверяем

        for A in s do

          if IsSubset(A,H)=true then                    #отбираем A, которые содержат H

             if IsSubnormal(A,H) then                   #отбираем A, где H субнормальная в A

               row:=Row(G,H);                             #если такая A найдена, вычисляем HN

               res:=IsSubset(row[Length(row)],A); #проверяем условие (*)

               if res=false then                              #возвращаем найденный контрпример

                 Print("H: ", H, "\n", "A: ", A, "\n");

                 return [H,A];

              fi;

            fi;

          fi;

        od;

      fi;

    od;

    return true;                       #контрпример не найден

Работа с программой демонстрируется такими примерами. Сначала зададим симметрическую группу подстановок третьего порядка S3 и проверим для нее условие (*).

    gap> S3:=SymmetricGroup(3);

    Sym( [ 1 .. 3 ] )

    gap> Test(S3);

    Subgroup lattice calculated

    ConjugacyClassesSubgroups calculated

    true

Видим, что для симметрической группы подстановок третьего порядка условие (*) выполняется для всех ее подгрупп. Теперь проверим условие (*) для симметрической группы подстановок пятого порядка S5:

    gap> S5:=SymmetricGroup(5);

    Sym( [ 1 .. 5 ] )

    gap> Test(S5);

    Subgroup lattice calculated

    ConjugacyClassesSubgroups calculated

    H: Group( [ (4,5) ] )

    A: Group( [ (4,5), (2,3), (2,4)(3,5) ] )

    [ Group([ (4,5) ]), Group([ (4,5), (2,3), (2,4)(3,5) ]) ]

В результате видим, что условие (*) не выполняется для таких подгрупп: H = < (4,5) > та А= < (4,5), (2,3), (2,4)(3,5) >. Действительно, NG(H)=< (2,3),(1,2),(4,5) > и состоит из подстановок e , (4,5), (2,3), (2,3)(4,5), (1,2), (1,2)(4,5), (1,2,3), (1,2,3)(4,5), (1,3,2), (1,3,2)(4,5), (1,3) и (1,3)(4,5). При этом NG(H)=NG(NG(H)), следовательно, HN=NG(H). С другой стороны, A состоит из подстановок e , (4,5), (2,3), (2,3)(4,5), (2,4)(3,5), (2,4,3,5), (2,5,3,4), (2,5)(3,4), где последние 4 подстановки не содержатся в HN. Таким образом, контпример найден.

 

Литература

  1. The GAP Group, GAP - Groups, Algorithms, and Programming, Version 4.2, Aachen, St Andrews, 1999, (http://www.gap-system.org).
  2. Коновалов А.Б. Система компьютерной алгебры GAP. Методические указания. Запорожье, ЗГУ, 1999. - 42 с.
  3. http://www.zsu.zp.ua/ppages/konoval/konov.htm
  4. http://www.zsu.zp.ua/UkrGAP/

В начало

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 11.05.04
Сайт начал работу 1.09.00

Программное обеспечение Microsoft, Macromedia, VERITAS, Novell, Borland, Symantec, Oracle и др.