Научная статья на тему 'Нализ и синтез процедуры порождения кумулятивных последовательностей'

Нализ и синтез процедуры порождения кумулятивных последовательностей Текст научной статьи по специальности «Математика»

CC BY
141
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КАСКАДНЫЙ МЕТОД / ПРОЦЕДУРА ПОРОЖДЕНИЯ КУМУЛЯТИВНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ / АНАЛИЗ / СИНТЕЗ / CASCADE METHOD / A PROCEDURE OF GENERATING A CUMULATIVE SEQUENCE / ANALYSIS / SYNTHESIS

Аннотация научной статьи по математике, автор научной работы — Румбешт В.В.

Статья посвящена решению задач анализа и синтеза процедуры порождения кумулятивной последовательности, используемой в каскадном методе. В этой статье ставится и решается общая задача заполнения таблицы Кэли по как можно меньшему количеству наблюдений за абстрактным устройством, реализующем операцию циклической группы. Полученные результаты применяются для анализа кумулятивной последовательности и реализации порождающей ее процедуры. На основании обобщения подхода к реализации этой процедуры в статье предлагается методика синтеза, позволяющая реализовать в этой процедуре как можно больше допустимых операций.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article is devoted to solving problems of analysis and synthesis procedure for generating a cumulative sequence used in a cascade method. In this article, we posed and solved the general problem of filling the table Cayley the fewest number of observations of an abstract device that implements the operation of a cyclic group. The results are used to analyze the cumulative sequence of generating and implementing its procedures. Based on a generalized approach to the implementation of this procedure in the article offers a method of synthesis that allows to realize in this procedure as much as possible admissible operations.

Текст научной работы на тему «Нализ и синтез процедуры порождения кумулятивных последовательностей»

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ

УДК 004.421.5

АНАЛИЗ И СИНТЕЗ ПРОЦЕДУРЫ ПОРОЖДЕНИЯ КУМУЛЯТИВНЫХ

ПОСЛЕДОВАТЕЛЬНОСТЕЙ

ANALYSIS AND SYNTHESIS PROCEDURES FOR THE GENERATION OF

CUMULATIVE SEQUENCES

В.В. Румбешт V.V. Rumbesht

Белгородский государственный национальный исследовательский университет, Россия, 308015, Белгород, ул. Победы, 85

Belgorod State National Research University, 85 Pobeda St, Belgorod, 308015, Russia

e-mail: rumbesht@bsu.edu.ru

Аннотация. Статья посвящена решению задач анализа и синтеза процедуры порождения кумулятивной последовательности, используемой в каскадном методе. В этой статье ставится и решается общая задача заполнения таблицы Кэли по как можно меньшему количеству наблюдений за абстрактным устройством, реализующем операцию циклической группы. Полученные результаты применяются для анализа кумулятивной последовательности и реализации порождающей ее процедуры. На основании обобщения подхода к реализации этой процедуры в статье предлагается методика синтеза, позволяющая реализовать в этой процедуре как можно больше допустимых операций.

Resume. The article is devoted to solving problems of analysis and synthesis procedure for generating a cumulative sequence used in a cascade method. In this article, we posed and solved the general problem of filling the table Cayley the fewest number of observations of an abstract device that implements the operation of a cyclic group. The results are used to analyze the cumulative sequence of generating and implementing its procedures. Based on a generalized approach to the implementation of this procedure in the article offers a method of synthesis that allows to realize in this procedure as much as possible admissible operations.

Ключевые слова: каскадный метод, процедура порождения кумулятивных последовательностей, анализ, синтез.

Keywords: cascade method, a procedure of generating a cumulative sequence, analysis, synthesis.

Введение

Одной из основных процедур, применяемых в каскадном методе, является процедура порождения кумулятивной последовательности (процедура порождения КП). Параметрами этой процедуры выступают начальный элемент, принадлежащий носителю циклической группы, и очередной член порождающей последовательности, так же принадлежащий этому множеству. Внутренне состояние процедуры на момент инициализации совпадает с начальным элементом. После каждого обращения к этой процедуре она выдает на выход значение равное результату групповой операции, примененной к внутреннему состоянию и очередному члену порождающей последовательности. При этом очередное внутреннее состояние принимается равным выходу [1]. В каскадном методе процедура порождения КП применятся на каждом уровне преобразований и формирует выходные последовательности этих уровней.

В работе [2] введено понятие конфигурации каскадов, которое предполагает, что на каждом уровне преобразования в процедуре порождения КП может применяться любая операция из © ? -

(N -1)!

множества так называемых попарно неконгруэнтных операций, которое содержит - элемен-

р( N)

тов, где N - порядок группы, р - функция Эйлера. Уже при относительно небольших значениях N

Серия Экономика. Информатика. 2016 № 2 (223). Выпуск 37

количество элементов © - оказывается велико даже для их полного перечисления, не говоря уже о реализации всех этих операций.

Для дальнейшего развития и реализации каскадного метода актуальными являются следующие задачи:

- задача анализа процедур порождения КП, которая состоит в получении описания операций любой допустимой, но заранее неизвестной конфигурации каскадов по последовательности, порождаемой каскадным методом;

- задача синтеза таких процедур порождения КП, которые поддерживают как можно больше операций из ©~.

Целью данной статьи является поиск решения задачи анализа процедуры порождения КП по ее непосредственному выходу, обобщение полученных результатов и создание методики синтеза процедур порождения КП, позволяющей реализовать в них как можно большее количество неконгруэнтных операций.

Заполнение таблицы Кэли по наблюдениям за процедурой, реализующей операцию циклической группы

Прежде чем приступить к анализу процедуры порождения КП, сформулируем и решим более общую задачу. Пусть имеется абстрактное устройство (процедура), имеющее два входа и один выход, которое рассматривается как черный ящик. Об этом устройстве известно только то, что оно реализует операцию циклической группы < и> порядка N . Имеется возможность подавать элементы и на его входы и получать с выхода результат его работы. Требуется, используя как можно меньше обращений к устройству, заполнить таблицу Кэли групповой операции.

Самый простой способ заполнения таблицы Кэли заключается в подаче на входы устройства всех возможных пар элементов и с последующим снятием результата и помещения его в соответствующую ячейку таблицы. Очевидно, что количество обращений к устройству в этом случае составит N2.

Учитывая, что циклическая группа является коммутативной, и то, что каждая строка таблицы Кэли групповой операции представляют собой перестановку элементов и, то есть имеет N -1

N-1

N2 - N

степеней свободы, количество обращений к устройству можно сократить до ^ п =-. Но и это

п=1 2

решение не удовлетворяет условию поставленной задачи.

Приемлемое решение можно получить, если заполнить строку таблицы Кэли, соответствующую одному из образующих элементов группы < и>. Для заполнения такой строки потребуется N -1 обращение к устройству.

Идея этого решения обусловлена тем, что по теореме Кэли [3] любая конечная группа < и> изоморфна некоторой подгруппе симметрической группы £(и). Такой изоморфизм определяется следующим образом: каждому элементу и е и сопоставляются подстановка ли, такая что Ух е и : ли (х) = и ® х. Если g е и является образующим элементом циклической группы < и>, то и ле - образующий элемент циклической подгруппы симметрической группы £ (и).

Подстановка ле полностью определят соответствующую строку таблицы Кэли операции ®. Возводя ле в различные степени от 2 до N (применяется операция умножения подстановок), можно получить все остальные элементы указанной подгруппы симметрической группы £ (и) и, следовательно, все недостающие строки таблицы Кэли для операции ®.

По условию задачи нам неизвестно, какие элементы группы < и> являются образующими, и заполнение таблицы Кэли придется выполнять в два этапа: сначала путем обращения к нашему устройству найти образующий элемент g е и и построить подстановку л^, и только затем

реализовать указанную идею. На рис. 1а и рис. 1Ь приведены алгоритмы выполнения этих этапов.

Алгоритм СтвМвЗиЪз: (рис. 1а) выполняет построение подстановки л: и ^ и, такой что У и е и : л (и) = g ® и , где g - образующий элемент группы < и>. В качестве входа он принимает множество и и операцию ® (если угодно - наше абстрактное устройство). Результатом его работы являются g и л .

На первом шаге алгоритма СтвМвЗиЪз: выполняется пометка всех элементов и как необработанных. Далее выполняется итерационный процесс произвольного выбора необработанного элемента g е и и попытка полного определения подстановки л с помощью операции ®. При этом

каждый элемент, являющийся результатом операции ®, помечается как обработанный. Процесс определения подстановки л (возможно не полного) завершается тогда, когда результатом операции окажется выбранный элемент g . В ходе этих действий все элементы, порядок которых делит порядок элемента g , окажутся помеченными как обработанные. После чего итерационный процесс выбора необработанного элемента и попытки построения для него подстановки продолжается. Если выбранный элемент g окажется образующим группы < и>, то подстановка л будет определена полностью, и все элементы и будут помечены как обработанные, что обеспечивает выход из цикла и завершение алгоритма.

Алгоритм CreateCaylay (рис. выполняет заполнение таблицы Кэли для операции ®. Входными данными этого алгоритма являются множество и и его мощность N, образующий элемент g е и и соответствующая ему подстановка л . Результатом его работы является Т - таблица Кэли.

Рис. 1. Этапы заполнения таблицы Кэли: a) алгоритм построения подстановки л : U ^ U , такой, что У и е U : л(и) = g ® и , где g - образующий элемент группы < U ,® > ; b) алгоритм заполнения таблицы Кэли по g и л Fig. 1. The steps of filling the table Cayley: a) the algorithm for constructing the substitution л : U ^ U , such that У и е U : л(и) = g ® и , where g - generator of the group < U,® > ; b) the algorithm of filling out the Cayley table for g and л

Первый шаг алгоритма CreateCaylay состоит в заполнении строки Т , соответствующей элементу g. Для этого применяется подстановка л. Далее выполняется N -1 итерация для всех

оставшихся строк Т . На каждой из этих итераций применяются две вспомогательных переменные а и Ь , содержащие элементы и, соответствующие предыдущей и текущей заполняемым строкам. Изначально полагается, что а содержит g . Каждая итерация начинается с помещения в Ь содержимого Т [а, g], что дает эффект вычисления очередной степени g . Затем заполняется строка Т,

соответствующая элементу Ь . Для заполнения этой строки применяется композиция подстановки л и подстановки, соответствующей элементу а, что аналогично вычислению очередной степени л. Итерация завершается помещением в а содержимого Ь . После выполнения всех итераций таблица Кэли оказывается заполненной.

Серия Экономика. Информатика. 2016 № 2 (223). Выпуск 37

Из приведенного выше описания видно, что обращения к устройству, реализующему групповую операцию, сконцентрированы в алгоритме СгеМеБиЪз:. Количество этих обращений зависит от того, какие элементы будут выбираться для попыток построения подстановки. Можно выделить лучший и худший случай для выполнения этого алгоритма. В лучшем случае в качестве g сразу будет выбран образующий элемент группы < и,® > и понадобится N обращений. В худшем случае первым будет выбран нейтральный элемент (элемент первого порядка) и затем элементы по возрастанию их порядков, вплоть до образующего элемента. Очевидно, что в худшем случае потребуется количество обращений к устройству равное ^ ё , где ё - делитель порядка группы и суммирова-

ё\ы

ние выполняется по всем таким делителям.

Анализ кумулятивной последовательности и реализация порождающей ее процедуры

Как и в предыдущем случае будем считать, что имеется абстрактное устройство без входов и с одним выходом, рассматриваемое как черный ящик. Далее будем называть его генератором. О нем известно, что он реализует каскадный метод порождения периодических последовательностей. Известно множество и, над которым строятся последовательности, его мощность N и количество уровней преобразований в методе к . Имеется возможность получать члены последовательности с выхода генератора строго в порядке их порождения. Требуется установить групповую операцию ®, применяемую в процедуре порождения КП последнего уровня преобразования, и оценить, сколько для этого потребуется обращений к генератору.

Пусть X(х1,х2,...х,...) - последовательность, формируемая на выходе генератора. Согласно [1] эта последовательность обладает следующими структурными свойствами: ее период составляет Nk, характеристическая функция ее периодического отрезка имеет вид У и е и : х[ х ] (и) = Nk 1, то есть на периодическом отрезке [ X ^ ] присутствуют все элементы и, и каждый из них встречается раз. Более того, в [1] показано, что члены X^ обладают следующим свойством: для всех натуральных Щ: х+^ = х1 ® g , где g - параметр к -го уровня преобразования, являющийся образующим в группе < и,® >.

Указанные свойства X^ могут быть использованы для определения подстановки л, такой, что У и е и : л(и) = g ® и . На рис. 2 приведен алгоритм построения этой подстановки.

Алгоритм СгеМеБиЪзи (рис. 2) выполняет построение подстановки л: и ^ и, такой что У и е и : л(и) = g ® и , где g - образующий элемент группы < и,® >. В качестве входа он принимает

множество и, его мощность N, период последовательности, порождаемую генератором т = Nk, и собственно сам генератор 0() Результатом его работы является л. На первом шаге алгоритма Сге-МевиЪзи выполняется пометка всех элементов и как необработанных, вычисление величины

Т -у тк-1

п = — = N и заполнение вспомогательного массива х первыми п членами последовательности.

N

Для заполнения массива производится обращение к генератору 0(). Далее выполняется итерационный процесс определения подстановки л до тех пор, пока все элементы и окажутся помеченными как обработанные. В ходе этого процесса выполнятся цикл по перебору элементов массива х в направлении от первого к последнему, который завершается, если будут перебраны все его элементы, либо досрочно - когда все элементы и окажутся помеченными как обработанные. Тело цикла содержит обращение к генератору 0() и помещение результата его работы во вспомогательную переменную а . Затем выбирается очередной элемент массива хЩ . Если он является необработанным элементом и, то помечается как обработанный и полагается что л[хЩ] равно а . Далее, независимо от предыдущего условия, в элемент х[Щ] помещается значение а и выполняется переход к следующему элементу массива. По окончании выполнения цикла итерационный процесс определения подстановки продолжается. Когда все элементы и будут обработаны, итерационный процесс завершится и подстановка л будет полностью определена.

В алгоритме СгеМеБиЪзН количество обращений к генератору зависит от последовательности, им порождаемой. Можно выделить лучший и худший случаи выполнения алгоритма. В лучшем случае первые N члены последовательности пробегают все множество и. Очевидно, что для полного определения подстановки потребуется Nk 1 + N обращений к генератору. В худшем случае пер-

вые члены последовательности равны между собой. Количество обращений к генератору в данном случае составит Ык +1.

Следует отметить, что по условию задачи нам не известен g -параметр к -го уровня преобразования каскадного метода. Поэтому определить групповую операцию для этого уровня можно лишь с точностью до класса эквивалентности конгруэнтных операций [2]. Во введении к данной статье отмечено, что на каждом уровне преобразования в процедуре порождения КП может применяться любая операция из множества попарно неконгруэнтных операций. Это множество формируется путем включения в него по одному элементу из каждого класса эквивалентности конгруэнтных операций [2]. Какая конкретно операция будет выбрана из класса эквивалентности - не принципиально. Следовательно, операцию можно выбрать произвольно, а для заполнения таблицы Кэли можно воспользоваться алгоритмом СгвМвСау1ау (рис. 1Ь) с параметрами и, N, g ил, где л -

подстановка сформированная алгоритмом Стеа1еЗиЪ8И, а g -любой элемент и.

Рис. 2. Алгоритм построения подстановки л : U ^ U по кумулятивной последовательности Fig. 2. The algorithm for constructing the substitution л : U ^ U on the cumulative sequence

Реализация процедуры порождения КП в основном сводится к реализации групповой операции. Вариант реализации с прямым использованием таблицы Кэли является не самым лучшим решением. Хотя он и хорош с точки зрения временной сложности (имеет временную сложность по-

Серия Экономика. Информатика. 2016 № 2 (223). Выпуск 37

рядка 0(1)), но для хранения таблицы требуется N2 ячеек памяти. Поэтому требуется найти более эффективное решение.

Все циклические группы заданного порядка N изоморфны между собой. В частности все они изоморфны аддитивной группе кольца вычетов по модулю N. Обозначим эту группу как < ,+ >, где = {0,1,..., N -1} , "+" - операция сложения по модулю N . Рассмотрим ц : и ^ -изоморфизм группы < и,®> на < ,+ > . Прообраз элемента и еи на множестве будем называть индексом.

Поскольку биекция ц является изоморфизмом групп < и ,®> и < ,+ >, имеем У а, Ь еи : ц(а ® Ь) = ц(а) + ц(Ь). Отсюда операцию группы < и,® > можно определить как У а, Ь еи : а ® Ь = (ц(а) + ц(Ь)), где ц"1 - биекция обратная к ц .

Отсюда непосредственно следует вариант реализации операции ® с помощью индексов. Введем так называемую таблицу индексов. Для этого присвоим номера от о до N -1 всем элементам множества и с помощью функции-нумератора Шш : и ^ . Тот факт, что для элемента и еи : Шш(и) = ', будем обозначать и1. Таблицу индексов будем представлять в виде массива 1пё из N чисел. Элементы массива нумеруются от о до N -1. В таблице индексов элемент массива 1пё ['] содержит ц/(и1). Вычисление результата операции ® сводится к двум обращениям к таблице индексов по номерам элементов-операндов операции, вычислении суммы по модулю N их индексов, с последующим линейным поиском в массиве 1пё номера элемента соответствующего полученной сумме. Поскольку 1пё содержит все числа о до N -1, такой поиск всегда будет успешен, и его результат - есть номер результата операции ® . Очевидно, что временная сложность этого варианта реализации групповой операции имеет порядок 0(Щ и, при этом, требуется всего N ячеек памяти для хранения таблицы индексов.

Заполнение таблицы индексов может быть выполнено с помощью таблицы Кэли групповой операции. По таблице Кэли определяется нейтральный элемент группы и ему назначается индекс о. Из множества образующих элементов группы < и,® > произвольным образом выбирается один

элемент gSase, так называемый базовый образующий, и ему назначается индекс 1. Далее с помощью таблицы Кэли gSase возводится в степени от 2 до N -1, и соответствующим степеням gSase назначается индекс равный показателю степени.

Методика синтеза процедуры порождения кумулятивных последовательностей

Предложенный выше способ реализации групповой операции с помощью таблицы индексов предполагает, что должна быть задана таблица Кэли. Кроме этого получается, что в данной реализации имеем следующую ситуацию: одна таблица индексов - одна операция. Это не совсем удобно, если требуется единообразно и с минимальными затраченными ресурсами реализовать большое количество операций, которые могут быть применены для конфигурирования каскадного метода. В этом разделе будет предложена методика, позволяющая с использованием одной таблицы индексов реализовать не одну, а множество операций.

Для начала определим, какими свойствами должны обладать таблицы индексов, задающие неконгруэнтные операции.

Несложно заметить, что любая таблица индексов есть подстановка на . Всего таких подстановок N, а различных операций, образующих из множества и циклическую группу порядка N, N

существует- [2]. Дело в том, что одной и той же операции соответствуют ср(N) таблиц индек-

(р(Ы) _

сов. Пусть 1пё® и 1пё® - таблицы индексов, соответствующие операциям ® и ®. Очевидно утверждение 1: операции ® и ® не равны, если 3и1,и1 е и : 1пё®['] = 1пё®['] = 1 и 1пё®[]] ф 1пё®[]].

Кроме этого истинно утверждение 2: достаточным условием не конгруэнтности или равенства операций ® и ® является Зик еи : 1пё® [к ] = 1пё® [к ] = 0 . Действительно, когда операции ® и

® являются конгруэнтными, но не равными, в группе < и ,®> существуют отличные от нейтрального элемента р и р 1, где р - параметр конгруэнтности ® и ® . Если р является параметром конгруэнтности ® и ® , то р 1 должен быть нейтральным элементом в < и,® > [2]. Это противоречит

равенству нейтральных элементов групп < и,— > и < и,— >, следовательно, и условию Зик е и : Ы— [к] = Ш- [к] = 0 .

Из утверждений 1 и 2 следует, что операции — и — неконгруэнтны, если

3ut,u ,ut е ¿7 : Ind%[г] = Ind_[г] = 1 и IndSj[;] * Inds[;] и Inde[Л] = Inds[Л] = 0 .

(1)

Таким образом, приняв, например, и = м1 и ик = и0 можно получить (Ж - 2)! различных таблиц индексов, каждая из которых соответствует своей уникальной операции, и все эти операции являются попарно не конгруэнтными. Следует отметить, что этими таблицами индексов можно задать

только

<р{ N)

часть множества © -, поскольку условие (1) является лишь достаточным для неконгру-

N -1

энтности операций.

Обозначим символом £(2Ж \{0,1}) подгруппу симметрической группы (2Ж), элементами которой являются подстановки, переводящие 0 в 0 и 1 в 1, то есть имеющие как минимумдве неподвижные точки. Как было показано, элементы 5(2Ж \ {0,1}) - суть таблицы индексов, задающие попарно неконгруэнтные операции.

Идея единообразной реализации множества попарно неконгруэнтных операций с помощью одной таблицы индексов заключается в выделении какой-либо циклической подгруппы 5(2Ж \ {0,1}), которую обозначим как 5(2Ж \ {0,1}). В этой подгруппе фиксируется некоторый образующий элемент - базовая таблица индексов, с помощью которой находятся все остальные таблицы индексов: элементы 5(2Ж \{0,1}). При таком подходе в памяти можно хранить только базовую таблицу, а значения остальных подстановок могут быть вычислены так, как показано в алгоритме исполнения групповой операции на рис. 3. Таким образом, с помощью одной базовой таблицы индексов можно реализовать п попарно неконгруэнтных операций, где п - порядок 5(2Ж \{0,1}).

Алгоритм ЕхвОрвтайоп (рис. 3) находит значение номера элемента ис = иа — иь, где — - операция группы < и,—>, таблица индексов которой принадлежит 5(2Ж \{0,1}). Входными данными этого алгоритма являются: а и Ь - номера элементов иа е и и иь еи; N - порядок < и,— >; Ы -базовая таблица индексов (образующий элемент 5(2Ы \{0,1})); п - порядок группы 5(2Ы \{0,1}); т -номер операции (целое число от 0 до п -1, представляющее собой показатель степени подстановки, в которую возводится Ы для получения таблицы индексов выполняемой операции). Результатом выполнения алгоритма является с - номер элемента ис е и .

Рис. 3. Алгоритм исполнения групповой операции Fig. 3. The algorithm execution group operation

На первом этапе выполнения алгоритма ExeOperation значения a и b заменяются их образами в подстановке Indm, что реализовано в виде цикла из m итераций, каждая из которых состоит в замене значений a и b на значения Ind [a] и Ind [b] соответственно. Затем к полученным значениям a и b применяется операция "сумма по модулю N ", результат которой помещается в переменную c. На завершающем этапе значение c заменяется ее прообразом в подстановке Indm, или,

Серия Экономика. Информатика. 2016 № 2 (223). Выпуск 37

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

что тоже самое - ее образом в подстановке обратной к Ыт . Это действие реализовано циклом по замене c на Ind [с], который выполняется п - ш раз.

Выполнение алгоритма ЕхеОрегаНоп требует N ячеек памяти для хранения базовой таблицы индексов, а его временная сложность имеет порядок 0(п) .

Основная сложность в переложенном подходе состоит в нахождении базовой таблицы индексов, позволяющей реализовать как можно большее количество операций.

Для решения этой задачи рассмотрим следующие соображения, основанные на материале из источника [3]. Отметим, что любая подстановка те £(1М \{0,1}) является образующим элементом некоторой циклической подгруппы £(1М \ {0,1}). Порядок этой подгруппы совпадает с порядком т. Кроме этого, любая подстановка представляется произведением независимых циклов. Все множество подстановок £(1М \ {0,1}) может быть разбито на классы эквивалентности, согласно структуре циклов, образующих произведение его элементов. Подмножество из £(1М \ {0,1}) образует класс К = (к1 + 2, к2,..., км-2), если для каждой подстановки из этого подмножества количество независимых циклов длины I е{2,3,..., N - 2} составляет к1. В силу специфики элементов £(1М \{0,1}), у всех классов эквивалентности количество циклов длины 1 составляет к1 + 2 . Очевидно, что для любого класса эквивалентности подстановок (к1 + 2, к2,..., км-2) выполняется равенство

N -2

•I = N - 2 . (2)

1=1

При этом каждое решение уравнения (2) соответствует одному классу, а все решения покрывают все возможные классы эквивалентности подстановок из £(1М \{0,1}).

Порядок подстановки равен наименьшему общему кратному длин циклов, определяющих класс эквивалентности, которому она принадлежит. То есть решение уравнения (2) определяет цикловую структуру и позволяет найти порядок элементов соответствующего класса эквивалентности подстановок. Поскольку нас интересует реализация как можно большего количества операций, в качестве базовой таблицы индексов следует выбрать подстановку, имеющую максимальный порядок. Для этого требуется вычислить функционал

п =тах (Ст(/(к'')), (3)

2 м=N-2 V >1 У

\0,1/к < 1;

где /(к) = < , а максимум находится по всем решениям уравнения (2). В работе [3] описан

[1,1/к > 1.

алгоритм нахождения этих решений методом последовательного лексикографического перечисления. Для нашего случая потребуется не сложная модификация данного алгоритма. Модификация состоит в подсчете наименьшего общего кратного для очередного решения уравнения (2), сохранении текущего максимального значения 1ст и соответствующего решения. В результате будет получена цикловая структура подстановок из £(1М \ {0,1}), имеющих максимальный порядок. Остается только подобрать или построить подстановку, удовлетворяющую этой цикловой структуре. На рис. 4 приведен алгоритм построения базовой таблицы индексов по заданной цикловой структуре и перестановке элементов множества .

Входными параметрами алгоритма Сгеа1еВазе1пё (рис. 4) являются: N - количество элементов в таблице индексов; Р - массив размерности N, в котором Р[0] = 0 и Р[1] = 1, а остальные элементы - некоторая перестановка оставшихся чисел из ; К - массив размерности N - 2, элементы которого задают цикловую структуру класса эквивалентности (к1 + 2, кг,..., км_2) так, что К[0] = к1 + 2, К[1] = к2 и т.д., К[N - 3] = км_2. Результат выполнения данного алгоритма есть Ind е £(1М \ {0,1}) - базовая таблица индексов. В этом алгоритме вычисляется произведение независимых циклов для подстановки п . При этом массив Р рассматривается как запись произведения независимых циклов. Вспомогательные переменные Ь и е применяются для указания начала и конца очередного цикла из этого произведения, а их значения определяются по описанию цикловой структуры из массива К . Перестановка в массиве Р может быть порождена случайным образом с помощью алгоритма Фишера-Йетса [4].

Рис. 4. Алгоритм построения базовой таблицы индексов Fig. 4. The algorithm for constructing the base table indexes

Сформулируем окончательно методику синтеза процедуры порождения КП. Исходными данными методики является N - порядок группы, над которой порождается последовательность. Процедура порождения КП реализует алгоритм исполнения групповой операции (рис. 3). Параметр т е {0,1,...,п -1} этого алгоритма используется для конфигурирования и содержит номер операции. Параметр п - количество операций определяется при вычислении функционала (3) путем нахождения решений уравнения (2) по модифицированному алгоритму последовательного лексикографического перечисления. Одновременно с этим устанавливается цикловая структура базовой таблицы индексов (параметра ¡пй ). Затем с помощью алгоритма Фишера-Йетса порождается случайная перестановка элементов множества {2,3,., N -1}, которая вместе с полученной цикловой структурой используется в алгоритме построения базовой таблицы индексов ¡пй (рис. 4).

Заключение

Как было отмечено ранее, оценка временной сложности алгоритма исполнения групповой операции ЕхвОрвгаНоп составляет О(п), где п - количество операций, реализуемых алгоритмом. Опыт применения методики синтеза процедуры порождения КП показал, что функционал (3) растет сложным нелинейным образом в зависимости от N, причем довольно быстро (но не быстрее, чем 2н-2). Так, например, при N = 8 значение п равно 6, при N = 16 значение п равно 84, при N = 32 значение п равно 4620, при N = 64 значение п уже равно 1141140, при N = 128 значение п превосходит 6,75 -109, а при N = 256 значение п уже превосходит 3,82 -1015. Факт быстрого роста количества операций п свидетельствует об ограничении в применении методики синтеза процедуры порождения КП при стремлении реализовать максимально возможное количество операций.

Серия Экономика. Информатика. 2016 № 2 (223). Выпуск 37

Список литературы References

1. Румбешт В.В. 2014. Каскадный метод порождения периодических последовательностей над элементами циклической группы. Научные ведомости БелГУ. Серия: История. Политология. Экономика. Информатика. № 8 (179) Выпуск 30/1: 103-112.

Rumbesht V.V. 2014. Kaskadnyj metod porozhdenija periodicheskih posledovatel'nostej nad jelementami ciklicheskoj gruppy. Nauchnye vedomosti BelGU. Serija: Istorija. Politologija. Jekonomika. Informatika. № 8 (179) Vypusk 30/1: 103-112.

2. Румбешт В.В., Ядута А.З. 2015. Анализ применения конкретных групп в каскадном методе. Научные ведомости БелГУ. Серия: Экономика. Информатика. № 7 (204) Выпуск 34/1: 105-115.

Rumbesht V.V., Jaduta A.Z. 2015. Analiz primenenija konkretnyh grupp v kaskadnom metode. Nauchnye vedomosti BelGU. Serija: Jekonomika. Informatika. № 7 (204) Vypusk 34/1: 105-115.

3. Кофман А. 1975. Введение в прикладную комбинаторику. М., Наука, 480.

Kofman A. 1975. Vvedenie v prikladnuju kombinatoriku. M., Nauka, 480.

4. Кнут Д. 2007. Искусство программирования, том 2. Получисленные алгоритмы. М., Вильямс, 832.

Knut D. 2007. Iskusstvo programmirovanija, tom 2. Poluchislennye algoritmy. M., Vil'jams, 832.

i Надоели баннеры? Вы всегда можете отключить рекламу.