Лемма о прокачке для обычных языков
В теории формальных языков лемма о накачке регулярных языков — это лемма , описывающая существенное свойство всех регулярных языков . Неформально оно гласит, что все достаточно длинные строки в обычном языке могут быть перекачаны (то есть иметь среднюю часть строки, повторяемую произвольное количество раз) для создания новой строки, которая также является частью языка. Лемма о накачке полезна для доказательства того, что конкретный язык не является регулярным языком, показывая, что этот язык не обладает этим свойством.
В частности, лемма о накачке утверждает, что для любого регулярного языка , существует константа такая, что любая строка в длиной не менее можно разделить на три подстроки , и ( , с непусто), так что строки также находятся в . Процесс повторения ноль или более раз называется «накачкой». Более того, лемма о накачке гарантирует, что длина будет максимум , налагая ограничения на способы, которыми может быть разделен.
Языки с конечным числом строк не удовлетворяют лемме о накачке, поскольку имеют равна максимальной длине строки в плюс один. Таким образом, в иметь длину больше, чем .
Лемма о накачке была впервые доказана Майклом Рабином и Даной Скотт в 1959 году. [1] и вскоре вновь открыт Иеошуа Бар-Хиллелем , Михой А. Перлесом и Эли Шамиром в 1961 году как упрощение их леммы о накачке для контекстно-свободных языков . [2] [3]
Официальное заявление [ править ]
Позволять быть обычным языком. Тогда существует целое число в зависимости только от так, что каждая строка в длины как минимум ( называется «длиной накачки») [4] можно записать как (т.е. можно разделить на три подстроки), удовлетворяющие следующим условиям:
— это подстрока, которую можно перекачивать (удалять или повторять любое количество раз, при этом результирующая строка всегда находится в ). (1) означает цикл для перекачки должна иметь длину хотя бы один, то есть не пустую строку; (2) означает, что цикл должен произойти в течение первого персонажи. должно быть меньше, чем (вывод из (1) и (2)), но кроме этого ограничений на и .
Проще говоря, для любого обычного языка , любая достаточно длинная строка (в ) можно разделить на 3 части.т.е. , такой, что все строки для также находятся в .
Ниже приводится формальное выражение леммы о накачке.
нерегулярности доказательства леммы для Использование
Лемма о накачке часто используется для доказательства того, что конкретный язык нерегулярен: доказательство от противного может состоять в обнаружении строки (требуемой длины) в языке, лишенной свойства, изложенного в лемме о накачке.
Пример: язык над алфавитом можно показать, что они нерегулярны следующим образом:
- Позволять , и быть таким, как использовано в формальном утверждении леммы о накачке выше.
- Предположим, что некоторая константа существует, как того требует лемма.
- Позволять в быть предоставлено , которая представляет собой строку длиннее, чем .
- По лемме о накачке должно существовать разложение с и такой, что в для каждого .
- С , строка состоит только из экземпляров .
- Потому что , он содержит хотя бы один экземпляр буквы .
- Накачка дать дает слово с большим количеством экземпляров буквы чем письмо , поскольку некоторые случаи но ни один из были добавлены.
- Поэтому, не в что противоречит лемме о накачке.
- Поэтому, не может быть регулярным.
Доказательство того, что язык сбалансированных (т. е. правильно вложенных) круглых скобок не является регулярным, следует той же идее. Данный , существует строка сбалансированных круглых скобок, которая начинается с более чем оставленные скобки, так что будет полностью состоять из левых скобок. Повторяя , может быть создана строка, содержащая разное количество левых и правых круглых скобок, и поэтому они не могут быть сбалансированы.
леммы о накачке Доказательство
Для каждого регулярного языка существует конечный автомат (FSA), который принимает этот язык. Количество состояний в таком FSA подсчитывается, и это количество используется в качестве длины накачки. . Для строки длиной не менее , позволять быть начальным состоянием и пусть быть последовательностью следующих состояния, посещенные при выдаче строки. Поскольку у FSA есть только состояния, в этой последовательности посещенных состояниях должно быть хотя бы одно повторяющееся состояние. Писать для такого государства. Переходы, которые выводят машину из первого состояния ко второй встрече государства соответствовать некоторой строке. Эта строка называется в лемме, и поскольку машина найдет строку без порция или с веревкой повторяется любое число раз, то условия леммы выполнены.
Например, на следующем изображении показан FSA.
FSA принимает строку: abcd . Поскольку эта строка имеет длину, по крайней мере, такую же, как количество состояний, равное четырем (таким образом, общее количество состояний, через которые машина проходит при сканировании abcd, будет равно 5), принцип группировки указывает, что должно быть хотя бы одно состояние. повторяющееся состояние среди начального состояния и следующих четырех посещенных состояний. В этом примере только это повторяющееся состояние. Поскольку подстрока bc проводит машину через переходы, начинающиеся с состояния и закончить в состоянии , эта часть может быть повторена, и FSA все равно примет ее, передав строку abcbcd . В качестве альтернативы часть bc можно удалить, и FSA все равно согласится предоставить строку ad . По лемме о накачке строка abcd разбивается на порция а , а часть до н.э. и а порция д .
В качестве дополнительного замечания: проблема проверки того, может ли данная строка быть принята данным недетерминированным конечным автоматом без повторного посещения какого-либо состояния, является NP-трудной .
Общая версия леммы о прокачке для обычных языков [ править ]
Если язык регулярно, то существует число (длина накачки) такая, что каждая струна в с можно записать в форме
со струнами , и такой, что , и
- находится в для каждого целого числа . [5]
Таким образом, приведенная выше стандартная версия представляет собой особый случай, когда оба и пустая строка.
Поскольку общая версия предъявляет к языку более строгие требования, ее можно использовать для доказательства нерегулярности многих других языков.
Неверность обратной леммы [ править ]
Хотя лемма о накачке утверждает, что все регулярные языки удовлетворяют описанным выше условиям, обратное утверждение неверно: язык, удовлетворяющий этим условиям, все равно может быть нерегулярным. Другими словами, как исходная, так и общая версия леммы о накачке дают необходимое , но недостаточное условие регулярности языка.
Например, рассмотрим следующий язык:
- .
Другими словами, содержит все строки алфавита с подстрокой длиной 3, включающей повторяющийся символ, а также со всеми строками в этом алфавите, в которых ровно 1/7 символов строки составляют тройки. Этот язык не является штатным, но его все равно можно «прокачать» с помощью . Предположим, длина некоторой строки s не менее 5. Тогда, поскольку в алфавите всего четыре символа, по крайней мере два из первых пяти символов в строке должны быть повторяющимися. Они разделены не более чем тремя символами.
- Если повторяющиеся символы разделены 0 символами или 1, перекачайте один из двух других символов в строке, что не повлияет на подстроку, содержащую дубликаты.
- Если повторяющиеся символы разделены 2 или 3 символами, прокачайте 2 символа, разделяющих их. Перекачка вниз или вверх приводит к созданию подстроки размером 3, содержащей 2 повторяющихся символа.
- Второе условие гарантирует, что не является регулярным: рассмотрим строку . Эта строка находится в именно когда и таким образом не является регулярным по теореме Майхилла-Нерода .
Теорема Майхилла-Нерода представляет собой тест, который точно характеризует регулярные языки. Типичным методом доказательства регулярности языка является построение либо конечного автомата , либо регулярного выражения для языка.
См. также [ править ]
- Лемма Огдена
- Лемма о накачке для контекстно-свободных языков
- Лемма о накачке для обычных древовидных языков
Примечания [ править ]
- ^ Рабин, Майкл ; Скотт, Дана (апрель 1959 г.). «Конечные автоматы и проблемы их решения» (PDF) . Журнал исследований и разработок IBM . 3 (2): 114–125. дои : 10.1147/рд.32.0114 . Архивировано из оригинала 14 декабря 2010 года.
{{cite journal}}
:CS1 maint: unfit URL ( ссылка ) Здесь: Лемма 8, стр.119 - ^ Бар-Хилель, Ю .; Перлз, М.; Шамир, Э. (1961), «О формальных свойствах грамматик простой фразовой структуры», Журнал фонетики, лингвистики и коммуникационных исследований , 14 (2): 143–172.
- ^ Джон Э. Хопкрофт; Раджив Мотвани; Джеффри Д. Уллман (2003). Введение в теорию автоматов, языки и вычисления . Эддисон Уэсли. Здесь: разд.4.6, стр.166
- ^ Берстель, Жан; Лауве, Аарон; Ройтенауэр, Кристоф; Салиола, Франко В. (2009). Комбинаторика слов. Слова Кристоффеля и повторы в словах . Серия монографий по CRM. Том. 27. Провиденс, Род-Айленд: Американское математическое общество . п. 86. ИСБН 978-0-8218-4480-9 . Артикул 1161.68043 .
- ^ Савич, Уолтер (1982). Абстрактные машины и грамматики . п. 49 . ISBN 978-0-316-77161-0 .
Ссылки [ править ]
- Лоусон, Марк В. (2004). Конечные автоматы . Чепмен и Холл/CRC. ISBN 978-1-58488-255-8 . Збл 1086.68074 .
- Сипсер, Майкл (1997). «1.4: Нерегулярные языки». Введение в теорию вычислений . Издательство ПВС. стр. 77–83 . ISBN 978-0-534-94728-6 . Збл 1169,68300 .
- Хопкрофт, Джон Э .; Уллман, Джеффри Д. (1979). Введение в теорию автоматов, языки и вычисления . Ридинг, Массачусетс: Издательство Addison-Wesley. ISBN 978-0-201-02988-8 . Збл 0426.68001 . (См. главу 3.)
- Бахадыр Хусаинов; Анил Нероде (6 декабря 2012 г.). Теория автоматов и ее приложения . Springer Science & Business Media. ISBN 978-1-4612-0171-7 .