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