Прочитал про группу тетраэдра
. Понял, что группы могут быть устроены значительно сложнее, чем мне показалось поначалу. Граф группы:
Видно, что как ни крути и в какие степени не возводи, поменять местами элементы
и
в произведении
не получится. Всё из-за соотношения
. Это приводит к тому, что элементы группы нельзя представить в универсальном виде
, как это можно сделать, например, в любой диэдральной группе. Или в группе, получаемой косым произведением любого количества циклических групп.
Теперь я для себя имею такую классификацию групп по степени "запущенности":
1) абелевы группы, где любые два элемента коммутируют:
2) неабелевы "слоистые" группы, где любые две образующие коммутируют со степенью:
(что происходит с произвольными двумя элементами ещё не проверял). В таких группах любой элемент можно представить как упорядоченное произведение образующих в нужных степенях:
Слоистыми такие группы являются потому, что их можно разбить на слои, соответствующие одной или нескольким образующим. Умножение на эти внутренние образующие не выводит из слоя. А умножение на другие образующие переводит весь слой в какой-нибудь другой слой, так как они все одинакового размера. В группе тетраэдра
такого нет.
3) все остальные группы.
-- 18.02.2020, 14:32 --В приведённом мной ранее алгоритме есть
ошибка, которую я выделил жирным:
То есть, вот, например, есть группа G. Все её элементы известны, и мы знаем, как их друг на друга умножать. Тогда действуем по следующему плану.
1) Выбираем элемент группы с наибольшим рангом. Пусть это будет
. Этот элемент порождает в группе G некоторую циклическую подгруппу
(Здесь верхний индекс у символа "C" означает порядковый номер, а не ранг группы). Если
, то наша задача выполнена. В противном случае полагаем
и переходим к пункту 2).
2) Поскольку
, то в множестве
есть элементы. Опять возьмём элемент
с наибольшим рангом.
3) Этот элемент опять порождает в группе G некоторую циклическую подгруппу
. Будем рассматривать все элементы
этой подгруппы и все правые смежные классы
. Эти классы не пересекаются,
а их объединение даёт новую подгруппу в группе G.
4) Если
, то наша задача закончена. В противном случае полагаем
и переходим к пункту 2).
Теперь я понимаю, почему при построении группы по системе образующих с определяющими соотношениями используется такой, на первый взгляд, мутный алгоритм:
1) строим все возможные произведения (строки произвольной длины) из образующих и их обратных (в случае конечных групп можно не брать обратные, но заранее не угадаешь);
2) с помощью соотношений между образующими строим классы эквивалентности строк (путём замены/удаления подстрок), которые и называем элементами группы.
Всё из-за отсутствия "слабой" коммутативности образующих со степенью:
.
В связи с этим в моём алгоритме пункт 3), цель которого построить по заданному элементу
и подгруппе
новую расширенную подгруппу, надо поправить следующим образом. Надо рассматривать последовательность множеств
и так далее до тех пор, пока элементы этих множеств будут давать какие-нибудь новые, ещё не рассмотренные элементы. Объединение всех этих элементов и будет новой, расширенной подгруппой
.
В связи с этим возникает интересная с точки зрения программирования задача: по групповым соотношениям построить группу (с её таблицей умножения) и посчитать число элементов в ней. В частности, в процессе ещё должен решать вопрос о совместности этих соотношений.