Главная » Просмотр файлов » 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), страница 44

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

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

Доказательство этого факта, однако, требует некоторых усилий, и мы отложим его до раздела 5.2. †5.1.4. Ëåâûå è ïðàâûå ïîðîæäåíèÿДля ограничения числа выборов в процессе порождения цепочки полезно потребовать, чтобы на каждом шаге мы заменяли крайнюю слева переменную одним из тел еепродукций. Такое порождение называется левым (leftmost), и для его указания использу*ются отношения ⇒ и ⇒ . Если используемая грамматика G не очевидна из контекста, тоlmlmее имя G также добавляется внизу.Аналогично можно потребовать, чтобы на каждом шаге заменялась крайняя справапеременная на одно из тел.

В таком случае порождение называется правым (rightmost), и*для его обозначения используются символы ⇒ и ⇒ . Имя используемой грамматикиrmrmтакже при необходимости записывается внизу.Пример 5.6. Порождение из примера 5.5 в действительности было левым, и его можно представить следующим образом.E ⇒ E*E ⇒ I*E ⇒ a*E ⇒lmlmlmlm5.1. ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÅ ÃÐÀÌÌÀÒÈÊÈСтр.

191191a * (E) ⇒ a * (E + E) ⇒ a * (I + E) ⇒ a * (a + E) ⇒lmlmlmlma * (a + I) ⇒ a * (a + I0) ⇒ a * (a + I00) ⇒ a * (a + b00)lmlmlmÎáîçíà÷åíèÿ äëÿ ïîðîæäåíèé, çàäàííûõ ÊÑ-ãðàììàòèêàìèСуществует немало соглашений, напоминающих о роли тех или иных символов, используемых в КС-грамматиках. Будем использовать следующие соглашения.1. Строчные буквы из начала алфавита (a, b и т.д.) являются терминальными символами.

Будем предполагать, что цифры и другие символы типа знака + или круглыхскобок — также терминалы.2. Прописные начальные буквы (A, B и т.д.) являются переменными.3. Строчные буквы из конца алфавита, такие как w или z, обозначают цепочки терминалов. Это соглашение напоминает, что терминалы аналогичны входным символам конечного автомата.4. Прописные буквы из конца алфавита, вроде X или Y, могут обозначать как терминалы, так и переменные.5. Строчные греческие буквы (α, β и т.д.) обозначают цепочки, состоящие из терминалов и/или переменных.Для цепочек, состоящих только из переменных, специального обозначения нет, поскольку это понятие не имеет большого значения.

Вместе с тем, цепочка, обозначенная α или другой греческой буквой, возможно, состоит только из переменных.*Можно резюмировать левое порождение в виде E ⇒ a * (a + b00) или записать нескольlm*ко его шагов в виде выражений типа E * E ⇒ a * (E).lmСледующее правое порождение использует те же самые замены для каждой переменной, хотя и в другом порядке.E ⇒ E * E ⇒ E * (E) ⇒ E * (E + E) ⇒rmrmrmrmE * (E + I) ⇒ E * (E + I0) ⇒ E * (E + I00) ⇒ E * (E + b00) ⇒rmrmrmrmE * (I + b00) ⇒ E * (a + b00) ⇒ I * (a + b00) ⇒ a*(a + b00)rmrmrm*Данное порождение также позволяет заключить, что E ⇒ a * (a + b00).rmЛюбое порождение имеет эквивалентные левое и правое порождения.

Это означает,*что если w — терминальная цепочка, а A — переменная, то A ⇒ w тогда и только тогда,***когда A ⇒ w, а также A ⇒ w тогда и только тогда, когда A ⇒ w. Эти утверждения докаlmrmзываются также в разделе 5.2.192Стр. 192ÃËÀÂÀ 5. ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÅ ÃÐÀÌÌÀÒÈÊÈ È ßÇÛÊÈ5.1.5. ßçûê, çàäàâàåìûé ãðàììàòèêîéЕсли G = (V, T, P, S) — КС-грамматика, то язык, задаваемый грамматикой G, илиязык грамматики G, обозначается L(G) и представляет собой множество терминальныхцепочек, порождаемых из стартового символа.

Таким образом,*L(G) = {w ∈ T* | S ⇒ w}.GЕсли язык L задается некоторой КС-грамматикой, то он называется контекстносвободным, или КС-языком. Например, мы утверждали, что грамматика, представленная нарис. 5.1, определяет множество палиндромов в алфавите {0, 1}. Таким образом, множествопалиндромов является КС-языком. Можем доказать это утверждение следующим образом.Теорема 5.7. Язык L(Gpal), где Gpal — грамматика из примера 5.1, является множеством палиндромов над {0, 1}.Доказательство. Докажем, что цепочка w в {0, 1}* принадлежит L(Gpal) тогда и только тогда, когда она является палиндромом, т.е. w = wR.(Достаточность) Пусть w — палиндром.

Докажем индукцией по |w|, что w ∈ L(Gpal).Базис. Если |w| = 0 или |w| = 1, то w представляет собой ε, 0 или 1. Поскольку в грам*матике есть продукции P → ε, P → 0, P → 1, то во всех случаях P⇒ w.Индукция. Пусть |w| ≥ 2. Так как w = wR, она должна начинаться и заканчиваться одним и тем же символом, т.е. w = 0x0 или w = 1x1. Кроме того, x является палиндромом,т.е. x = xR. Заметим, что нам необходим факт |w| ≥ 2, чтобы обеспечить наличие двух различных нулей или единиц на обоих концах w.*Если w = 0x0, то по предположению индукции P ⇒ x. Тогда существует порождение*w из P: P ⇒ 0P0 ⇒ 0x0 = w.

Если w = 1x1, то рассуждения аналогичны, но с использованием продукции P → 1P1 на первом шаге. В обоих случаях заключаем, что w ∈ L(Gpal),тем самым завершая доказательство.*(Необходимость) Предположим, что w ∈ L(Gpal), т.е. P ⇒ w. Докажем, что w — палиндром. Проведем доказательство индукцией по числу шагов в порождении w из P.Базис. Если порождение имеет один шаг, то он использует одну из трех продукций,не имеющих P в теле, т.е. порождение представляет собой P ⇒ ε, P ⇒ 0 или P ⇒ 1.

Таккак ε, 0 и 1 — палиндромы, то базис доказан.Индукция. Предположим, что порождение состоит из n + 1 шагов, где n ≥ 1, и чтоутверждение индукции верно для всех порождений из n шагов. Таким образом, если*P ⇒ x за n шагов, то x является палиндромом.Рассмотрим (n + 1)-шаговое порождение, которое должно иметь вид*P ⇒ 0P0 ⇒ 0x0 = w5.1. ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÅ ÃÐÀÌÌÀÒÈÊÈСтр.

193193*или P ⇒ 1P1 ⇒ 1x1 = w, поскольку n + 1 шаг — это как минимум два шага, и только использование продукций P → 0P0 или P → 1P1 делает возможными дополнительные ша*ги порождения. Заметим, что в обоих случаях P ⇒ x за n шагов.По предположению индукции x является палиндромом, т.е. x = xR. Но тогда и 0x0, и1x1 — палиндромы. Например, (0x0)R = 0xR0 = 0x0. Делаем вывод, что w — палиндром изавершаем доказательство. †5.1.6.

Âûâîäèìûå öåïî÷êèПорождения из стартового символа грамматики приводят к цепочкам, имеющим особое значение. Они называются “выводимыми цепочками” (“sentential form”). Итак, если*G = (V, T, P, S) — КС-грамматика, то любая цепочка α из (V U T)*, для которой S ⇒ α,*называется выводимой цепочкой. Если S ⇒ α, то α является левовыводимой цепочкой, аlm*если S ⇒ α, то — правовыводимой. Заметим, что язык L(G) образуют выводимые цеrmпочки из T*, состоящие исключительно из терминалов.Пример 5.8. Рассмотрим грамматику выражений (см. рис. 5.2). Например, E * (I + E)является выводимой цепочкой, поскольку существует следующее порождение.E ⇒ E * E ⇒ E * (E) ⇒ E * (E + E) ⇒ E * (I + E)Однако это порождение не является ни левым, ни правым, так как на последнем шаге заменяется среднее E.Примером левовыводимой цепочки может служить a * E со следующим левым порождением.E ⇒ E*E ⇒ I*E ⇒ a*ElmlmlmАналогично, порождениеE ⇒ E * E ⇒ E * (E) ⇒ E * (E + E)rmrmrmпоказывает, что E * (E + E) является правовыводимой цепочкой.

†Ñïîñîá äîêàçàòåëüñòâà òåîðåì î ãðàììàòèêàõТеорема 5.7 типична для доказательств, показывающих, что та или иная грамматиказадает некоторый неформально определенный язык. Сначала строится предположение индукции, говорящее о свойствах цепочек, порождаемых из каждой переменной.В данном примере была только одна переменная P, поэтому нам было достаточно доказать, что ее цепочки были палиндромами.194Стр. 194ÃËÀÂÀ 5. ÊÎÍÒÅÊÑÒÍÎ-ÑÂÎÁÎÄÍÛÅ ÃÐÀÌÌÀÒÈÊÈ È ßÇÛÊÈДоказывается достаточность: если цепочка w удовлетворяет неформальным утвер*ждениям о цепочках переменной A, то A ⇒ w. В нашем примере, поскольку P явля*ется стартовым символом, мы утверждали “P ⇒ w”, говоря, что w принадлежит языку грамматики.

Обычно достаточность доказывается индукцией по длине слова w.Если в грамматике k переменных, то индуктивное утверждение имеет k частей, которые доказываются с помощью взаимной индукции.*Нужно доказать также необходимость, т.е. что если A ⇒ w, то w удовлетворяет неформальным утверждениям о цепочках, порождаемых из переменной A. Поскольку внашем примере был только стартовый символ P, предположение о том, что*w ∈ L(Gpal), было равносильно P ⇒ w.

Для доказательства этой части типична индукция по числу шагов порождения. Если в грамматике есть продукции, позволяющиенескольким переменным появляться в порождаемых цепочках, то n-шаговое порождение нужно разбить на несколько частей, по одному порождению из каждой переменной. Эти порождения могут иметь менее n шагов, поэтому следует предполагатьутверждение индукции верным для всех значений, которые не больше n, как это обсуждалось в разделе 1.4.2.5.1.7. Óïðàæíåíèÿ ê ðàçäåëó 5.15.1.1.Построить КС-грамматики для следующих языков:а) (∗) множество {0n1n | n ≥ 1} всех цепочек из одного и более символов 0, закоторыми следуют символы 1 в таком же количестве;б) (∗!) множество {aibjck | i ≠ j или j ≠ k} всех цепочек из символов a, за которыми следуют символы b и затем c так, что количества символов a и b иликоличества b и c различны;в) (!) множество всех цепочек из символов a и b, не имеющих вида ww, т.е. неравных ни одной цепочке-повторению;г) (!!) множество всех цепочек, у которых символов 0 вдвое больше, чем символов 1.5.1.2.Следующая грамматика порождает язык регулярного выражения 0*1(0 + 1)*.S → A1BA → 0A | εB → 0B | 1B | εЗапишите левое и правое порождения следующих цепочек:а) 00101;5.1.

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

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

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