В теории групп алгоритм Тодда–Коксетера , созданный JA Todd и HSM Coxeter в 1936 году, является алгоритмом для решения задачи перечисления смежных классов . При заданном представлении группы G образующими и соотношениями и подгруппой H группы G алгоритм перечисляет смежные классы H на G и описывает перестановочное представление G на пространстве смежных классов (задаваемое левым умножением). Если порядок группы G относительно мал и известно, что подгруппа H несложная (например, циклическая группа ), то алгоритм может быть выполнен вручную и дает разумное описание группы G. Используя свой алгоритм, Коксетер и Тодд показали , что некоторые системы соотношений между образующими известных групп являются полными, т. е. составляют системы определяющих соотношений.
Алгоритм Тодда–Коксетера может быть применен к бесконечным группам и, как известно, завершается за конечное число шагов, при условии, что индекс H в G конечен . С другой стороны, для общей пары, состоящей из представления группы и подгруппы, время его выполнения не ограничено никакой вычислимой функцией индекса подгруппы и размера входных данных.
Одна из реализаций алгоритма выполняется следующим образом. Предположим, что , где — набор генераторов , а — набор отношений , и обозначим через набор генераторов и их обратных. Пусть где — слова элементов из . Будут использоваться три типа таблиц: таблица смежных классов, таблица отношений для каждого отношения в и таблица подгрупп для каждого генератора из . Информация постепенно добавляется в эти таблицы, и как только они заполняются, все смежные классы перечисляются, и алгоритм завершается.
Таблица смежных классов используется для хранения связей между известными смежными классами при умножении на генератор. Она имеет строки, представляющие смежные классы , и столбец для каждого элемента . Пусть обозначает смежный класс i -й строки таблицы смежных классов, а пусть обозначает генератор j -го столбца. Запись таблицы смежных классов в строке i и столбце j определяется как (если известна) k , где k таково, что .
Таблицы отношений используются для обнаружения того, когда некоторые из найденных нами смежных классов фактически эквивалентны. Поддерживается одна таблица отношений для каждого отношения в . Пусть будет отношением в , где . Таблица отношений имеет строки, представляющие смежные классы , как в таблице смежных классов. Она имеет t столбцов, а запись в i -й строке и j -м столбце определяется как (если известна) k , где . В частности, '-я запись изначально равна i , так как .
Наконец, таблицы подгрупп похожи на таблицы отношений, за исключением того, что они отслеживают возможные отношения генераторов . Для каждого генератора , с , мы создаем таблицу подгрупп. Она имеет только одну строку, соответствующую смежному классу самой себя. Она имеет t столбцов, а запись в j -м столбце определяется (если известна) как k , где .
Когда строка таблицы отношений или подгрупп завершена, находится новая часть информации , ,. Это известно как вычитание . Из вычитания мы можем заполнить дополнительные записи таблиц отношений и подгрупп, что приведет к возможным дополнительным вычитаниям. Мы можем заполнить записи таблицы смежных классов, соответствующие уравнениям и .
Однако при заполнении таблицы смежных классов возможно, что у нас уже есть запись для уравнения, но запись имеет другое значение. В этом случае мы обнаружили, что два наших смежных класса на самом деле одинаковы, что известно как совпадение . Предположим , с . Мы заменяем все вхождения j в таблицах на i . Затем мы заполняем все возможные записи таблиц, что может привести к большему количеству выводов и совпадений.
Если после всех вычетов и совпадений в таблице есть пустые записи, добавьте новый смежный класс в таблицы и повторите процесс. Мы гарантируем, что при добавлении смежных классов, если Hx является известным смежным классом, то Hxg будет добавлен в какой-то момент для всех . (Это необходимо для гарантии того, что алгоритм завершится, если является конечным.)
Когда все таблицы заполнены, алгоритм завершается. Тогда у нас есть вся необходимая информация о действии на смежных классах .