Як можна з | w | = | s | і ми будемо без контексту, а w # s - ні?


9

Чому (якщо так) сепаратор # чи є різниця між двома мовами?

Скажімо:

L={ws:|w|=|s|w,s{0,1},ws}

L#={w#s:|w|=|s|w,s{0,1},ws}

Ось доказ і грамер, що представляє якLCFL

І нижче я додаю доказ для :L#CFL

Чи дійсно знак має значення? якщо так, то чому це? а якщо ні, то яке із доказів невірно і де?#

Доведення, що :L#CFL

Припустимо, як протиріччя, що . Нехай - константа накачки для гарантована накачаною лемою для контекстних мов. Ми розглянемо слово , де , так . Оскільки , згідно з насосною лемою існує подання , таке, що , , і для кожного .LCFLp>0Ls=0m1p#0p1mm=p!+psL|s|>ps=uvxyz|vy|>0|vxy|puvjxyjzLj0

Ми отримуємо протиріччя випадків:

  • Якщо або містять : Тоді для ми отримуємо, що не містить , тому суперечить.vy#i=0uxz#uxzL
  • Якщо і і залишити до : Тоді для отримаємо, що має вигляд , де, Так .vy#i=0uxzw#x|w|<|x|uxzL

  • Якщо і і мають рацію на : Подібно до останнього випадку.vy#

  • Якщо ліворуч , - праворуч до нього, а: Тоді при отримаємо, що має вигляд , де, Так .v#y|v|<|y|i=0uxzw#x|w|>|x|uxzL

  • Якщо ліворуч , - праворуч до нього, а: Подібно до останнього випадку.v#y|v|>|y|

  • Якщо ліворуч , - праворуч до нього, а: Це найцікавіший випадок. Оскільки , повинно міститися в частина , а в частини. Отже, це справедливоv#y|v|=|y||vху|pv1pсу0pv=1к і у=0к за те саме 1кp (насправді це повинно бути саме так к<p/2). Для кожногоj0, це справедливо уvj+1хуj+1z=0м1p+j·к#0p+j·к1м, тож якщо так трапиться м=p+j·к, то це дотримується цього уvj+1хуj+1zLв суперечності. Щоб цього досягти, ми повинні взяти на себеj=(м-p)/к, що діє лише в тому випадку, якщо м-p ділиться на к. Нагадаємо, що ми вибралиm=p+p!, тому м-p=p!, і p! ділиться будь-яким 1кp як хотілося.

Відповіді:


7

Ваше підтвердження правильне, і я помилився. Мені знадобилося певний час, щоб прибити мою плутанину, але за допомогою Юваля я думаю, що це я зрозумів.

Розглянемо три мови

L=={xy|x|=|y|,xy},L#={x#yxy}, andL=#={x#y|x|=|y|,xy}.

Як ми бачили тут ,L=без контексту. Хитрість полягає в тому, щоб в граматиці генерувати символи "праворуч", але рахувати їх "ліворуч" пізніше (або навпаки), переконуючись, що символи невідповідності з’являються у відповідних позиціях. Умова довжини тривіальна, оскільки зменшується до рівної довжини.
Ви можете сконструювати NPDA з подібною ідеєю, використовуючи стек, щоб відповідати позиції.

L# також без контексту . Доказ ще простіший: символи невідповідності відображаються на однаковій відстані від початку, відповідно. роздільник. Нерівні довжини можна перевірити окремо; недетермінізм "вибирає" між двома варіантами.

Тепер, як ви показуєте, L=#не є контекстним. Ось чому докази для двох інших мов виходять з ладу.

  1. У граматиці для L=, якщо нам доведеться генерувати роздільник в середині, ми не можемо "перепризначити" символи "зліва" на "праворуч".
  2. Замість "прийняти, якщо довжини неоднакові або невідповідні", ми повинні "прийняти, якщо довжини рівні і невідповідні". Недетермінізм не може нам допомогти з і !

Отже, до чого воно зводиться, інтуїтивно, це умови форми "xy"і"|x|=|y|"обидва є" без контексту "в тому сенсі, що їх можна перевірити стеком, але не використовуючи обмежене керування. Тому КПК може робити одне, але не те й інше.

КПК для L=«Чіти» , так як це не реально перевірити ці умовиx і y; воно розбиває слово по-іншому. Це більше неможливо, якщо у вас є роздільник.


Додавання: Я сміливо стверджував , щоL=CFLL=#CFLтому що CFL закритий проти оберненого гомоморфізму. Хоча це правдаf(L=#)=L= з f особистість, за винятком її видалення #, це не має значення. f1(L=)=L#; нічого не можна сказатиL=#.


Додаток II: Зауважте, щоL={x#y|x|=|y|}тривіально без контексту. Отже, сLL#=L=# у нас є хороший приклад того, що CFL не закривається проти перехрестя.

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