Полиномиальный алгоритм проверки выполнения условия морфического образа расширенного максимального префиксного кода
Б. Ф. Мельников, А. А. Мельникова
Аннотация—Максимальный префиксный код определяется обычным образом - «на основе изложенного в студенческих курсах». Расширенный максимальный префиксный код - это конечный язык, содержащий некоторый максимальный префиксный код в качестве подмножества (собственного или несобственного). Также обычным образом определяются (гомо)морфизмы, и, на их основе, инверсные морфизмы.
В наших предыдущих публикациях были рассмотрены бесконечные итерации конечных языков - как омега-языки. Была сформулирована гипотеза о том, что бесконечные итерации двух заданных конечных языков совпадают тогда и только тогда, когда оба этих языка могут быть получены с помощью следующего алгоритма. Во-первых, выбирается некоторый новый алфавит; во-вторых, над этим алфавитом рассматриваются некоторые два расширенных максимальных префиксных кода; в-третьих, к этим двум расширенным максимальным префиксным кодам применяется некоторый (один и тот же в обоих случаях) морфизм -переводящий слова над новым алфавитом в слова над алфавитом исходным. При этом полученные морфические образы двух рассматриваемых расширенных максимальных префиксных кодов должны совпасть с двумя исходными (заданными) конечными языками.
(Более точно - было сформулировано несколько эквивалентных вариантов этой гипотезы, а также другая гипотеза, представляющая собой менее сильное утверждение, о котором имеет смысл говорить в случае невыполнения гипотезы первой.)
В настоящей статье решается задача проверки, может ли один язык быть получен с помощью подобного алгоритма, применённого к некоторому другому языку. Точнее, недетерминированный алгоритм для такой задачи тривиален (и приведён в одной из наших предыдущих публикаций) - здесь же мы приводим детерминированный, причём полиномиальный, алгоритм проверки выполнения этого условия. Таким образом, рассматриваемую в настоящей статье задачу можно считать шагом на пути проверки сформулированной выше гипотезы.
Ключевые слова—формальные языки, итерации языков, бинарные отношения, морфизмы, инверсные морфизмы, алгоритмы, полиномиальные алгоритмы.
I. ВВЕДЕНИЕ, ОСНОВНЫЕ ОБОЗНАЧЕНИЯ, МОТИВАЦИЯ И ПОСТАНОВКА ЗАДАЧИ В статье мы продолжаем тематику публикаций [1], [2], [3], [4]. В этих статьях мы исследовали свойства специального бинарного отношения ф, впервые рассмотренного нами (в несколько иной интерпретации) ещё
Статья получена 18 августа 2022 г.
Борис Феликсович Мельников, Университет МГУ-ППИ в Шэнь-чжэне ([email protected]).
Александра Александровна Мельникова, Димитровградский инженерно-технологический институт - филиал Национального исследовательского ядерного университета «МИФИ» ([email protected]).
в 1993 г., в [5] - т. н. отношения эквивалентности в бесконечности. В дальнейших публикациях (некоторые ссылки будут приведены ниже) мы рассмотрели примеры применения этого отношения - причём эти примеры можно разделить на две группы:
• примеры необходимости его выполнения;
• примеры его использования - в различных областях теории формальных языков, дискретной математики и абстрактной алгебры.
Мы не стали разделять этот вводный раздел на несколько (как делаем почти всегда) - несмотря на достаточно большой его объём. Объяснить это можно так: для рассматриваемой здесь тематики все «составляющие части введения» - основные обозначения, мотивация и постановка задачи - получаются существенно связанными между собой. Применённое же деление раздела на под разделы - очень условное.
А. Оновные обозначения, префиксы и морфизмы
Сначала повторим определения бинарного отношения ф и связанных с ним понятий - близко к [3], [6] и др.
Для заданного конечного алфавита 1 («главного», «основного») и слова и £ 1* над этим алфавитом:
• язык рте^и) определяется как множество префиксов слова и (включая несобственный, само и);
• язык орте^и) определяется как множество собственных префиксов слова и.
Для заданного языка А С 1*
ртеПА) = У рте^и);
иел
аналогичным образом определяется и язык орте^А).
Если для конечных языков А и В (в наших статьях они практически всегда рассматриваются над этим «основным» алфавитом 1) выполнено условие
(Vи £ А*) (3V £ В*) (и £ ортеад),
то будем писать А ^ В (либо В ^ А). Если одновременно выполнены условия А ^ В и А^ В, мы будем писать А ф В.
(Специально отметим ещё раз разницу в обозначениях: в наших последних статьях с одной стороны, и, с другой стороны, в [5] и нескольких статьях 1990-х годов. Конечно же, в настоящей статье мы будем применять только обозначения, приведённые в этом разделе.)
Далее считаем, что все рассматриваемые языки - непустые и не содержащие е. (Если иного не сказано в их
определениях - явно или неявно; а «неявно» - это, например, в случае задания языка как итерации некоторого другого.)
Для некоторого языка
А е I*, А = {и1,и2,...ип }
мы рассматриваем алфавит
дА = {аьа2 }
(причём если это не вызывает неоднозначностей, мы обычно пишем просто Д), а для последнего - рассматриваем морфизм
На : ДА ^ I*,
задающийся следующим образом1:
НА(^1 ) = и1 , НА(Л2) = и 2 , ... , НА(ЛП) = ип .
Если А не обладает свойством префикса, то определённый здесь морфизм также будем называть непрефикс-
2
ным 2.
B. Инверсные морфизмы и (расширенные) максимальные префиксные коды
Предмет настоящей статьи связан с более важной и более сложной задачей (более сложной, чем построение морфизма) - задачей построения инверсного морфизма. Мы её начали рассматривать в [6], [7], [8] (три части одной статьи) - и с возможным названием этой более сложной задачи совпадает подзаголовок одной из процитированных здесь частей. Отметим, что кратко эта задача была рассмотрена ещё в [9] (1995 г.).
Сформулируем условие этой более сложной задачи подробнее.
Сначала - такое естественное определение3. Для заданных конечного языка А, морфизма НА и некоторого слова и е I* рассмотрим язык4
На1 (и) = { ид е Д* | На (ид) = и } ;
специально подчеркнём, что определённое понятие является множеством. Ту же самую конструкцию можно рассматривать и для некоторого языка (вместо слова и; пусть это язык В) - причём нас будут интересовать только конечные языки. А именно:
hA1(B) = J hA1(u).
не будем. Можно сказать, что это - код, который является максимальным и префиксным; на самом деле, этого будет достаточно, поскольку все эти понятия - из «студенческих курсов», т. е. в самом названии уже содержится определение. Однако, с другой стороны, всё не столь тривиально - см. некоторые комментарии, включающие определение кодового индекса, в [6]. И там же, в [6], приведён простейший недетерминированный алгоритм получения любого максимального префиксного кода над заданным алфавитом - причём этот алгоритм можно рассматривать как ещё одно альтернативное определение.)
А множество языков, каждый из которых содержит некоторый максимальный префиксный код в качестве подмножества (возможно, несобственного), обозначается тр+(Д). Таким образом,
тр(Д) С тр+(Д),
причём, конечно, для любого алфавита включение собственное. Мы будем называть каждый из таких языков расширенным максимальным префиксным кодом5'6.
Вернёмся к рассмотрению «основного» алфавита, т. е. I, а также морфизмов вида
На : ДА ^ I*-
Пусть у нас есть некоторый язык
Ад е тр(Д); тогда будем считать, что выполнено условие
На (Ад) е тр(А)
(мы таким образом определяем множество языков тр (А) над рассматриваемым алфавитом I). Аналогично, для некоторого языка
Ад G mp+(A)
будем считать, что
иев
Теперь рассмотрим другое определение, не связанное с предыдущим. В нём «основной» алфавит - Д. Над этим алфавитом множество максимальных префиксных кодов - как множество языков - во многих наших предыдущих работах обозначалось тр(Д).
(Само определение «одного» максимального префиксного кода - также как некоторого языка - мы приводить
1 Неточностей во вводимых обозначениях нет, см. подробнее предыдущие публикации. Там же см. немного более подробное описание обозначений.
2 Как правило, нас интересуют именно такие морфизмы.
3 Во введении мы определения не нумеруем, посколько они приведены в наших предыдущих публикациях. При этом нередко - существенно более подробно, с примерами и т. п.
4 Состоящий, вообще говоря, не из одного, а из нескольких слов -
а, возможно, являющийся пустым языком.
На (Ад) е тр+(А).
Таким образом:
• тр+ (Д) - это множество языков, каждый из которых содержит в качестве подмножества некоторый максимальный префиксный код над алфавитом Д;
• тр+ (А) - это множество языков, каждый из которых является А-морфизмом некоторого языка из множества тр+(А); т.е. каждый из таких языков - специальный морфизм некоторого расширенного максимального префиксного кода.
Важно отметить, что в [6], [7], [8] приведены недетерминированные бесконечные алгоритмы построения всех языков множеств тр(Д) и тр+(Д) - однако, конечно, эти алгоритмы не являются такими, которые могут удовлетворять заголовку настоящей статьи, т. е. её предмету. К описанию предмета мы сейчас и переходим.
5 Несмотря на приведённые в этом определении слова «содержит в качестве подмножества» - конечно, не любой язык можно назвать расширенным максимальным префиксным кодом над заданным алфавитом. Тривиальный пример - Д = { а, Ь }, а язык {а}. Этот язык действительно был бы расширенным максимальным префиксным кодом (и даже просто максимальным префиксным кодом) - но над алфавитом из одной буквы, а не над таким Д.
6 Термин «расширенный» введён нами. Он представляется более удачным, чем близкое по смыслу слово «дополненный».
С. Собственно постановка задачи
Итак, как следует из названия статьи, мы описываем детерминированный полиномиальный алгоритм проверки выполнения условия морфического образа расширенного максимального префиксного кода - то есть проверки условия А £ тр+(В) для заданных непустых конечных языков А, В С 1*. Этот алгоритм можно считать одной из важных вспомогательных задач для исследования сформулированного выше отошения ф на множестве непустых конечных языков.
Но, конечно, приведённая в предыдущем абзаце постановка задачи - очень краткая. Поэтому повторим (с некоторыми дополнениями) тот вариант постановки задачи, который был приведён в расширенной аннотации. Такое более полное описание постановки основано на рассмотренных в предыдущем подразделе определениях максимальных префиксных кодов, морфизмов и инверсных морфизмов.
В наших предыдущих публикациях были рассмотрены бесконечные итерации конечных языков - как омега-языки. При этом бесконечные итерации двух заданных конечных языков А и В совпадают тогда и только тогда, когда для них выполняется описанное выше бинарное отношение ф:
Аш = Вш тогда и только тогда, когда А ф В
Была сформулирована гипотеза о том, что это происходит тогда и только тогда, когда оба этих языка могут быть получены с помощью следующего алгоритма:
• во-первых, выбирается некоторый7 новый конечный алфавит;
• во-вторых, над этим алфавитом рассматриваются некоторые два расширенных максимальных префиксных кода;
• в-третьих, к этим двум расширенным максимальным префиксным кодам применяется некоторый (причём обязательно один и тот же в обоих случаях) мор-физм - переводящий слова над новым алфавитом в слова над алфавитом исходным.
При этом полученные морфические образы двух рассматриваемых расширенных максимальных префиксных кодов должны совпасть с двумя исходными конечными языками.
(Более точно. В предыдущих работах было сформулировано несколько эквивалентных вариантов этой гипотезы - и, кроме того, также была сформулирована другая гипотеза, представляющая собой менее сильное утверждение, о котором имеет смысл говорить в случае невыполнения гипотезы первой. В [8, разд. XIV] эти гипотезы были обобщены: это эквивалентные между собой варианты первой гипотезы, обозначенные (), '), ") и '"), а также менее сильная - но при этом более сложная для формулировки - вторая гипотеза, обозначенная
(Ж).)
7 При кратком описании этого алгоритма слово «некоторый» употребляется часто - и выделяется курсивом; аналогично - слова «могут быть получены», см. выше. Это связано с тем, что мы заранее не можем знать, какой именно объект (какое именно отображение) должно применяться.
Алгоритмы определения (построения) таких конкретных объектов (конкретных отображений) — это, по большому счёту, и есть комплекс задач, рассматриваемых в наших публикациях по этой тематике.
Вернёмся к подробному описанию постановки задачи. В настоящей статье решается задача проверки, может ли один язык быть получен с помощью подобного алгоритма, применённого к некоторому другому языку. Ещё точнее - поскольку недетерминированный алгоритм для такой задачи тривиален (он также был приведён в одной из наших предыдущих публикаций, [7, разд. XII]8) -здесь мы приводим детерминированный, причём полиномиальный, алгоритм проверки выполнения этого условия. Таким образом, рассматриваемую в настоящей статье задачу можно считать шагом на пути проверки сформулированной гипотезы.
D. Мотивация
Итак, в настоящей статье мы продолжаем тематику, связанную со специальным бинарным отношением на множестве формальных языков (рассматриваемом в первую очередь на множестве итераций непустых конечных языков) - т. н. отношением эквивалентности в бесконечности. Выше мы также сформулировали более простое бинарное отношение на множестве языков -т. н. отношение покрытия, двойное применение которого равносильно применению отношения эквивалентности в бесконечности. В предыдущих публикациях мы рас-смотатривали алгоритм проверки выполнения отношения покрытия, а также определили вспомогательные объекты, используемые для доказательства корректности этого алгоритма. С одним из подобных объектов - а именно, с расширенным максимальным префиксным кодом, точнее, с бесконечным множеством таких кодов, - мы и работаем в настоящей статье.
Также в предыдущих публикациях (прежде всего - в [1], [2]) мы определили ещё один вид таких объектов, т. н. бесконечные итерационные деревья. После этого мы объединили эквивалентные вершины этих деревьев (эквивалентность вершин рассматривается на основе определения таких деревьев) - фактически получая при этом детерминированный конечный автомат.
Сначала мы определяем именно такой конкретный автомат для двух заданных конечных языков (подлежащих проверке на выполнение отношения ф) - т. н. автомат РМ; он, как уже было отмечено, детерминированный, определён на множествах слов - и каждое из этих множеств является подмножеством множества префиксов второго из заданных языков9.
После этого мы определяем соответствующие такому автомату несколько вариантов специальных недетерминированных автоматов, фактически описывающих построение заданного итерационного дерева морфизма. Мы вводим совершенно иной объект - т.н. автомат ^РМ, - который также описывает построение итерационного дерева морфизма, но определён не на конечных множествах слов (конечных языках), а на (отдельных) словах. (Подробнее про автоматы ^РИ и РИ см. в [3], [4], [10] и др.)
Название настоящей статьи начинается со слов «полиномиальный алгоритм» - поэтому скажем немного о
8 Более того, приведённый там недетерминированный алгоритм решает более сложную задачу - к ней мы вернёмся в заключении.
9 Возможен также вариант, когда вместо множества префиксов используется множество суффиксов.
полиномиальности другого, связанного алгоритма, описанного нами в [11]. Основная идея доказательства того факта, что алгоритм построения конечного автомата для проверки равенства бесконечных итераций двух конечных языков полиномиален, такова. Естественным является построение для этой задачи детерминированного автомата - каждое состояние которого описывает целое множество возможных префиксов, оставшихся от различных разложений слова - т. е. разложений морфизма итерации первого заданного конечного языка по словам второго заданного конечного языка. Однако при этом мы работаем с множеством множеств возможных префиксов - что полиномиальность алгоритма делает невозможным. Поэтому мы строим недетерминированный автомат - определённый просто на множестве возможных префиксов10. При этом возникает вопрос - когда именно этот автомат даёт положительный результат. Мы решаем эту проблему тем, что требуем, чтобы получающийся недетерминированный автомат являлся бы аналогом всюду определённого детерминированного автомата11.
(При этом условие того, что недетерминированный автомат является аналогом всюду определённого детерминированного автомата, за полиномиальное время проверить невозможно - см. подробнее [11]. Однако именно невозможность подобной проверки может дать доказательство невозможности проверки за полиномиальное время и условия выполнения отношения ^ для двух заданных конечных языков.)
В ближайшем будущем мы предполагаем опубликовать специальную статью, посвящённую именно мотивации к рассмотрению задач, связанных с алгоритмами проверки бинарного отношения ^ .
E. Содержание статьи по разделам
Существенная часть статьи относится к подразделам настоящего раздела. В оставшейся её части мы рассмотрим:
• сам основной алгоритм статьи (раздел II) - при этом приведена также блок-схема алгорима;
• доказательство корректности этого алгоритма, в том числе его полиномиальности (раздел III) - впрочем, стоит отметить, что все эти доказательства несложные, и их можно считать просто следствиями описания алгоритма;
• а также небольшое заключение (раздел IV), в котором приведены только самые основные возможные направления дальнейших работ по рассматриваемой тематике.
II. ОПИСАНИЕ АЛГОРИТМА
Здесь мы приводим формальное описание основного алгоритма настоящей статьи; его блок-схема приведена на рис. 1.
Алгоритм II.1. Проверка условия морфического образа расширенного максимального префиксного кода.
10 Повторим ещё раз, что не на множестве подмножеств таких возможных префиксов.
11 Определение такого «аналога» очевидно. Если говорить нефор-
мально - должны быть заполнены все клетки таблицы, описывающей
граф переходов (transition function) рассматриваемого недетерминированного автомата.
Вход: конечные языки A, B С £*, причём
A = 0, A $ е, B = 0 и B $ е.
Выход:
• true - если A G mp+(B);
• false - в противном случае.
Метод.
Шаг 0. Инициализация:
• создать изменяемое в процессе работы алгоритма множество слов requiritur, при инициализации полагаем
requiritur := {е};
• создать изменяемое в процессе работы алгоритма множество слов probabile, при инициализации полагаем
probabile := 0;
• создать изменяемое в процессе работы алгоритма множество слов discursum12, при инициализации полагаем
discursum := 0.
Шаг 1. Если requiritur = 0, то переход на шаг 12 (для окончания работы алгоритма).
Шаг 2. (Здесь requiritur = 0.) Если при этом
requiritur П pref(A) = 0, то выход из алгоритма с ответом false.
Шаг 3. Рассмотрим множество tempore := (requiritur U probabile) П pref(A); про него отметим следующее:
13
• оно заведомо непустое 13;
• при будущих выполнениях этого шага оно будет, вообще говоря, иным.
Шаг 4. Если tempore С discursum, то переход на шаг 12 (для окончания работы алгоритма).
Шаг 5. (Здесь tempore\discursum = 0.) Среди слов множества tempore\discursum выбираем минимальное по длине (если таковых несколько - то выбираем любое из них); пусть это - слово u.
Шаг 6. discursum : + u (т. е. добавляем u в это множество).
Шаг 7. Если u G requiritur, то переход на шаг 11.
Шаг 8. (Здесь u G requiritur.) Если при этом также u G A, то выполняем следующие действия:
• requiritur : — u
(т. е. удаляем u из этого множества);
12 В процессе работы алгоритма в это множество слова только добавляются.
13Действительно, мы знаем, что requiritur = 0. При этом в requiritur нет слов, не принадлежащих pref(A). Значит, в одном лишь requiritur (даже не рассматривая probabile) хотя бы одно слово из множества pref(A) имеется.
Рис. 1. Блок-схема основного алгоритма.
• probabile : + u
(т. е. добавляем u в это множество);
• переход на шаг 1.
Шаг 9. (Здесь u G requiritur и u G A.) Если при этом u G pref(A), то выход из алгоритма с ответом false.
Шаг 10. (Здесь u G requiritur и u G opref(A).) Выполняем следующие действия:
• requiritur : — u
(т. е. удаляем u из этого множества);
• если u G A, то probabile : + u (т. е. добавляем u в это множество);
• иначе (т. е. если u G A) для каждого v G B
requiritur : + u •v
(т. е. добавляем в это множество каждое из слов u • v)14;
• переход на шаг 215.
Шаг 11. (Здесь u G probabile.) Выполняем следующие действия:
• для каждого v G B добавляем
probabile :+ u•v
(т. е. добавляем в это множество каждое из не входящих в requiritur слов u • v);
• переход на шаг 216.
Шаг 12. Выход из алгоритма с ответом
probabile D A
(т. е. true будет ответом тогда и только тогда, когда все слова исходного языка A помечены как probabile).
Конец описания алгоритма.
III. ДОКАЗАТЕЛЬСТВО КОРРЕКТНОСТИ АЛГОРИТМА
Утверждение 1: На любом этапе выполнения алгоритма 11.1 для любого входящего в множество requiritur слова u G I* выполнено следующее:
. u G B* 17;
• при наличии нетривиальных представлений u в виде конкатенаций слов из B* - т. е. представлений вида
u = viv2 . . .vk ,
где vi,v2,...,vk G
причём k ^ 2,
(1)
среди них существует по крайней мере одно такое представление (пусть далее именно оно и обозначено (1)), для которого выполнено следующее:
(V j : 1 < j <k) (viv2 ...vj G A).
14 Понятно, что такое добавление - основное действие, причём, по-видимому, не только шага 10, но и всего описываемого алгоритма.
По этой же причине (описывается основное действие) мы не стали разделять этот шаг на несколько - а использовали запись, содержащую подшаги. Аналогично - на рис. 1.
15 В рассматриваемой здесь ситуации можно строго доказать, что requiritur = 0, поэтому возвращаться на шаг 1 необязательно.
16 См. предыдущую сноску.
17 Отметим, что с формальной точки зрения этот пункт опускать нельзя - поскольку нетривиальных представлений (см. следующий пункт) может вообще не существовать.
Доказательство. Вначале заметим, что «для удобства использования» мы сформулировали утверждение для подобных нетривиальных представлений слова - то есть входящие в множество requiritur
• как слово £,
• так и слова множества B
в строгом и полном доказательстве требуют особого рассмотрения.
Результат этого рассмотрения является базой индукции - которую, как несложно видеть, мы можем фактически провести не по словам языка I*, а по словам языка A* 18. А шаг индукции - это шаг 10 алгоритма: поскольку слова в множество requiritur добавляются («конкатенируются») только на нём и только для u G A, то и условие, аналогичное (1), будет выполняться для большего значения k (т. е. k + 1 вместо k).
Конец доказательства утверждения.
Утверждение 2: Если выполнено 19 проверяемое в алгоритме условие A G mp+(B), то на любом этапе выполнения для любого входящего в множество requiritur слова u G I* существует некоторый язык Q G mp(B), такой что
{u} • Q Ç A.
Доказательство также проводится индукцией по длине слова в (подразумеваемом) алфавите A. База индукции - это слово £ над алфавитом A, соответствующее его морфическому образу, слову £ над алфавитом I. Для £ требуемое условие выполняется согласно формулировки утверждения, в этом случае требуемый язык Q - это то подмножество A G mp+(I), которое входит в множество языков mp(I) (а такое подмножество имеется по определению множества языков mp+(I)).
А шаг индукции следует из:
• несложного свойства максимальных префиксных кодов, заключающегося в том, что множество суффиксов любого слова, являющегося собственным префиксом какого-либо слова, входящего в максимальных префиксный код20, само образует максимальных префиксный код; выполнение этого свойства следует, например, из теории, приведённой в [12], [13]21 ;
• а также описания шага 10 рассматриваемого алгоритма: на этом шаге мы заменяем слово, дописывая все возможные элементы языка B, т. е., с точки зрения инверсного морфизма и алфавита A, рассматриваем все варианты слова - прообраза u (входящего в рассматриваемый максимальный префиксный код, элемент множества языков mp(A)) с приписанными справа всеми буквами из A.
18 Немного точнее - по их морфическим образам в I*.
19 Может, точнее сказать «если будет выполнено»? Ведь алгоритм описывается именно для проверки этого условия.
20 Конечно же, нескольких таких слов - при мощности алфавита |A| > 2.
21 То, что префикс является собственным, - не является обязательным с точки зрения этой теории, однако важно для наших построений.
А возможность рассматривать в данном случае именно собственные префиксы можно считать следствием утверждения 1: хотя бы одно представления рассматриваемого слова u в виде конкатенации слов языка B не имеет в качестве собственного префикса - причём такого, который совпадает с конкатенацией меньшего числа этих слов, -некоторого слова «проверяемого» языка A.
(При этом важно отметить, что требуемый прообраз рассматриваемого слова u существует - например, вследствие утверждения 1.)
Конец доказательства утверждения.
Утверждение 3: На любом этапе выполнения алгоритма 11.1 для любого входящего в множество probabile слова u е 1 выполнено следующее : . u е Б*;
• для каждого из представлений u в виде конкатена-ций слов из Б* - т. е. представления вида
u = v1 v2 ...vk , где vi,V2,...,vk е Б — выполнено следующее:
(3 j : 1 < j < k) (viv2 ■ ■ ■ Vj е A). (2)
Доказательство. Рассмотрим ситуации добавления слов в множество probabile.
Во-первых, «перевод» слов в множество probabile из множества requiritur осуществляется (только) на шагах 8 и 10 - и в обеих этих ситуациях условие u е A даёт приведённое в формулировке утверждения представление для probabile, позволяющее считать выполненным условие (2).
Во-вторых, собственно добавления слов в множество probabile (без описанного выше «перевода») осуществляется только на шаге 11; он выполняется для u е probabile, что, также на основе формулировки утверждения, позволяет считать выполненным условие (2) уже для каждого слова вида u • v.
Конец доказательства утверждения.
Утверждение 4: Алгоритм II.1 - полиномиально-временной относительно общей суммарной длины слов языка A U Б.
Схема доказательства. Каждый из описанных выше шагов алгоритма (и их подшагов) представляет собой тривиальный вспомогательный алгоритм, выполняемый
23
за полиномиальное время23.
Общее число шагов алгоритма не превышает числа слов языка pref(A) - поскольку после обработки каждое такое слово на шаге 6 заносится в множество discursum, и, на основе проверки на шаге 5 (в нём мы рассматриваем язык tempore \ discursum, т. е. без слов последнего множества), повторной обработки никакого слова произведено быть не может.
При этом, как несложно убедиться на основе элементарной математики, при задании некоторого n е N как общей суммарной длины слов некоторого (незаданного) языка число возможных префиксов слов этого языка не превышает n - т. е. полиномиально; это даёт полиноми-альность всего алгоритма.
Конец доказательства утверждения.
Объединяя утверждения 1-4, мы получаем следующую теорему.
22 Ср. с формулировкой утверждения 1.
23 Строго в этом можно убедиться, рассмотрев соответствующие
компьютерные программы. Конечно, мы этого делать не будем: во-
первых, все такие программы очень просты, а во-вторых, их слишком много.
Теорема 1: Алгоритм 11.1 определяет, выполнено ли условие A е mp+(B) - для заданных конечных языков A, Б е 1*. Он является полиномиально-временным алгоритмом - относительно общей суммарной длины слов языка A U Б .
Доказательство. Если условие A С Б* не выполнено, то также не может быть выполнено и условие A С probabile - и этот факт мы обнаружим на шаге 1224, т. е. мы обязательно выйдем из алгоритма с нужным нам отрицательным ответом. Поэтому далее будем считать, что A С Б*.
В процессе работы алгоритма мы рассматриваем все слова языка
pref(A) П Б* —
и, следовательно, если A е тр+(Б), то и все слова языка A. Каждое из этих слов (слов языка A), согласно утверждениям 2 и 3, будет в процессе работы алгоритма включено в множество probabile, следовательно, мы завершим работу с ответом true тогда и только тогда, когда при этом не останется нерассмотренных слов в текущем варианте множества requiritur. Очевидно, что отсутствие подобных слов по определениям морфизма и расширенного максимального префиксного кода даёт нужное нам условие A е тр+(Б).
И, согласно утверждению 4, все эти действия выполняются за полиномиальное время относительно общей суммарной длины слов языка A U Б .
Конец доказательства теоремы.
IV. ЗАКЛЮЧЕНИЕ
Среди направлений дальнейших работ приведём только два самых основных25
Во-первых, необходимо описать полиномиальный алгоритм, решающий задачу построения языка hA (Б), т. е. алгоритм, строящий язык - инверсный морфизм для некоторого заданного конечного языка. (Эта задача уже была кратко сформулирована выше, в сноске 8; она там была названа «более сложной задачей».)
Во-вторых - и это, по-видимому, более важно - среди всех возможных вариантов таких инверсных морфизмов нужно построить - причём также, по возможности, за полиномиальное время - выбираемый по некоторому «естественному» количественному критерию оптимальный инверсный морфизм. Таким критерием может быть, например, суммарная длина слов морфического образа (в приведённом во введении определении это - суммарная длина слов языка A).
Конечно же, последняя задача не является тривиальной - что может быть продемонстрировано следующим очень простым примером. Пусть рассматривается даже не «сложный язык» (т. е. язык из mp+ (A) для некоторого непрефиксного языка A), а нужный нас язык «с двумя одновременными упрощениями»:
• тр - вместо тр+,
24 Даже если туда попадём. Если же не попадём - то всё очевидно, будет необходимый ответ false.
25 Напомним, что в ближайшее время мы предполагаем опубликовать специальную статью, посвящённую именно мотивации к исследованию рассмотренных здесь задач.
• I (как множество 1 -буквенных слов, а не как алфавит) - вместо некоторого, вообще говоря непрефиксного, A Ç I*,
т.е. просто язык из множества mp(I). Например - рассмотрим язык
{ а, Ъа, bb } для I = { а, b }.
Тогда кроме очевидного морфизма, соответствующего максимальному префиксному коду
{0,10,11 } над A = {0,1 }, где h(0) = а, h(1)= b, можно рассматривать и морфизм
{0,1,2} над A = {0,1,2}, где h(0) = а, h(1) = ba, h(2) = bb;
конечно же, рассматривая инверсные морфизмы, построенные для этих морфизмов, в обоих случаях обозначенных h, второй вариант вряд ли можно назвать оптимальным.
Стоит также отметить, что вторую из сформулированных задач действительно можно рассматривать как отдельную - а не только как продолжение первой: для каждого возможного выбранного критерия необходимо описать соответствующий алгоритм выбора такого мор-физма. (В [6] было отмечено, что все «естественные» критерии дают практически одинаковые частичные порядки - но, конечно, разные критерии могут давать разные алгоритмы выбора морфизма.)
Понятно, что эти задачи - существенно более сложные, чем задача, рассмотренная в настоящей статье: язык, обычно обозначаемый B , в них не задан, и требуется, среди прочего, его построить. И важно отметить, что краткие варианты формулировок этих задач, а также некоторый подходы к их решению, были приведены в трёх частях статьи [6], [7], [8].
Кроме этого, нужно описать полиномиальный алгоритм, решающий задачу построения языка hA1 (B), т.е. алгоритм, строящий язык - инверсный морфизм для некоторого заданного конечного языка. (Эта задача была сформулирована выше в сноске 8, где названа «более сложной».)
А в самом конце описания направлений дальнейших работ напомним приведённый выше текст, связанный с автоматом PRI. Мы отмечали, что он определён на состояниях, являющихся подмножествами множества префиксов второго из заданных для его определения языков (обычно обозначавшегося в наших предыдущих публикациях B). При этом в сноске мы написали, что возможен также вариант, когда вместо множества префиксов используется множество суффиксов (этого же языка). К более подробному рассмотрению этих вопросов мы предполагаем вернуться в одной из наших ближайших публикаций. А именно, расматривая все возможные варианты первого из заданных для определения автомата PRI языков26, можно свести большинство рассматривавшихся нами задач к таким ситуациям, когда оба заданных
26 В наших предыдущих публикациях он обычно обозначался A.
При этом важно отметить, что слова такого языка A можно ограничить по длине - возможность такого ограничения следует из приведённого в наших предыдущих публикациях описания функции переходов автомата PRI.
для определения автомата PRI языка (A и B) совпадают. Отметим, что в примерах предыдущих статей мы уже рассматривали несколько таких ситуаций ([10] и др.).
Список литературы
[1] Мельников Б., Мельникова А. Бесконечные деревья в алгоритме проверки условия эквивалентности итераций конечных языков. Часть I // International Journal of Open Information Technologies.
- 2021. - Vol. 9. No. 4. - P. 1-11.
[2] Мельников Б., Мельникова А. Бесконечные деревья в алгоритме проверки условия эквивалентности итераций конечных языков. Часть II International Journal of Open Information Technologies.
- 2021. - Vol. 9. No. 5. - P. 1-11.
[3] Мельников Б. Варианты конечных автоматов, соответствующих бесконечным итерационным деревьям морфизмов. Часть I // International Journal of Open Information Technologies. - 2021. -Vol. 9. No. 7. - P. 5-13.
[4] Мельников Б. Варианты конечных автоматов, соответствующих бесконечным итерационным деревьям морфизмов. Часть II // International Journal of Open Information Technologies. - 2021. -Vol. 9. No. 10. - P. 1-8.
[5] Melnikov B. The equality condition for infinite catenations of two sets of finite words // International Journal of Foundation of Computer Science.
- 1993. - Vol. 4. No. 3. - P. 267-274.
[6] Мельников Б. Полурешётки подмножеств потенциальных корней в задачах теории формальных языков. Часть I. Извлечение корня из языка // International Journal of Open Information Technologies. -2022. - Vol. 10. No. 4. - P. 1-9.
[7] Мельников Б. Полурешётки подмножеств потенциальных корней в задачах теории формальных языков. Часть II. Построение инверсного морфизма // International Journal of Open Information Technologies. - 2022. - Vol. 10. No. 5. - P. 1-8.
[8] Мельников Б. Полурешётки подмножеств потенциальных корней в задачах теории формальных языков. Часть III. Условие существования решётки // International Journal of Open Information Technologies. - 2022. - Vol. 10. No. 7. - P. 1-9.
[9] Мельников Б. Подклассы класса контекстно-свободных языков (монография). - М., Изд-во Московского университета. - 1995. -174 с. - ISBN 5-211-03448-1.
[10] Абрамян М., Мельников Б. Алгоритмы преобразования конечных автоматов, соответствующих бесконечным итерационным деревьям // Современные информационные технологии и ИТ-образование. - 2021. - Том 17. № 1. - С. 13-23.
[11] Мельников Б., Мельникова А. Полиномиальный алгоритм построения конечного автомата для проверки равенства бесконечных итераций двух конечных языков // International Journal of Open Information Technologies. - 2021. - Vol. 9. No. 11. - P. 1-10.
[12] Лаллеман Ж. Полугруппы и комбинаторные приложения. - М., Мир. - 1985. - 440 с.
[13] Грэхем Р., Кнут Д., Паташник О. Конкретная математика. Математические основы информатики. - М., Вильямс. - 2009. - 784 с.
Борис Феликсович МЕЛЬНИКОВ,
профессор Университета МГУ-ППИ в Шэньчжэне
(http://szmsubit.ru/),
emaili: [email protected],
email2: [email protected],
mathnet.ru: personid=2 7 9 67,
elibrary.ru: authorid=15715,
scopus.com: authorId=55954040300,
ORCID: orcidID=00 0 0-0 0 02-67 65-68 0 0.
Александра Александровна МЕЛЬНИКОВА, доцент Димитровградского инженерно-технологического института - филиала Национального исследовательского ядерного университета «МИФИ»
(https://diti-mephi.ru/), email: [email protected], mathnet.ru: personid=148963, elibrary.ru: authorid=143351, scopus.com: authorId=6603567251, ORCID: orcidID=00 0 0-0 0 02-165 8-68 57.
A polynomial algorithm for checking the fulfillment of the condition of the morphic image of the extended maximal prefix code
Boris Melnikov, Aleksandra Melnikova
Abstract—The maximum prefix code is defined in the usual way, "based on the things stated in the student courses". An extended maximum prefix code is a finite language containing some maximum prefix code as a subset (proper or improper one). Also the (homo)morphism is defined in the usual way, and, based on it, the inverse morphism does.
In our previous publications, infinite iterations of finite languages as om-languages have been considered. A hypothesis was formulated that infinite iterations of two given finite languages coincide if and only if both of these languages can be obtained using the following algorithm. First, some new alphabet is selected; secondly, some two extended maximal prefix codes are considered over this alphabet; third, to these two extended maximal prefix codes, some morphism is applied (the same in both cases), which translates words over the new alphabet into words over the original alphabet. At the same time, the obtained morphic images of the two considered extended maximal prefix codes should coincide with the two given finite languages.
(More precisely, some equivalent versions of this hypothesis have been formulated, as well as another hypothesis, which has a less strong statement, but which makes sense to talk about if the first hypothesis is not fulfilled.)
This paper solves the problem of checking whether one language can be obtained using a similar algorithm applied to some other language. More precisely, a non-deterministic algorithm for such a problem is trivial, and was given in one of our previous publications; here we also give a deterministic polynomial algorithm for checking the fulfillment of this condition. Thus, the problem considered in this paper can be considered a step towards verifying the formulated hypothesis.
Keywords—formal languages, iterations of languages, binary relations, morphisms, inverse morphisms, algorithms, polynomial algorithms.
References
[1] Melnikov B., Melnikova A. Infinite trees in the algorithm for checking the equivalence condition of iterations of finite languages. Part I // International Journal of Open Information Technologies. - 2021. -Vol. 9. No. 4. - P. 1-11 (in Russian).
[2] Melnikov B., Melnikova A. Infinite trees in the algorithm for checking the equivalence condition of iterations of finite languages. Part II International Journal of Open Information Technologies. - 2021. -Vol. 9. No. 5. - P. 1-11 (in Russian).
[3] Melnikov B Variants of finite automata corresponding to infinite iterative morphism trees. Part I International Journal of Open Information Technologies. - 2021. - Vol. 9. No. 7. - P. 5-13 (in Russian).
[4] Melnikov B Variants of finite automata corresponding to infinite iterative morphism trees. Part II International Journal of Open Information Technologies. - 2021. - Vol. 9. No. 10. - P. 1-8 (in Russian).
[5] Melnikov B. The equality condition for infinite catenations of two sets of finite words // International Journal of Foundation of Computer Science. - 1993. - Vol. 4. No. 3. - P. 267-274.
[6] Semi-lattices of the subsets of potential roots in the problems of the formal languages theory. Part I. Extracting the root from the language // International Journal of Open Information Technologies. - 2022. -Vol. 10. No. 4. - P. 1-9 (in Russian).
[7] Melnikov B. Semi-lattices of the subsets of potential roots in the problems of the formal languages theory. Part II. Constructing an inverse morphism // International Journal of Open Information Technologies. - 2022. - Vol. 10. No. 5. - P. 1-8 (in Russian).
[8] Melnikov B. Semi-lattices of the subsets of potential roots in the problems of the formal languages theory. Part III. The condition for the existence of a lattice // International Journal of Open Information Technologies. - 2022. - Vol. 10. No. 7. - P. 1-9 (in Russian).
[9] Melnikov B. Subclasses of the context-free languages class (monograph). - Moscow, Moscow State University Ed. - 1995. - 174 p. -ISBN 5-211-03448-1 (in Russian).
[10] Abramyan M., Melnikov B. Algorithms of transformation of finite automata, corresponding to infinite iterative trees // Modern information technologies and IT education. - 2021. - Vol. 17. No. 1. - P. 13-23. (in Russian).
[11] Melnikov B., Melnikova A. A polynomial algorithm for constructing a finite automaton for checking the equality of infinite iterations of two finite languages // International Journal of Open Information Technologies. - 2021. - Vol. 9. No. 11. - P. 1-10. (in Russian).
[12] Lallement G. Semigroups and Combinatorial Applications. - NJ, Wiley & Sons, Inc. - 1979. - 376 p.
[13] Graham R., Knuth D., Patashnik O. Concrete Mathematics. A foundation for computer science. - USA, Addison-Wesley Professional. - 1994. - xiv+657 p.
Boris MELNIKOV,
Professor of Shenzhen MSU-BIT University, China
(http://szmsubit.ru/),
emaili : [email protected],
email2: [email protected],
mathnet.ru: personid=2 7 9 67,
elibrary.ru: authorid=15715,
scopus.com: authorId=55954040300,
ORCID: orcidID=00 0 0-0 0 02-67 65-68 0 0.
Aleksandra MELNIKOVA, Associated Professor of
Dimitrovgrad Engineering and Technology Institute -Branch of National Research Nuclear University "MEPhI"
(https://diti-mephi.ru/), email: [email protected], mathnet.ru: personid=148963, elibrary.ru: authorid=143351, scopus.com: authorId=6603567251, ORCID: orcidID=00 0 0-0 0 02-165 8-68 57.