Cloud of Science. 2018. T. 5. № 1 http:/ / cloudofscience.ru
Наиболее общая модификация нормальных алгоритмов Маркова
А. В. Пруцков
Рязанский государственный радиотехнический университет 390005, Рязань, ул. Гагарина, 59/1
e-mail: [email protected]
Аннотация. Рассмотрены модификации нормальных алгоритмов Маркова. Предложены способы сведения нормальных схем самомодифицируемых алгоритмов и линейных нормальных алгоритмов к обобщениям Н. М. Нагорного. Предложены нормальные схемы обобщений Н. М. Нагорного, которые не могут сведены к самомодифицируемым и линейным нормальным алгоритмам. На основании этого сделан вывод о том, что обобщения Н. М. Нагорного являются наиболее общей модификацией из числа рассмотренных в статье.
Ключевые слова: нормальные алгоритмы Маркова, обобщенные нормальные алгоритмы, линейные нормальные алгоритмы.
1. Введение
К настоящему времени разработано несколько модификаций нормальных алгоритмов. Авторы всех модификаций утверждают и в том или ином виде доказывают, что их модификации являются обобщениями нормальных алгоритмов Маркова. Поэтому возникает вопрос: какая модификация нормальных алгоритмов Маркова является наиболее общей?
Введем следующие определения.
Будем обозначать применение нормальной схемы алгоритма H к слову R в некотором алфавите A с получением результата Rкак R' = H(R).
Результатами переработки исходного слова R нормальной схемы алгоритма
H называется последовательность слов R, R = H(R), R = H(R),...,
Rn = H(R_j), из которой исключены случаи R = H(R._j), i = (1, n), где R = R_v
Нормальные схемы алгоритмов X и Y называются эквивалентными по переработке слова X = Y, если результаты переработки ими всех возможных исходных слов алфавита A эквивалентны.
Модификация Z является более общей, чем модификация B, если:
VH((B(H) ^ Z(H) х (B(H) = Z(H))), где Z(H) — нормальная схема модификации Z, B(H) — нормальная схема модификации B; ^ — операция сводимости — предикат, определяющий возможность
сведения нормальных схем; формула В(Н) ^ Z(Н) истинна, если В(Н) можно свести к Z(Н); х — логическая операция конъюнкции.
Модификация В не является более общей, чем модификация Z, если:
ЗНт(Н) ^ В(Н)) х (В(Н) - Z(Н)))).
Таким образом, чтобы показать, что модификация Z является более общей, чем модификация В, но модификация В не является более общей, чем модификация Z необходимо:
1) предложить способ сведения любой нормальной схемы модификации В к нормальной схеме модификация Z;
2) найти нормальную схему модификации Z, которую невозможно свести к нормальной схеме модификации В и показать, почему это невозможно.
Целью статьи являются разработка способов сведения нормальных схем различных модификаций и выявление наиболее общей модификации нормальных алгоритмов Маркова из числа рассмотренных в статье.
2. АлгориТмы, или алгориФмы
При использовании аппарата нормальных алгоритмов Маркова возникает вопрос об их правильном именовании: «нормальные алгориТмы» или «нормальные алгориФмы».
По всему изложению в монографии А. А. Маркова и Н. М. Нагорного [1] используется термин «нормальные алгорифмы», как для предложенной в ней алгоритмической модели, так и для алгоритмов вообще.
Приведем некоторые выдержки из монографии [1].
1. На с. 135 дается определение понятия алгорифма: «Алгорифм есть предписание, однозначно определяющее ход некоторых конструктивных процессов». Если заменить слово «алгорифм» на слово «алгоритм» в этом определении, определение останется верным и справедливым.
2. На с. 143 приводится утверждение: «В тридцатых годах нашего столетия появились основополагающие работы К. Геделя, А. Черча, С. К. Клини, А. М. Тьюринга и Э. Л. Поста, в которых были точно определены некоторые специальные виды алгорифмов». Общеизвестно, что перечисленные в утверждении ученые внесли огромный вклад в теорию алгоритмов.
3. На с. 399 приводится утверждение: «Любопытно, что понятие вычислимого действительного числа фигурирует уже в названии первой основополагающей работы А. М. Тьюринга, в которой было произведено то уточнение общего понятия алгорифма, которое впоследствии получило название «машина Тьюринга»».
Из трех приведенных выдержек становится очевидно, что понятие «алгорифм» в монографии [1] эквивалентно общепринятому понятию «алгоритм». Поэтому в данной статье и других работах [2, 3] автора статьи используется термин «нормальные алгоритмы».
3. Нормальные алгоритмы А. А. Маркова — исходный объект для модификации
Нормальный алгоритм определяется двумя элементами:
1) алфавитом А;
2) нормальной схемой вида:
Р ^ щ, Р ^ [.]&,
Р, ^ [.]&,
где Pi, Qi, I = 1,d Р(, Qi,i = 1,(1 — слова алфавита А; d = 1,2,...; символ «■» — необязательный параметр, означающий завершение работы алгоритма. Подстановки в нормальной схеме могут быть двух видов:
1) простые;
2) заключительные с символом «■».
Нормальный алгоритм имеет следующий порядок выполнения над словом Я в алфавите А. Нормальная схема просматривается сверху вниз и из нее выбирается подстановка, левая часть Р которой имеет вхождение в слове Я. Если подстановка найдена, то первое вхождение слова Р в слове Я заменяется словом Q, и просмотр схемы начинается заново. Результатом работы алгоритма считается слово Я' после применения всех подстановок.
Нормальный алгоритм заканчивает работу в одном из двух случаев:
1) выполнена заключительная подстановка;
2) ни одна левая часть подстановок Р не имеет вхождений в слове Я. Рассмотрим известные автору модификации нормальных алгоритмов Маркова.
Модификации меняют порядок выполнения, вид схемы, добавляют новые типы подстановок.
4. Обобщения Н. М. Нагорного
Н. М. Нагорный предложил «некоторые естественные обобщения понятия нормального алгорифма: алгорифмы типов а, а} и ст"» [4] (также кратко описаны в [1]), которые в статье называются обобщениями Н. М. Нагорного.
Алгоритмы в обобщениях Н. М. Нагорного состоят из конечного числа нормальных схем. Подстановки в схемах имеет общий вид:
Р^КиО, (1)
где Р, ( — слова алфавита А; N — номер схемы в унарной системе счисления, которой необходимо передать управление (в данной статье будет использоваться номер схемы в десятичной системе счисления).
Нормальный алгоритм типа а имеет следующий порядок выполнения над словом Я. Алгоритм предписывает проверить, встречается ли одна из левых частей подстановок первой схемы в слове Я. Если ни одна из левых частей не встречается в слове Я, то алгоритм завершает работу. Если же левая часть одной из подстановок встречается в слове Я, то данная подстановка применяется к слову. Если примененная подстановка имела номер схемы, равный нулю, то алгоритм завершает работу. Если номер отличен от нуля, то происходит переход к схеме с этим номером. Далее просматривается схема, к которой произошел переход.
Для нормального алгоритма типа а' определяется нормальный алгоритм и, преобразующий натуральное число в схему типа а. Порядок выполнения алгоритма типа а' над словом Я отличается следующим. Работа алгоритма начинается с того, что схема, являющаяся результатом работы алгоритма и(1), применяется к слову Я. Если к слову была применена подстановка, то номер схемы, указанный в ней, используется для порождения схемы алгоритмом и, и новая схема применяется к переработанному слову.
Для нормального алгоритма типа а" определяется нормальный алгоритм и", преобразующий целое положительное число в алгоритм и'. Алгоритм и' преобразует целое положительное число в подстановку вида (1). На каждом шаге порядка выполнения алгоритма типа а" над словом Я алгоритм и" порождает алгоритмы и': и'(1), и'(2) и т. д. в зависимости от номера шага до тех пор, пока левая часть подстановки, полученная порожденным алгоритмом не будет применена к слову Я. Подстановка применяется к слову Я с результатом Я'. Слово где
N — номер схемы, указанной в примененной подстановке, передается на следующий шаг для обработки.
В работе [4] доказаны эквивалентности понятий нормального алгоритма и алгоритмов типов а, а' и а".
Здесь и далее под обобщениями Н. М. Нагорного будем понимать алгоритмы типа а, если не указано иное.
5. Самомодифицируемые алгоритмы и их вариации
И. А. Цветков предложил самомодифицируемые алгоритмы [5] для решения задачи генерации случайных формул над множеством булевых функций [6]. В ходе исследований им были предложены частные случаи самомодифицируемых алгоритмов: алгоритмы с самопополнением схемы, с самоудаляемыми подстановками, с одноразовыми пополнениями и другие.
Самомодифицируемые алгоритмы [5] могут изменять свою нормальную схему, добавляя в нее новые подстановки, которые выполняются заданное или неограниченное число раз.
Подстановка самомодифицируемого алгоритма имеет вид:
С0°1О2...°к.
Здесь к — целое неотрицательное число; О0 = — начальная база;
О. = CjЯjPjDjEjQj, / = 1, к — / -й начальный модификатор; Р, р — левые части
подстановок; Q, ^ — правые части подстановок; D0, Dj — число применений
подстановки; символ «да» означает неограниченное число применений; Е0, Е. —
символ «•» — необязательный параметр, означающий завершение работы алгоритма; С. — номер позиции включения подстановки в схему; Я^ — число включений
подстановки в схему; символ «да» означает неограниченное число включений.
Самомодифицируемый алгоритм выполняется над словом Я в том же порядке, что и нормальный алгоритм Маркова. Если выполнилась модифицирующая подстановка (к > 0), то она изменяет слово и добавляет в заданную позицию новые подстановки.
6. Способ сведения самомодифицируемых алгоритмов к обобщениям Н. М. Нагорного
Способ сведения самомодифицируемых алгоритмов к обобщениям Н. М. Нагорного включает следующие правила.
1. Все подстановки в схеме заменить их начальными базами без числа применений.
2. Если подстановка модифицирующая, то добавить к ней номер новой схемы и создать новую схему, эквивалентную измененной схеме.
3. Заключительные подстановки имеют индексы 0.
7. Линейные нормальные алгоритмы
В теории нормальных алгоритмов Маркова существуют две классические задачи: обращения и удвоения. В монографии [1] предложены нормальные алгоритмы решения этих задач с квадратичной временной сложностью. В работе [7] доказано, что временная сложность решения задачи обращения слова алфавита А, где | А |> 1,
длиной т должна быть не меньше, чем ст2, где с — константа. Однако временные сложности задач обращения и удвоения являются линейными.
В работе [2] показано, что в нормальных алгоритмах Маркова возможна реализация только разветвляющегося и циклического вычислительных процессов, но не линейного. В этой же работе предложена модификация нормальных алгоритмов Маркова с возможностью реализации линейного вычислительного процесса. Модификация названа линейными нормальными алгоритмами. В работах [2, 3] были предложены алгоритмы обращения и удвоения, описанные в терминах этой алгоритмической модели и имеющие различные линейные временные и пространственные сложности.
Нормальная схема линейного нормального алгоритма имеет общий вид:
Р: Р(1) ^ а(1); Р2(1) ^ е21);...; Р(1) к Р2: Р(2) ^ 2((2); Р(2) ^ (22);...; Р( ^ 1
Рл: Р?' ^^();...; Р^ ^
Здесь Р, г = 1,d; Р0), (0), г = 1, к., ] = 1,^ — слова алфавита А.
Строка нормальной схемы может содержать несколько подстановок, выполняемых последовательно. Такое выполнение позволяет реализовать линейный вычислительный процесс.
Линейные нормальные алгоритмы являются единственной модификацией, в которой линейный вычислительный процесс реализуется в явном виде, что не требует дополнительного доказательства этого.
Только после выхода работы [2] другими исследователями были получены алгоритмы обращения и удвоения с линейной временной сложностью [8].
В работе [2] приведены способы сведения нормальных алгоритмов Маркова к линейным нормальным алгоритмам.
8. Способ сведения линейных нормальных алгоритмов к обобщениям Н. М. Нагорного
Данный способ предложен в работе [2].
Любой линейный нормальный алгоритм можно свести к схеме типа с обобщений Н. М. Нагорного. Способ сведения линейного нормального алгоритма к схеме типа с обобщений Н. М. Нагорного включает следующие правила:
1. В схему 1 записываются первые подстановки каждой строки.
2. Если метке соответствует несколько подстановок, то каждая подстановка, кроме первой, записывается отдельной схемой, состоящей из одной подстановки. При этом схемы нумеруются соответствующими индексами, чтобы обеспечить их последовательное выполнение. Последняя подстановка, если она не является заключительной, возвращает управление схеме 1.
3. Если метка и левая часть первой подстановки не совпадают, то в схему 1 включается незначащая подстановка Р ^ Р, где Р — метка. Первая подстановка и другие подстановки записываются в отдельные схемы по правилу 2. Незначащая подстановка передает управление схеме с первой подстановкой данной строки.
4. Заключительные подстановки имеют индексы 0.
Количество схем обобщенного нормального алгоритма Ысхем зависит от числа строк схемы с более чем одной подстановкой, числа строк схемы, в которых метка отличается от левой части первой подстановки строки, и вычисляется по формуле
N = N -Ы + N +1
схем подст стр мет '
где Ыподст — количество подстановок в строках схемы, в которых более одной подстановки; — количество строк схемы, в которых более одной подстановки; Ымет — количество строк схемы, в которых метка отличается от левой части первой подстановки строки; + 1 — основная схема (схема 1).
9. Алгоритм обобщения Н. М. Нагорного типа а, нормальные схемы которого не имеют эквивалентных по переработке слова схем самомодифицируемого и линейного нормального алгоритмов
Исходя из способов сведения самомодифицируемого и линейного нормального алгоритмов к обобщения Н. М. Нагорного, можно выявить свойство, которым должна обладать нормальная схема обобщения Н. М. Нагорного типа с, которая не имеет эквивалентных по переработке слова схем самомодифицируемого и линейного нормального алгоритмов.
Этим свойством является замена всех подстановок схемы, не менее чем одна из которых является простой или заключительной, не передающей управление линейно другим подстановкам. Ни самомодифицируемые, ни линейные нормальные алгоритмы не могут полностью изменить такую схему. В то же время обобщения
Н. М. Нагорного могут выполнить такую замену посредством передачи управления новой схеме.
Примером алгоритма, обладающим этим свойством, являются следующие схемы:
Схема 1:
1) aaa^lcb;
2) a->0cób.
Схема 2:
1) ciaba ^Oaiba;
2) ba^labba.
10. Заключение
1. Предложены способы сведения нормальных схем самомодифицируемых и линейных нормальных алгоритмов к нормальным схемам обобщений Н. М. Нагорного.
2. Выявлено свойство, которым должен обладать алгоритм обобщения Н. М. Нагорного типа и, нормальные схемы которого не имеют эквивалентных по переработке слова схем самомодифицируемого и линейного нормального алгоритмов. Предложен алгоритм, обладающий этим свойством.
3. Исходя из пунктов 1 и 2 заключения сделан вывод о том, что обобщения Н. М. Нагорного являются более общей модификацией, чем самомодифицируемые алгоритмы и линейные нормальные алгоритмы.
4. Теория нормальных алгоритмов Маркова появилась в середине ХХ в. Однако все наиболее значимые работы по этой тематике приведены в библиографическом списке к этой статье. Существует как минимум два перевода работ А. А. Маркова на английский язык [9, 10]. Их публикация не вызвала широкого интереса, судя по числу публикаций, к этой теории в западной науке. Теория живет на страницах учебников по математической логике и теории алгоритмов (например, [11-13]), но не развивается в научных статьях. Стоит отметить, что состояние научных исследований других алгоритмических моделей такое же.
5. Нормальные алгоритмы Маркова позволяют лаконично (по сравнению с другими алгоритмическими моделями) описать преобразования слов некоторого алфавита. Они были использованы автором статьи для описания преобразований и перевода количественных числительных естественных языков [14] и реализованы на практике в серверном программном обеспечении интернет-приложения для обработки числительных естественных языков [15].
Литература
[1] Марков А. А., Нагорный Н. М. Теория алгорифмов. — М. : Наука, 1984.
[2] Пруцков А. В. Линейные нормальные алгоритмы // Вестник РГРТУ. 2010. № 33. С. 3945.
[3] Пруцков А. В. Решение задач обращения и удвоения с помощью линейных нормальных алгоритмов // Известия ЮФУ. Технические науки. 2012. № 1 (126). С. 139-147.
[4] Нагорный H. M. Некоторые обобщения понятия нормального алгорифма // Труды математического института АН СССР им. В. А. Стеклова. 1958. Т. 52. С. 66-74.
[5] Цветков И. А. Самомодифицируемый алгорифм, обобщающий нормальный и самопополняемые алгорифмы Маркова // Математическое и программное обеспечение вычислительных систем: межвуз. сб. науч. тр. — Рязань : РГРТА, 2005. С. 50-56.
[6] Цветков И. А. Способ генерации случайных формул над множеством булевых функций на основе самопополняемого алгорифма // Проблемы передачи и обработки информации в сетях и системах телекоммуникаций: материалы 14-й Междунар. науч.-техн. конф. — Рязань, 2005. С. 38-41.
[7] Цейтин Г. С. Нижняя оценка числа шагов для обращающего нормального алгорифма и других аналогичных алгорифмов // Исследования по конструктивной математике и математической логике. Зап. науч. сем. Ленингр. отд. МИАН СССР. Т. 20. — Л. : Наука, 1971. C. 243-262.
[8] Цветков И. А. Обращающий самомодифицируемый алгорифм // Математическое и программное обеспечение вычислительных систем: межвуз. сб. науч. тр. — Рязань : РГРТУ, 2011. С. 4-17.
[9] Марков А. А. Теория алгорифмов // Труды математического института имени ВА Стеклова. 1954. Т. 42. С. 3-375.
[10]Markov A. A., Nagorny N. M. The Theory of Algorithms. Dordrecht, Boston and London : Kluwer Acad Publishers, 1988.
[11] Глухов М. М., Шишков А. Б. Математическая логика. Дискретные функции. Теория алгоритмов : учеб. пособие. — СПб. : Лань, 2012.
[12] Гринченков Д. В., Потоцкий С. И. Математическая логика и теория алгоритмов для программистов: учеб. пособие. — М. : Кнорус, 2010.
[13] Пруцков А. В., Волкова Л. Л. Математическая логика и теория алгоритмов : учебник. — М. : КУРС: ИНФРА-М, 2016.
[14] Prutzkow А. Interlingua-based numeral translation in Web-application with knowledge-testing // The European Proceedings of Social & Behavioural Sciences. 2017. Vol. 33. P. 291-298.
[15] Пруцков А. В., Цыбулько Д. М. Интернет-приложение метода обработки количественных числительных естественных языков // Вестник Рязанского государственного радиотехнического университета. 2012. № 41. С. 70-74.
Автор:
Александр Викторович Пруцков — доктор технических наук, доцент, профессор кафедры «Вычислительная и прикладная математика», Рязанский государственный радиотехнический университет
The most general modification of Markov's normal algorithms
A. V. Prutzkow
Ryazan State Radio Engineering University Gagarin str., 59/1, Ryazan, Russian Federation, 390005
e-mail: [email protected]
Abstract. We review modifications of Markov's normal algorithms. We develop methods for reducing a self-modifying algorithm normal scheme and a linear normal algorithm normal scheme to a Nagorny's general algorithm normal scheme. We elaborate Nagorny's general algorithm normal schemes, which can't be reduced to a self-modifying algorithm normal scheme or a linear normal algorithm normal scheme. Hence we conclude Nagorny's general algorithms are the most general modification of Markov's normal algorithms among reviewed ones.
Key words: Markov's normal algorithms, general normal algorithms, linear normal algorithms.
References
[1] Markov A. A., Nagornyy N. M. (1984) Teoriya algorifmov. Moscow, Nauka. 432 p. [In Rus]
[2] Prutzkow А. V. (2010) Vestnik Ryazanskogo gosudarstvennogo radiotekhnicheskogo universi-teta, 33:39-45. [In Rus]
[3] Prutzkow А. V. (2012) Izvestiya Yuzhnogo Federal'nogo universiteta. Tekhnicheskiye nauki, 1(126):139-147. [In Rus]
[4] Nagornyy N. M. (1958) Trudy matematicheskogo instituta AN SSSR im. V. A. Steklova, 52:6674. [In Rus]
[5] Tsvetkov I. A. (2005) Samomodifitsiruyemyy algorifm, obobshchayushchiy normal'nyy i sam-opopolnyayemyye algorifmy Markova. In book: Matematicheskoye i programmnoye obespecheniye vychislitel'nykh sistem: mezhvuz. sb. nauch. tr. Ryazan, pp. 50-56. [In Rus]
[6] Tsvetkov I. A. (2005) Sposob generatsii sluchaynykh formul nad mnozhestvom bulevykh funktsiy na osnove samopopolnyayemogo algorifma. In book: Problemy peredachi i obrabotki informatsii v setyakh i sistemakh telekommunikatsiy: materialy 14-y Mezhdunar. nauch.-tekhn. konf. Ryazan, pp. 38-41. [In Rus]
[7] Tseytin G. S. (1971) Nizhnyaya otsenka chisla shagov dlya obrashchayushchego normal'nogo algorifma i drugikh analogichnykh algorifmov. In book: Issledovaniya po konstruktivnoy ma-tematike i matematicheskoy logike. Zap. nauch. sem. Leningr. otd. matem. in-ta AN SSSR. Vol. 20. Leningrad, Nauka, pp. 243-262. [In Rus]
[8] Tsvetkov I. A. (2011) Obrashchayushchiy samomodifitsiruyemyy algorifm. In book: Ma-tematicheskoye i programmnoye obespecheniye vychislitel'nykh sistem: mezhvuz. sb. nauch. tr. Ryazan', Ryazanskiy gosudarstvennyy radiotekhnicheskiy universitet, pp. 4-17. [In Rus]
[9] Markov A. A. (1962) Theory of Algorithms, Jerusalem.
[10]Markov A. A., Nagorny N. M. The Theory of Algorithms. Dordrecht, Boston and London, Kluwer Acad Publishers, 1988.
[11] Glukhov M. M., Shishkov A. B. (2012) Matematicheskaya logika. Diskretnyye funktsii. Teori-ya algoritmov. Saint-Petesburg, Lan'. 255 p. [In Rus]
[12] Grinchenkov D. V., Pototskiy S. I. (2010) Matematicheskaya logika i teoriya algoritmov dlya programmistov. Moscow, Knorus. 208 p. [In Rus]
[13] Prutzkow А. V., Volkova L. L. (2016) Matematicheskaya logika i teoriya algoritmov. Moscow, KURS: INFRA-M. 156 p. [In Rus]
[14] Prutzkow А. (2017) The European Proceedings of Social & Behavioural Sciences, 33:291298.
[15] Prutzkow A. V., Tsybul'ko D. M. (2012) Vestnik Ryazanskogo gosudarstvennogo radio-tekhnicheskogo universiteta. 41:70-74. [In Rus]