Прямая программа
В информатике неофициально прямолинейная программа представляет собой программу , которая не содержит ни одного цикла или какого-либо теста и состоит из последовательности шагов, каждая из которых применяет операцию к ранее вычисленным элементам.
Данная статья посвящена случаю, когда разрешенными операциями являются операции группы , то есть умножение и инверсия. Более конкретно, прямая программа ( SLP ) для конечной группы G = ⟨ S ⟩ — это конечная последовательность L элементов G такая, что каждый элемент L либо принадлежит S , является обратным предыдущему элементу, либо произведением двух предыдущих элементов. SLP L Говорят, что вычисляет групповой элемент g G G , если g G L , где g кодируется словом из S и обратным ему словом.
Интуитивно понятно, что SLP, вычисляющая некоторый g ∈ G, является эффективным способом хранения g как группового слова над S ; заметьте, что если g создается за i шагов, длина слова g может быть экспоненциальной по i , но длина соответствующего SLP линейна по i . Это имеет важные приложения в теории вычислительных групп , используя SLP для эффективного кодирования элементов группы в виде слов в заданном порождающем наборе.
Прямолинейные программы были представлены Бабаем и Семереди в 1984 году. [1] как инструмент для изучения вычислительной сложности некоторых свойств группы матриц. Бабай и Семереди доказывают, что каждый элемент конечной группы G имеет SLP длины O (log 2 | G |) в каждом порождающем наборе.
Эффективное решение конструктивной проблемы принадлежности имеет решающее значение для многих теоретико-групповых алгоритмов. С точки зрения SLP это можно сформулировать следующим образом. Для конечной группы G = ⟨ S ⟩ и g ∈ G найдите программу прямых, g над S. вычисляющую Проблема конструктивного членства часто изучается в контексте групп «черный ящик» . Элементы кодируются битовыми строками фиксированной длины. три оракула Для теоретико-групповых функций умножения, инверсии и проверки равенства с единицей предусмотрены . Алгоритм черного ящика — это алгоритм, который использует только эти оракулы. Следовательно, прямолинейные программы для групп «черных ящиков» представляют собой алгоритмы «черного ящика».
Явные прямолинейные программы даны для множества конечных простых групп в онлайн- атласе конечных групп .
Определение
[ редактировать ]Неформальное определение
[ редактировать ]Пусть G — конечная группа и S подмножество — ее . Последовательность L = ( g 1 ,..., g m ) элементов G является прямой программой над S, если каждый g i может быть получен по одному из следующих трех правил:
- г я € S
- г я = г j g k для некоторого j , k < i
- г я = г −1
j для некоторого j < i .
Прямая стоимость c ( g | S ) элемента g ∈ G — это длина кратчайшей прямой программы над S, вычисляющей g . Стоимость бесконечна, если g не находится в подгруппе, порожденной S .
Прямолинейная программа аналогична выводу в логике предикатов. Элементы S соответствуют аксиомам, а групповые операции соответствуют правилам вывода.
Формальное определение
[ редактировать ]Пусть G — конечная группа и S подмножество — ее . Прямая программа длины m над S, вычисляющая некоторый g ∈ G, представляет собой последовательность выражений ( w 1 ,..., w m ) такую, что для каждого i , wi является символом некоторого элемента S , или w i = ( w j ,-1) для некоторых j < i , или w i = ( w j , w k ) для некоторых j , k < i , таких, что w m принимает значение g при вычислении в G в очевидном образом.
Исходное определение, представленное в [2] требует, чтобы G =⟨ S ⟩. Представленное выше определение является общим обобщением этого понятия.
С вычислительной точки зрения формальное определение прямолинейной программы имеет некоторые преимущества. Во-первых, последовательность абстрактных выражений требует меньше памяти, чем термы в порождающем наборе. Во-вторых, это позволяет строить прямолинейные программы в одном представлении G и вычислять их в другом. Это важная особенность некоторых алгоритмов. [2]
Примеры
[ редактировать ]Группа диэдра D 12 — это группа симметрий шестиугольника. Его можно создать поворотом ρ на 60 градусов и одним отражением λ. Крайний левый столбец ниже представляет собой программу прямых линий для λρ 3 :
|
|
В S6 , группе перестановок шести букв, мы можем взять α=(1 2 3 4 5 6) и β=(1 2) в качестве образующих. Самый левый столбец здесь представляет собой пример линейной программы для вычисления (1 2 3)(4 5 6):
|
|
|
Приложения
[ редактировать ]Краткие описания конечных групп . Прямые программы можно использовать для изучения сжатия конечных групп с помощью логики первого порядка . Они предоставляют инструмент для построения «коротких» предложений, описывающих G (т.е. намного короче, чем | G |). Более подробно, SLP используются для доказательства того, что каждая конечная простая группа имеет описание первого порядка длины O (log | G |), а каждая конечная группа G имеет описание первого порядка длины O (log 3 | Г |). [3]
Прямые программы вычисления порождающих множеств максимальных подгрупп конечных простых групп . Онлайн-АТЛАС представлений конечных групп [4] предоставляет абстрактные прямые программы для вычисления порождающих наборов максимальных подгрупп для многих конечных простых групп.
Пример : группа Sz(32), принадлежащая к бесконечному семейству групп Сузуки , имеет ранг 2 через генераторы a и b , где a имеет порядок 2, b имеет порядок 4, ab имеет порядок 5, ab 2 имеет порядок 25 и абаб 2 аб 3 имеет порядок 25. Ниже представлена прямая программа, которая вычисляет порождающий набор для максимальной подгруппы E 32 ·E 32 ⋊C 31 . Эту прямую программу можно найти в онлайн-АТЛАСЕ представлений конечных групп.
|
|
Теорема о достижимости
[ редактировать ]Теорема о достижимости утверждает, что для конечной группы G, порожденной S , каждый g ∈ G имеет максимальную стоимость (1 + lg| G |) 2 . Это можно понимать как ограничение того, насколько сложно сгенерировать элемент группы из генераторов.
Здесь функция lg( x ) является целочисленной версией функции логарифма: для k ≥1 пусть lg( k ) = max{ r : 2 р ≤ k }.
Идея доказательства состоит в том, чтобы построить набор Z = { z 1 ,..., z s }, который будет работать как новый порождающий набор ( s будет определен в процессе). Обычно оно больше S , но любой элемент G можно выразить словом длиной не более 2| Я | над З. Множество Z строится путем индуктивного определения возрастающей последовательности множеств K ( i ).
Пусть K ( i ) = { z 1 1 · я 2 2 ·...· день я α я : α j ∈ {0,1}}, где z i — элемент группы, добавленный к Z на i -м шаге. Пусть c ( i ) обозначает длину кратчайшей прямой программы, содержащей Z ( i ) = { z 1 ,..., z i }. Пусть K (0) = {1 G } и c (0)=0. Определим множество Z рекурсивно:
- Если К ( я ) −1 K ( i ) = G , объявите , что s принимает значение i и останавливается.
- В противном случае выберите какой-нибудь z i +1 ∈ G \ K ( i ) −1 K ( i ) (который непустой), который минимизирует «увеличение стоимости» c ( i +1) − c ( i ).
Благодаря этому процессу Z определяется таким образом, что любой g ∈ G можно записать как элемент K ( i ) −1 K ( i что эффективно упрощает генерацию из Z. ) ,
Теперь нам нужно проверить следующее утверждение, чтобы гарантировать, что процесс завершается за lg(| G |) множество шагов:
Утверждение 1. Если я < s , то | К ( я +1) | = 2| К ( я ) | .
Сразу видно, что | К ( я +1) | ≤ 2| К ( я ) | . Теперь предположим, что существует противоречие, что | К ( я +1) | < 2| К ( я ) | . По принципу «ячейки» существуют k 1 , k 2 ∈ K ( i +1) с k 1 = z 1 1 · я 2 2 ·...· д я +1 α я +1 = г 1 б 1 · я 2 б 2 ·...· д я +1 β я +1 = k 2 для некоторых α j , β j ∈ {0,1}. Пусть r — наибольшее целое число такое, что α r ≠ β r . Предположим, что WLOG α r = 1. Отсюда следует, что z r = z p − α п · з п -1 − α п -1 ·...· я 1 − 1 · я 1 б 1 · я 2 б 2 ·...· z q β q , с p , q < r . Следовательно, z r ∈ K ( r −1) −1 K ( r − 1), противоречие.
Следующее утверждение используется, чтобы показать, что стоимость каждого элемента группы находится в пределах требуемой границы.
Пункт 2 — c ( i ) ≤ i 2 - я .
Поскольку c (0)=0, достаточно показать, что c ( i +1) - c ( i ) ≤ 2 i . Граф Кэли группы G связен, и если i < s , K ( i ) −1 K ( i ) ≠ G , то существует элемент вида g 1 · g 2 ∈ G \ K ( i ) −1 K ( я ) с г 1 ∈ K ( я ) −1 K ( я ) и грамм 2 ∈ S .
требуется не более 2 i шагов. Для создания g 1 ∈ K ( i ) −1 К ( я ). Генерировать элемент максимальной длины нет смысла, так как он тождественен. Следовательно, достаточно 2 i −1 шагов. Чтобы создать g 1 · g 2 ∈ G \ K ( i ) −1 K ( i ), 2 i шагов достаточно.
Теперь мы закончим теорему. Поскольку К ( с ) −1 K ( s ) = G , любой g ∈ G можно записать в виде k −1
1 · k 2 с k −1
1 , k 2 ∈ K ( s ). По следствию 2 нам потребуется не более s 2 − s шагов для генерации Z ( s ) = Z и не более 2 s − 1 шагов для генерации g из Z ( s ).
Следовательно, c ( g | S ) ≤ s 2 + s − 1 ≤ lg 2 | G | + lg| G | − 1 ≤ (1 + lg| G |) 2 .
Ссылки
[ редактировать ]- ^ Бабай, Ласло и Эндре Семереди. «О сложности матричных групповых задач I». Основы информатики, 1984. 25-й ежегодный симпозиум по основам информатики. ИЭЭЭ, 1984 г.
- ^ Перейти обратно: а б Акос Сересс. (2003). Алгоритмы группы перестановок. [Онлайн]. Кембриджские трактаты по математике. (№ 152). Кембридж: Издательство Кембриджского университета.
- ^ Нис, Андре; Палатка, Катрин (2017). «Описание конечных групп короткими предложениями первого порядка» . Израильский математический журнал . 221 : 85–115. arXiv : 1409.8390 . дои : 10.1007/s11856-017-1563-2 .
- ^ «АТЛАС представлений конечных групп – V3» .