В компьютерной науке , в частности , в теории формальных языков , то насосная лемма для контекстно-свободных языков , также известный как Бар-Гиллель леммы , [1] является лемма , которая дает свойство , разделяемое всеми контекстно-свободных языков и обобщает накачку лемма для обычных языков .
Лемму о накачке можно использовать для построения доказательства от противного, что конкретный язык не является контекстно-независимым. С другой стороны , накачка лемма не достаточно , чтобы гарантировать , что язык является контекстно-свободной; есть другие необходимые условия, такие как лемма Огдена или лемма об обмене .
Официальное заявление [ править ]
Если язык является контекстно-свободным, то существует некоторое целое число (называемое «накачка длиной» [2] ), что каждая строка в том , что имеет длину от или более символов (т.е. с ) можно записать в виде
с подстроками и такими, что
- 1. ,
- 2. , и
- 3. для всех .
Ниже приводится формальное выражение леммы о накачке.
Неофициальное заявление и объяснение [ править ]
Лемма о подкачке для контекстно-свободных языков (называемая просто «леммой о подкачке» в остальной части этой статьи) описывает свойство, которое гарантированно имеет все контекстно-свободные языки.
Свойство - это свойство всех строк в языке, длина которых не меньше , где - константа, называемая длиной накачки , которая варьируется между контекстно-свободными языками.
Say - это строка, длина которой не меньше длины на языке.
В лемме о перекачке говорится, что можно разбить на пять подстрок,, где не пусто, а длина не больше , так что повторение и такое же количество раз ( ) в производит строку, которая все еще находится на языке. Часто бывает полезно повторить ноль раз, что удаляет и из строки. Этот процесс «накачки» дополнительных копий и дал название лемме о накачке.
Конечные языки (которые являются регулярными и, следовательно, контекстно-свободными) подчиняются лемме о перекачке тривиально, поскольку длина строки равна максимальной длине строки плюс один. Поскольку струн такой длины нет, лемма о накачке не нарушается.
Использование леммы [ править ]
Насосная лемма часто используется для доказательства того, что данный язык L не является контекстно-свободной, показывая , что сколь угодно длинные строки s в L , которые не могут быть «накачкой» , не производя струне вне L .
Например, можно показать , что язык неконтекстно-свободный, используя лемму о накачке в доказательстве от противного . Во-первых, предположим, что L не зависит от контекста. По перекачиваемой лемме, существует целое число р , которое является длиной накачки языка L . Рассмотрим строку в L . Насосная лемму говорит о том , что ей может быть записана в виде , где U, V, W, X и Y являются подстроки, такие , что , и для каждого целого числа . По выбору s и тому факту , что подстрока vwxможет содержать не более двух различных символов. То есть у нас есть одна из пяти возможностей для vwx :
- для некоторых .
- для некоторых j и k с
- для некоторых .
- для некоторых j и k с .
- для некоторых .
Для каждого случая легко проверить, что не содержит одинаковых номеров каждой буквы ни для одной . Таким образом, не имеет формы . Это противоречит определению L . Следовательно, наше первоначальное предположение о том, что L контекстно-свободно, должно быть ложным.
Хотя лемма о перекачке часто является полезным инструментом для доказательства того, что данный язык не является контекстно-независимым, она не дает полной характеристики контекстно-свободных языков. Если язык не удовлетворяет условию леммы о накачке, мы установили, что он не является контекстно-независимым.
С другой стороны, есть языки, которые не являются контекстно-независимыми, но все же удовлетворяют условию, заданному леммой о накачке, например
для s = b j c k d l, например, j ≥1, выберите vwx, чтобы он состоял только из b ’s, для s = a i b j c j d j выберите vwx, чтобы он состоял только из a ’ s; в обоих случаях все накачкой строки все еще находятся в L . [3]
Предшественник леммы о накачке был использован в 1960 году Шейнбергом, чтобы доказать, что это не является контекстно- зависимым . [4]
Ссылки [ править ]
- ^ Kreowski, Ханс-Йорг (1979). «Лемма о прокачке для контекстно-свободных языков графов». У Клауса, Фолькера; Эриг, Хартмут ; Розенберг, Гжегож (ред.). Граф-грамматики и их применение в информатике и биологии . Конспект лекций по информатике. 73 . Берлин, Гейдельберг: Springer. С. 270–283. DOI : 10.1007 / BFb0025726 . ISBN 978-3-540-35091-0.
- ^ Berstel, Жан; Лаув, Аарон; Ройтенауэр, Кристоф; Салиола, Франко В. (2009). Комбинаторика слов. Слова Кристоффеля и их повторы словами (PDF) . Серия монографий CRM. 27 . Провиденс, Род-Айленд: Американское математическое общество . п. 90. ISBN 978-0-8218-4480-9. Zbl 1161.68043 . (См. Также [www-igm.univ-mlv.fr/~berstel/ веб-сайт Аарона Берштеля)
- ^ Джон Э. Хопкрофт, Джеффри Д. Ульман (1979). Введение в теорию автоматов, языки и вычисления . Эддисон-Уэсли. ISBN 0-201-02988-X. Здесь: раздел 6.1, с.129
- ^ Стивен Шейнберг (1960). «Примечание о логических свойствах контекстно-свободных языков» (PDF) . Информация и контроль . 3 : 372–375. DOI : 10.1016 / s0019-9958 (60) 90965-7 . Здесь: лемма 3 и ее использование на с.374-375.
- Бар-Гилель, Ю .; Миха Перлес ; Эли Шамир (1961). «О формальных свойствах грамматик простой фразеологической структуры». Zeitschrift für Phonetik, Sprachwissenschaft, und Kommunikationsforschung . 14 (2): 143–172.- Перепечатано в: Ю. Бар-Гиллель (1964). Язык и информация: избранные очерки их теории и применения . Логика серии Аддисона-Уэсли. Эддисон-Уэсли. С. 116–150. ISBN 0201003732. OCLC 783543642 .
- Майкл Сипсер (1997). Введение в теорию вычислений . PWS Publishing. ISBN 0-534-94728-X.Раздел 1.4: Нерегулярные языки, стр. 77–83. Раздел 2.3: Неконтекстно-свободные языки, стр. 115–119.