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


11

У мене є така мова

{0i1j2k0ijk}

Я намагаюся визначити, до якого класу мови Хомського він підходить. Я бачу, як це можна зробити за допомогою граматики, залежної від контексту, тому я знаю, що це як мінімум контекстно-залежна. Здається, це було б неможливо скласти із контекстом без граматики, але я маю проблему довести це.

Здається, лемма вилки, тому що якщо розміщений у третій частині будь-якого слова (розділ із усіма с). Він може перекачувати і стільки разів, скільки хочеться, і він залишатиметься в мові. Якщо я помиляюся, ви можете мені сказати, чому, якщо я правий, я все ще думаю, що ця мова не є контекстною, і як я можу це довести?uvwxy2vx


Я не впевнений, як зробити це формальним доказом, але забезпечення i <= j <= k вимагає контексту (значення попередньої змінної).
Кевін


@Raphael, я прочитав цей пост перед цим і не знав, як застосувати його до свого прикладу через його абстрактності. Оскільки стосунки кожного символу становлять> = кількість попередніх символів, я не бачив, як розділити uxyzv на слово, щоб використовувати лему Огдена. BlueMagister та jmad розширилися на іншій посаді, щоб зрозуміти мій приклад.
justausr

@Raphael Я не погоджуюся, що це тривіальне застосування загальної справи. Вибрати, який метод використовувати та який приклад застосувати, це не так просто.
Жил "ТАК - перестань бути злим"

Відповіді:


7

Ви можете змусити насос бути в деяких місцях, використовуючи лему Огдена , наприклад, позначивши всі 0.

Припустимо, це без контексту, то лемма Огдена дає вам , ви даєте їй w = 0 p 1 p 2 p, який є мовою, і ви "маркуєте" всі 0. Тоді будь-яка факторизація w = u x y z v повинна бути такою, що є 0 в x або z . Ви також можете припустити, що x = a k і z = b m, оскільки x x і z zp>0w=0p1p2pw=uxyzv0xzx=akz=bmxxzz повинні бути підрядками вашої мови.

  1. Якщо то w = u x 2 y z 2 v має більше 0, ніж 1z=0...0w=ux2yz2v

  2. Якщо і z = 1..1, то w = u x 2 y z 2 v має більше 1 s, ніж 2.x=0..0z=1..1w=ux2yz2v

  3. Якщо і z = 2..2, то w = u x 2 y z 2 v має більше 0, ніж 1.x=0..0z=2..2w=ux2yz2v

Отже, - це не слово вашої мови. Тому він не є контекстним.ux2yz2v

Про інші методи див. Дискусію: Як довести, що мова не є контекстною?


Це для тієї ж мови, яку я маю? Здається, це схожа мова, де всі 0-х та 2-х мають однакову довжину. Ця мова має число 2-х> = число 1-х> = число 0-х
justausr

1
Так, але, використовуючи будь-яку з усіх накачаних лем, ви вибираєте слово (і я вибрав ): лема Огдена повинна працювати для всіх. 0p1p2p
jmad

Ось, я ніколи не чув про лемму Огдена, тому мені доведеться розглянути її. Я мав рацію, заявивши, що це не вдається перекачувати лему?
justausr

@justausr я ніколи до цього часу (і завдяки дискусії, про яку я згадував). І так, ви мали рацію: накачана лема робить майже те саме, але не вибирати, куди перекачувати, це робить тут марним.
jmad

5

Накачана лема повинна вирішити вашу проблему щодо третьої частини слова; зауважте, що при розділенні будь-яка комбінація u v n w x n y також є в мові, в тому числі, коли n = 0 . Спробуйте це.z=uvwxyuvnwxnyn=0

EDIT: Як стверджує jmad, накачана лема - це як гра:

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

Отже, ви повинні зробити слово, розділити 3 на відмінки і показати, що для кожного випадку ви можете знайти такий, що отримане слово не в мові.n

Коли ви розділите , подумайте про всі випадки, до яких v x y може потрапити. Ви зазначаєте, що якщо v x y не потрапляє до 2-х, тоді легко накачати 0 і 1, поки вони не перевищують 2-х, і тоді у вас є слово, якого немає в мові. Моя пропозиція полягає в тому, що якщо v x y потрапляє на 2 території, ви також можете змусити v і y зникнути, встановивши n = 0 , тому u v n x y n z = us=uvxyzvxyvxyvxyvyn=0 . Тоді, усунувши 2, ви можете прийти до слова, яке не впадає в мову.uvnxynz=uxz


Ви хочете сказати, що покладіть всі uvwxy в розділ з 2-ма?
justausr

Якщо йому дано правильне слово. Я докладно поясню свою відповідь.
Блакитний магістр

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