Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Конечно-автоматные языки можно охарактеризовать в терминах взаимозамещаемости слов. Введём для этого необходимые понятия.
Пусть даны произвольный язык A в алфавите X, а также пара слов p, r в этом же алфавите X (допускаются и пустые слова).
Слова p, r назовём взаимозамещаемыми в языке A (обозначение p » r (A)), если выполнено условие: каковы бы ни были слова (возможно, пустые) x, y, слово xpy принадлежит языку A тогда и только тогда, когда слово xry также принадлежит языку A.
Слова p, r назовём левовзаимозамещаемыми (правовзаимозамещаемыми) в языке A (обозначения соответственно p »л r (A)), p »п r (A)), если выполнено условие: каково бы ни было слово x, слово px (соответственно xp) принадлежит языку A тогда и только тогда, когда слово rx (соответственно xr) также принадлежит языку A.
Из этих определений непосредственно вытекают следующие утверждения:
Следующая теорема (приводим её без доказательства) раскрывает связь между рангом левой взаимозамещаемости языка и числом состояний представляющего автомата.
ТЕОРЕМА 2. (I) Если автомат M представляет язык A с левой взаимозамещаемостью ранга m, то число состояний в M не меньше m. (II) Для всякого языка A с левой взаимозамещаемостью ранга m существует представляющий его автомат с m состояниями.
Один из критериев конечно-автоматности языков задаётся этой теоремой как её
СЛЕДСТВИЕ. Для того, чтобы язык A был конечно-автоматным, необходимо и достаточно, чтобы порождаемая им система классов левой взаимозамещаемости была конечной.
Теорема 2 не распространяется на правуювзаимозамещаемость. Однако нужно иметь в виду следующее
ЗАМЕЧАНИЕ 2. Отражением A -1 языка A называется язык, состоящий из слов языка A, выписанных в обратном порядке вхождений букв. Например, если a (1) a (2) … a (n) Î A, то a (n) … a (2) a (1) Î A-1.
Пусть ранг правойвзаимозамещаемости для языка A равен m. Тогда таковым же будет ранг левой взаимозамещаемости отраженного языка A -1. Если при этом m конечно, то A -1 — конечно-автоматный язык. Можно показать, что при этом также и A — конечно-автоматный язык, однако число состояний представляющего автомата для A, вообще говоря, больше m.
КОНЕЦ
Лекция 14
Теорема 2 и её следствия позволяют просто указывать эффективные, но не конечно-автоматные языки.
Рассмотрим, например, язык A, состоящий из всех слов вида 0n10n, где 0n обозначает слово их n нулей (n = 1, 2, …). Допустим, что A — конечно-автоматный язык; тогда среди слов 0, 00, 000, … найдётся пара левовзаимозамещаемых (ведь согласно следствию из теоремы 2 число классов левой взаимозамещаемости должно быть конечным). Пусть 0k »л 0s (A). В таком случае в A наряду со словом 0k10k должно было бы содержаться и слово 0s10k (0k = p, 0s = r, x = 10k, px = 0k10k, rx = 0 s10k), которое, по условию, не принадлежит A. Противоречие. Следовательно, язык A непредставим в конечном автомате.
Это рассуждение на самом деле устанавливает следующий общий факт, который можно сформулировать в терминах отделимости языков.
Будем говорить, что язык B отделяет язык A1 от (непересекающегося с ним) языка A2, если B Ê A 1 и B Ç A 2 = Æ.
Далее, язык A1 конечно-автоматно отделим от языка A2, если существует конечно-автоматный язык B, отделяющий A1 от A2 (в таком случае, как легко видеть, и A2 конечно отделим от A1 языком Ø B, а поэтому можно рассматривать симметричное отношение конечно- автоматной отделимости языков).
В нашем примере мы можем теперь заметить, что язык {0n10n} не отделим конечно-автоматно от языка {0k10 s} (k ¹ s).
Приведём (без доказательств) ещё два результата, каждый из которых полезно рассматривать как некоторый (условный или безусловный) критерий конечно-автоматности языков:
Первый результат.
Следуя Ю.Т. Медведеву, для фиксированного алфавита X = { a 1, a 2, …, a m} назовём элементарными следующие языки:
A1 — язык, состоящий из однобуквенных слов, A 2 — язык, состоящий из двухбуквенных слов, B i — язык, состоящий из всех слов, оканчивающихся буквой a i (i £ m);
Ci — язык, состоящий из всех слов длины, не меньшей чем 2, в которых предпоследней буквой является a i (i £ m).
Медведев доказал:
Класс языков (в алфавите X), представимых в конечных автоматах, есть наименьший класс языков, содержащий все элементарные языки и замкнутый относительно объединения È, пересечения Ç, дополнения Ø и двух следующих операций, каждая из которых преобразует язык A в язык A¢:
1) A¢ состоит в точности из тех слов, которые имеют начальный кусок, принадлежащий A.
2) Пусть ai, aj — некоторые буквы алфавита X = { a 1, a 2, …, a m}. A ¢ получается из A, если заменить в каждом слове из A все вхождения буквы ai вхождениями буквы aj.
Второй результат.
Для каждого n в алфавите {0, 1} существует язык, представимый в автомате с n состояниями и такой, что соответствующий отражённый язык не представим ни в каком автомате с числом состояний, меньшим чем 2 n. (Ср. с замечанием 2.)
Третий.
Пусть A — конечно-автоматный язык, который не имеет слов нечётной длины. Тогда левые (правые) половины слов языка A образуют конечно-автоматный язык.
Четвёртый.
Пусть A — конечно-автоматный язык, который содержит только слова, длины которых кратны трём. Тогда язык, состоящий из «средних третей» слов языка A, является конечно-автоматным. Однако язык, который состоит из слов, полученных в результате удаления «средних третей» из слов языка A, может не быть конечно автоматным. (Убедиться в этом можно на примере конечно автоматного языка A, состоящего из всех двоичных слов длины, кратной трём, которые не содержат подряд двух единиц.)
КОНЕЦ
Лекция 15
Дата публикования: 2014-11-29; Прочитано: 1340 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!