Яке значення мають контекстно-залежні (тип 1) мови?


34

Бачачи, що мови ієрархії Хомського типу 3 можуть бути розпізнані державною машиною без зовнішньої пам’яті (тобто кінцевим автоматом), тип 2 - державною машиною з єдиним стеком (тобто автоматикою, що висувається), а тип 0 - державна машина з двома стеками (або, що еквівалентно, стрічкою, як це стосується машин Тьюрінга), як мови типу 1 вписуються в цю картину? І які переваги приносить вам визначення того, що мова - це не лише тип 0, а тип 1?


2
Оскільки ви запитуєте тут, а не в cstheory.SE (як це запропонував @Sunil), я пропоную вам також додати короткий опис / визначення типу 1, який може бути не всім звичним терміном.
Янома

5
@Sunil Ні, не буде. Це не питання рівня дослідження (і навіть якби воно було, воно все одно було б тут темою, оскільки ми не виключаємо питань рівня досліджень - принаймні, це те, що я пам’ятаю, було результатом дискусії щодо області51).
sepp2k

3
@Janoma: Чому слід допомагати включати інформацію, яку легко знайти (чи не вважатиметься це шумом)?
бітмаска

4
@Janoma Я думаю, що загальним керівництвом повинно бути пояснення понять, які хтось, хто міг би відповісти на це питання, може не знати (якби керівництво пояснювало все, що деякі користувачі сайту можуть не знати, ми б пояснювали все весь час, і це, звичайно, не є стандартом для інших сайтів SE). І я не думаю, що хтось, хто не знає ієрархії Хомського, міг би відповісти на питання. Звичайно, не завадить пояснювати якомога більше (доки це не робить питання нудно довгим) - я просто не думаю, що це потрібно в цьому випадку.
sepp2k

4
Кожен майор інформатики знає (або повинен знати) ієрархію Хомського. Всі інші можуть це шукати через 20-ті. Тут може бути достатньо посилання на Вікіпедію .
Рафаель

Відповіді:


19

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

Порівнюючи це з мовами 0 типу, це означає, що ви можете хоча б щось сказати про те, скільки часу потрібно для розпізнавання мови. Мова типу 0 може бути навіть не вирішуваною: мова всіх машин Тьюрінга, які зупиняють, є мовою типу 0, але оскільки розпізнавання цієї мови є саме проблемою зупинки, її не можна вирішити.

Контекстно-чутливі граматики не дуже корисні на практиці. Контекстуально вільні граматики інтуїтивно працювати, але в якості прикладів на Вікіпедії показує , контекстуально чутливі граматики дуже швидко стати досить брудно. Програми, що використовують поліноміальний простір, набагато легше розробляються (а -комплектність гарантує існування деякого еквівалентного CSG, який лише в поліномійному розмірі перевищує використання місця у вашому алгоритмі).PSPACE

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

Не обмежені граматики стають ще більш дивними: більше не існує поняття "розширення" нетерміналу та заміни його виробництвом, можливо, залежно від контексту. Вам також можна вільно змінювати контекст. Це робить необмежені граматики ще менш інтуїтивними для роботи: програми є рівнозначними та набагато більш інтуїтивними.


Але контекстно-залежні мови є корисними! Дивіться, наприклад, цю дискусію .
Рафаель

Контекстна чутливість корисна, але контекстно-чутливі граматики як спосіб опису мов не дуже корисні ІМО. Вам краще використовувати деякі інші засоби для опису контекстно-залежних функцій.
Олексій десять Бринк

Але ви говорите про мови в більшості частин своєї відповіді. Щодо граматик, мммв. Існують граматичні моделі між CFG та CSG, які мають природне застосування для моделювання, наприклад, сполучені / мульти-CFG.
Рафаель

1
Ви маєте рацію, я неохайно розрізняв мови і граматики, які я бачу. Я оновив свою відповідь.
Олексій десять Бринк

10

L

AL(A)

Коротше кажучи, для менших класів вам потрібно менше обчислювальної потужності, щоб вирішити проблему вирішення питання про те, чи належить слово до мови.

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


2
"Коротше кажучи, для менших класів вам потрібно менше обчислювальної потужності для вирішення проблеми вирішення питання про те, чи належить слово до мови". точно, але як це стосується типу 1 проти типу 0? Саме в цьому питання!
бітмаска

ccn

8

Без контекстних мов, у будь-якій точці розбору вхідних даних, автомат знаходиться в стані, визначеному його стеком. Кожне виробництво має однакову поведінку в споживанні вхідних даних, незалежно від того, де воно використовується.

Це призводить до цікавої властивості, що кожне виробництво генерує підмову тієї, яку генерують ті, що знаходяться глибше в стеку, і таким чином для кожної пари A і B виробництв, що генеруються та споживаються на будь-якому конкретному вході, у нас є три можливі випадки:

  • a: Вхід, споживаний A, повністю міститься у вході, споживаному B; або
  • b: Вхід, споживаний A, повністю містить вхід, спожитий B; або
  • c: Вхід, споживаний A, повністю не відповідає входу, споживаному B.

Це означає, що такого не відбувається ніколи:

  • d: Вхід, споживаний A, частково перекриває вхід, спожитий B.

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

У реальному випадку випадок, коли контекстно-залежна мова мала б сенс - це щось на кшталт позначення <b> жирного тексту </b>, <i> курсивного тексту </i> та <u> підкресленого тексту </u> з ці HTML-теги, і нехай вони перетинаються, як-от "Це <u> текст із <i> змішаними </u> перекриваючими тегами </i>." Зауважте, що розібратися в цьому і виявити, чи всі початкові теги відповідають кінцевим тегам, КПК не зробить, оскільки це не контекстно, але LBA легко це зробить.


7

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

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

На відміну від контекстних мов, CS також закриваються під продуктом перетину та переміщення .


6

Будь-яку мову типу 1 може розпізнати машина Тьюрінга, яка використовує лише лінійний простір (так звані лінійно обмежені автомати).


2
Так, це визначення. Але як мені допомагає це обмеження?
бітмаска

3
це допомагає мені, оскільки воно обмежує потужність алгоритмів розпізнавання CSG до E замість EXP. Я не знаю, як це вам допомагає :)
Суреш

5

Мови типу 1 можна визначити за допомогою лінійних обмежених автоматів , що є недетермінованими машинами Тюрінга, які можуть використовувати лише частину стрічки, розмір якої лінійний до вхідного розміру.


4

Ієрархія Хомського класифікує граматики більше, ніж мови. Однак це не було розроблено так, щоб мати щось спільне з кількістю стрічок, яким повинен був визнати автомат, як ви запропонували для типів 2 і 3, навіть якщо є така машина Тьюрінга, яка робить це для граматик типу 1.

Слід також зазначити, що мови граматик типу 0 не всі розпізнаються машиною Тюрінга, але їх можна перерахувати лише на такій машині: Type-0 означає рекурсивно численні, а машини Тьюрінга розпізнають лише рекурсивні мови.


4

Сучасна мова програмування постійно використовує контекстно-залежні функції; вони потрапляють у підмножину, яку можна ефективно визначити.

Прикладами є аналіз імен та типів і умовивід.


3

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

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

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