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

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

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

Тем самым доказаны равен∧∧ство δ E(q0, w) = δ D(qD, w) и индуктивная часть теоремы. †2.5.6. Óïðàæíåíèÿ ê ðàçäåëó 2.52.5.1. (∗) Рассмотрите следующий ε-НКА и:εabc∅{p}{q}{r}q{p}{q}{r}∅*r{q}{r}∅{p}→pа) найдите ε-замыкание каждого из состояний;б) выпишите все цепочки, длина которых не более 3, допустимые данным автоматом;в) преобразуйте данный автомат в ДКА.2.5.2.Выполните задание упражнения 2.5.1 со следующим ε-НКА.εabc{q, r}∅{q}{r}q∅{p}{r}{p, q}*r∅∅∅∅→p2.5.3.Постройте ε-НКА, которые допускают следующие языки. Для упрощения построений используйте, по возможности, ε-переходы:а) множество всех цепочек, состоящих из нуля или нескольких символов a, после которых стоит нуль или несколько символов b, и вслед за ними нуль илинесколько символов c;б) (!) множество цепочек, состоящих либо из повторяющихся один или несколько раз фрагментов 01, либо из повторяющихся один или несколько разфрагментов 010;2.5.

ÊÎÍÅ×ÍÛÅ ÀÂÒÎÌÀÒÛ Ñ ÝÏÑÈËÎÍ-ÏÅÐÅÕÎÄÀÌÈСтр. 9797в) (!) множество цепочек из 0 и 1, в которых хотя бы на одной из последних десяти позиций стоит 1.Ðåçþìå♦ Детерминированные конечные автоматы. ДКА имеет конечное число состоянийи конечное множество входных символов. Одно из состояний выделено как начальное, и нуль или несколько состояний являются допускающими. Функция переходов определяет, как изменяются состояния при обработке входных символов.♦ Диаграммы переходов.

Автомат удобно представлять в виде графа, в которомвершины соответствуют состояниям, а дуги, отмеченные входными символами,соответствуют переходам из состояния в состояние. Начальное состояние отмечается стрелкой, а допускающие состояния выделяются двойными кружками.♦ Язык автомата. Автомат допускает цепочки. Цепочка является допустимой, если,стартуя в начальном состоянии и обрабатывая символы этой цепочки по одному,автомат переходит в некоторое допускающее состояние. В терминах диаграммпереходов цепочка является допустимой, если она состоит из символов, отмечающих путь из начального состояния в одно из допускающих.♦ Недетерминированный конечный автомат. НКА отличается от ДКА тем, чтоНКА может иметь любое число переходов (в том числе, ни одного) из данного состояния в по данному входному символу.♦ Конструкция подмножеств. Множества состояний НКА можно рассматриватькак состояния некоторого ДКА.

Таким образом, мы можем преобразовать НКА вДКА, допускающий тот же самый язык.♦ ε-переходы. Можно расширить понятие НКА, разрешив переходы по пустой цепочке, т.е. вообще без входных символов. Расширенные таким образом НКА могут быть преобразованы в ДКА, допускающие те же самые языки.♦ Приложения типа “поиск в тексте”.

Недетерминированные конечные автоматыпредставляют собой удобный способ моделирования программы поиска одногоили нескольких ключевых слов в больших массивах текста. Эти автоматы либонепосредственно имитируются с помощью программы, либо вначале преобразуются в ДКА, а затем уже реализуются в виде программы.ËèòåðàòóðàПринято считать, что начало формальному изучению систем с конечным числом состояний было положено в работе [2]. Однако эта работа была посвящена не теперешнимДКА, а так называемой вычислительной модели “нейронных сетей”.

ДКА, в общеприня98Стр. 98ÃËÀÂÀ 2. ÊÎÍÅ×ÍÛÅ ÀÂÒÎÌÀÒÛтом смысле слова, были введены независимо в нескольких различных вариантах в работах [1], [3] и [4]. Материал по недетерминированным автоматам и конструкции подмножеств взят из работы [5].1. D. A. Huffman, “The synthesis of sequential switching circuits”, J.Franklin Inst. 257:3–4(1954), pp. 161–190 and 275–303.2.W. S.

McCulloch and W. Pitts, “A logical calculus of the ideas immanent in nervuous activity”, Bull. Math. Biophysics 5 (1943), pp. 115–133. (Маккалок У.С., Питтс Э. Логическое исчисление идей, относящихся к нервной активности. / сб. “Автоматы”. —М.: ИЛ, 1956.

— С. 362–384.)3.G. H. Mealy, “A method for synthesizing sequential circuits”, Bell System TechnicalJournal 34:5 (1955), pp. 1045–1079.4.E. F. Moore, “Gedanken experiments on sequential machines”, in [6], pp. 129–153.(Мур Э.Ф. Умозрительные эксперименты с последовательностными машинами.

/сб. “Автоматы”. — М.: ИЛ, 1956. — С. 179–210.)5.M. O. Rabin and D. Scott, “Finite automata and their decision problems”, IBM J. Researchand Development 3:2 (1959), pp. 115–125. (Рабин М.О., Скотт Д. Конечные автоматыи задачи их разрешения. — Кибернетический сборник, вып.

4. — М.: ИЛ, 1962. —С. 56–71.)6.C. E. Shannon and J. McCarthy, Automata Studies, Princeton Univ. Press, 1956. (Шеннон К.Э., Мак-Карти Дж. Теория автоматов. / сб. “Автоматы”. — М.: ИЛ, 1956.)ËÈÒÅÐÀÒÓÐÀСтр. 9999100Стр. 100ÃËÀÂÀ 2. ÊÎÍÅ×ÍÛÅ ÀÂÒÎÌÀÒÛÃËÀÂÀ 3Ðåãóëÿðíûåâûðàæåíèÿè ÿçûêèВ этой главе вводится система записи “регулярных выражений”.

Такие выражения представляют собой еще один способ определения языков, рассмотренный вкратце в разделе 1.1.2. Регулярные выражения можно рассматривать также как “язык программирования” для описания некоторых важных приложений, например, программ текстовогопоиска или компонентов компилятора. Регулярные выражения тесно связаны с НКА имогут служить удобной альтернативой для описания программных компонентов.Определив регулярные выражения, покажем, что они могут задавать регулярные, итолько регулярные, языки. Обсудим также, каким образом регулярные выражения используются в различных системах программного обеспечения. Затем исследуем алгебраические законы для регулярных выражений.

Эти законы во многом подобны алгебраическим законам арифметики, однако между алгебрами регулярных и арифметическихвыражений есть и существенные различия.3.1. Ðåãóëÿðíûå âûðàæåíèÿПерейдем от “машинного” задания языков с помощью ДКА и НКА к алгебраическому описанию языков с помощью регулярных выражений. Установим, что регулярныевыражения определяют точно те же языки, что и различные типы автоматов, а именно,регулярные языки. В то же время, в отличие от автоматов, регулярные выражения позволяют определять допустимые цепочки декларативным способом.

Поэтому регулярныевыражения используются в качестве входного языка во многих системах, обрабатывающих цепочки. Рассмотрим два примера.Стр. 1011.Команды поиска, например, команда grep операционной системы UNIX или аналогичные команды для поиска цепочек, которые можно встретить в Web-броузерахили системах форматирования текста. В таких системах регулярные выражения используются для описания шаблонов, которые пользователь ищет в файле. Различныепоисковые системы преобразуют регулярное выражение либо в ДКА, либо в НКА иприменяют этот автомат к файлу, в котором производится поиск.2.Генераторы лексических анализаторов, такие как Lex или Flex. Напомним, что лексический анализатор — это компонент компилятора, разбивающий исходную про-грамму на логические единицы (лексемы), которые состоят из одного или нескольких символов и имеют определенный смысл. Примерами лексем являются ключевыеслова (например while), идентификаторы (любая буква, за которой следует нульили несколько букв и/или цифр) и такие знаки, как + или <=.

Генератор лексическиханализаторов получает формальные описания лексем, являющиеся по существу регулярными выражениями, и создает ДКА, который распознает, какая из лексем появляется на его входе.3.1.1. Îïåðàòîðû ðåãóëÿðíûõ âûðàæåíèéРегулярные выражения обозначают (задают, или представляют) языки. В качествепростого примера рассмотрим регулярное выражение 01*+10*. Оно определяет язык всехцепочек, состоящих либо из одного нуля, за которым следует любое количество единиц,либо из одной единицы, за которой следует произвольное количество нулей. В данныймомент мы не рассчитываем, что читатель знает, как интерпретируются регулярные выражения, поэтому наше утверждение о языке, задаваемом этим выражением, пока должно быть принято на веру.

Чтобы понять, почему наша интерпретация заданного регулярного выражения правильна, необходимо определить все использованные в этом выражении символы, поэтому вначале познакомимся со следующими тремя операциями надязыками, соответствующими операторам регулярных выражений1.Объединение двух языков L и M, обозначаемое L U M, — это множество цепочек, ко-1.торые содержатся либо в L, либо в М, либо в обоих языках. Например, если L = {001,10, 111} и M = {ε, 001}, то L U M = {ε, 10, 001, 111}.Конкатенация языков L и M — это множество цепочек, которые можно образоватьпутем дописывания к любой цепочке из L любой цепочки из М. Выше в разделе 1.5.2было дано определение конкатенации двух цепочек: результатом ее является записьодной цепочки вслед за другой. Конкатенация языков обозначается либо точкой, либо вообще никак не обозначается, хотя оператор конкатенации часто называют“точкой”.

Например, если L = {001, 10, 111} и M = {ε, 001}, то L.M, или простоLM, — это {001, 10, 111, 001001, 10001, 111001}. Первые три цепочки в LM — этоцепочки из L, соединенные с ε. Поскольку ε является единицей (нейтральным элементом) для операции конкатенации, результирующие цепочки будут такими же, каки цепочки из L. Последние же три цепочки в LM образованы путем соединения каждой цепочки из L со второй цепочкой из М, т.е. с 001. Например, 10 из L, соединенная с 001 из М, дает 10001 для LM.2.1Будем употреблять также термины “регулярные операции” и “регулярные операторы”, принятые в русскоязычной литературе.

— Прим. ред.102Стр. 102ÃËÀÂÀ 3. ÐÅÃÓËßÐÍÛÅ ÂÛÐÀÆÅÍÈß È ßÇÛÊÈИтерация (“звездочка”, или замыкание Клини2) языка L обозначается L* и представ-3.ляет собой множество всех тех цепочек, которые можно образовать путем конкатенации любого количества цепочек из L. При этом допускаются повторения, т.е. однаи та же цепочка из L может быть выбрана для конкатенации более одного раза. Например, если L = {0, 1}, то L* — это все цепочки, состоящие из нулей и единиц. ЕслиL = {0, 11}, то в L* входят цепочки из нулей и единиц, содержащие четное количество единиц, например, цепочки 011, 11110 или ε, и не входят цепочки 01011 или 101.Более формально язык L* можно представить как бесконечное объединение Ui≥0 Li,где L0 = {ε}, L1 = L и Li для i > 1 равен LL…L (конкатенация i копий L).Пример 3.1. Поскольку идея итерации языка может показаться довольно сложной,рассмотрим несколько примеров.

Для начала возьмем L = {0, 11}. L0 = {ε} независимо отязыка L; нулевая степень означает выбор нулевого количества цепочек из языка L. L1 = L,что означает выбор одной цепочки из L. Таким образом, первые два члена в разложенииL* дают {ε, 0, 11}.Далее рассмотрим L2. Выберем две цепочки из L и, поскольку их можно выбирать сповторениями, получим четыре варианта, которые дают L2 = {00, 011, 110, 1111}. Аналогично, L3 представляет собой множество цепочек, образованных троекратным выборомиз двух цепочек языка L. Следовательно, L3 имеет вид{000, 0011, 0110, 1100, 01111, 11011, 11110, 111111}Для вычисления L* необходимо вычислить Li для каждого i и объединить все эти языки. Язык Li содержит 2i элементов.

Хотя каждое множество Li конечно, объединение бесконечного числа множеств Li образует, как правило, бесконечный язык, что справедливо,в частности, и для нашего примера.Пусть теперь L — множество всех цепочек, состоящих из нулей. Заметим, что такойязык бесконечен, в отличие от предыдущего примера, где был рассмотрен конечныйязык. Однако нетрудно увидеть, что представляет собой L*.

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

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

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