Як довести мову, що не відповідає контексту, бути неоднозначною?


19

Я десь читав, що машина Тьюрінга не може це обчислити, і тому не можна визначити, але чому? Чому комп'ютерно неможливо створити дерево розбору та прийняти рішення? Можливо, я помиляюся, і це можна зробити?


1
Так, ви маєте рацію, машина Тьюрінга не може вирішити, чи є без контексту мова неоднозначною чи ні, і це можна зменшити з проблеми кореспонденції , що не можна визначити. Зверніть увагу, що дерево розбору може бути нескінченно великим, і ми не можемо визначитися, коли зупинимо обчислення.
— Hsien-Chih Chang 17 之

Сісен-Чи, ви маєте на увазі "дерева розбору" для слів, які не є мовою (тобто невдалий аналіз), або ви намагаєтесь сказати, що дерева розбору можуть стати довільно великими?
— Рафаель

Відповіді:


22

Ми зменшуємо проблему листування пошти . Припустимо , що ми можемо, по суті, вирішують мову .{⟨G⟩|G a CFG and L(G) ambiguous}

Дано : Побудуйте наступний CFG G = ( V , Σ , R , S ) : V = { S , S 1 , S 2 } , R = { S → S 1 | S 2 , S 1 → α 1 Sα1,…,αm,β1,…,βmG=(V,Σ,R,S)V={S,S1,S2} (де σ iR={S→S1|S2,S1→α1S1σ1|⋯|αmS1σm|α1σ1|⋯|αmσm,S2→β1S2σ1|⋯|βmS2σm|β1σ1|⋯|βmσm}σi- нові символи, додані до алфавіту, наприклад, ).σi=i_

Якщо мова неоднозначна, то є виведення деякої строки двома різними способами. Припустимо, wlog, що похідні обидва починаються з правила S → S 1 , читання нових символів назад, поки вони не закінчуються, гарантує, що може бути лише одна деривація, тому це неможливо. Отже, ми бачимо, що лише одна неоднозначність може виникати з одного S 1 та одного S 2 "початку". Але потім, взявши підрядок w до початку нових символів, ми маємо рішення для PCP (оскільки рядки індексів, використані після цих точок, збігаються).wS→S1S1S2w

Аналогічно, якщо немає неоднозначності, то лікуючий лікар не може бути вирішене, оскільки рішення буде означати двозначність , що просто слід і S ⇒ S 2 ⇒ * β ~ σ , де α = β є рядки відповідності α 's та β ' s (з моменту відповідності ˜ σ ).S⇒S1⇒∗ασ~S⇒S2⇒∗βσ~α=βαβσ~

Отже, ми скоротили до PCP, і оскільки це неможливо, ми закінчили.

(Дайте мені знати, чи я щось зробив з головою!)


1
Спробуйте \ textrm, як це: {⟨G⟩∣G a CFG and L(G) ambiguous}
— Сянь-Чжи Чан張顯之
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.