Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерной науке , в частности , в теории формальных языков , то насосная лемма для контекстно-свободных языков , также известный как Бар-Гиллель леммы , [1] является лемма , которая дает свойство , разделяемое всеми контекстно-свободных языков и обобщает накачку лемма для обычных языков .

Лемму о накачке можно использовать для построения доказательства от противного, что конкретный язык не является контекстно-независимым. С другой стороны , накачка лемма не достаточно , чтобы гарантировать , что язык является контекстно-свободной; есть другие необходимые условия, такие как лемма Огдена или лемма об обмене .

Официальное заявление [ править ]

Доказательство идея: Если достаточно долго, его вывод дерево WRT в нормальной форме Хомской грамматики должно содержать некоторый нетерминал дважды на некотором дереве пути (верхний рисунок). Повторяя раз, выводная часть ⇒ ... ⇒ получает вывод для (нижний левый и правый рисунок для и , соответственно).

Если язык является контекстно-свободным, то существует некоторое целое число (называемое «накачка длиной» [2] ), что каждая строка в том , что имеет длину от или более символов (т.е. с ) можно записать в виде

с подстроками и такими, что

1. ,
2. , и
3. для всех .

Ниже приводится формальное выражение леммы о накачке.

Неофициальное заявление и объяснение [ править ]

Лемма о подкачке для контекстно-свободных языков (называемая просто «леммой о подкачке» в остальной части этой статьи) описывает свойство, которое гарантированно имеет все контекстно-свободные языки.

Свойство - это свойство всех строк в языке, длина которых не меньше , где - константа, называемая длиной накачки , которая варьируется между контекстно-свободными языками.

Say - это строка, длина которой не меньше длины на языке.

В лемме о перекачке говорится, что можно разбить на пять подстрок,, где не пусто, а длина не больше , так что повторение и такое же количество раз ( ) в производит строку, которая все еще находится на языке. Часто бывает полезно повторить ноль раз, что удаляет и из строки. Этот процесс «накачки» дополнительных копий и дал название лемме о накачке.

Конечные языки (которые являются регулярными и, следовательно, контекстно-свободными) подчиняются лемме о перекачке тривиально, поскольку длина строки равна максимальной длине строки плюс один. Поскольку струн такой длины нет, лемма о накачке не нарушается.

Использование леммы [ править ]

Насосная лемма часто используется для доказательства того, что данный язык L не является контекстно-свободной, показывая , что сколь угодно длинные строки s в L , которые не могут быть «накачкой» , не производя струне вне L .

Например, можно показать , что язык неконтекстно-свободный, используя лемму о накачке в доказательстве от противного . Во-первых, предположим, что L не зависит от контекста. По перекачиваемой лемме, существует целое число р , которое является длиной накачки языка L . Рассмотрим строку в L . Насосная лемму говорит о том , что ей может быть записана в виде , где U, V, W, X и Y являются подстроки, такие , что , и для каждого целого числа . По выбору s и тому факту , что подстрока vwxможет содержать не более двух различных символов. То есть у нас есть одна из пяти возможностей для vwx :

  1. для некоторых .
  2. для некоторых j и k с
  3. для некоторых .
  4. для некоторых j и k с .
  5. для некоторых .

Для каждого случая легко проверить, что не содержит одинаковых номеров каждой буквы ни для одной . Таким образом, не имеет формы . Это противоречит определению 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]

Ссылки [ править ]

  1. ^ Kreowski, Ханс-Йорг (1979). «Лемма о прокачке для контекстно-свободных языков графов». У Клауса, Фолькера; Эриг, Хартмут ; Розенберг, Гжегож (ред.). Граф-грамматики и их применение в информатике и биологии . Конспект лекций по информатике. 73 . Берлин, Гейдельберг: Springer. С. 270–283. DOI : 10.1007 / BFb0025726 . ISBN 978-3-540-35091-0.
  2. ^ Berstel, Жан; Лаув, Аарон; Ройтенауэр, Кристоф; Салиола, Франко В. (2009). Комбинаторика слов. Слова Кристоффеля и их повторы словами (PDF) . Серия монографий CRM. 27 . Провиденс, Род-Айленд: Американское математическое общество . п. 90. ISBN  978-0-8218-4480-9. Zbl  1161.68043 . (См. Также [www-igm.univ-mlv.fr/~berstel/ веб-сайт Аарона Берштеля)
  3. ^ Джон Э. Хопкрофт, Джеффри Д. Ульман (1979). Введение в теорию автоматов, языки и вычисления . Эддисон-Уэсли. ISBN 0-201-02988-X. Здесь: раздел 6.1, с.129
  4. ^ Стивен Шейнберг (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.