МАТЕМАТИКА
J
DOI: 10.18698/1812-3368-2016-2-3-15 УДК 519.7
К ВОПРОСУ ЧАСТИЧНОГО УГАДЫВАНИЯ ФОРМАЛЬНЫХ ЯЗЫКОВ
Р.С. Исмагилов, А.А. Мастихина
МГТУ им. Н.Э. Баумана, Москва, Российская Федерация e-mail: anmast@bmstu.ru
Рассмотрены бесконечные цепочки символов некоторого алфавита, порожденные размеченным ориентированным графом. Модифицировано понятие частичного угадывания. Изложены методы частичного угадывания для класса языков, основанные на ином подходе к рассматриваемым задачам. Доказан критерий и приведен конструктивный алгоритм угадывания. Сопоставлены результаты, полученные в настоящей работе, с результатами, полученными ранее. Изложение замкнуто в себе и использует лишь элементарные понятия, связанные с графами и автоматами.
Ключевые слова: частичное угадывание, граф, автомат.
TO THE PROBLEM OF PARTIAL GUESSING OF FORMAL LANGUAGES
R.S. Ismagilov, A.A. Mastikhina
Bauman Moscow State Technical University, Moscow, Russian Federation e-mail: anmast@bmstu.ru
The purpose of the study is to examine the infinite chains of symbols of an alphabet, generated by a marked directional graph. The findings of the research helped us to modify the notion of partial guessing. For a class of languages, we employed methods of partial guessing based on a different approach to the problems under consideration. We found a criterion and a constructive algorithm of guessing. We compared the results obtained in this study with the results obtained previously. In this research we present only basic concepts associated with graphs and automata.
Keywords: partial guessing, graph, automata.
Введение. Задача угадывания может быть описана (в вольном изложении) следующим образом. Имеется бесконечная цепочка символов некоторого алфавита (сверхслово), порожденная некоторым механизмом (в каждый момент времени поступает один символ). В качестве такого механизма берутся размеченные ориентированные графы (автоматы). Зная начало указанной цепочки, требуется предсказать (угадать) следующий ее символ; разумеется, такое угадывание также выполняется автоматом. Некоторые аспекты этой задачи рассмотрены в работе [1]. Достаточно естественным представляется несколько "смягчить" описанную "жесткую" постановку (угадать каждый символ
начиная с некоторого места), требуя угадать символы лишь для некоторого (желательно, достаточно большого) множества моментов их поступления. Частота моментов удачного угадывания — основная характеристика процесса. Задача частичной угадываемости языков изучена в работе [2]. В частности, в ней введена упомянутая характеристика, названная степенью угадывания, и дана ее оценка для некоторых естественных классов языков.
В настоящей работе, во-первых, модифицировано (упрощено) понятие частичного угадывания, во-вторых, изложены методы частичного угадывания для класса языков, рассмотренных в работе [3]. Эти методы основаны на ином подходе к таким задачам; как следствие, они проще тех, которые рассмотрены в работе [3] и легко реализуемы. Сопоставлены результаты, полученные в данной статье, с результатами, приведенными в работе [3]. В изложении использованы лишь элементарные понятия, связанные с графами и автоматами.
Основные понятия. Постановка задачи. Приведем необходимые сведения о графах и языках, а также основную задачу — угадывание языков и множеств путей в графах.
Орграфы. Рассмотрим конечные ориентированные графы (орграфы) вида G = (Q, E), где Q — множество вершин; E — множество ориентированных ребер; ребра запишем в виде а ^ b. Допустимы петли а ^ а, а Е Q. Для любого множества Q' С Q обозначим через [Q'] подграф (Q', E'), E' — множество всех ребер графа (Q, E), вершины которых принадлежат множеству Q'. В частности, граф G = (Q,E) обозначим через [Q], в том случае, когда это не будет вызывать неоднозначности. Граф, содержащий хотя бы одно ребро, назовем нетривиальным.
Граф называется сильно связным, если для любых двух его вершин ai и а2 найдется путь из ai в а2 и путь из а2 в а1. Если G = (Q, E) — произвольный орграф, то множество Q' С Q назовем сильно связным, если подграф [Q'] является сильно связным. Максимальный (по включению) сильно связный подграф графа назовем сильно связной компонентой. Пути (бесконечные вправо) будем записывать в виде последовательности вершин а1 ^ а2 ^ ... Множество всех таких путей обозначим через R(Q), а множество путей, исходящих из вершины q0, — через R(q0,Q). Конечный путь а» ^ ... ^ а^,j > i, назовем отрезком пути а1 ^ а2 ^ ...
Определение 1. Множество вершин Q' С Q, встречающихся на пути r = а1 ^ а2 ^ ... бесконечно много раз, назовем предельным множеством данного пути.
Используем обозначение Q' = lim r, или Q' = lim а».
Лемма 1. Для любого пути г = а1 ^ а2 ^ ... множество Ц' сильно связно. Существует такой номер т, что все вершины > т, лежат в множестве Ц'.
Доказательство леммы (весьма простое) опускаем. Итак, в любом орграфе любой (бесконечный вправо) путь после отбрасывания нескольких его начальных вершин лежит в сильно связном подграфе (предельном множестве пути). Этот простой факт окажется весьма полезным для основной цели настоящей работы (задачи угадывания).
Возьмем произвольное сильно связное множество Ц' С Ц и обозначим через Я(Ц, Ц') множество всех путей с предельным множеством Ц'. Положим Я(д0,Ц,Ц') = Я(Ц,Ц') П Я(д0,О). Приведенная ниже лемма немедленно следует из леммы 1.
Лемма 2. Справедливо равенство Я(Ц) = и^ Я(Ц, Ц') (объединение по всевозможным сильно связным подмножествам Ц' орграфа).
Языки и орграфы. Используем только языки в алфавите {0,1}. Рассмотрим множество {0,1}^, состоящее из всех бесконечных последовательностей а = а(1)а(2)..., где а(г) € {0,1}, г = 1, 2,...; они называются словами. Удобно полагать, что в каждый момент времени п подается символ а(п) слова а. Любое подмножество Ь С {0,1}^ называется языком (в алфавите {0,1}). Применяются также термины "сверхслово", "ш-слово", "сверхязык", "ш-язык". Здесь выбраны более короткие названия.
Для создания языков используем орграфы С = (Ц,Е) со следующим свойством: из каждой вершины исходят либо два ребра, либо одно. Если из каждой вершины исходят два ребра, назовем граф совершенным, если имеются вершины, из которых выходит единственное ребро, то назовем граф несовершенным. Пусть дано отображение f : Е ^ {0,1}. Величину f (а,Ь) назовем f-меткой на ребре а ^ Ь. Потребуем, чтобы f (а,Ь) = f (а, с) в случае, когда из вершины исходят два ребра а ^ Ь и а ^ с. Полученный объект (размеченный орграф) обозначим через С = ). Если фиксирована вершина
д0, то запишем С = (Ц, Е, f, д0).
Каждому пути а1 ^ а2 ^ ... поставим в соответствие слово а = а(1)а(2)..., где а(г) = f (а^,а^+1), г = 1, 2,... Получим отображение Я(Ц) ^ {0,1}^. При таком отображении образы множеств Я(Ц), Я(Ц,Ц') и Я(д0,Ц,Ц') обозначим через Ь(Ц), Ь(Ц,Ц') и Ь(д0, Ц, Ц'). В случае совершенного графа отображение Я(д0, Ц) ^ ^ {0,1}^ взаимно-однозначно.
Ограничимся графами, в которых полустепень исхода каждой вершины не превосходит двух. Это обусловлено тем, что с графом связываем язык с алфавитом из двух символов. Рассмотрение графов без
указанного свойства (при сохранении указанного алфавита) потребовало бы существенного изменения (и усложнения) теории.
Угадывание языков и путей. Проблема угадывания слова (в алфавите {0,1}) состоит (неформально) в следующем: зная первые п символов слова а € Ь (слово а(1)а(2).. . а(п)), угадать следующий символ а(п + 1). Обозначим через в(п) "прогноз" относительно того, каким будет (п+1)-й символ а(п+1) слова а. Если а(п+1) = в(п) для некоторого п, то можно утверждать, что п-й символ слова а правильно угадан (или угадан), число п назовем моментом правильного угадывания (или моментом угадывания) этого символа. Запишем цепочку прогнозов:
в (1),...,в (п),... (1)
Таким образом, процесс угадывания слова можно записать в виде
а(1), в (1),...а(п),в (п),... (2)
Процесс угадывания языка Ь задается цепочками вида (1) для каждого слова а € Ь.
Задача угадывания пути в орграфе — зная пройденные вершины а1,... ,ак пути, предсказать следующую вершину ак+1. Если зафиксировать вершину д0 орграфа, то пути, выходящие из вершины д0, отождествляются со словами в алфавите и тем самым задачи угадывания слов и путей оказываются эквивалентными.
Несколько модифицируем определение, полагая, что угадывание может происходить не в каждый момент, а в моменты времени к1,к2,... Таким образом, в цепочке (1) будут отсутствовать некоторые прогнозы; условимся писать черточки на этих позициях (например, запись 0,1, —, 0,... будет означать, что в(1) = 0, в(2) = 1, в момент 3 угадывания нет и т.д.).
В целях реализации угадывания путей на орграфе поставим в соответствие некоторым (возможно, не всем) ребрам а ^ Ь метки д(а, Ь) € {0,1}; назовем их д-метками. Если, двигаясь по пути, дойти до вершины ак данного пути и на ребре ак-1 ^ ак считать д-метку д(ак-1,ак), то можно спрогнозировать, что следующей будет такая вершина ак+1, что f (ак, ак+1) = д(ак-1,ак). Разумеется, придется угадывать множества путей Я С Я(^), а не только отдельные пути.
Соответственно, если речь идет об угадывании слова, то прогнозируем, что следующей буквой слова будет д(ак-1,ак). Таким образом, указанная выше "угадывающая функция" Г задается равенством Г(а(1)а(2)... а(к)) = д(ак-1, ак).
Итак, роль меток на ребрах такая: f-метки позволяют установить биекцию между словами и путями (в этом месте рассматриваются
пути, выходящие из фиксированной вершины д0); д-метки дают прогноз относительно очередной буквы слова (при условии, что известны предшествующие буквы).
d
с
Для того чтобы сделать процесс угадывания наглядным, введем следующее понятие. Назовем барьером двухреберный путь а ^ Ь ^ с (рис. 1), удовлетворяющий усло-
Рис. 1. Путь а ^ b ^ c — барьер
а
вию д(a,b) = f (b,c). Если дано слово и соответствующий ему путь, то правильное угадывание буквы слова происходит в том и только том случае, когда путь прошел через барьер.
Орграф с метками f : E ^ {0,1} и д : E ^ {0,1} обозначим через G = (Q,E,f,g). Если фиксирована вершина q0, то запишем G = (Q,E,f,g,q0)1. Напомним, что д-метки заданы, возможно, не на всех ребрах. Итак, автомат G = (Q,E,f,g) служит и для задания языка (по данному множеству путей), и для угадывания этого языка.
Степень угадывания и интервал угадывания. Введем понятие, позволяющее оценить "качество" данного процесса угадывания. Оно было введено в работе [2]; воспроизведем его, используя приведенную выше терминологию (отметим, что она отличается от терминологии, принятой в работе [3]).
Возьмем язык L. Пусть дан некоторый процесс угадывания; таким образом, для любого слова а = а(1)а(2)..., взятого из процесса L, указана "угадывающая процедура" (2) и цепочка прогнозов (1).
Возьмем слово а и соответствующую ему цепочку прогнозов (1). Для каждого n ^ 1 обозначим через r (n) число удачных угадываний на временном промежутке 1,... ,n; другими словами, r(n) = |{k : а(к + + 1) = ß(к)}, к ^ n|. Степень угадывания слова определяется равенством lim r (n)/n, n ^ Степень угадывания языка L — такое число а, что любое слово из процесса L угадывается со степенью, не меньшей а. Как следует из определения, если а — степень угадывания, то таковым будет и любое число ai < а.
Язык назовем частично угадываемым в широком смысле, если существует процесс угадывания (2) с ненулевой степенью угадывания. Далее модифицируем эти понятия следующим образом (снова используем цепочку прогнозов (1)).
Скажем, что слово а частично угадывается с интервалом угадывания T, если на любом промежутке i,i + 1,... ,i + T с достаточно
1В другой терминологии имеем неинициальный и, соответственно, инициальный автомат с входной функцией f и выходной функцией g.
большим г имеется момент угадывания (т.е. найдется такое ], что а(] + + 1) = в(])). Скажем также, что язык Ь угадывается с интервалом Т, если каждое слово языка угадывается с интервалом Т.
Язык назовем частично угадываемым в узком смысле, если найдется процесс угадывания (2) с конечным интервалом угадывания. Степень и интервал угадывания для путей определяется так же, как и для языков.
Легко заметить, что из частичной угадываемости в узком смысле следует частичная угадываемость в широком смысле. Причем в качестве степени угадывания можно взять число 1/Т (а также любое меньшее число), где Т — интервал угадывания.
Обратное утверждение неверно. Так, последовательность вида (0П(0 и 1)п)ж будет угадана в широком смысле автоматом, выдающим константу 0 (со степенью 0,5), но для любого угадывающего устройства в ней может встречаться произвольное число неугаданных подряд символов. Таким образом, возникает задача исследования угадываемости (в широком или узком смысле) языков и множеств путей. Далее наметим класс языков и множеств путей, для которых рассмотрим эту задачу.
План дальнейшего исследования задачи угадывания. Вернемся к леммам 1 и 2. Согласно этим леммам, намечается следующий естественный класс множеств путей и языков, для которых можно рассмотреть задачи угадывания:
1) множества путей вида Я(Ц) и языки Ь(д0, Ц) для сильно связного орграфа Ц;
2) множества путей вида Я(Ц,Ц') и языки Ь(до,Ц,Ц'), где Ц' — сильно связное множество вершин орграфа [Ц] (напомним, что [Ц] — краткое обозначение орграфа с множеством вершин Ц);
3) объединения множеств путей и языков, указанных в предыдущем пункте.
Перечисленные задачи изучим последовательно.
Задача угадывания для множеств путей в сильно связных графах. Множества Д(ф). Рассмотрим сильно связный граф [Ц]. Напомним, что он назван совершенным, если из каждой вершины выходят два ребра (и несовершенным — в противном случае). Ясно, что для совершенного орграфа множество Я(Ц) не допускает частичного угадывания. Для несовершенного орграфа — положение иное.
Теорема 1. Пусть дан сильно связный несовершенный орграф [Ц]. Тогда множество Я(Ц) частично угадываемо, причем интервалом угадывания будет число п,п = |Ц|. Это верно и для языка Ь(д0, Ц).
Необходимый автомат-угадчик будет построен в ходе доказательства, которое начнем с доказательства леммы.
Лемма 3. Пусть дан сильно связный орграф. Тогда любой его сильно связный подграф [Ц'], [Ц'] = [Ц] несовершенен.
< Допустим, что подграф [Ц'] совершенен. Возьмем вершины а € [Ц'] и Ь € [О']. Поскольку граф [Ц] сильно связный, существует путь ь1 ^ ... ^ ьг,ь1 = а,ьг = Ь. При а € [Ц'] и Ь € [О'] найдется такое ребро ^ ьг+1, что € [О'] и ьг+1 € [О']. Итак, из вершины
вышло ребро ^ ьг+1, не содержащееся в множестве Ц'. Это противоречит тому, что подграф [О'] совершенен. ►
Продолжим доказательство теоремы 1. Цель — подобрать д-метки так, чтобы на каждом пути длиной, превосходящей число п, встретился барьер. Опишем необходимую конструкцию.
Построим цепочку орграфов [Ц0] Э [Ц1] Э • • • Э [Цт] и снабдим некоторые ребра д-меткой. Для этого примем, во-первых, [Ц] = [Ц0]. Если уже построен граф [Цк], то для построения следующего графа [Як+\] возьмем сначала любую сильно связную компоненту [Ц'] графа [Цк]. Согласно лемме 3, [Ц'] — несовершенный граф, а потому содержит вершину Ьк, из которой выходит только одно ребро Ьк ^ ск, лежащее в подграфе [Ц']; назовем такое ребро одиночным. На каждом ребре d ^ Ьк исходного графа [Ц], входящем в вершину Ьк, зададим д-метку вида д^,, Ьк) = f (Ьк,ск); получим барьеры d ^ Ьк ^ ск. Удалим из орграфа [Цк] вершину Ьк, ребро Ьк ^ ск и все ребра, входящие в вершину Ьк. Получим новый орграф; это и есть искомый граф [Цк+1]. Работа заканчивается тогда, когда очередной граф не имеет циклов и, как следствие, не имеет нетривиальных связных компонент.
Каждый граф [Цк+1] получается из предыдущего графа [Цк] удалением одной вершины Ьк (и ребер, содержащих вершину Ьк). Получаем также д-метки на некоторых ребрах. На остальных ребрах ставим д-метки произвольно. В результате исходный размеченный орграф ([Q],f) превратился в размеченный орграф С = ([Ц]^,д). Отметим, что граф, полученный после удаления указанных ребер, далее не используется; он необходим лишь как средство построения набора д-меток.
Для дальнейшего исследования введем следующие понятия: 1) петля — путь д1 ^ ... ^ д3, где д3 = д1, а вершины д1,..., д8-1 попарно различны (рис. 2, а); 2) расширенная петля — путь д0 ^ ... ^ д3, что д0 = д1 и путь д1 ^ ... ^ д3 есть петля (рис. 2, б).
Лемма 4. Пусть в графе [О] дан путь и его отрезок, являющийся расширенной петлей. Тогда этот отрезок содержит барьер.
< Возьмем расширенную петлю д0 ^ ... ^ д3 и соответствующую петлю д1 ^ ... ^ д3, где д3 = д1. Найдется такое г > 0, что эта петля лежит в графе [Ог] и не лежит в графе [Ог+1] (так как построенная цепочка убывает начиная с исходного графа и заканчивая графом
а
Рис. 2. Петля (а) и расширенная петля (б)
без циклов). Поскольку граф [Qr+1 ] получен из графа [Qr] удалением ровно одной вершины br, эта вершина лежит на петле. Возможны два случая: 1) вершина br совпадает c вершиной q1; 2) она совпадает с некоторой вершиной qj, 1 < j < s. В обоих случаях br ^ cr — одиночное ребро в графе [Qr]. Поэтому, и по построению функции g, в первом случае имеем барьер q0 ^ q1 ^ q2, где q1 = br, q2 = cr, во втором — барьер qj-1 ^ qj ^ qj+1, где qj+1 = Cr. ►
Для следующей леммы используем введенное обозначение n = |Q|. Лемма 5. Любой отрезок пути длиной, не меньшей n + 1, не являющийся начальным, содержит расширенную петлю.
< Любой путь q1 ^ ... ^ qm длиной, не меньшей n, содержит совпадающие вершины и, следовательно, петлю. Пусть эта петля имеет вид ql ^ ... ^ qs ,qi = qs. Поскольку рассматриваемый отрезок не начало пути, на этом пути имеется вершина qi-1. Получим расширенную петлю qi-1 ^ qi ^ ... ^ qs. ►
Из лемм 4 и 5 получаем, что любой не начальный отрезок пути длиной, не меньшей n+1, содержит барьер. Отсюда следует теорема 1.
Частичное угадывание множеств R(q0, Q, Q) и языков L(q0,Q,Q;)• Вернемся к множествам R(Q,Q7), выделяемым условием lim а = Q. Известно, что эти множества R(Q, Q) непусты тогда и только тогда, когда подграф [Q7] сильно связный. Из теоремы 1 вытекает следствие.
Следствие 1. Множество R(Q,Qr) частично угадываемо тогда и только тогда, когда [Q7] — несовершенный подграф.
Отсюда немедленно получаем соответствующее утверждение и для языков L(q0, Q, Q'). Несколько модифицируем процедуру угадывания множества посредством g-меток в орграфе G = (Q,E, f, g). Рассмотрим сильно связное множество Q С Q и соответствующее R(Q'). Пусть [Q7] — несовершенный подграф. Тем самым множество R(Q, Q) угадываемо в узком смысле с некоторым интервалом угадывания. Условимся задавать g-метки, определяющие угадывание, только на ребрах, входящих в подграф [Q7]. Если путь произволен, то процедура угадывания для него будет носить "прерывистый" характер: если
ребро аг ^ аг+1 содержится в подграфе [О'], то на этом ребре имеем прогноз (удачный, либо неудачный) относительно следующей вершины. Если это ребро не входит в подграф [О'], то прогноз отсутствует. В частности, если указанный путь взят из Я(О, О'), то начиная с некоторого момента прогнозы (возможно, неудачные) будут происходить уже без прерываний.
Выше речь шла о путях; изложенное можно перенести на порожденные ими языки.
Частичное угадывание объединения языков. Рассмотрим языки Ь3 = Ь(д°, О3, О'3), э = 1,... ,т, описанные выше. Пусть каждый язык Ь3 = Ь(д(°,О8,О'3) частично угадываем (с некоторым интервалом угадывания Т3); таким образом, все орграфы [О^] несовершенны. Предположим также, что на каждом подграфе [О'в] построены д3-метки, задающие угадывание. Следовательно, имеем автоматы С = (О8,Е3, fs,gs,дso). Рассмотрим язык Ь = ит=1Ь(д°, Ог, О^). Цель — построить алгоритм, позволяющий угадать этот язык (и оценить интервал угадывания).
Зафиксируем слово а = а(1)а(2) . . . и постараемся построить для него цепочку прогнозов с положительным интервалом угадывания. Каждый автомат С3 с помощью своих fs- и дв-меток дает процесс угадывания (цепочка (2)), а также цепочку прогнозов (цепочка (1)), которая в рассматриваемом случае принимает вид
вв(1), вв(2), . . . (3)
Трудность в использовании этих прогнозов заключается в следующем. В каждый момент времени угадывающее лицо имеет в своем распоряжении несколько начальных букв угадываемого слова; однако эти начальные буквы слова не позволяют судить о том, какому из языков Ь3 принадлежит указанное слово. Поэтому процедура угадывания слова окажется не совсем простой.
Идея этой процедуры следующая. На каждый автомат подаем указанное слово а = а(1)а(2)... Каждый автомат дает цепочку прогнозов относительно букв слова (напомним, что эта работа может иметь "прерывистый" характер, т.е. в некоторые моменты угадывание может и не происходить). Возьмем достаточно большое число Я и из всех прогнозов, выданных автоматами в момент к, возьмем прогноз, принадлежащий автомату, который проработал (угадывал, возможно, не всегда успешно) без пропусков в предыдущие Я моментов. (Если имеется несколько таких автоматов, то возьмем из них автомат с наименьшим номером.) Это и есть искомый прогноз относительно следующей буквы слова а.
Опишем намеченную процедуру подробно. Для каждого автомата Св указанное слово а = а(1)а(2)... дает путь ав(1) ^ ав(2) ^ ... Обозначим через множество натуральных чисел г, для которых ребро ав(г) ^ а8(г + 1) лежит в множестве О'3. Известно, если г € то в момент г автомат Св выдает прогноз в в (г); если г € то в момент г автомат не дает никакого прогноза. Введем функцию к ^ Ф(к), к = 1, 2,..., по следующему правилу: для каждого к рассмотрим такие в, для которых числа к, к — 1,...,к — Я входят в множество Другими словами, выбираются те автоматы, которые давали прогноз от момента к — Я до момента к. Наименьший из таких номеров в обозначим через Ф(к). Итак, равенство Ф(к) = г означает следующее: во-первых, множество чисел {к — Я, . . . , к} содержится в множестве Ог, во-вторых, указанное множество чисел не содержится в множестве при г' < г. Функция Ф построена. Отметим ее свойство, которое следует из ее определения и будет использовано далее: если для некоторого г числа {к — Я,... ,к} входят в множество Ог, то Ф(к) < г. Наконец, взяв автомат с найденным номером г = Ф(к), возьмем выданный им (в момент к) прогноз в»(к). В результате для угадывания слова а = а(1)а(2)... получили цепочку прогнозов
в (к) = д»(к), к = 1, 2,..., г = Ф(к). (4)
В цепочке (4) возможны пропуски (отмечаем их черточками), так как для некоторых к величина Ф(к) может быть не определена. Образно говоря, в каждый момент времени к каждый т-й автомат пытается угадать символ а (к + 1) нашего слова; но из всех прогнозов отбирается прогоз, выданный автоматом с наименьшим номером, который угадывал (возможно, не всегда удачно) в моменты времени от к — Я до к (без прерываний).
Теорема 2. 1. Функция к ^ Ф(к) определена при к > к0, где к0 — постоянная, зависящая от а. 2. Пусть число Я выбрано так, что Я > 4тТг для всех г = 1,... ,т. Тогда последовательность (4) дает процесс частичного угадывания с интервалом угадывания Я.
< Докажем первое утверждение теоремы. По условию а € Ьв = = Ь(д°3,О3,О'3) для некоторого в. Поскольку Нша = О'в, соответствующий путь в орграфе Св полностью лежит в О'3, начиная с некоторого момента к0. Следовательно, числа к, к — 1,... ,к — Я принадлежат множеству для всех к > к0, если число к0 достаточно велико. Поэтому функция определена при к > к0.
Доказательство второго утверждения теоремы 2 требует некоторых приготовлений. Число к > к0 назовем точкой скачка функции Ф при Ф(к) = Ф(к + 1).
Лемма 6. В любом отрезке длиной Я имеется не более 2т точек скачка.
< 1. Зафиксируем отрезок длиной Я и рассмотрим точки из него, в которых выполнено неравенство Ф(к) < Ф(к + 1). Докажем, что число таких точек не превосходит т. Допустим противное. Поскольку функция Ф(к) принимает не более чем т значений, а число скачков превосходит т, найдутся такие к, /, что Ф(к) < Ф(к + 1), Ф(/) < Ф(/ + + 1), к < /, Ф(к) = Ф(/) = г для некоторого г. Из определения функции Ф следует, что [к — Я, к] С А и [/ — Я, /] С А. Однако / — Я < к, поэтому [к — Я,/] С А. В частности, [к + 1 — Я, к + 1] С А. В соответствии с определением функции Ф, Ф(к + 1) ^ г, т.е. Ф(к + + 1) < Ф(к). Противоречие.
2. Рассмотрим точки скачка, в которых выполнено неравенство Ф(к) > Ф(к + 1). Докажем, что число таких точек не превосходит т. Здесь рассуждения аналогичны предыдущим; тем не менее проведем их. Допустим противное и каждому скачку поставим в соответствие пару (Ф(к), Ф(к + 1)). Тогда найдутся такие к,/, что Ф(к) > Ф(к + + 1), Ф(/) > Ф(/ + 1), к < /, Ф(к + 1) = Ф(/ + 1) = г для некоторого г. Из определения функции Ф следует, что [к + 1 — Я, к + 1] С А и [/ + 1 — Я, / + 1] С А. Однако / + 1 — Я<к + 1, поэтому [к + 1 — Я, / + + 1] С А. В частности, [/ — Я, /] С А. Согласно определению функции Ф, Ф(/) < г, т.е. Ф(/) < Ф(/ + 1). Противоречие.
Учитывая пп. 1 и 2 получаем утверждение леммы 6. ► Лемма 7. В любой цепочке (в, 8+1,..., з+Я} существует отрезок длиной [Я/(2т)], на котором функция Ф постоянна. Доказательство леммы 7 следует из леммы 6. Вернемся к доказательству второго утверждения теоремы 2. Возьмем отрезок натуральных чисел длиной Я, в нем отрезок длиной [Я/(2т)], указанный в лемме 7; пусть этот отрезок есть {/,/ + + 1,..., / + г}, г = [Я/(2т)]. На этом отрезке функция Ф принимает постоянное значение г. Поэтому цепочка прогнозов (4) принимает вид в(/), А(/ + 1),..., А(/ + г), т.е. совпадает с цепочкой прогнозов, полученных автоматом С^. Напомним, что [Я/(2т)] > Т. Следовательно, на указанном отрезке имеется момент правильного угадывания для автомата С^. Теорема 2 доказана. ►
Следствие 2. Язык вида Ь = и^Ь^О, ^г, является частично угадываемым тогда и только тогда, когда каждый подграф ] несовершенен, причем угадывание происходит с интервалом шах(|^'|, г = 1,..., т}.
Заключение. Как было отмечено выше, изучение частичной угадываемости языков было начато в работах [2, 3]. Теорема 1 (критерий частичной угадываемости языка Ь(д0была доказана в работе [3]. При этом и терминология, и методы, принятые в указанной работе, существенно отличались от тех, какие были использованы в
с е
Рис.3. Автомат, представляющий с помощью семейства множеств состояний е}} язык
настоящей работе. Далее в работе [3] доказано, что объединение языков вида Ь(д0,0,О') являтся частично угадываемым в широком смысле, когда каждый язык частично угадываем в широком смысле. Верно и обратное.
Для указанного объединения языков в работе [3] был использован термин "язык, представимый с помощью семейства множеств состояний" и объяснялась их роль в проблеме угадывания. Автомат, представляющий с помощью семейства множеств состояний {{<}{<,е}} язык, который состоит из всех слов, где после некоторого момента не встречается две единицы подряд, приведен на рис. 3.
Общерегулярные языки были исследованы в работах [2, 3], в которых показано, что вопрос об их угадывании сводится к частичному угадыванию языков вида Ь(д0,0,О'). Угадывание выполнялось с помощью конечных автоматов.
В настоящей статье изложение, приведенное в упомянутых работах, модифицировали, в частности, указали простые алгоритмы угадывания.
Завершая сопоставление работы [3] с настоящей, отметим существенный инструмент, использованный в работе [3]. Язык вида Ь(д0, О, О') — частично угадываемый тогда и только тогда, когда найдется слово, не содержащееся ни в одном слове этого языка. Этот критерий наличия "запрещенного" слова представляет самостоятельный интерес, но в данной работе не используется.
ЛИТЕРАТУРА
1. Вереникин А.Г., Гасанов Э.Э. Об автоматной детерминизации множеств сверхслов // Дискретная математика. 2006. Т. 18. № 2. С. 84-97.
2. Мастихина А.А. О частичном угадывании сверхслов // Интеллектуальные системы 2007. Т. 11. Вып. 1-4. С. 609-619.
3. Мастихина А.А. Критерий частичного предвосхищения общерегулярных сверхсобытий // Дискретная математика. 2011. Т. 23. № 4. С. 103-114.
4. Трахтенброт Б.А., Бардзин Я.М. Конечные автоматы (поведение и синтез). М.: Наука, 1970.
5. Мастихина А.А. Частичное угадывание сверхсобытий, порожденных простыми ЬЬ(1)-грамматиками // Интеллектуальные системы. 2011. Т. 15. С. 507-532.
REFERENCES
[1] Verenikin A.G., Gasanov E.E. On the automaton determinization of sets of superworks. Discrete Mathematics and Applications, 2006, vol. 16, iss. 3, pp. 229-243.
[2] Mastikhina A.A. On the partial guessing of superwords. Intellekt. Sist. [Intelligent Systems], 2007, vol. 11, iss. 1-4, pp. 609-619 (in Russ.).
[3] Mastikhina A.A. A criterion for a partial prediction of general regular superevents. Discrete Mathematics and Applications, 2011, vol. 21, iss. 5-6, pp. 727-739.
[4] Trakhtenbrot B.A., Bardzin Ya.M. Konechnye avtomaty: povedenie i sintez [Finite automata: Behavior and synthesis]. Moscow, Nauka Publ., 1970.
[5] Mastikhina A.A. Partial Guessing Superevents Generated by the Simple LL( 1) Grammars. Intellekt. Sist. [Intelligent Systems], 2011, vol. 15, pp. 507-532 (in Russ.).
Статья поступила в редакцию 29.06.2015
Исмагилов Раис Сальманович — д-р физ.-мат. наук, профессор кафедры "Высшая математика" МГТУ им. Н.Э. Баумана (Российская Федерация, 105005, Москва, 2-я Бауманская ул., д. 5).
Ismagilov R.S. — Dr. Sci. (Phys.-Math.), Professor of Higher Mathematics Department, Bauman Moscow State Technical University (2-ya Baumanskaya ul. 5, Moscow, 105005 Russian Federation).
Мастихина Анна Антоновна — канд. физ.-мат. наук, доцент кафедры "Высшая математика" МГТУ им. Н.Э. Баумана (Российская Федерация, 105005, Москва, 2-я Бауманская ул., д. 5).
Mastikhina A.A. — Cand. Sci. (Phys.-Math.), Assoc. Professor of Higher Mathematics Department, Bauman Moscow State Technical University (2-ya Baumanskaya ul. 5, Moscow, 105005 Russian Federation).
Просьба ссылаться на эту статью следующим образом:
Исмагилов Р.С., Мастихина А.А. К вопросу частичного угадывания формальных языков // Вестник МГТУ им. Н.Э. Баумана. Сер. Естественные науки. 2016. № 2. C. 3-15. DOI: 10.18698/1812-3368-2016-2-3-15
Please cite this article in English as:
Ismagilov R.S., Mastikhina A.A. To the problem of partial guessing of formal languages. Vestn. Mosk. Gos. Tekh. Univ. im. N.E. Baumana, Estestv. Nauki [Herald of the Bauman Moscow State Tech. Univ., Nat. Sci.], 2016, no. 2, pp. 3-15. DOI: 10.18698/1812-3368-2016-2-3-15