Умножение перестановок, обратная перестановка, группа перестановок — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Как-то так оформил тикет)
(добавлена часть англ. терминов, исправлен псевдокод, ВСЕ цифры и переменные отныне добавлены в tex, добавлен пример группы подстановок)
Строка 41: Строка 41:
 
|definition=
 
|definition=
  
'''Обратной''' перестановкой <tex> a^{-1} </tex> к перестановке <tex> a </tex> называется такая перестановка, что:
+
'''Обратной перестановкой''' (англ. an inverse permutation) <tex> a^{-1} </tex> к перестановке <tex> a </tex> называется такая перестановка, что:
  
 
<tex> (a^{-1}a)_i = (aa^{-1})_i = i </tex>
 
<tex> (a^{-1}a)_i = (aa^{-1})_i = i </tex>
Строка 90: Строка 90:
 
===Получение обратной перестановки===
 
===Получение обратной перестановки===
  
Пусть в массиве p[i] содержится перестановка, тогда в массиве op[i], после выполнения алгоритма, будет содержаться обратная перестановка.
+
Пусть в массиве <tex>p[i]</tex> содержится перестановка, тогда в массиве <tex>rep[i]</tex>, после выполнения алгоритма, будет содержаться обратная перестановка.
 
+
'''fun''' reversePerm(p : '''int[]''', rep : '''int[]''')
for(i = 0; i < n; i++)
+
    '''int''' n = p.size;
    for(j = 0; j < n; j++)
+
    '''for''' i = 0 '''to''' n
      if(p[j] == i + 1)
+
      '''for''' j = 0 '''to''' n
          op[i] = j + 1;
+
          '''if''' p[j] == i + 1
 +
            rep[i] = j + 1;
  
 
При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах.
 
При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах.
Строка 101: Строка 102:
 
<tex> a = (1, 3, 2), (4, 5) \Rightarrow a^{-1} = (1, 2, 3), (4, 5) </tex>
 
<tex> a = (1, 3, 2), (4, 5) \Rightarrow a^{-1} = (1, 2, 3), (4, 5) </tex>
  
Отсюда следует более эффективный алгоритм (приведена in-place версия):
+
Отсюда следует более эффективный алгоритм, где <tex> visited[] </tex> - массив посещённых элементов:
 
+
     '''fun''' reversePerm (visited : '''boolean[]''', p : '''int[]''', rep : '''int[]''')
     boolean[] visited = new boolean[n];
+
      '''int''' n = p.size;
    for (int i = 0; i < n; ++i)
+
      '''for''' i = 0 '''to''' n
      if (visited[i]) continue;
+
          '''if''' visited[i]
      // Reverse the cycle starting at i
+
            '''continue''';
      int last = i;
+
          // инвертировать цикл, начинающийся в позиции <tex> i </tex>
      int j = p[i];
+
          '''int''' last = i;
      while (true)
+
          '''int''' j = p[i];
          int next = p[j];
+
          '''while''' '''true'''
          p[j] = last;
+
            '''int''' next = p[j];
          visited[j] = true;
+
            p[j] = last;
          if (j == i) break;
+
            visited[j] = '''true''';
          last = j;
+
            '''if''' j == i
          j = next;
+
                '''break''';
 +
            last = j;
 +
            j = next;
  
 
==Группа перестановок==
 
==Группа перестановок==
Строка 133: Строка 136:
 
Множество перестановок с <tex> n </tex> элементами с операцией умножения является группой (часто группу перестановок называют симметрической, и обозначают <tex> S_n </tex>).
 
Множество перестановок с <tex> n </tex> элементами с операцией умножения является группой (часто группу перестановок называют симметрической, и обозначают <tex> S_n </tex>).
 
|proof=
 
|proof=
Свойства 1 и 3 доказаны выше, а в качестве нейтрального элемента выступает тождественная перестановка (<tex> \pi_i = i </tex>).  
+
Свойства <tex>1</tex> и <tex>3</tex> доказаны выше, а в качестве нейтрального элемента выступает тождественная перестановка (<tex> \pi_i = i </tex>).  
 
}}
 
}}
  
Строка 144: Строка 147:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
'''Группа чётных перестановок''' <tex> A_n </tex> является подгруппой симметричной группы перестановок, образованной всеми чётными перестановками. Композиция не выводит из группы, так как если представить каждую перестановку группы в виде чётного числа транспозиций и перемножить их, чётность не изменится.
+
'''Группа чётных перестановок''' (англ. alternating group)<tex> A_n </tex> является подгруппой симметричной группы перестановок, образованной всеми чётными перестановками. Композиция не выводит из группы, так как если представить каждую перестановку группы в виде чётного числа транспозиций и перемножить их, чётность не изменится.
 
}}  
 
}}  
  
Строка 154: Строка 157:
 
}}
 
}}
  
==Подстановка==
+
==Группа подстановок==
  
 
{{Определение
 
{{Определение
Строка 162: Строка 165:
 
}}
 
}}
  
Всякая подстановка A может быть записана при помощи двух перестановок, подписанных одна под другой:
+
Всякая подстановка <tex>A</tex> может быть записана при помощи двух перестановок, подписанных одна под другой:
  
 
<tex> A = \begin{pmatrix} q_1 & q_2 & ... & q_n \\ a_{k_1} & a_{k_2} & ... & a_{k_n} \end{pmatrix} </tex>
 
<tex> A = \begin{pmatrix} q_1 & q_2 & ... & q_n \\ a_{k_1} & a_{k_2} & ... & a_{k_n} \end{pmatrix} </tex>
  
 
Где через <tex> a_{k_i} </tex> обозначается то число, в которое при подстановке <tex> A </tex> переходит число <tex> q_i </tex>.
 
Где через <tex> a_{k_i} </tex> обозначается то число, в которое при подстановке <tex> A </tex> переходит число <tex> q_i </tex>.
 +
 +
{{Определение
 +
|definition=
 +
'''Группой подстановок''' (англ. group of substitutions) называется некоторая совокупность подстановок, замкнутая относительно композиции отображений, определяющей бинарную операцию для подстановок на одном и том же множестве.
 +
 +
}}
  
  

Версия 22:14, 3 января 2018

Умножение перестановок

Определение:
Умножением (композицией) перестановок,представленных в виде целочисленных функций [math] a_i [/math], где [math]i - [/math] позиция элемента, а [math] a_i [/math] — его номер, называется перестановка, получаемая по следующему правилу: [math] (ab)_i = a_{b_i} [/math]


Утверждение:
Умножение перестановок ассоциативно: [math] (a(bc))_i = ((ab)c)_i [/math]
[math]\triangleright[/math]

Доказывается простым раскрытием скобок.

  1. [math] (a(bc))_i = a_{(bc)_i} = a_{b_{c_i}} [/math]
  2. [math] ((ab)c)_i = (ab)_{c_i} = a_{b_{c_i}} [/math]
[math]\triangleleft[/math]

Пример

[math] a = {2, 5, 6, 3, 1, 4} = (1, 2, 5)(3, 6, 4) [/math]

[math] b = {4, 1, 3, 6, 5, 2} = (1, 4, 6, 5) [/math]

[math] ab = {a_4, a_1, a_3, a_6, a_5, a_2} = {3, 2, 6, 4, 1, 5} [/math]

или

[math] ab = (1, 2, 5)(3, 6, 4)(1, 4, 6, 5) = (1, 3, 6, 5)(2)(4) = (1, 3, 6, 5) [/math]

Обратная перестановка

Определение:
Обратной перестановкой (англ. an inverse permutation) [math] a^{-1} [/math] к перестановке [math] a [/math] называется такая перестановка, что: [math] (a^{-1}a)_i = (aa^{-1})_i = i [/math]


Определение:
Перестановка, равная своей обратной, называется инволюцией (англ. involution): [math] a_i = a^{-1}_i \Rightarrow (aa ^{-1})_i = (aa)_i = a_{a_i} = i [/math], то есть её представление в виде циклов не содержит цикла, размер которого больше двух.


Утверждение:
Количество инволюционных перестановок длины [math]n\geqslant 2 [/math] может быть получено по формуле: [math] I(n) = I(n-1)+(n-1)\cdot I(n-2) [/math], где [math] I(0) = I(1) = 1. [/math]
[math]\triangleright[/math]
Существует [math] I(n-1)[/math] инволюций, при [math]a_n = n [/math]. Число инволюций, содержащих цикл [math](j,n)[/math], где [math] 1\leq j\leq n-1 [/math], [math] (n-1)\cdot I(n-2)[/math]. Имеем, что [math] I(n) = I(n-1)+(n-1)\cdot I(n-2). [/math]
[math]\triangleleft[/math]


Определение:
Перестановка, содержащая чётное количество инверсий, называется чётной, в противном случае [math] - [/math] нечётной.


Определение:
Перестановка, меняющая местами только два элемента, называется транспозицией (англ. transposition).


Лемма:
Если в перестановке, длина которой больше [math]1[/math], поменять местами [math] 2 [/math] элемента, то её четность изменится.
Доказательство:
[math]\triangleright[/math]
Для элементов, стоящих рядом, истинность утверждения очевидна: их взаимное расположение относительно других элементов не изменилось, а транспозиция этих чисел изменяет количество инверсий на единицу. Пусть теперь между перемещаемыми элементами [math] a [/math] и [math] b [/math] находятся [math] d [/math] элементов, то есть перестановка имеет вид: [math] ..., a, s_1, s_2, ..., s_d, b, ... [/math]. Сначала поменяем последовательно [math] a [/math] с числами [math] s_1, s_2, ..., s_d, b [/math], а затем число [math]b[/math] с рядом стоящими [math] s_d, s_d-1, ..., s_1 [/math]. В итоге мы выполним [math] 2\cdot d + 1 [/math] транспозиций рядом стоящих элементов, то есть чётность перестановки изменится.
[math]\triangleleft[/math]

Получение обратной перестановки

Пусть в массиве [math]p[i][/math] содержится перестановка, тогда в массиве [math]rep[i][/math], после выполнения алгоритма, будет содержаться обратная перестановка.

fun reversePerm(p : int[], rep : int[])
   int n = p.size;
   for i = 0 to n
      for j = 0 to n
         if p[j] == i + 1
            rep[i] = j + 1;

При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах.

[math] a = (1, 3, 2), (4, 5) \Rightarrow a^{-1} = (1, 2, 3), (4, 5) [/math]

Отсюда следует более эффективный алгоритм, где [math] visited[] [/math] - массив посещённых элементов:

   fun reversePerm (visited : boolean[], p : int[], rep : int[])
      int n = p.size;
      for i = 0 to n
         if visited[i]
            continue;
         // инвертировать цикл, начинающийся в позиции [math] i [/math]
         int last = i;
         int j = p[i];
         while true 
            int next = p[j];
            p[j] = last;
            visited[j] = true;
            if j == i
               break;
            last = j;
            j = next;

Группа перестановок

Определение:
Группой называется множество [math] M [/math] с заданной на нём бинарной операцией [math] \circ: МM\times M \longrightarrow M[/math], удовлетворяющей следующим свойствам:
  1. [math] (g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3) [/math] — ассоциативность соответствующей бинарной операции.
  2. Существование нейтрального элемента [math] e [/math] относительно операции [math] \circ [/math], такого, что для любого [math] g \in M: g \circ e = e \circ g = g [/math]
  3. Для любого [math] g \in M [/math]существует [math] g^{-1} \in M[/math] называемый обратным элементом, такой, что [math]: g \circ g^{-1} = g^{-1} \circ g = e [/math]


Утверждение:
Множество перестановок с [math] n [/math] элементами с операцией умножения является группой (часто группу перестановок называют симметрической, и обозначают [math] S_n [/math]).
[math]\triangleright[/math]
Свойства [math]1[/math] и [math]3[/math] доказаны выше, а в качестве нейтрального элемента выступает тождественная перестановка ([math] \pi_i = i [/math]).
[math]\triangleleft[/math]

Мощность симметрической группы: [math]\left\vert S_n \right\vert = n![/math]

Теорема Кэли утверждает, что любая конечная группа изоморфна подгруппе некоторой группе перестановок.

Группа чётных перестановок

Определение:
Группа чётных перестановок (англ. alternating group)[math] A_n [/math] является подгруппой симметричной группы перестановок, образованной всеми чётными перестановками. Композиция не выводит из группы, так как если представить каждую перестановку группы в виде чётного числа транспозиций и перемножить их, чётность не изменится.


Утверждение:
Количество чётных перестановок длины [math] n [/math] равно количеству нечётных и равно [math] \dfrac{n!}{2} [/math]
[math]\triangleright[/math]
Пусть число число чётных перестановок [math] - [/math] [math] a[/math], а нечётных [math] - [/math] [math] b [/math]. Сделаем транспозицию [math] (1, 2) [/math] для всех чётных перестановок. Получим [math] a [/math] нечётных различных перестановок, то есть [math] a\leqslant b [/math]. Проделаем то же самое с нечётными перестановками. Получим, что [math] b\leqslant a [/math], то есть [math] a = b [/math] и [math] a = \dfrac{n!}{2} [/math].
[math]\triangleleft[/math]

Группа подстановок

Определение:
Подстановкой (англ. substitution) называется всякое взаимно однозначное отображение [math] A [/math] множества первых [math]n[/math] натуральных чисел на себя.


Всякая подстановка [math]A[/math] может быть записана при помощи двух перестановок, подписанных одна под другой:

[math] A = \begin{pmatrix} q_1 & q_2 & ... & q_n \\ a_{k_1} & a_{k_2} & ... & a_{k_n} \end{pmatrix} [/math]

Где через [math] a_{k_i} [/math] обозначается то число, в которое при подстановке [math] A [/math] переходит число [math] q_i [/math].


Определение:
Группой подстановок (англ. group of substitutions) называется некоторая совокупность подстановок, замкнутая относительно композиции отображений, определяющей бинарную операцию для подстановок на одном и том же множестве.



Источники и литература