Главная » Просмотр файлов » dzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008

dzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008 (852747), страница 66

Файл №852747 dzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008 (Введение в теорию автоматов) 66 страницаdzhon_khopkroft_radzhiv_motvani_dzheffri _ulman_vvedenie_v_teoriyu_avtomatov_yazy kov_i_vychisleniy_2008 (852747) страница 662021-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

294ÃËÀÂÀ 7. ÑÂÎÉÑÒÂÀ ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ßÇÛÊÎÂб) (!!) {anbnci | i ≠ n}. Указание. Рассмотрите цепочку z = anbncn!, где n — константа из леммы Огдена.7.3. Ñâîéñòâà çàìêíóòîñòè êîíòåêñòíî-ñâîáîäíûõ ÿçûêîâРассмотрим некоторые операции над контекстно-свободными языками, которые гарантированно порождают КС-языки. Многие из этих свойств замкнутости соответствуюттеоремам для регулярных языков из раздела 4.2. Однако есть и отличия.Вначале введем операцию подстановки, по которой каждый символ в цепочках из одного языка заменяется целым языком. Эта операция обобщает гомоморфизм, рассмотренный в разделе 4.2.3, и является полезной в доказательстве свойств замкнутости КСязыков, относительно некоторых других операций, например, регулярных (объединение,конкатенация и замыкание).

Покажем, что КС-языки замкнуты относительно гомоморфизма и обратного гомоморфизма. В отличие от регулярных языков, КС-языки не замкнуты относительно пересечения и разности. Однако пересечение или разность КС-языкаи регулярного языка всегда является КС-языком.7.3.1. ÏîäñòàíîâêèПусть Σ — алфавит. Предположим, для каждого символа a из Σ выбран язык La. Выбранные языки могут быть в любых алфавитах, не обязательно Σ и не обязательно одинаковых. Выбор языков определяет функцию s (подстановка, substitution) на Σ, и La обозначается как s(a) для каждого символа a.Если w = a1a2…an — цепочка из Σ*, то s(w) представляет собой язык всех цепочекx1x2…xn, у которых для i = 1, 2, …, n цепочка xi принадлежит языку s(ai).

Иными словами,s(w) является конкатенацией языков s(a1)s(a2)…s(an). Определение s можно распространить на языки: s(L) — это объединение s(w) по всем цепочкам w из L.Пример 7.22. Пусть s(0) = {anbn | n ≥ 1} и s(1) = {aa, bb}, т.е. s — подстановка на алфавите Σ = {0, 1}. Язык s(0) представляет собой множество цепочек с одним или несколькими символами a, за которыми следует такое же количество b, а s(1) — конечныйязык, состоящий из двух цепочек aa и bb.Пусть w = 01. Тогда s(w) есть конкатенация языков s(0)s(1). Точнее, s(w) состоит извсех цепочек вида anbnaa и anbn+2, где n ≥ 1.Теперь предположим, что L = L(0*), т.е.

множество всех цепочек из нулей. Тогдаs(L) = (s(0))*. Этот язык представляет собой множество всех цепочек видаa n1 b n1 a n2 b n2 K a nk b nkдля некоторого k ≥ 0 и произвольной последовательности положительных целых n1, n2, …,nk. Он включает, например, цепочки ε, aabbaaabbb и abaabbabab. †Теорема 7.23. Если L — КС-язык в алфавите Σ, а s — подстановка на Σ, при которойs(a) является КС-языком для каждого a из Σ, то s(L) также является КС-языком.7.3.

ÑÂÎÉÑÒÂÀ ÇÀÌÊÍÓÒÎÑÒÈ ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ßÇÛÊÎÂСтр. 295295Доказательство. Основная идея состоит в том, что мы можем взять КС-грамматикудля L и заменить каждый терминал a стартовым символом грамматики для языка s(a). Врезультате получим единственную грамматику, порождающую s(L). Однако тут нужнобыть аккуратным.Более формально, пусть грамматика G = (V, Σ, P, S) задает язык L, а грамматикаGa = (Va, Ta, Pa, Sa) — язык, подставляемый вместо каждого a из Σ. Поскольку для переменных можно выбирать любые имена, обеспечим, чтобы множества имен переменныхV и Va (для всех a) не пересекались. Цель такого выбора имен — гарантировать, что присборе продукций разных грамматик в одно множество невозможно случайно смешатьпродукции двух грамматик, и, таким образом, получить порождения, невозможные вданных грамматиках.Построим новую грамматику G′ = (V′, T′, P′, S) для s(L) следующим образом.• V′ представляет собой объединение V и всех Va по a из Σ.• T′ является объединением Ta по a из Σ.• P′ состоит из следующих продукций.1.Все продукции каждого из Pa для a из Σ.2.Все продукции P, но с изменением везде в их телах каждого терминала a на Sa.Таким образом, все деревья разбора в грамматике G′ начинаются как деревья разбора вG, но вместо того, чтобы порождать крону в Σ*, они содержат границу, на которой всеузлы отмечены переменными Sa вместо a из Σ.

Каждый такой узел является корнем дерева в Ga, крона которого представляет собой терминальную цепочку из s(a) (рис. 7.8).SSa1x1Sa2Sanx1xnРис. 7.8. Дерево разбора в G′ начинается деревом разбора в G и заканчиваетсямногими деревьями, соответствующими грамматикам GaДокажем, что описанная конструкция правильна в том смысле, что G′ порождаетязык s(L). Формально будет доказано следующее утверждение.• Цепочка w принадлежит L(G′) тогда и только тогда, когда w принадлежит s(L).296Стр. 296ÃËÀÂÀ 7. ÑÂÎÉÑÒÂÀ ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ßÇÛÊÎÂ(Достаточность) Пусть w принадлежит s(L). Тогда существует цепочка x = a1a2…anв L и такие цепочки xi в s(ai) при i = 1, 2, …, n, для которых w = x1x2…xn. Тогда часть G′,образованная продукциями из G с подстановками Sa вместо каждого a, порождает цепочку, которая выглядит, как x, но с Sa вместо каждого a, т.е.

цепочку Sa1Sa2…San. Эта частьпорождения w представлена верхним треугольником на рис. 7.8.Продукции каждой Ga являются также продукциями G′, поэтому порождение xi из Saiесть также порождение в G′. Деревья разбора для этих порождений представлены нарис. 7.8 нижними треугольниками. Поскольку крона этого дерева разбора в G′ естьx1x2…xn = w, приходим к выводу, что w принадлежит L(G′).(Необходимость) Предположим, что w принадлежит L(G′).

Утверждаем, что дереворазбора для w должно выглядеть, как дерево на рис. 7.8. Причина в том, что переменные каждой из грамматик G и Ga для a из Σ попарно различны. Таким образом, верхушка дерева, начинающаяся переменной S, должна использовать только продукции Gдо тех пор, пока не будет порожден некоторый символ Sa, а под этим символом могутиспользоваться только продукции грамматики Ga. В результате, если w имеет дереворазбора T, можно выделить цепочку a1a2…an в L(G) и цепочки xi в языках s(ai), для которых верно следующее.1.w = x1x2…xn.2.Цепочка Sa1Sa2…San является кроной дерева, образованного из T удалением некоторых поддеревьев (см.

рис. 7.8).Но цепочка x1x2…xn принадлежит s(L), поскольку образована подстановкой цепочек xiвместо каждого из ai. Таким образом, делаем вывод, что w принадлежит s(L). †7.3.2. Ïðèëîæåíèÿ òåîðåìû î ïîäñòàíîâêåС использованием теоремы 7.23 можно обосновать несколько свойств замкнутости,хорошо знакомых нам по регулярным языкам. Перечислим их в следующей теореме.Теорема 7.24. Контекстно-свободные языки замкнуты относительно следующихопераций.1.Объединение.2.Конкатенация.3.Замыкание (*) и транзитивное замыкание (+).4.Гомоморфизм.Доказательство. Каждое утверждение требует лишь определения соответствующейподстановки. Каждое из следующих доказательств использует подстановку контекстносвободных языков в другие, в результате чего по теореме 7.23 порождаются КС-языки.1.Объединение.

Пусть L1 и L2 — КС-языки. Тогда L1 U L2 является языком s(L), гдеL — язык {1, 2}, а s — подстановка, определяемая как s(1) = L1 и s(2) = L2.7.3. ÑÂÎÉÑÒÂÀ ÇÀÌÊÍÓÒÎÑÒÈ ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ßÇÛÊÎÂСтр. 2972972.Конкатенация. Пусть L1 и L2 — КС-языки. Тогда L1L2 представляет собой язык s(L),где L — язык {12}, а s — такая же подстановка, как и в п. 1.3.Замыкание и транзитивное замыкание. Если L1 — КС-язык, L — язык {1}*, а s —подстановка s(1) = L1, то L1* = s(L).

Аналогично, если в качестве L взять язык {1}+,то L1+ = s(L).4.Пусть L — КС-язык над алфавитом Σ, и h — гомоморфизм на Σ. Пусть s — подстановка, заменяющая каждый символ a из Σ языком, состоящим из единственной цепочки h(a), т.е. s(a) = {h(a)} для всех a из Σ. Тогда h(L) = s(L). †7.3.3. ÎáðàùåíèåКС-языки замкнуты также относительно обращения. Для доказательства этого фактаиспользовать теорему о подстановках нельзя, но существует простая конструкция на основе грамматик.Теорема 7.25. Если L — КС-язык, то и LR — КС-язык.Доказательство.

Пусть L — L(G) для некоторой КС-грамматики G = (V, T, P, S). Построим GR = (V, T, PR, S), где продукции PR представляют собой “обращения” продукцийиз P. Таким образом, если A → α — продукция G, то A → αR — продукция GR. С помощью индукции по длине порождений в G и GR нетрудно показать, что L(GR) = LR.

По сути, все выводимые в GR цепочки являются обращениями цепочек, выводимых в G, и наоборот. Формальное доказательство оставляется в качестве упражнения. †7.3.4. Ïåðåñå÷åíèå ñ ðåãóëÿðíûì ÿçûêîìКС-языки не замкнуты по пересечению. Это доказывает следующий простой пример.Пример 7.26. В примере 7.19 было выяснено, что языкL = {0n1n2n | n ≥ 1}не является контекстно-свободным. Однако следующие два — контекстно-свободные.L = {0n1n2i | n ≥ 1, i ≥ 1}L = {0i1n2n | n ≥ 1, i ≥ 1}Первый из них порождается следующей грамматикой.S → ABA → 0A1 | 01B → 2B | 2В этой грамматике A порождает все цепочки вида 0n1n, а B — все последовательностидвоек.

Аналогична и грамматика для второго языка.S → ABA → 0A | 0B → 1B2 | 12298Стр. 298ÃËÀÂÀ 7. ÑÂÎÉÑÒÂÀ ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÕ ßÇÛÊÎÂЗдесь A порождает все последовательности нулей, а B — цепочки вида 1n2n.Однако L = L1 I L2. Чтобы в этом убедиться, заметим, что L1 требует равных количеств нулей и единиц в цепочках, тогда как L2 — равных количеств единиц и двоек. Поэтому цепочка из пересечения этих языков должна иметь поровну каждого из символови, следовательно, принадлежать L.Если бы КС-языки были замкнуты по пересечению, то мы могли бы доказать ложноеутверждение о том, что L — контекстно-свободный язык. Полученное противоречие позволяет заключить, что КС-языки не замкнуты по пересечению. †Вместе с тем, есть более слабое утверждение о пересечении.

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

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

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