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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Пример)
(Как-то так оформил тикет)
Строка 3: Строка 3:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
Умножением (композицией) перестановок называется перестановка, получающаяся по следующему правилу:
+
'''Умножением''' (композицией) перестановок,представленных в виде целочисленных функций <tex> a_i </tex>, где <tex>i - </tex> позиция элемента, а <tex> a_i </tex> — его номер, называется перестановка, получаемая по следующему правилу:
  
 
<tex> (ab)_i = a_{b_i} </tex>
 
<tex> (ab)_i = a_{b_i} </tex>
Строка 26: Строка 26:
 
===Пример===
 
===Пример===
  
<tex> \varphi(1)=\begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 2 & 5 & 6 & 3 & 1 & 4 \end{pmatrix} = (1,2,5)(3,6,4) </tex> 
+
<tex> a = {2, 5, 6, 3, 1, 4} = (1, 2, 5)(3, 6, 4) </tex>
   
 
<tex> \varphi(2)=\begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 4 & 1 & 3 & 6 & 5 & 2 \end{pmatrix} = (1,4,6,2)(3)(5)</tex>
 
  
<tex> (\varphi(1)\varphi(2))_i=</tex>
+
<tex> b = {4, 1, 3, 6, 5, 2} = (1, 4, 6, 5) </tex>
<tex> \begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 2 & 5 & 6 & 3 & 1 & 4 \end{pmatrix}</tex> 
+
 
<tex> \begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 4 & 1 & 3 & 6 & 5 & 2 \end{pmatrix} =  
+
<tex> ab = {a_4, a_1, a_3, a_6, a_5, a_2} = {3, 2, 6, 4, 1, 5} </tex>
\begin{pmatrix} 4 & 1 & 3 & 6 & 5 & 2 \\ 3 & 2 & 6 & 4 & 1 & 5 \end{pmatrix}\begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 4 & 1 & 3 & 6 & 5 & 2 \end{pmatrix} =</tex>
 
<tex>\begin{pmatrix} 1 & 2 & 3 & 4 & 5 & 6 \\ 3 & 2 & 6 & 4 & 1 & 5 \end{pmatrix}</tex>
 
  
 
или
 
или
  
<tex> (\varphi(1)\varphi(2))_i= (1,2,5)(3,6,4)(1,4,6,2) =(1,3,6,5)(2)(4) = (1,3,6,5) </tex>
+
<tex> ab = (1, 2, 5)(3, 6, 4)(1, 4, 6, 5) = (1, 3, 6, 5)(2)(4) = (1, 3, 6, 5) </tex>
  
 
==Обратная перестановка==
 
==Обратная перестановка==
Строка 45: Строка 41:
 
|definition=
 
|definition=
  
Обратной перестановкой <tex> a^{-1} </tex> к перестановке <tex> a </tex> называется такая перестановка, что:
+
'''Обратной''' перестановкой <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>
Строка 54: Строка 50:
 
|id = def_involution
 
|id = def_involution
 
|definition=
 
|definition=
Перестановка, равная своей обратной, называется инволюцией:
+
Перестановка, равная своей обратной, называется '''инволюцией''' (англ. involution):
 +
 
 +
<tex> a_i = a^{-1}_i \Rightarrow (aa ^{-1})_i = (aa)_i = a_{a_i} = i </tex>, то есть её представление в виде циклов не содержит цикла, размер которого больше двух.
 +
 
 +
}}
  
<tex> a_i = a^{-1}_i \Rightarrow (aa ^{-1})_i = (aa)_i = a_{a_i} = i </tex>
+
{{Утверждение
 +
|statement=
 +
Количество инволюционных перестановок длины <tex>n\geqslant 2 </tex> может быть получено по формуле: <tex> I(n) = I(n-1)+(n-1)\cdot I(n-2) </tex>, где <tex> I(0) = I(1) = 1. </tex>
 +
|proof=
 +
Существует <tex> I(n-1)</tex> инволюций, при <tex>a_n = n </tex>. Число инволюций, содержащих цикл <tex>(j,n)</tex>, где <tex> 1\leq j\leq n-1 </tex>, <tex> (n-1)\cdot I(n-2)</tex>. Имеем, что <tex> I(n) = I(n-1)+(n-1)\cdot I(n-2). </tex>
  
 +
}}
 +
 +
{{Определение
 +
|definition=
 +
 +
Перестановка, содержащая чётное количество инверсий, называется '''чётной''', в противном случае <tex> - </tex> '''нечётной'''.
 +
 +
}}
 +
 +
{{Определение
 +
|definition=
 +
 +
Перестановка, меняющая местами только два элемента, называется '''транспозицией''' (англ. transposition).
 +
 +
}}
 +
 +
{{Лемма|id=lemma1
 +
|statement=
 +
 +
Если в перестановке, длина которой больше <tex>1</tex>, поменять местами <tex> 2 </tex> элемента, то её четность изменится.
 +
 +
|proof=
 +
 +
Для элементов, стоящих рядом, истинность утверждения очевидна: их взаимное расположение относительно других элементов не изменилось, а транспозиция этих чисел изменяет количество инверсий на единицу. Пусть теперь между перемещаемыми элементами <tex> a </tex> и <tex> b </tex> находятся <tex> d </tex> элементов, то есть перестановка имеет вид: <tex> ..., a, s_1, s_2, ..., s_d, b, ... </tex>. Сначала поменяем последовательно  <tex> a </tex> с числами <tex> s_1, s_2, ..., s_d, b </tex>, а затем число <tex>b</tex> с рядом стоящими <tex> s_d, s_d-1, ..., s_1 </tex>. В итоге мы выполним <tex> 2\cdot d + 1 </tex> транспозиций рядом стоящих элементов, то есть чётность перестановки изменится.
 
}}
 
}}
  
Строка 65: Строка 93:
  
 
  for(i = 0; i < n; i++)
 
  for(i = 0; i < n; i++)
{
+
    for(j = 0; j < n; j++)
        for(j = 0; j < n; j++)
+
      if(p[j] == i + 1)  
        {
+
          op[i] = j + 1;
            if(p[j] == i + 1)  
 
            {
 
                op[i] = j + 1;
 
            }
 
        }
 
}
 
  
 
При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах.
 
При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах.
Строка 83: Строка 105:
 
     boolean[] visited = new boolean[n];
 
     boolean[] visited = new boolean[n];
 
     for (int i = 0; i < n; ++i)  
 
     for (int i = 0; i < n; ++i)  
    {
+
      if (visited[i]) continue;
        if (visited[i]) continue;
+
      // Reverse the cycle starting at i
        // Reverse the cycle starting at i
+
      int last = i;
        int last = i;
+
      int j = p[i];
        int j = p[i];
+
      while (true)  
        while (true)  
+
          int next = p[j];
        {
+
          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) break;
+
          j = next;
            last = j;
 
            j = next;
 
        }     
 
    }
 
  
 
==Группа перестановок==
 
==Группа перестановок==
Строка 103: Строка 121:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
Группой называется множество <tex> M </tex> с заданной на нём бинарной операцией <tex> \circ: МM\times M \longrightarrow M</tex>, удовлетворяющей следующим свойствам:
+
'''Группой''' называется множество <tex> M </tex> с заданной на нём бинарной операцией <tex> \circ: МM\times M \longrightarrow M</tex>, удовлетворяющей следующим свойствам:
  
 
# <tex> (g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3) </tex> — ассоциативность соответствующей бинарной операции.
 
# <tex> (g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3) </tex> — ассоциативность соответствующей бинарной операции.
Строка 121: Строка 139:
  
 
[[Теорема Кэли]] утверждает, что любая конечная группа изоморфна подгруппе некоторой группе перестановок.
 
[[Теорема Кэли]] утверждает, что любая конечная группа изоморфна подгруппе некоторой группе перестановок.
 +
 +
==Группа чётных перестановок==
 +
 +
{{Определение
 +
|definition=
 +
'''Группа чётных перестановок''' <tex> A_n </tex> является подгруппой симметричной группы перестановок, образованной всеми чётными перестановками. Композиция не выводит из группы, так как если представить каждую перестановку группы в виде чётного числа транспозиций и перемножить их, чётность не изменится.
 +
}}
 +
 +
{{Утверждение
 +
|statement=
 +
Количество чётных перестановок длины <tex> n </tex> равно количеству нечётных и равно <tex> \dfrac{n!}{2} </tex>
 +
|proof=
 +
Пусть число число чётных перестановок  <tex> - </tex>  <tex> a</tex>, а нечётных <tex> - </tex>  <tex> b </tex>. Сделаем транспозицию <tex> (1, 2) </tex> для всех чётных перестановок. Получим <tex> a </tex> нечётных различных перестановок, то есть <tex> a\leqslant b </tex>. Проделаем то же самое с нечётными перестановками. Получим, что <tex> b\leqslant a </tex>, то есть <tex> a = b </tex> и <tex> a = \dfrac{n!}{2} </tex>.
 +
}}
 +
 +
==Подстановка==
 +
 +
{{Определение
 +
|definition=
 +
'''Подстановкой''' (англ. substitution) называется всякое взаимно однозначное отображение <tex> A </tex> множества первых <tex>n</tex> натуральных чисел на себя. 
 +
 +
}}
 +
 +
Всякая подстановка A может быть записана при помощи двух перестановок, подписанных одна под другой:
 +
 +
<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>.
 +
 +
  
 
==Источники и литература==
 
==Источники и литература==
* [http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0) инволюция (Wikipedia, the free encyclopedia)]
+
* https://en.wikipedia.org/wiki/Involution_(mathematics)
 
* Н. И. Яцкин, Алгебра Теоремы и алгоритмы, Издательство «Ивановский государственный университет», 2006 г., стр. 161
 
* Н. И. Яцкин, Алгебра Теоремы и алгоритмы, Издательство «Ивановский государственный университет», 2006 г., стр. 161
  
 
[[Категория: Дискретная математика и алгоритмы]]
 
[[Категория: Дискретная математика и алгоритмы]]
 
[[Категория: Комбинаторика]]
 
[[Категория: Комбинаторика]]

Версия 23:02, 31 декабря 2017

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

Определение:
Умножением (композицией) перестановок,представленных в виде целочисленных функций [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]

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

Определение:
Обратной перестановкой [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]

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

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

for(i = 0; i < n; i++)
   for(j = 0; j < n; j++)
      if(p[j] == i + 1) 
         op[i] = j + 1;

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

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

Отсюда следует более эффективный алгоритм (приведена in-place версия):

   boolean[] visited = new boolean[n];
   for (int i = 0; i < n; ++i) 
      if (visited[i]) continue;
      // Reverse the cycle starting at i
      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]
Свойства 1 и 3 доказаны выше, а в качестве нейтрального элемента выступает тождественная перестановка ([math] \pi_i = i [/math]).
[math]\triangleleft[/math]

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

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

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

Определение:
Группа чётных перестановок [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] натуральных чисел на себя.


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

[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].


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