Многоаспектная минимизация недетерминированных конечных автоматов (часть II. Основные алгоритмы)

УДК 519.178

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

МНОГОАСПЕКТНАЯ МИНИМИЗАЦИЯ НЕДЕТЕРМИНИРОВАННЫХ КОНЕЧНЫХ АВТОМАТОВ

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

Abstract. In the second part of this paper the authors consider the detailed example of construction of binary relation # and the set of grids of the given regular language; this construction is made in the process of canonization of an automaton defining this language. The article considers two algorithms of combining states of nondeterministic automaton. Based on these algorithms, the researchers formulate a brief algorithm of the edge-minimization, and also an algorithm for adding an edge.

Key words: nondeterministic finite automaton, basis automaton, algorithms of equivalent transformation, state-minimization, edge-minimization.

Введение

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

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

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

1. Предварительные замечания

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

Мы продолжим рассмотрение бинарного отношения #. Как было отмечено в части I, его элементы можно рассматривать как состояния базисного автомата. Но, кроме того, оно формирует множество так называемого псевдоблоков (псевдогридов); мы можем считать, что каждый из них - это некоторая пара (P,R), где P с Qп и R с Qp, причем такая, что для каждой пары состояний р е Р и г е R выполнено условие р#г. Если для некоторого псевдоблока (Р, R) мы не можем расширить ни Р, ни R для получения нового псевдоблока, то будем называть этот псевдоблок блоком (гридом).

Каждый из этих псевдоблоков соответствует состоянию некоторого конкретного автомата для заданного языка. Более того, необходимым условием для определения данного языка конечным автоматом является то, что подмножество псевдоблоков, соответствующих множеству состояний рассматриваемого автомата, покрывает все элементы отношения #.1 В работе [3] нами был получен алгоритм, описывающий все возможные дуги автомата,2 состояния которого соответствуют данному множеству псевдоблоков.

Однако в реальных задачах теории формальных языков эти множества псевдоблоков содержат слишком много элементов. Так, блок, имеющий 4 «строки» и 3 «столбца», формирует (24 - 1) • (23 - 1) = 105 псевдоблоков. Поэтому, по-видимому, одна из главных проблем для прикладных задач состоит в описании алгоритмов, использующих множества блоков, вместо множеств псевдоблоков: обычно последние множества гораздо меньше.

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

Очень кратко подобные алгоритмы - причем не только для задачи дуговой минимизации - можно описать следующим образом. Мы рассматриваем такое множество псевдоблоков на декартовом произведении Qп х Qp, которое покрывает все элементы отношения #, и получаем все возможные дуги, а также стартовое и финальное состояния соответствующего автомата. Рассматривая все возможные подмножества такого множества дуг, мы решаем, определяется ли полученным автоматом заданный язык. Среди всех таких подходящих автоматов3 мы выбираем «лучший» - например, с наименьшим

1 Мы не будем рассматривать различные возможные версии достаточных условий этого факта. Конечно, такие условия могут быть просто получены построением эквивалентного канонического автомата, однако такое решение проблемы дает слишком неэффективный алгоритм.

2 Также там описаны возможные стартовые и финальные состояния. Однако, как уже было отмечено в первой части, в указанной статье рассматривались не автоматы, а специальные «автомато-подобные» структуры.

3 По терминологии [4] каждый них можно назвать подходящим

решением.

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

Как уже говорилось во введении, в данной статье приводятся два алгоритма объединения состояний. Они используются в алгоритме дуговой минимизации, в котором применяется множество блоков (а не псевдоблоков).

2. Подробный пример (продолжение) -построение отношения # и множеств блоков

Простейший путь получения бинарного отношения # состоит в исполь-

о

зовании процедуры канонизации, а точнее, в построении автомата Ь , начатом в части I статьи. Для получения эквивалентных состояний построим табл. 10 для отношения у последнего автомата1.

Таблица 10

>- XV хг хи уг уи ги Т

ХУ Х—У У-^и X 1-У

Х2 — — — — — Л

хи х—г 1Т±У Х—У и-^и

У2 — — — у-^и 2—У — —

у и — — — у±г — *-У и

ги — — — 2—2 1Г±У г-^у и-^и — ^2 и

Как и в разд. 2 части I, запишем в пустых клетках 0, а в остальных 1, и произведем транзитивное замыкание У+ . Получим табл. 11.

Таблица 11

У+ ХУ ХИ хи гг У и ги т

ХУ 0 0 (I 1 1 0 1

хг 0 0 (I 0 0 0 1

хи 0 0 (I 1 1 0 1

уг 0 0 (I 1 1 0 1

у и 0 0 (I 1 1 0 1

ги 0 0 0 1 1 0 1

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

Каждая клетка последнего столбца содержит 1, поэтому эквивалентных состояний в автомате нет. Следовательно, автомат, задаваемый табл. 9, - као

нонический, т.е. Ь (рис. 4). Таблицы 8 и 9 сразу определяют отношение #, задаваемое табл. 12. Заметим, что это отношение может рассматриваться как множество состояний базисного автомата ВА(Ь). 1

Таблица 12

На основе последней таблицы получаем такое множество блоков: а = {А, С, £}х{ 7, 2}, р={А, В, С, £>}х{ 2}, у={В, С, £>}х{ X, 2},

5={С}х{X , 7, 2, и}, С ={С,£}х{X , 7, 2}.

Отметим, что множество псевдоблоков содержит слишком много элементов. Например, блок а формирует (23 - 1) • (22 - 1) = 21 псевдоблок.2

3. Первый алгоритм объединения состояний

Отметим, что далее, при описании алгоритма дуговой минимизации, мы не будем непосредственно использовать алгоритм, формулируемый теоремой 1; мы будем использовать там только второй алгоритм объединения состояний, который мы рассмотрим в следующем разделе. Однако эти два ал-

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

о

будет эквивалентен Ь .

2 Согласно терминологии [5], можно покрыть все значения # тремя блоками -

которые мы обозначили а, у и 5; рассмотренный пример демонстрирует такое покрытие. Отметим, что существуют и другие множества псевдоблоков, имеющих то же самое свойство.

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

Теорема 1. Пусть следующее равенство верно для автомата (1) и некоторых его состояний д, д' е Q:

Доказательство. Рассмотрим слово V є £(К) такое, что при его чтении автомат К' проходит через состояние д; будем считать, что такой проход через д происходит ровно п раз. Поэтому можно записать V в виде

Заметим, что, вообще говоря, автомат К' неоднозначный, т.е. может существовать и другой путь чтения слова V автоматом К'.

Будем использовать индукцию по п для доказательства следующего факта: для любого V, которое может быть записано в виде (4), имеем V е £(К). Базис очевиден, потому что если п = 0, то автомат К' допускает слово V без прохождения через состояние д; поэтому автомат К может допустить слово V без прохождения обоих состояний д и д'. Докажем шаг индукции.

Обозначим V' = VI V2...vn_l, v''= vn . Без ограничения общности можно

предполагать, что и е £ К (д) (случай, когда и е £ К (д) аналогичен), поэтому рассмотрим следующие 8 случаев:

v=u v1 v2... vnw,

где и е £ К '(д); (V/ е {1,2,...,п})( v1е £ 1°'(д)); wе £ К (д), а также:

- и не может быть записано как и = и' и'', где и' е £ К (д), и''е £ К' (д);

- v1 не может быть записано как v1 = V' V'', где V', V'' е £ К' (д);

- w не может быть записано как w = w' w'', где w' е £ К (д), w'' е £ К' (д).

A. Vі є £ К (д, д) v'' є £ К (д',д), w є £ К (д);

B. v' є £ К

C. v' є £ К (д', д), V є £ К (д',д), w є £ °£ґ (д) Б. V' є £ К (д', д), V є £ К (д,д) w є £ Ки (д) Е. v' є £ К (д, д), V є £ К (д',д), w є £ 0£ґ (д); Р. V є £ К (д, д) v'' є £ К (д,д) w є £ К (д); О. v' є £ К (д', д), V є £ К (д',д), w є £ Ки (д); Н. v' є £ К (д', д), V є £ К (д, д), w є £ 0£ґ (д).

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

Лемма 1. Пусть для некоторого состояния д автомата (1) выполняется

д е < А >к , й е £ (А) , м>К е £ % (X) .

х Ь ¿я

Тогда й W е £(К).

Доказательство следует из определений функций фш и ф°й, а также базисного автомата (разд. 1 части I). Действительно, состояние X базисного автомата допускает все входные слова состояния А автомата Ь (а следовательно, и рассматриваемое слово й) как входные слова и все выходные слова состояния автомата (Ь ) (а следовательно, и рассматриваемое слова #). Лемма доказана.

Обобщением леммы 1 является следующая

Лемма 2. Пусть для некоторого состояния д автомата (1) выполняется

фКйГ (д) э X , й е У £ Ь (А) , # е £ Т (X) .

АефК

Тогда й W е £(К).1

Заметим, что, в отличие от лемм 1 и 2, которые могут быть сформулированы для произвольного состояния д рассматриваемого автомата, в двух следующих леммах будет рассматриваться состояние д, непосредственно указанное в восьми сформулированных случаях. В каждом из них мы по-

прежнему полагаем и е £ К (д).

Лемма 3. Пусть W е £ К (д1). Тогда йм> е £(К).

Лемма 4. Пусть й е £ К (д) и w е £ К (д) Тогда й wе £(К).

Леммы 3 и 4 следуют из леммы 2.

Теперь подробно рассмотрим случаи А-Н (рис. 5-9).

Рис. 5. Случай Е

Случай E (рис. 5) очевиден.

Рис. 6. Случай А

1 Заметим, что «зеркальные образы» лемм 1 и 2 также выполняются, однако они не используются в доказательстве рассматриваемой нами теоремы 1.

В случае А имеем: й у" у"'е£К (д) - и получаем факт, доказанный в лемме 4.

Рис. 7. Случай Б

В случае Б имеем: у" у"' wе£К (д") - и получаем факт, доказанный

в лемме 3.

Рис. 8. Случай В В случае В (рис. 8) имеем:

йу" е £ К (д") с У £ Ь (А) с У £ Ь (А),

АефК

поэтому получаем этот случай на основе леммы 2.

Рис. 9. Случай Н

Для случая Н мы сначала опишем модифицированный случай А, где д и д' меняются местами; назовем этот случай А". Мы уже доказали, что в случае А выполнено условие й у" y''w е Ь. По определению функций фш и фоий получаем

й е У £Ь

АефК

Поэтому для случая А' мы имеем:

У ^

А # X, Аеф'Ц

Оба этих факта (8) и (9) для случая А' доказывают случай Н.

Как и при описании случая А", рассмотрим модификацию В" случая В, где д и д' меняются местами. Докажем, что для случая В (а поэтому и для В") uy'y''w е Ь. Также аналогично случаям Н и А" мы имеем для О и В" (рис. 10):

йу" е £ К

АефК

Известия высших учебных заведений. Поволжский регион в (10) может рассматриваться любое слово й е£ К (д) У £ К (д"), поэтому

у" wе У £°й

А # X, АефК

Рис. 10. Случай в

Факты (10) и (11) доказывают случай О.

Для получения случая Б (рис. 11) рассмотрим случай О, заменив д на д' и наоборот.

Рис. 11. Случай Б

Опишем случай Б, где д и д' меняются местами; обозначим его через Б'. Мы доказали, что для случая Б (и поэтому для Б') и\'\''м> є Ь. Тогда

ЫУ'У'' є £ К

АєфК

wє У £°ьи{

А # X, АєфК

Факты (12)и(13) для произвольного слова и є £и^ (д) и £ (дг) доказывают случай С (рис. 12).

Рис. 12. Случай С

Таким образом, мы доказали все случаи для условия £(К") с £(К), т.е. эквивалентность рассматриваемого автомата, так как условие £(К) с £(К") очевидно. А согласно [6] равенство (6) выполнено согласно определениям детерминированного автомата и функции фш, так как существует канонический автомат, эквивалентный обоим автоматам К и К'п

Аналогично предыдущей выполнена и следующая теорема.

Теорема 2. Пусть следующее равенство верно для автомата (1) и некоторых его состояний д, д" е Q выполнено условие ф К (д) = ф К (д) Тогда автоматы К'= Jqq (К) и К эквивалентны. Кроме того, ф К (д) = ф Ой' (д).^

Важно отметить, что такое объединение состояний может изменять функции разметки состояний (см. некоторые примеры в [6]).

4. Второй алгоритм объединения состояний

Первая часть следующей теоремы была сформулирована в [3], но не была доказана. В данном разделе мы рассмотрим ее полное доказательство.

Теорема 3. Пусть для автомата (1) и некоторых его состояний д, д' е Q выполнены два следующих условия:

Ф К (д') с Ф К (д) и Ф Г (д') С Ф К (д).

Тогда автоматы К'= Jqq (К) и К эквивалентны. Кроме того,

т / \ _ т / \ оМ / \ _ оМ / \

фк(д) = фк,(д) и фк (д) = фк' (д).

Доказательство. Сначала докажем следующую лемму1.

Лемма 5. Пусть и е £ К (д), V е £ К (дг), V? е £ К (д). Тогда и V V) е £(К).

Доказательство:

£ к (д') с

и

АеуК

£ ВА(Ь)( АХ ) С

с и

АеуК

Гіо

£БА(Ь)(х ^

оставшаяся часть доказательства очевидна.

В качестве обобщения леммы 5 можно рассматривать следующий факт. Лемма 6. Пусть

и е £К (д) и £К (q'),

V е £ К

V? е £ Т

Тогда й V м> е Г(К). Доказательство:

Яе4!(?)и^.(?0 =

( л ( \

с и £ |(А) и и г ( аа

ч АеуК(д) к Аеу'К(д) ,

и

АеуК

Г11 (А);

й V е й (£ К (д) и г к (д,д) и £ К (д',д) и £ К (д) с

1 Заметим, что в условиях теоремы 1 такая лемма, вообще говоря, может не выполняться.

(

\ (

и £ )

АєфК (д) (

и .

{р,г]с{д,д']

Г ^

г іо (А

и ^ ЕА(Ь)) х

АєфК

УУ

и £ ?

АєфК

и

£

АЄф'К

іо А ЕА(Ь ) х

//

у є

и

х єфК

£ои (X) -

также аналогично. Поэтому согласно лемме 2 мы получаем й V у є£(К) (как было сказано ранее, лемма 2 выполняется в любом случае - не только для утверждения 1). Лемма доказана.

Все случаи А—Н, рассмотренные в предыдущем доказательстве и также

не упомянутые здесь 8 случаев, в которых й є £ К (д) могут быть получены на основе леммы 6.

Заметим, что примеры из [2], где функции разметки изменяются при объединении состояний, тоже могут быть отнесены к теореме этого раздела.

5. Сокращенный вариант дуговой минимизации

Как уже отмечалось во введении, ранее в нашей задаче мы использовали блоки, а не псевдоблоки. Точнее, в [1] это использование было названо вторым алгоритмом дуговой минимизации. Также во введении говорилось, что алгоритм, сформулированный в этом разделе, является более приемле-мым1. Ниже мы получим решение последней из задач, ранее сформулированных нами в заключении статьи [1]; иными словами, мы получим специальное «объединение» двух алгоритмов, описанных в [1], т.е. нами используется описание всех возможных дуг (как в первом алгоритме из [1]) и блоки (а не псевдоблоки, как во втором алгоритме из [1]).

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

1. Рассмотрим некоторое подмножество блоков множества Qп х Qp такое, что эти блоки покрывают все элементы бинарного отношения #.

2. Рассматривая каждый блок как состояние формируемого конечного автомата, определяем стартовые и финальные состояния на основе утверждений 3 и 4 из [3].

3. Определяем множество возможных дуг на основе утверждения 2 из [3]; назовем это множество М .

1 Как уже отмечалось ранее, мы не рассматриваем вопросы сложности алгоритмов.

2 Заметим, что автомат СОМ(Ь) (см. [3], а также подробнее [7]), соответствующий всему множеству возможных дуг и всем множествам стартовых и финальных состояний, определяет заданный язык.

4. Рассматривая все подмножества множества М, определяем такое его подмножество, что соответствующий ему автомат определяет заданный язык и имеет минимально возможное число дуг.

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

6. Алгоритм добавления дуги

Теорема 4. Пусть заданы язык L и некоторый определяющий его автомат (1); пусть заданы некоторые состояния q1, q2e Q. Пусть для некоторых

A B

состояний x и у базисного автомата BA(L) (мы допускаем возможность A = B и/или X = Y) выполнено следующее: Ae 9l”(qi), Xe 9°“i(q1), Be 9!”(q2), Ye yout(q2), и, кроме того, для некоторой буквы a e ^ выполнено условие

X —a—— B . Тогда для автомата K', полученного из автомата (1) добавлением

BA

дуги q1 ——— q2, выполнено условие L(K') = L(K).

K'

Доказательство. Достаточно доказать, что L(K') с L(K).

Рассмотрим любое состояние Y'e yout(q2) и любое соответствующее ему

слово v' такое, что (vr)Re Ll~ (7) . Пусть и - произвольное слово из Ll~ (A).

lr l

Вследствие uae Ll~^ (B) (этот факт следует из доказанного в части I статьи утверждения 1) и Be 9l”(q2), мы получаем uav'e L. Из последнего следует, что

в автомате LR выполнено условие (vr)Rae L~ (X), причем для некоторого

Lr

такого состояния X'e Qp, для которого выполняется условие A#X'.

Итак, L (q1) э av', поэтому для любого состояния A'e9l”(q1) существует слово u'e LL (A) такое, что u'av'eL; а отсюда (согласно [6, Prop. 2]),

для любого слова u'e L“

и для любых их входов (и'e Lг~ (A') и (v')Re L~ (У)) получили, что u'av'eL.

L lr

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

1 Для компьютерной проверки этого факта мы использовали теорию генерации случайных автоматов, приведенную в [8] и на сайте http://paranthoen.thomas.free.fr. См. также [9].

2 Точнее, в [10] рассматривалось добавление цикла, но мотивация при этом та же самая.

Во-первых, нередко добавление дуги позволяет получить автоматы, удовлетворяющие условиям приведенных выше теорем 1-3, и после применения одной из них получить автомат, имеющий меньшее число состояний. Во-вторых, на основе алгоритма добавления дуг возможно еще одно доказательство совпадения автомата COM [7] с универсальным автоматом Конвэя [11]; соответствующая статья в настоящее время готовится к печати.

Заключение

Как и в части I данной статьи, приведем некоторые возможные проблемы для будущего решения, связанные с материалом части II:

1. Вычисление сложности алгоритмов, приведенных в этой статье и в [1, 3, 6, 7].

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

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

Авторы надеются, что возможное решение этих подзадач поможет решению различных проблем теории формальных языков и конечных автоматов.

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

1. Melnikov, B. Edge-minimization of non-deterministic finite automata / B. Melnikov, A. Melnikova // The Korean J. Comp. and Appl. Math. - 2001. - V. 8, № 3. -Р. 469-479.

2. Мельников, Б. Мультиэвристический подход к задачам дискретной оптимизации / Б. Мельников // Кибернетика и системный анализ (НАН Украины). - 2006. -№ 3. - Р. 32-42.

3. Melnikov, B. Possible edges of a finite automaton defining a given regular language / B. Melnikov, N. Sciarini-Guryanova // The Korean J. Comp. and Appl. Math. - 2002. -V. 9, № 2. - Р. 475-485.

4. Hromkovic, J. Algorithmics for Hard Problems / J. Hromkovic // Introd. to Combinatorial Optimization, Randomization, Approximation, and Heuristics. - Springer, 2004. - 548 p.

5. Мельников, Б. Недетерминированные конечные автоматы / Б. Мельников. -Тольятти : Изд-во ТГУ, 2009. - 160 с.

6. Melnikov, B. Some properties of the basis finite automaton / B. Melnikov, A. Melnikova // The Korean J. Comp. and Appl. Math. - 2002. - V. 9, № 1. - Р. 131-150.

7. Мельников, Б. Построение автомата COM на основе базисного автомата / Б. Мельников, М. Зубова // Вектор науки Тольяттинского государственного университета. - 2010. - № 4. - Р. 30-32.

8. Champarnaud, J. Random generation models for NFA's / J. Champarnaud, G. Hansel, T. Paranthoеn, D. Ziadi // J. of Automata, Languages and Combinatorics. -2004. - V. 9. - Р. 203-216.

9. Мельников, Б. Репрезентативность случайно сгенерированных недетерминированных конечных автоматов с точки зрения соответствующих базисных автоматов / Б. Мельников, С. Пивнева, О. Рогова // Стохастическая оптимизация в информатике (СПбГУ). - 2010. - Т. 6. - Р. 74-82.

10. Melnikov, B. Extended nondeterministic finite automata / B. Melnikov // Fundamenta Informaticae. - 2010. - V. 104, № 3. - Р. 255-265.

11. Lombardy, S. The Universal Automaton / S. Lombardy, J. Sakarovitch // Logic and Automata, Texts in Logic and Games. Amsterdam Univ. Press. - 2008. - V. 2. -Р. 457-504.

Мельников Борис Феликсович

доктор физико-математических наук, профессор, кафедра прикладной математики и информатики, Тольяттинский государственный университет

E-mail: B.Melnikov@tltsu.ru

Мельникова Александра Александровна старший преподаватель, кафедра высшей математики, Димитровградский филиал Ульяновского государственного университета

E-mail: avahi@mail.ru

Melnikov Boris Felixovich Doctor of physical and mathematical sciences, professor, sub-department of applied mathematics and informatics, Tolyatti State University

Melnikova Alexandra Alexandrovna Senior lecturer, sub-department of higher mathematics, Dimitrovgrad branch of Ulyanovsk State University

УДК 519.178 Мельников, Б. Ф.

Многоаспектная минимизация недетерминированных конечных автоматов (Часть II. Основные алгоритмы) / Б. Ф. Мельников, А. А. Мельникова // Известия высших учебных заведений. Поволжский регион. Физикоматематические науки. - 2012. - № 1 (21). - С. 31-43.