Як довести, що мова не є контекстною?


88

Ми дізналися про клас без контекстних мов . Для нього характерні як безконтекстні граматики, так і автоматичні натискання, тому легко показати, що дана мова є без контексту.CFL

Як я показую протилежне? Мій ТА твердо переконаний, що для цього нам потрібно було б показати всім граматикам (або автоматам), що вони не можуть описати мову, що існує. Це здається великим завданням!

Я читав про деякі насосні леми, але це виглядає дуже складно.


Ntpick: не можна визначити, чи мова без контексту.
reinierpost

1
@reinierpost Я не бачу, як ваш коментар стосується питання. Йдеться про доведення речей, а не про прийняття рішення (алгоритмічно).
Рафаель

Просто робить точку , що це НЕ легко показати , що мова є контекстно-вільної, в цілому . Якщо frafl це легко, це повинно бути обумовлено певними спеціальними умовами, які взагалі не стосуються мов, наприклад, з наданням автоматичного натискання, що описує мову.
reinierpost

@reinierpost Ця лінія міркувань, здається, припускає, що невизначене означає (дорівнює?) важко довести. Цікаво, чи це правда.
Рафаель

Відповіді:


69

Щоб мені відомий насосна лема є , безумовно , найпростішим і найбільш часто використовуваних методом. Якщо вам важко, спробуйте спочатку звичайну версію , це не так вже й погано. Існують деякі інші засоби для мов, далеких від контексту. Наприклад, мови, які не визначаються, тривіально не вільні від контексту.

Однак, мене також цікавлять інші методи, ніж викачування леми, якщо такі є.

EDIT: Ось приклад накачувальної леми: припустимо, мова є без контексту ( - набір простих чисел). Накачана лема має багато кількісних показників, тому я зроблю це трохи як гра:L={akkP}P/

  1. Накачана лема дає вамp
  2. Ви даєте слово мови довжиною принаймніsp
  3. лема переписує її так: з деякими умовами ( та )s=uvxyz|vxy|p|vy|1
  4. Ви даєте ціле числоn0
  5. Якщо не в , ви виграєте, не є контекстним.uvnxynzLL

Для цієї конкретної мови для будь- (з і є простим числом) зробить трюк. Тоді лема дає вам з . Оскаржуючи контекстну свободу, потрібно знайти таких, щоне є простим числом.sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

І тоді буде робити: не є простим , так . Не можна застосовувати насосну лему, тому не є контекстним.n=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Другий приклад - мова . Ми (звичайно) повинні вибрати рядок і показати, що немає можливого способу його розбиття на ці п’ять частин і щоб кожна похідна накачана рядок залишалася мовою.{www{a,b}}

Рядок є підходящим вибором для цього доказу. Тепер нам залишається лише подивитися, де можуть бути і . Ключові частини полягають у тому, що або має щось у ньому (можливо, обидва), а також, що і і (і ) містяться у підрядковій довжині - тому вони не можуть бути занадто далеко один від одного.s=apbpapbpvyvyvyxp

Цей рядок має ряд можливостей, де може бути і , але виявляється, що декілька випадків насправді виглядають досить схоже.vy

  1. vya або . Отже , вони обидва містяться в одній із секцій continguous сек або сек. Це порівняно простий аргумент, оскільки це не має значення, в якому вони значенні. Припустимо, що . vybab|vy|=kp
    • Якщо вони знаходяться в першій частині сек, а потім , коли ми качаємо, перша половина нового рядка є , а другий є . Очевидно, це не з форми .aap+kbpk/2bk/2apbpww
    • Аргумент для будь-якого з трьох інших розділів працює майже однаково, саме там, де та опиняється в індексах.kk/2
  2. vxy два розділи. В цьому випадку перекачується вниз ваш друг. Знову є кілька місць, де це може трапитися (якщо бути точним 3), але я просто зроблю одне ілюстративне, а решту слід легко зрозуміти звідти.
    • Припустить , що оперезана межа між першим розділом і першої розділом. Нехай (не важливо точно, де і s знаходяться в і , але ми знаємо, що вони в порядку). Тоді, коли ми відкачуємо (тобто випадок ), отримуємо новий рядок , але тоді, якщо можна розділити на , середина повинна бути десь у другійvxyabvy=ak1bk2abvyi=0s=apk1bpk2apbpswwa секції, так що перша половина р - K 1 , а друга половина - a p - ( k 1 + k 2 ) / 2 b p . Очевидно, що це не одна і та ж строка, тому ми не можемо поставити туди v і y .apk1bpk2a(k1+k2)/2ap(k1+k2)/2bpvy

Решта випадків мають бути досить прозорими звідти - вони ті ж самі ідеї, просто поклавши та y в інші 3 місця в першій інстанції та 2 плями у другій інстанції. Однак у всіх випадках ви можете накачати його таким чином, щоб впорядкування було чітко зіпсовано, коли ви розділите рядок навпіл.vy


Дійсно, гра Козен - це спосіб зробити це.
Сократ

45

Лема Огдена

Лемма (Огден). Нехай - контекстна мова. Тоді є константа N така, що для кожного z L і будь-якого способу позначення N або більше позицій (символів) z як "розрізнених позицій", тоді z може бути записано як z = u v w x y , так щоLNzL Nzzz=uvwxy

  1. має принаймні одне розрізнене положення.vx
  2. має не більше N відмінних позицій.vwxN
  3. Для всіх , у V I ш х я у L .i0uviwxiyL

Приклад. Нехай . Припустимо, L без контексту, і нехай N - константа, задана леммою Огдена. Нехай z = a N b N + N ! c N + 2 N ! (яка належить до L ), і припустимо, що ми позначаємоL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!Lяк розрізняють усі позиції символу (тобто перші N позицій z ). Нехай z = u v w x y - розкладання z, що відповідає умовам леми Огдена.aNzz=uvwxyz

  • Якщо або x містять різні символи, то u v 2 w x 2 y L , тому що символи будуть у неправильному порядку.vxuv2wx2yL
  • Принаймні один з і x повинен містити лише символи a , оскільки розрізняли лише a . Таким чином, якщо x L ( b ) або x L ( c ) , то v L ( A + ) . Нехай p = | v | . Тоді 1 p N , що означає p ділить N ! . Нехай qvxaaxL(b)xL(c)vL(A+)p=|v|1pNpN! . Тоді г ' = у v 2 д + 1 ш х 2 д + 1 у повинна належати L . Однак v 2 q + 1 = a 2 p q + p = a 2 N ! + р . Оскільки u w y має саме N - p символів a , то zq=N!/pz=uv2q+1wx2q+1yLv2q+1=a2pq+p=a2N!+puwyNpa Має 2 N ! + N символів a . Але і v, і x не мають c 's, тому z ' також має 2 N ! + N символів c , що означає z L , і це суперечить леммі Огдена. Аналогічне протиріччя виникає, якщо x L ( A + ) або x L ( c ) . Ми робимо висновок Lz2N!+Navxcz2N!+NczLxL(A+)xL(c)L не є контекстним.

Вправа. Використовуючи лему Огдена, покажіть, що не є контекстним.L={aibjckd:i=0 or j=k=}

Накачана лема

Це особливий випадок леми Огдена, в якому розрізняються всі позиції.

Лема Нехай - контекстна мова. Тоді є константа N така, що для кожного z L , z можна записати як z = u v w x y , так щоLNzLzz=uvwxy

  1. .|vx|>0
  2. .|vwx|N
  3. Для всіх , у V I ш х я у L .i0uviwxiyL

Теорема Париха

Це навіть більш технічно, ніж лема Огдена.

Визначення. Нехай . Визначимо Ψ Σ : Σ N n через Ψ Σ ( w ) = ( m 1 , , m n ) , де m i - кількість появи я a в w .Σ={a1,,an}ΨΣ:ΣNn

ΨΣ(w)=(m1,,mn),
miaiw

SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

SNn

LΣL

ΨΣ[L]={ΨΣ(w):wL}

L={0m1n:m>n or (m is prime and mn)}

Вправа. Використовуючи теорему Париха, покажіть, що будь-яка контекстна мова над одинарним алфавітом також є регулярною.


1
Я прийняв відповідь jmad, тому що в цьому питанні прямо вказано "Pumping Lemma". Я дуже ціную вашу відповідь; маючи всі основні методи, зібрані тут, це чудова річ.
Рафаель

1
Це добре, але зауважте, що лемма накачки - це особливий випадок леми Огдена ;-)
Janoma

Звичайно. І все-таки більшість людей спершу спробують PL; багато хто навіть не знає OL.
Рафаель

1
Теорема Гінзбурга та Іспанія, спираючись на теорему Париха, дає необхідну та достатню умову для контекстної вільності у обмеженому випадку. math.stackexchange.com/a/122472
sdcvvc

Чи можете ви, будь-ласка, визначити "відомі посади" щодо інших операцій? Або хоча б неформально? Я вважаю, що визначення OL скопійовано дослівно в багатьох місцях, але жоден з них поки не цікавився пояснити, що це означає.
wvxvw

34

Властивості закриття

CFL

LCFLLCFLLCFLLCFL

Це часто коротше (і часто менш схильне до помилок), ніж використання одного з інших результатів, що використовують менше попередніх знань. Це також загальне поняття, до якого можна застосувати всі види класів об'єктів.

Приклад 1: Перетин з звичайними мовами

L(e)e

L={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

CFLLCFL

Приклад 2: (Зворотний) гомоморфізм

L={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

ϕ(L)={a2nb2na2nnN}.

Тепер, с

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

L1=ψ1(ϕ(L)))

L1L2=L(abc)L3={anbncnnN}

L3=L2ψ1(ϕ(L))

LCFLL3L3LCFL


Лемма обміну

Interchange Лемма [1] пропонує необхідна умова для контекстно-вільності , що ще сильніше , ніж леми Огдена . Наприклад, це можна використовувати, щоб показати це

{xyyzx,y,z{a,b,c}+}CFL

який чинить опір багатьом іншим методам. Це лема:

LCFLcLn2QnLn=LΣnmnm2k|Qn|cLn2ziQn

  1. zi=wixiyii=1,,k
  2. |w1|=|w2|==|wk|
  3. |y1|=|y2|==|yk|
  4. m|x1|=|x2|==|xk|>m2
  5. wixjyiLn(i,j)[1..k]2

n,mQn

На даний момент у мене немає вільно доступних довідок, і формулювання, викладене вище, взято з препринта [1] від 1981 року. Я вдячний за допомогу в пошуку кращих посилань. Схоже, нещодавно було виявлено (повторно) те саме властивість [2].


Інші необхідні умови

Boonyavatana та Slutzki [3] обстежують декілька умов, схожих на насосну та взаємозамінну лему.


  1. "Лемма обміну" для безконтекстних мов У. Огдена, Р. Дж. Росса та К. Вінкльмана (1985)
  2. Обмін лемами на регулярні та безтекстові мови Т. Ямакамі (2008)
  3. Лемми про обмін або насос (DI) для без контекстних мов Р. Боняватана та Г. Слуцкі (1988)


19

Не існує загального методу, оскільки набір безконтекстних мов не є напіврозбірним (акаре). Якби був загальний метод, ми могли б використати його для напіввизначення цього набору.

Ситуація ще гірша, оскільки з огляду на два КФЛ неможливо вирішити, чи є їх перехрестя також КФЛ.

Довідка: Хопкрофт та Уллман, "Вступ до теорії автоматів, мов та обчислень", 1979.


2
Цікавим (але, ймовірно, більш складним і відкритим питанням) буде класифікація підкласу не-CFL, які можуть бути доведені як не-CFL, використовуючи певний метод.
Каве

Я шукаю не обчислювальний метод, а технік, що підтверджує перо та папір. Останнє не обов'язково передбачає перше.
Рафаель

13

Більш сильною версією стану Огдена ( OC ) є

Стан Бадера-Моури (BMC)

LΣnzLd(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. d(vx)1e(vx)=0
  2. d(vwx)ne(vwx)+1
  3. i0uviwxiyL

LBMC(Σ)L

CFL(Σ)BMC(Σ)OC(Σ)

Довідка: Бадер, К., Моура, А., Узагальнення леми Огдена. JACM 29, вип. 2, (1982), 404–407


2
Чому б просто не пройти всю дорогу до узагальнення Демосі та Кудлека dx.doi.org/10.1007/3-540-48321-7_18 ...
Андраш Саламон

@ AndrásSalamon: Я цього не знав! :-) ... можливо, ви можете опублікувати це як нову відповідь, сказавши, що OC, BMC, PC - це особливі випадки (усі розрізнені чи не виключені позиції).
Vor

ви можете опублікувати його, не маючи часу прямо зараз.
Андрас Саламон

Ця відповідь отримала б користь із прикладу.
Рафаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.