Я боюсь, что этот вопрос немного технический, но я надеюсь, что кто-то мог бы наткнуться на подобную тему или дать мне какой-то указатель.
Если G - группа (в смысле алгебраической структуры), а если g 1,..., g n - элементы группы G, то существует ли алгоритм (или функция в некоторой выделенной программе, например GAP), чтобы определить, существует ли подгруппа группы G, чтобы эти элементы составляли множество представителей для смежных классов подгруппы? (Мы можем считать, что G - группа перестановок и, возможно, даже полная симметричная группа.)
(Конечно, есть несколько алгоритмов для нахождения смежных классов данных подгрупп, таких как алгоритм Тодда-Коксера, это своего рода обратный вопрос.)
Спасибо,
Daniele
Ответ 1
Единственное решение, которое я могу придумать, наивно. В принципе, если у вас есть элементы x1,...,xn
, вы должны использовать GAP LowIndexSubgroupsFpGroup
для перечисления всех подгрупп с индексом n (отбрасывая их с индексом < n). Затем вы проходите через каждую такую группу, генерируете смежные классы и проверяете, что каждый класс смежности содержит один из элементов.
Это все, о чем я мог думать. Мне было бы очень интересно, если бы вы придумали лучший подход.
Ответ 2
То, что вы пытаетесь определить, - это если существует подгруппа H группы G такая, что {g 1,..., g n} является a трансверсально смежных классов H. ie Множество представителей разбиения G на смежные классы H.
Сначала, теорема Лагранжа, | G | = | G: H | * | G |, где | G: H | = | G |/| H | является индексом подгруппы H группы G. Если {g 1,..., g n} действительно трансверсаль, то | G: H | = | {g 1,..., g n} |, поэтому первым тестом в вашем алгоритме должно быть n делит | G |.
Кроме того, поскольку g i и g j находятся в том же правом смежном классе, только если g i g j -1 находится в H, вы можете затем проверить подгруппы с индексом n, чтобы убедиться, что они избегают g i g j -1. Также обратите внимание, что (g i g j -1) (g j g k -1) = g i g k -1 поэтому вы можете выбрать любое спаривание g <суб > ясуб > с.
Это должно быть достаточно, если n мало по сравнению с | G |.
Другой подход состоит в том, чтобы начать с того, что H является тривиальной группой и добавляет элементы множества H *
= {h в G: h k!= g i g j -1 для всех i, j, k; я!= j} к генераторам H до тех пор, пока вы не сможете больше добавить (т.е. до тех пор, пока он больше не будет подгруппой). Тогда H является максимальной подгруппой в G такой, что H является подмножеством H *
. Если вы можете получить все такие H (и иметь их достаточно большими), то подгруппа, которую вы ищете, должна быть одной из них.
Этот подход будет работать лучше при больших n.
В любом случае неэкспоненциально-временный подход не очевиден.
EDIT: Я только что нашел здесь эту тему: http://en.wikipedia.org/wiki/Wikipedia:Reference_desk/Archives/Mathematics/2009_April_18#Is_a_given_set_of_group_elements_a_set_of_coset_representatives.3F p >
Ответ 3
Несколько менее грубый подход состоял бы в том, чтобы перечислить все подгруппы индекса n, как предположил Ил-Бхима, а затем для каждой подгруппы проверить каждый x i * x j -1 чтобы узнать, содержится ли он в подгруппе.
Элементы x1,..., xn будут представителями для подгруппы тогда и только тогда, когда EVERY product
x i * x j -1 где (i!= j)
НЕ находится в подгруппе.
Этот тип проверки кажется более простым, чем создание всех смежных классов, и вычислительно быстрее.