Главная » Просмотр файлов » В.А. Серебряков - Теория и реализация языков программирования

В.А. Серебряков - Теория и реализация языков программирования (1114953), страница 12

Файл №1114953 В.А. Серебряков - Теория и реализация языков программирования (В.А. Серебряков - Теория и реализация языков программирования) 12 страницаВ.А. Серебряков - Теория и реализация языков программирования (1114953) страница 122019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 12)

Все пары различимых состояний можно найти представленным ниже алгоритмом. Те пары состояний, которые найти не удастся,будут эквивалентными. Алгоритм, который называется алгоритмом заполнения таблицы, состоит в рекурсивном обнаружении пар различимых состояний ДКА = (Q, Σ, D, q0 , F ).Базис. Если состояние p — допускаюшее, а q — не допускающее, то парасостояний (p, q) различима.Индукция.

Пусть p и q — состояния, для которых существует входнойсимвол a, приводяший их в различимые состояния r = D(p, a) и s = D(q , a).3.5. Связь регулярных множеств, конечных автоматов и регулярных грамматик57Тогда (p, q) — пара различимых состояний. Это очевидно, потому что если rи s различимы, то должна существовать цепочка w, отличающая r от s. Тогдацепочка w отличает p от q , так как De (r, aw) и De (s, aw) — это та же парасостояний, что и De (r, w) и De (s, w).Пример 3.11.

Рассмотримна рис. 3.16.вкачествепримераавтомат,изображенныйРис. 3.16Построим матрицу эквивалентности состояний.Базис. Все пары незаключительных состояний не эквивалентны паре (B , D).В пару (D, E) по символу b ведут, соответственно, множества {C} и {A, B , D, E},что делает неэквивалентными пары (C , E) и (C , A). В пару (B , E) по символу aведут, соответственно, множества {A} и {E , C}, что делает неэквивалентными пары(A, E) и (C , A). Результат представлен в табл. 3.3.Т а б л и ц а 3.3D xC x xB x 0xA x x x xE D C BТаким образом, состояния D и B эквивалентны.Теорема 3.7.

Если два состояния не различаются с помощью алгоритма заполнения таблицы, то они эквивалентны.Д о к а з а т е л ь с т в о . Снова рассмотрим ДКА A = (Q, Σ, D, q0 , F ).Предположим, что утверждение теоремы неверно, т. е. существует хотя быодна пара состояний (p, q), для которой выполняются следующие условия:58Глава 3. Лексический анализ1) состояния p и q различимы, т. е. существует некоторая цепочка w,для которой только одно из состояний De (p, w) и De (q , w) являетсядопускающим;2) алгоритм заполнения таблицы не может обнаружить, что состояния rи s различимы.Назовем такую пару состояний плохой парой.Если существуют плохие пары, то среди них должны быть такие, которыеразличимы с помощью кратчайших из всех цепочек, различающих плохие пары.

Пусть плохая пара (p, q) такова, что для нее w = a1 a2 . . . an — кратчайшаяиз всех цепочек, различающих плохие пары. Тогда только одно из состоянийDe (p, w) и De (q , w) является допускаюшим.Заметим, что цепочка w не может быть e, так как если некоторая парасостояний различается с помощью e, то ее можно обнаружить, выполнивбазисную часть алгоритма заполнения таблицы. Следовательно, n > 1.Рассмотрим состояния r = D(p, a1 ) и s = D(q , a1 ).

Эти состояния можноразличить с помощью цепочки a2 a3 . . . an , поскольку она переводит r и sв состояния De (p, w) и De (q , w). Однако тогда цепочка, отличающая r отs, короче любой цепочки, различающей плохую пару. Следовательно, (r, s)не может быть плохой парой, и алгоритм заполнения таблицы должен былобнаружить, что эти состояния различимы.Но индуктивная часть алгоритма заполнения таблицы не остановится,пока не придет к выводу, что состояния p и q также различимы, посколькууже обнаружено, что состояние D(p, a1 ) = r отличается от D(q , a1 ) = s. Получено противоречие с предположением о том, что существуют плохие парысостояний. Но если плохих пар нет, то любую пару различимых состоянийможно обнаружить с помощью алгоритма заполнения таблицы, и теоремадоказана.3.5.2.

Проверка эквивалентности регулярных языков. Эквивалентность регулярных языков легко проверяется с помощью алгоритма заполнениятаблицы. Предположим, что языки L и M представлены, например, соответственно регулярным выражением и некоторым НКА. Преобразуем каждоеиз этих представлений в ДКА. Теперь представим себе ДКА, множествосостояний которого равно объединению множеств состояний автоматов дляязыков L и M . Технически этот ДКА содержит два начальных состояния,но фактически при проверке эквивалентности начальное состояние не играетникакой роли, поэтому любое из этих двух состояний можно принять за единственное начальное.Далее проверяем эквивалентность начальных состояний двух заданныхДКА, используя алгоритм заполнения таблицы. Если они эквивалентны,то L = M , а если нет, то L 6= M .3.5.

Связь регулярных множеств, конечных автоматов и регулярных грамматик59Пример 3.12. Рассмотрим регулярное выражение a(ab)∗. Построим по немудетерминированный конечный автомат двумя способами:1) сначала построив промежуточный недерминированный конечный автомат;2) построив алгоритмом прямого построения ДКА по регулярному выражению.В первом случае получим автомат, изображенный на рис. 3.17, во втором —изображенный на рис. 3.16 (в обоих случаях автоматы пополнены мертвымсостоянием).Рис.

3.17Можно считать, что на рис. 3.16 и 3.17 изображен один ДКА, содержащий девятьсостояний от A до E и от 0 до 3. Если применить алгоритм заполнения таблицык этому автомату, то в результате получим таблицу различимости (табл. 3.4).Т а б л и ц а 3.43 xx 0x x2 x0 x0 x1 0x x x x0 xx x x 0A B C D EПоскольку в результате проверки установлено, что состояния A и 1 эквивалентныи являются начальными у двух заданных автоматов, делаем вывод, что эти ДКАдействительно допускают один и тот же язык.Время заполнения таблицы, а значит, и время проверки эквивалентностидвух состояний, полиномиально относительно числа состояний. Если числосостояний равно n, то количество пар состояний равно Cn2 , или n(n − 1)/2.За один цикл рассматриваются все пары состояний, чтобы определить, является ли одна из пар состояний-преемников различимой.

Значит, один циклзанимает время не больше O(n2 ). Кроме того, если в некотором цикле60Глава 3. Лексический анализне обнаружены новые пары различимых состояний, то алгоритм заканчивается. Следовательно, количество циклов не превышает O(n2 ), а верхняя границавремени заполнения таблицы равна O(n4 ).Однако с помощью более аккуратно построенного алгоритма можно заполнить таблицу за время O(n2 ). С этой целью для каждой пары состояний (r, s)необходимо составить список пар состояний (p, q), «зависящих» от (r, s), т. е.если пара (r, s) различима, то (p, q) также различима.

Вначале такие спискисоздаются путем рассмотрения каждой пары состояний (p, q), и для каждоговходного символа (а их число фиксировано) пара (p, q) вносится в списокдля пары состояний-преемников (D(p, a) и D(q , a)).Если обнаруживается, что пара (r, s) различима, то в списке этой парыкаждая пока неразличимая пара отмечается как различимая и помещаетсяв очередь пар, списки которых нужно проверить аналогичным образом.Общее время работы этого алгоритма пропорционально сумме длин списков, так как каждый раз проверяется наличие некоторой пары в списке (когдапроходим по списку пары, признанной различимой). Так как размер входногоалфавита считается постоянным, то каждая пара состояний попадает в O(1)списков.

Поскольку всего пар O(n2 ), суммарное время также O(n2 ).Еще одним важным следствием проверки эквивалентности состоянийявляется возможность минимизации ДКА. Это значит, что для каждогоДКА можно найти эквивалентный ему ДКА с наименьшим числом состояний. Более того, для данного языка существует единственный минимальный(с точностью до обозначения состояний).

Основная идея минимизации ДКАсостоит в том, что понятие эквивалентности состояний позволяет объединятьсостояния в блоки следующим образом.1.2.3.4.Все эквивалентные состояния и только они образуют блок.Затем строим ДКА с состояниями — блоками.Переходы определяем естественным образом.Начальным состоянием является блок, содержащий начальное состояние исходного автомата.5. Заключительным состоянием является блок, содержащий заключительные состояния исходного автомата.Доказательство основано на том, что эквивалентность состояний транзитивна, а кроме того, по определению симметрична и рефлексивна; значит,блоки состояний образуют разбиение.Теорема 3.8.

ДКА, полученный в результате применения алгоритмаминимизации, имеет наименьшее возможное число состояний из всехДКА, эквивалентных данному.Д о к а з а т е л ь с т в о . Пусть N — ДКА, эквивалентный исходному M ,но имеющий меньшее число состояний. Применим алгоритм определения3.5.

Связь регулярных множеств, конечных автоматов и регулярных грамматик61эквивалентных неразличимых состояний к объединению M и N . Их начальные состояния эквивалентны (неразличимы). Для любых двух неразличимыхсостояний p и q все их (непосредственные) преемники по любому символунеразличимы, поскольку если бы преемники были различимы, то p и qможно было бы различить. Таким образом, каждое состояние p автоматаM неотличимо хотя бы от одного состояния q автомата N . В самом деле,существует цепочка a1 , .

. . , ak , переводящая M из начального состояния в p.Эта же цепочка переводит N в некоторое q . Это следует из того, что начальные состояния неразличимы, и из предыдущего замечания. Если |M | > |N |,то в M имеются два состояния, неразличимые с некоторым q из M . Но этопротиворечит построению M , в котором все состояния различимы.Следствие. Между состояниями любых двух минимальных для данногоДКА автоматов можно установить взаимно однозначное соответствие,т.

е. эти автоматы эквивалентны с точностью до именования состояний.Д о к а з а т е л ь с т в о . Достаточно применить предыдущее рассуждение в обе стороны.Таким образом, получаем следующий алгоритм минимизации автомата.1. Создать все пары (заключительное состояние, незаключительное состояние) и отметить их как непомеченные.2. Пока есть непомеченная пара:а) пометить ее;б) для каждой пары состояний, ведущей в данную пару по каждому(одному и тому же) символу: если эта пара не обозначена какразличимая, сделать ее различимой и непомеченной;в) построить множества эквивалентных состояний как транзитивноезамыкание, каждое такое множество объявить состоянием;г) множества, состоящие из заключительных состояний, сделать заключительными.Если применить этот алгоритм к автомату, изображенному на рис. 3.16,то получим автомат, изображенный на рис.

3.17, поскольку состояния B и Dэквивалентны. Если применить этот алгоритм одновременно к автоматам,изображенным на рис. 3.16 и 3.17, то получим, что эквивалентными являютсямножества состояний {1, A}, {3, C}, {2, B , D} и {0, E}.3.5.3. Реализация на Java. Программа на Java минимизации ДКАс проверкой эквивалентности двух ДКА приведена в пакете Finite (программное приложение). Функция equivalence() делает следующее.62Глава 3. Лексический анализ1.

Характеристики

Тип файла
PDF-файл
Размер
4,93 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6361
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее