Введение

В математике, перечисление косетов — это задача подсчёта косетов подгруппы H группы G, заданной с помощью представления. В качестве побочного продукта получается представление перестановками для G на косетах H. Если H имеет известный конечный порядок, перечисление косетов позволяет определить порядок G. Для малых групп иногда возможно выполнить перечисление косетов вручную. Однако для больших групп это трудоёмко и чревато ошибками, поэтому обычно выполняется на компьютере. Перечисление косетов обычно рассматривается как одна из фундаментальных задач в вычислительной теории групп. Исходный алгоритм для перечисления косетов был изобретён Джоном Артуром Тоддом и Х. С. М. Коксетером. Были предложены различные усовершенствования оригинального алгоритма Тодда — Кокстера, в частности, классические стратегии В. Фелша и HLT (Хазельгроув, Лич и Троттер). Практическая реализация этих стратегий с доработками доступна на сайте ACE. Алгоритм Кнута — Бендикса также может выполнять перечисление косетов, и, в отличие от алгоритма Тодда — Кокстера, он иногда способен решать проблему слов для бесконечных групп. Основные практические трудности при создании перечислителя косетов заключаются в том, что сложно или невозможно предсказать, сколько памяти или времени потребуется для завершения процесса. Если группа конечна, то её перечисление косетов должно в конечном итоге завершиться, хотя это может занять неограниченно долгое время и потребовать произвольный объём памяти, даже если группа тривиальна. В зависимости от используемого алгоритма, даже небольшие изменения в представлении, не влияющие на саму группу, могут существенно повлиять на время или объём памяти, необходимые для завершения перечисления. Такое поведение является следствием неразрешимости проблемы слов для групп. Вводное знакомство с перечислением косетов дано в учебнике Ротмана по теории групп. Более подробную информацию о корректности, эффективности и практической реализации можно найти в книгах Симса и Холта с соавторами.