Научная статья на тему 'ПОЛУРЕШЁТКИ ПОДМНОЖЕСТВ ПОТЕНЦИАЛЬНЫХ КОРНЕЙ В ЗАДАЧАХ ТЕОРИИ ФОРМАЛЬНЫХ ЯЗЫКОВ. ЧАСТЬ II. ПОСТРОЕНИЕ ИНВЕРСНОГО МОРФИЗМА'

ПОЛУРЕШЁТКИ ПОДМНОЖЕСТВ ПОТЕНЦИАЛЬНЫХ КОРНЕЙ В ЗАДАЧАХ ТЕОРИИ ФОРМАЛЬНЫХ ЯЗЫКОВ. ЧАСТЬ II. ПОСТРОЕНИЕ ИНВЕРСНОГО МОРФИЗМА Текст научной статьи по специальности «Математика»

CC BY
31
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ФОРМАЛЬНЫЕ ЯЗЫКИ / ИТЕРАЦИИ ЯЗЫКОВ / МОРФИЗМЫ / ИНВЕРСНЫЕ МОРФИЗМЫ / БИНАРНЫЕ ОТНОШЕНИЯ / ПОЛУРЕШЁТКИ / АЛГОРИТМЫ

Аннотация научной статьи по математике, автор научной работы — Мельников Борис Феликсович

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

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

Похожие темы научных работ по математике , автор научной работы — Мельников Борис Феликсович

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

SEMI-LATTICES OF THE SUBSETS OF POTENTIAL ROOTS IN THE PROBLEMS OF THE FORMAL LANGUAGES THEORY. PART II. CONSTRUCTING AN INVERSE MORPHISM

In the paper, we consider all possible subsets of the set of potential roots forming in some situations semi-lattices, by intersection and / or by union. Such structures arise in two similar problems in the theory of formal languages. Specifically, for some given finite language, we consider the problem of extracting the root of a given degree and the problem of constructing an optimal inverse morphism, where optimality can be defined, for example, as the length of the maximum word of a language that is an inverse morphic image. In both of the above cases, it is necessary to construct the set of so-called potential roots, i.e., such words of the alphabet in question, for each of which some degree of it is included in the source language. It is important to note that the construction of the set of all potential roots can be performed using a simple polynomial algorithm. Exponential algorithms for both problems are obvious: we just need to sort through all subsets of the set of these potential roots, and choose the appropriate one among these subsets. Therefore, the problem is to describe possible polynomial algorithms for these problems. For both of these problems, the possible existence of two semi-lattices available on a pre-constructed set of subsets of potential roots is of interest. Among other things, in the paper we present the formulation of one important hypothesis of the theory of formal languages, in which we can assert that a special subset of a set of languages, each of which is an inverse morphic image of a given language, forms not only a half-lattice by union, but also a half-lattice by intersection (and, therefore, a lattice). The proposed second part of the paper is more devoted to the second of the problems under consideration, i.e., to the problem of constructing an optimal inverse morphism.

Текст научной работы на тему «ПОЛУРЕШЁТКИ ПОДМНОЖЕСТВ ПОТЕНЦИАЛЬНЫХ КОРНЕЙ В ЗАДАЧАХ ТЕОРИИ ФОРМАЛЬНЫХ ЯЗЫКОВ. ЧАСТЬ II. ПОСТРОЕНИЕ ИНВЕРСНОГО МОРФИЗМА»

Полурешётки подмножеств потенциальных корней в задачах теории формальных языков. Часть II. Построение инверсного морфизма

Б. Ф. Мельников

Аннотация—В статье мы рассматриваем все возможные подмножества множества потенциальных корней, образующие в некоторых ситуациях полурешётки - по пересечению и / или по объединению. Такие структуры возникают в двух похожих задачах теории формальных языков. Конкретно, для некоторого заданного конечного языка мы рассматриваем задачу извлечения корня заданной степени, а также задачу построения оптимального инверсного морфизма -где оптимальность можно определить, например, как длину максимального слова языка, являющегося инверсным морфическим образом.

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

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

Среди прочего, мы в статье приводим формулировку одной важной гипотезы теории формальных языков - при выполнении которой мы можем утверждать, что специальное подмножество множества языков, каждый из которых является инверсным морфическим образом заданного языка, образует не только полурешётку по объединению, но и полурешётку по пересечению (а, следовательно, решётку).

Предлагаемая вторая часть статьи в большей степени посвящена второй из рассматриваемых задач - задаче построения оптимального инверсного морфизма.

Ключевые слова—формальные языки, итерации языков, морфизмы, инверсные морфизмы, бинарные отношения, полурешётки, алгоритмы.

Предлагаемая часть II статьи является продолжением [1]. Здесь мы продолжаем нумерацию разделов, а нумерация ссылок на использованную литературу - новая1.

VII. ПОСЛЕДОВАТЕЛЬНОЕ УДАЛЕНИЕ ПОТЕНЦИАЛЬНЫХ КОРНЕЙ

Сформулируем несколько проблем про последовательности, фактически определённые в конце предыдущего

Статья получена 15 февраля 2022 г.

Борис Феликсович Мельников, Университет МГУ-ППИ в Шэнь-чжэне ([email protected]).

1 Небольшая «алгебраическая» неточность в части I: дважды употреблены слова «частичный линейный порядок» В обоих случаях имелся в виду частичный порядок.

раздела. По этому поводу нужно отметить, что почти все подобные проблемы нельзя назвать относящимися только к задаче извлечения корня: те же самые проблемы (практически без изменений условия) можно сформулировать и для второй задачи - задачи построения (оптимального) инверсного морфизма. Например, «большее» и «меньшее» подмножества множества потенциальных корней для второй задачи (с заданным языком А) естественно определить так:

• Э - «большее» подмножество множества потенциальных корней в том случае, когда Э > А;

• Э - «меньшее» подмножество множества потенциальных корней в том случае, когда Э < А.

Итак, приведём формулировки самих проблем.

• Возможна ли такая ситуация, когда ровно за один шаг «большее» множество становится «меньшим»? (При этом мы всё-таки не имеем в виду тривиальные примеры, а именно - не рассматриваем те потенциальные корни, которые имеют наименьшую либо наибольшую длину.) 2

• Если на предыдущий вопрос ответ положителен - то назовём удаляемый для такого шага потенциальный корень «важным». Верно ли, что объединение всех «важных» корней даёт:

- в первой задаче - корень требуемой степени из заданного языка?3'4

- а во второй задаче - множество, эквивалентное исходному?

(Иными словами, описание алгоритма построения такого объединения всех «важных» корней может рассматриваться как решение любой из двух наших задач.)

Ещё одна возможная проблема связана с последними двумя, т. е. с множеством потенциальных корней, -однако не связана с их последовательностью. Перед формулировкой этой проблемы повторим, что множество подмножеств потенциальных корней в задаче извлечения

2 Отметим, что такой выбор корней «работает» и в случае 2- (и более) буквенного алфавита.

3 Напомним, что пока мы ищем хоть один подобный корень.

4 Отметим, что задача, обратная для сформулированной, также является далеко не тривиальной. Мы действительно можем - например, выполнив вычисления с помощью специальной переборной компьютерной программы - получить разные примеры языков, каждый из которых имеет несколько корней (имеются в виду корни-языки). Но алгоритма, отвечающего на вопрос о «важности» какого-либо конкретного потенциального корня, такие примеры не дают - и здесь также возникает задача описать для ответа на этот вопрос алгоритм, отличный от переборного.

корня, вообще говоря, не образует решётку. Вспомним также, что для конкретных решёток (по пересечению и объединению) обладающие специальными ограничениями свойства каждой из них сохраняются при одновременной замене пересечения на объединение и наоборот -см. [2].

• Вопрос такой: в нашей ситуации - которая не описывает решётку - могут ли в каких-либо частных случаях выполняться те же самые факты при выполнении подобной одновременной замены?5

Для всех этих проблем у автора пока нет ответов - ни примеров, когда это возможно, ни доказательств невоз-можности6.

А для тех из перечисленных задач, в которых требуется построить алгоритмы, возникают задачи дополнительные: построить соответствующие полиномиальные алгоритмы. Более того, положительный ответ на вторую из сформулированных выше задач даст возможность получить полиномиальный алгоритм построения языка-корня - т. е. полиномиально решить одну из двух основных задач настоящей статьи; однако большие подробности (связанные с конкрентым описанием построения такого полиномиального алгоритма) выходят за рамки рассматриваемых здесь вопросов.

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

VIII. НЕСЛОЖНЫЙ ПРИМЕР

В этом разделе рассматривается несложный пример, который можно отнести к обеим рассматриваемым в статье задачам. Сразу заметим, что мы могли бы привести и альтернативное название раздела, то есть сказать во множественном числе, «примеры». Действительно, мы для одного и того же исходного языка начинаем рассматривать его «применение» как в задаче извлечения квадратного корня, так и в задаче построения оптимального инверсного морфизма7. В разделе VIII показывается,

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

6 В одной из ближайших статей автор предполагает привести компьютерные программы (и результаты их работы) для проверки этих утверждений «в самых простых ситуациях» - т. е. для 1-буквенного алфавита и ограниченности на максимальную длину слова. (Стоит отметить, что даже для таких простых ситуаций алгоритмы проверки нетривиальны: ведь при ограничении на максимальную длину слова N может быть до N/2 потенциальных корней степени 2, и поэтому, как мы уже отмечали, может быть до (N/2)! возможных последовательностей их удаления.)

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

7 При этом может показаться, что разницы в названиях практически

нет. Однако рассмотрение примеров в каждой из этих задач ведётся

по-разному, поскольку рассматривается либо равенство специально построенных языков, либо эквивалентность языков, заданных заранее.

что множество потенциальных корней может включать в себя «лишние» - т. е. те корни, которые не были заданы при определении исходного языка с помощью некоторого морфизма. Также в настоящем разделе кратко описывается связь множества потенциальных корней с определёнными и кратко исследованными в [5], [6] автоматами PRI и NSPRI.

Итак, сам пример. Для алфавита

I = { a, b }

и языка над этим алфавитом

A = { a, bab } (1)

(мы его уже применяли в примерах из наших предыдущих статей) рассмотрим язык

B = A2 = { aa, abab,baba, babbab }.

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

VB = { a, ab, ba, bab } = A U { ab,ba}.

Далее. Для того же самого языка A будем рассматривать эквивалентный ему8 язык

C = { aa, abab,babababa, bab }. (2)

Действительно, эквивалентность A ^ C следует, например, из того, что для некоторого нового алфавита

А = {0,1}

и соответствующего морфизма

hA(0) = a, hA(1) = bab выполнено следующее9:

hA1(C) ={00,01,1010,1 }; а последний язык входит в mp+(A) - поскольку язык {00,01,1 }

является, с одной стороны, его (собственным) подмножеством, а с другой стороны, некоторым максимальным префиксным кодом.

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

= C U { a, ab, ba, baba} = A U C U { ab, ba, baba}.

(Напомним, что в задаче построения оптимального инверсного морфизма - в отличие от задачи извлечения корня из языка - мы рассматриваем корни любой возможной степени.)

В заключении раздела ещё раз отметим, что в обоих примерах при построении hA1 (B) и hA1 (C) декодирование было однозначным; этот факт в наших примерах можно считать следствием критерия однозначного декодирования для рассматриваемого в этом разделе языка A, см. подробнее [3], [4] и мн. др. Однако, как следует из предыдущего изложения, последнее условие (однозначность декодирования) не является обязательным -

8 С точки зрения бинарного отношения ^ .

9 Здесь всё очень просто: для рассматриваемого языка A выполняется критерий однозначности декодирования - см. некоторые подробности далее.

и более сложные примеры мы также предполагаем рассмотреть в статье-продолжении.

Можно также считать, что некоторые примеры, связанные с не выполнением этого критерия, мы уже рассмотрели в наших предыдущих публикациях при формальном определении автоматов PRI и NSPRI, в частности - в конкретных примерах этих автоматов. А именно, в тех примерах было важно то, что при построении автоматов PRI(A, B) (а также NSPRI(A, B)) критерий однозначности декодирования не выполнялся для рассматривавшихся в примерах языков B .

По поводу упомянутых в предыдущем абзаце автоматов PRI и NSPRI отметим также следующее. Они оба определены для двух заданных конечных языков A и B и предназначены для удобной записи алгоритма проверки выполнения условия A B. Детерминированный автомат PRI(A, B) определён на подмножествах множества собственных суффиксов; он был подробно рассмотрен в

[5]. А недетерминированный автомат NSPRI(A, B) эквивалентен последнему10 - но определён на множествах собственных суффиксов; он был подробно рассмотрен в

[6]. Кроме того, элементы компьютерной программы и примеры построения автоматов PRI и NSPRI для «сложных» языков были рассмотрены в [7].

IX. ПРИНАДЛЕЖНОСТЬ ЯЗЫКА МНОЖЕСТВУ МОРФИЗМОВ РАСШИРЕННЫХ МАКСИМАЛЬНЫХ ПРЕФИКСНЫХ КОДОВ

В этом разделе рассматривается один из возможных алгоритмов, определяющих принадлежность некоторого заданного языка множеству морфизмов расширенных максимальных префиксных кодов; при этом сам язык-морфизм также заранее задан. Отметим, что предлагаемый здесь алгоритм, конечно же, не является решением второй рассматриваемой в статье задачи: ведь оба языка (A и B в приведённых ранее обозначениях, а здесь и обычно далее - D вместо B 11) заранее заданы.

Итак, для заданных конечных языков A, B С L* необходимо ответить на вопрос о выполнении условия A е mp+(B).

Алгоритм IX.1: проверка выполнения условия расширенного максимального префиксного кода.

Вход: конечные языки A, D С L*; пусть

D = {vi,...,vn}.

Выход:

• true -если A е mp+(D);

• false - в противном случае.

10 На самом деле всё немного сложнее. Автоматы фактически эквивалентны с точки зрения работы - но не с точки зрения принятия некоторого слова. А именно принятие слова (точнее, всех возможных слов) является целью построения автомата NSPRI(A, B): он даёт положительный ответ в том и только том случае, когда допускает любое слово над получающимся алфавитом - алфавитом инверсного морфического образа. Мы не можем проверить это условие (допущение автоматом любого слова) полиномиально - и это даёт основания считать, что алгоритмы ресшения рассматриваемых нами задач также неполиномиальны.

11 Логика в такой «замене» следующая. Языком D мы во второй

задаче обычно обозначаем возможно существующий общий язык (при

этом часто - один из минимально возможных согласно одному из

рассматриваемых далее отношений частичного порядка), эквивалент-

ный по отношению ^ обоим заданным языкам - которые логично

обозначать A и B.

Метод.

1. Выбрать произвольную «нумерацию» для D-морфизма, а именно - некоторый конкретный варант отображения

Hd (di ) = vi > • • • > Hd (dn) = vn

где А = {di, • • •, dn} — некоторый новый алфавит.

2. Для каждого слова u G A рассмотреть все возможные варианты представления

u = Vi, •••Vik , где ii, • • •, ik G {1,•••,n}• (3)

(Отметим, что для таких действий существует детерминированный полиномиальный алгоритм. Подобные алгоритмы мы несколько раз применяли в [8] - причём каждый раз также в качестве вспомогательных12. Однако пока эта «детерминированная полиномиальность» нам не нужна13.)

3. Для каждого из полученных вариантов представления (3) рассмотреть соответствующее ему слово

di, •••dik G А*\ (4)

По определению, объединяя все слова вида (4), соответствующие рассматриваемому слову u, мы таким образом получаем язык HD1 (u).

4. Также по определению

Hd1(A)= U HdV)-

ueA

Обозначим полученный язык Ад = HD1 (A).

5. Рассмотрим язык14

АД = {ид G Ад | ($vд G Ад) (vA G opref(uA))}•

6. Выйти из алгоритма с ответом Ад g mp(A) 15. Такой ответ можно получить, например, путём применения алгоритма III.1 (часть I настоящей статьи)16.

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

Конец описания алгоритма17.

Корректность алгоритма IX.1 следует из приведённых выше определений.

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

12 Что подчёркивается названием той статьи - «Полиномиальный алгоритм построения конечного автомата...».

13 И это можно объяснить следующим образом:

• во-первых, далее в описываемом алгоритме она «нарушается»;

• и, во-вторых, ниже в настоящей статье её применять не нужно: для возможной полурешётки нам важно только существование какого-либо подобного вспомогательного алгоритма.

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

14 Он легко получается с помощью полиномиального (конкретно -квадратичного) алгоритма.

15 То есть true в случае Ад € mp(A), иначе - false.

16 Конечно, в нашем случае возможны и значительно более простые алгоритмы.

17 В связи с этим алгоритмом приведём такую аналогию - «со студенческим материалом». Для каждого из 4 классов иерархии Хомского существует описание каждого из его языков:

• либо с помощью грамматики своего типа - работа которой «чем-то похожа» не недетерминированный алгоритм (приведённый нами, например, в разделе V части I);

• либо с помощью соответствующего автомата-распознавателя - который «похож» на детерминированный алгоритм (даже несмотря на то, что сам автомат может быть недетерминированным).

Впрочем, такая возможная аналогия не влияет на дальнейшее изложение.

морфизма - даже до рассмотрения в разделе XI возможных вариантов частичных порядков на множестве языков: оптимальность морфизма можно определить на основе «абстрактного» (заранее неизвестного) частичного порядка. Однако в этом разделе не стояла цель построить оптимальный морфизм18.

X. ПРИМЕРЫ - НОВЫЙ И ПРОДОЛЖЕНИЕ СТАРОГО

Приводимые в этом разделе примеры (новый - а также, что важнее, продолжение рассмотренного в разделе VIII) должны не только пояснить алгоритм раздела предыдущего, но и показать возможные варианты применения этого алгоритма.

Во-первых - новый пример. Рассмотрим алфавит из одной буквы (а), а над этим алфавитом рассмотрим язык из одного слова -

{а6к} для некоторого к > 1.

Важно отметить, что формально для разложения слова заданного языка по потенциальным корням мы должны рассматривать возможность любого порядка этих потенциальных корней. В нашем случае существуют потенциальные корни а и аа; остальные, в частности обязательно имеющиеся корни а3 и а6 (а также ак, возможно не равный ни одному из них), мы даже не станем рассматривать. Объяснить это нерассмотрение можно так: мы хотим получить оценку снизу, существование которой покажет неполиномиальность простейшего возможного алгоритма. Для получения одной из таковых - оценим снизу количество представлений слова а в виде произведения выбранных нами потенциальных корней а и аа.

Сколькими способами представляется число 6к в виде суммы чисел 1 и 2 ? 19 Применим «очередное снизу»: будем рассматривать только те суммы, которые содержат ровно 2к значений 1 и ровно 2к значений 2. Таковых сумм имеется

М1Л ^ \2к/ V2пk

(мы применяем нужную формулу из [9]). Последняя оценка поясняет неполиномиальность простейшего возможного алгоритма проверки выполнения условия расширенного максимального префиксного кода.

Теперь перейдём к продолжению рассмотрения примера из раздела VIII - а именно, рассмотрим язык C (2). Перепишем явно все потенциальные корни:

Vc = { a, aa, ab, abab, ba, bab, baba, babababa}

(для удобства записываем их в алфавитном порядке).

Далее рассмотрим два «интересных» варианта выбора подмножеств этого множества - этот выбор нужен для формирования D-морфизма.

18 Вообще, мы предполагаем вернуться к этому вопросу в одной из следующих публикаций - причём «объединив» оптимальность с полиномиальностью.

19 Повторим, что порядок важен - в такой формулировке это порядок

слагаемых. И отметим, что каждому из таких порядков соответствует

некоторое слово над алфавитом, который в разделе IX был обозначен как А, - причём все получающиеся подобные А*-слова различны.

Во-первых - «слишком большой» вариант. Пусть D = S/C,

и для него рассмотрим такой («алфавитный») D -мор-физм:

ho (1) = a, ho(2) = aa, ho(3) = ab, hD (4) = abab, ho (5) = ba, ho (6) = bab, ho(7) = baba, hD(8) = bababab

(далее нижний индекс D будем опускать). При этом, конечно,

A = {1,2,3,4,5,6,7,8}. Для слов языка C (2) получаем:

aa = h(11) = h(2), abab = h(33) = h(4), babababa = h(5555) = h(5561) = h(557) = h(5615) = h(5631) = h(575) = h(6155) = h(6161) = h(617) = h(6315) = h(6331) = h(641) = h(755) = h(761) = h(77) = h(8), bab = h(6)

(и других вариантов представления нет). Из последнего получаем, что

Ca = h-1 (C) = {11,2,33,4, 5555,5561,557,5651,5631,575, 6,6155,6161,617,6315,6331,641, 755,761,77,8}

(мы выписали слова множества Ca в алфавитном порядке).

Удаляя из последнего языка слова, у которых существуют собственные префиксы, входящие в этот же язык, получаем следующее:

CA = {11,2,33,4, 5555,5561,557,5651,5631,575, 6,755,761,77,8}.

Мы видим, что язык CA не является максимальным префиксным кодом над алфавитом А 20. Во-вторых - «хороший» вариант21. Пусть

h(0) = a, h(1)= bab для А = { 0,1 }. Для слов языка C (2) получаем:

aa = h(00), abab = h(01), babababa = h(1010), bab = h(1)

20 Отметим следующее. Отсутствие языка - подмножества Ca, не являющегося максимальным префиксным кодом, можно получить на основе рассмотрения только этого языка (Ca) - т. е. без построения CÁ. Возможно, ответ удастся получить даже без построения Ca (т. е. на основе какого-то более простого варианта рассмотрения языков A и C). Возможно, всё это даст более простой вариант основного алгоритма -алгоритма построения оптимального инверсного морфизма.

21 Мы - как homines sapientes, причём даже «авторы» этого примера -такой вариант знаем заранее: фактически он уже был почти полностью рассмотрен в разделе VIII. И не будет большим преувеличением сказать, что основная цель заключается в том, чтобы такой («хороший») вариант компьютер находил бы сам, причём применяя полиномиальный алгоритм.

(и других вариантов представления нет22). Из последнего получаем, что

Ca = h-1 (C) = {00,01,1010,1}.

Удаляя из последнего языка единственное слово, у которого префикс входят в этот же язык, получаем следующее:

CA = {00,01,1}.

Мы видим, что язык CA является максимальным префиксным кодом над алфавитом А.

Отметим, что в рассмотренном примере любая последовательность удаления потенциальных корней, в которой первыми 6 удаляемыми элементами являются «ненужные» потенциальные корни

aa, ab, abab, ba, baba, babababa,

обладает следующими свойствами:

• до удаления всех этих 6 потенциальных корней -вариант «слишком большой»;

• после удаления их (и только их) - вариант «хороший»;

• а после удаления их плюс ещё какого-либо потен-

23

циального корня23 - мы не можем представить все слова исходного языка C (2) в виде конкатенации оставшихся потенциальных корней. Доказать эти свойства несложно.

Итак, это были примеры «слишком большого» и «хорошего» подмножеств множества потенциальных корней. Однако мы не рассмотрели интересного примера для «слишком маленького» подмножества множества потенциальных корней. При этом недостаточное число потенциальных корней (например - только множество {bab} для рассматриваемого языка), конечно, таким интересным примером не является, поскольку мы просто не для всех слов исходного языка C (2) можем получить их представление как конкатенацию множества потенциальных корней.

Однако пример «слишком маленького» подмножества множества потенциальных корней получить можно - но полный пример (а именно - если начать его рассмотрение с соответствующего ему варианта, названного выше «слишком большим») получился бы очень громоздким. Для получения такого примера24 добавим в исходный язык C (2) ещё одно слово - например, bb; но, конечно, при этом должен измениться и исходный язык A (1), и новый его вариант также предусматривает добавление слова bb:

A = { a, bab, bb }.

При этом некоторые варианты подмножества множества потенциальных корней, включающие b, но не включающий bb, как раз и являются такими «слишком маленькими» подмножествами, в которых:

• все слова исходного языка C (2) можно получить в виде их представления конкатенацией множества потенциальных корней,

22 Здесь выполняется критерий однозначности декодирования - но существуют и «более интересные» примеры.

23 Называть получающийся при этом вариант «слишком маленьким» нелогично - см. далее.

24 Подробные вычисления можно провести, например, с помощью

компьютерных программ.

• но при этом построенный согласно приведённому выше алгоритму язык СД; не является максимальным префиксным кодом над соответствующим алфавитом Д.

В заключение раздела отметим, что

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

(Повторим другими словами, что «хороший» вариант означает, что в результате применения к нему алгоритма IX.1 получается язык, находящийся с рассматриваемым в отношении ^.)

XI. «ЕСТЕСТВЕННЫЕ» ЧАСТИЧНЫЕ ПОРЯДКИ НА МНОЖЕСТВЕ ЯЗЫКОВ25

В этом разделе мы определяем два «естественных» частичных порядка на множестве языков. В принципе возможно определение ещё нескольких (также «естественных») частичных порядков - см., например, [10], [11], [12]. Из них мы выбрали такие два порядка, которые:

• во-первых, легко применимы в рассматриваемых нами задачах,

• и, во-вторых, строятся на разных принципах. Более того, мы в статье будем пользоваться только первым из них - но практически всё сказанное про него остаётся верным и при использовании второго26. Заранее отметим, что оба приведённых определения озаглавлены как «определение-алгоритм» - это подчёркивает то, что они оба являются конструктивными.

Определение-алгоритм XI.1: первый частичный порядок на множестве языков.

1. Рассматриваем произвольный конечный язык; пусть это

A = { U!,U2 ,...,Un } ,

где

|Ul| < |U2| < ••• < |UJ.

Последовательность

(|Unl, |Un-l|,..., |U2|, |Ui |)

будем обозначать записью Le(A)27; при этом для непустых последовательностей считаем

He(A) = |Un|,

Ta(A) = Le(A \{Un}) = ( | Un-i|, — , | U2| ,| Ui | ).

При этом последовательность Ta(A) может быть пустой, обозначаем таковую ().

2. Для двух конечных языков A и B:

• если A = B = (), полагаем A ~ B 28;

25 Можно привести и альтернативное название этого раздела -заменив «множество языков» на «элементы глобального надмоноида свободного моноида». (Ещё раз отметим, что нередко применяемое для последнего объекта сокращённое название «супермоноид» не очень удачно.)

26 Да и, по-видимому, любого из дугих «естественных»; именно поэтому мы слово «естественный» и употребляем.

27 Le от "length", He от "head", Ta от "tail".

28 Можно «упростить» запись, написав здесь «если A = B ...». Всё определение при этом будет эквивалентно приведённому.

• иначе если А = (), полагаем А — В;

• иначе если В = (), полагаем В — А 29;

• иначе если Не(А) < Не(В), полагаем А — В;

• иначе ответ (А ~ В, либо А — В, либо А у В) выбираем так же, как для последовательностей Та(А) и Та(В) соответственно.

Таким образом на множестве языков определяется частичный порядок30, [13], [14], [15]. Обозначения ^ и у при необходимости также употребляем обычным образом: (— либо ~) и (у либо ~) соответственно.

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

Конец формулировки определения.

Понятно, что «интересные для нас» языки31 A = {0,10,11 } и B ={00,01,1}

(5)

для определённого таким образом частичного порядка «равны». (Точнее - они находятся в отношении ~.) А для языков

A = { 0,10,11 } и C = {0,10,100,11 } = A U {100}

(6)

согласно определению первого частичного порядка получаем А — С.

Определение-алгоритм Х1.2: второй частичный порядок на множестве языков.

1. Для слов и,у £ 1* будем в этом определении считать, что:

• и — V, тогда и только тогда, когда и С орге^у);

• и ^ V, тогда и только тогда, когда и С рге^у).

2. Для языков А, В С 1* будем считать, что А ^ В, тогда и только тогда, когда

и при этом

(Vu G A) (3v G B) (u ^ v),

(Vu G A) ($v G B) (v ^ u).

3. Считаем, что А — В, в случае, если А ^ В, и при этом А = В 32.

Конец формулировки определения.

Как видно из приведённых определений, обозначения для порядков применяются одинаковые - что не помешает изложению: прежде всего потому, что, как уже было отмечено, в основном будет применяться первый частичный порядок33. Однако здесь мы рассмотрим применение второго порядка - для уже определённых выше пар языков.

Так, языки А и В (5) по второму частичному порядку несравнимы. А для языков А и С (6) выполнено условие А — С.

29 Этот пункт определения можно опустить, рассматривая переобозначения языков и обозначение А У В для В ^ А. Аналогичные переобозначения подразумеваем всюду далее - и «лишних» пунктов не приводим.

30 В данном случае - являющийся полным.

31 Это - два различных максимальных префиксных кода над одним и тем же алфавитом.

32 Возможная альтернативная формулировка - А ^ В, и при этом неверно, что В ^ А.

33 Второй частичный порядок - а также, возможно, и некоторые

другие частичные порядки на множествах языков - мы предполагаем

подробнее рассматривать в последующих публикациях.

XII. ЗАДАЧА ПОСТРОЕНИЯ ОПТИМАЛЬНОГО ИНВЕРСНОГО МОРФИЗМА: НЕДЕТЕРМИНИРОВАННЫЙ ПОЛИНОМИАЛЬНЫЙ АЛГОРИТМ

В этом разделе мы рассматриваем недетерминированный полиномиальный алгоритм решения второй задачи -задачи построения оптимального инверсного морфизма. В отличие от недетерминированного же алгоритма из раздела V (часть I), в рассматриваемой здесь задаче задан только один язык A. Требуется найти язык B над тем же алфавитом I, такой что A G mp+(B). При этом, как и в ранее рассмотренном случае извлечения корня из языка, алгоритм этого раздела даёт возможность получить:

• как один, т.е. первый подходящий ответ34,

• так и все возможные подходящие ответы - причём из них апостериори можно выбрать один, оптимальный подходящий ответ.

Алгоритм XII.1: построение (оптимального) инверсного морфизма.

Вход: язык A С I*.

Выход: язык B С I*, такой что A G mp+(B).

Метод.

Шаг 1. Построить язык C - множество потенциальных корней (любой степени) из A:

C = >/A;

пусть |C| = M (число таких корней равно M). Зафиксировать номер для каждого из элементов языка C.

Шаг 2. Выбрать очередное подмножество D множества C из общего числа 2 м—1 непустых подмножеств его элементов. Если таких множеств больше не существует, то выход из алгоритма.

Шаг 3. Если A G mp+(D), то добавление множества D в ответ. При этом если необходимо получить только один вариант ответа, то выход из алгоритма.

Шаг 4. Переход на шаг 2.

Примечание. К приведённому алгоритму (конечно же, к тому его варианту, который выдаёт все возможные подходящие языки) можно «добавить» оптимальность -т. е. среди найденных подходящих языков D выбирать после их получения оптимальный по некоторому заранее

35

заданному критерию35.

Конец описания алгоритма.

Отметим, что как и в случае алгоритма из раздела V (часть I), приведённый алгоритм является недетерминированным полиномиальным (относительно «размера задачи» - т. е. суммы длин всех слов исходного языка A) - это очевидно.

В заключение раздела отметим следующее. Согласно «студенческим» алгебраическим определениям, рассматриваемое нами бинарное отношение ^ разбивает весь класс языков на подклассы; об этом мы кратко уже писали, см. [16, Sect. 7]36. Согласно какому-либо частичному порядку, в каждом из таких подклассов существует

34 «Первый попавшийся».

35 Такое же примечание возможно и для алгоритма из раздела V (часть I) - однако в том случае подобный вариант, по-видимому, менее интерсен.

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

некоторый минимальный язык D, причём, аналогично разделу X, можно сказать следующее:

мы пока не утверждаем, что такой язык D в каждом подклассе может быть выбран единственным образом.

В заключение раздела отметим, что в предыдущих построениях желательно применять какой-либо полный линейный порядок. И, конечно, любой выбираемый нами частичный порядок не обязан совпадать с одним из порядков, определённых выше в разделе XI.

Как уже было отмечено, оставшийся материал статьи будет приведён в части III.

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

[1] Мельников Б. Полурешётки подмножеств потенциальных корней в задачах теории формальных языков. Часть I. Извлечение корня из языка // International Journal of Open Information Technologies. -2022. - Vol. 10. No. 4. - P. 1-9.

[2] Скорняков Л. (ред.) Общая алгебра. Том 2. - М., Наука. - 1991. -480 с.

[3] Яблонский С. Введение в дискретную математику. Учебное пособие для вузов. - М., Высшая школа. - 2001. - 384 с.

[4] Новиков Ф. Дискретная математика для программистов. - СПб, Питер. - 2009. - 304 с.

[5] Мельников Б. Варианты конечных автоматов, соответствующих бесконечным итерационным деревьям морфизмов. Часть I // International Journal of Open Information Technologies. - 2021. -Vol. 9. No. 7. - P. 5-13.

[6] Мельников Б. Варианты конечных автоматов, соответствующих бесконечным итерационным деревьям морфизмов. Часть II // International Journal of Open Information Technologies. - 2021. -Vol. 9. No. 10. - P. 1-8.

[7] Абрамян М., Мельников Б. Алгоритмы преобразования конечных автоматов, соответствующих бесконечным итерационным деревьям // Современные информационные технологии и ИТ-образование. - 2021. - Том 17. № 1. - С. 13-23.

[8] Мельников Б., Мельникова А. Полиномиальный алгоритм построения конечного автомата для проверки равенства бесконечных итераций двух конечных языков // International Journal of Open Information Technologies. - 2021. - Vol. 9. No. 11. - P. 1-10.

[9] Грэхем Р., Кнут Д., Паташник О. Конкретная математика. Математические основы информатики. - М., Вильямс. - 2009. - 784 с.

[10] Мельников Б. Подклассы класса контекстно-свободных языков (монография). - М., Изд-во Московского университета. - 1995. -174 с. - ISBN 5-211-03448-1.

[11] Алексеева А., Мельников Б. Итерации конечных и бесконечных языков и недетерминированные конечные автоматы // Вектор науки Тольяттинского государственного университета. - 2011. -№ 3 (17). - С. 30-33.

[12] Мельников Б. Регулярные языки и недетерминированные конечные автоматы (монография). - М., Изд-во Российского государственного социального университета. - 2018. - 179 с. - ISBN 9785-7139-1355-7.

[13] Скорняков Л. (ред.) Общая алгебра. Том 1. - М., Наука. - 1990. -592 с.

[14] Хаусдорф Ф. Теория множеств. - М., УРСС. - 2007. - 304 с.

[15] Гуров С. Булевы алгебры, упорядоченные множества, решетки: определения, свойства, примеры. - М., Либроком. - 2013. - 352 с.

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

Борис Феликсович МЕЛЬНИКОВ,

профессор Университета МГУ-ППИ в Шэньчжэне

(http://szmsubit.ru/), email: [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.

Semi-lattices of the subsets of potential roots in the problems of the formal languages theory. Part II. Constructing an inverse morphism

Boris Melnikov

Abstract—In the paper, we consider all possible subsets of the set of potential roots forming in some situations semi-lattices, by intersection and / or by union. Such structures arise in two similar problems in the theory of formal languages. Specifically, for some given finite language, we consider the problem of extracting the root of a given degree and the problem of constructing an optimal inverse morphism, where optimality can be defined, for example, as the length of the maximum word of a language that is an inverse morphic image.

In both of the above cases, it is necessary to construct the set of so-called potential roots, i.e., such words of the alphabet in question, for each of which some degree of it is included in the source language. It is important to note that the construction of the set of all potential roots can be performed using a simple polynomial algorithm. Exponential algorithms for both problems are obvious: we just need to sort through all subsets of the set of these potential roots, and choose the appropriate one among these subsets. Therefore, the problem is to describe possible polynomial algorithms for these problems.

For both of these problems, the possible existence of two semi-lattices available on a pre-constructed set of subsets of potential roots is of interest.

Among other things, in the paper we present the formulation of one important hypothesis of the theory of formal languages, in which we can assert that a special subset of a set of languages, each of which is an inverse morphic image of a given language, forms not only a half-lattice by union, but also a half-lattice by intersection (and, therefore, a lattice).

The proposed second part of the paper is more devoted to the second of the problems under consideration, i.e., to the problem of constructing an optimal inverse morphism.

Keywords—formal languages, iterations of languages, mor-phisms, inverse morphisms, binary relations, semi-lattices, algorithms.

References

[1] Melnikov B. 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).

[2] Skornyakov L. (Ed.) General Algebra. Vol. 2. - Moscow, Nauka. -1991. - 480 p. (in Russian).

[3] Yablonskiy S. Introduction to Discrete Mathematics. Study Guide for Universities. - Moscow, Vysshaya Shkola. - 2001. - 384 p. (in Russian).

[4] Novikov F. Discrete mathematics for programmers. - Saint Petersburg, Piter. - 2009. - 304 p. (in Russian).

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

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

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

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

[9] Graham R., Knuth D., Patashnik O. Concrete Mathematics. A foundation for computer science. - USA, Addison-Wesley Professional. - 1994. - xiv+657 p.

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

[11] Alekseeva A., Melnikov B. Iterations of finite and infinite languages and nondeterministic finite automata // Vector of Science of Togliatti State University - 2011. - No. 3 (17). - P. 30-33 (in Russian).

[12] Melnikov B. Regular languages and nondeterministic finite automata (monograph). - Moscow, Russian Social State University Ed. - 2018.

- 179 p. - ISBN 978-5-7139-1355-7. (in Russian).

[13] Skornyakov L. (Ed.) General Algebra. Vol. 1. - Moscow, Nauka. -1990. - 592 p. (in Russian).

[14] Hausdorff F. Grundzuge der Mengenlehre. - Grundzuge der Mengenlehre, von Veit. - 1914. - ISBN 978-0-8284-0061-9. (Reprinted by Chelsea Publishing Company in 1949.)

[15] Gurov S. Boolean algebras, ordered sets, lattices: definitions, properties, examples. - Moscow, Librokom. - 2013. - 352 p. (in Russian).

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

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

Boris MELNIKOV,

Professor of Shenzhen MSU-BIT University, China

(http://szmsubit.ru/), email: [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.

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