Які мови розпізнаються машинами з одноразовим приладом?


15

Лічильні машини з двома або більше лічильниками, як правило, показані еквівалентними машинам Тьюрінга в курсах з теорії обчислення. Однак я не бачив офіційного аналізу того, які мови можна розпізнати машиною з одноразовим коштом. Чи ці мови еквівалентні без контекстним мовам (можливо, за якоюсь розумною конструкцією, що стосується їх КПК), чи це зовсім інший клас мов?


2
Ця книга: books.google.co.uk/books/about/… Жана Берстеля заглиблюється у багато глибин щодо мов, що не відповідають одній лічилці, та інших підмножин без контекстних мов, але насправді це насправді дуже важко. знайти його копію.
Сем Джонс

1
@SamJones Дійсно знамениті книги каскади , і Бесконтекстние Мови Жан Berstel вийшли друком. Автор оприлюднив електронну версію найважливіших розділів книги. www-igm.univ-mlv.fr/~berstel/LivreTransductions/…
Хендрік

Відповіді:


11

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

Наприклад, автомати з 1 лічильником можуть розпізнавати мову яка не є регулярною, але не може розпізнати мову { a n b m a m b n }, яка не є контекстною і може бути розпізнана 2-лічильником автомати, теж.{анбн}{анбмамбн}

Якщо k-DCA - детерміновані автомати-k-counter, а k-NCA - недетерміновані автомати-k-counter, то ми маємо такі належні включення:

DFA (звичайні мови) 1-DCA 2-DCA

1-DCA 1-NCA

Якщо ми не дозволяємо переходи (переходити в режимі реального часу ), то k-DCA k'-DCA для k <k '.ϵ

Тільки для завершення: є мови, які не є контекстними, але їх не можна розпізнати лічильними автоматизаторами (k-DCA з k 2) (наприклад, { w w R } ), і мови, розпізнавані лічильниками автомати, які не є контекстними (для приклад { a n b n c n } ). Лічильний автомат (зокрема, два лічильних автомати) може бути Тьюрінгом повним лише у тому випадку, якщо його вхід та вихід правильно закодовані (детальніше див. Запис у Вікіпедії ).{шшR}{анбнcн}


к2

(1) ні, я маю на увазі "які не є контекстними" (просто виберіть належним чином закодовану контекстну мову, яку можна розпізнати ak> 1 лічильник) (2) ви праві, ієрархія посилається на DCA в реальному часі (я виправив відповідь)
Vor

Я, здається, пам’ятаю, що існують відмінності між лічильниками, які не обмежуються в обох напрямках, і такими, що «знизу» в нуль?
Рафаель

7

Лічильні автомати були багато вивчені в давньому формальному мовному минулому в контексті теорії AFA та AFL (абстрактні сімейства автоматів та мов) командами США та Франції (Гінзберг, Грейбах, ..., Ніват, Берстель, ...)

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

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

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

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

Тип вище зберігає ціле число (або натуральне число, що не має значення) і може перевірити його вміст на рівні нуля. Автомати для сліпих лічильників зберігають ціле число, але не можуть перевірити нуль. Вони, однак, можуть виразно рахувати нижче нуля. Частково сліпі автомати лічильника не можуть перевіряти нуль, але зберігають натуральне число. Якщо машина намагається опуститися нижче нуля, вона зупиняється, не приймаючи. Це природний тип зберігання для моделювання сіток Петрі. Це також має відношення до КПК, тепер з одним символом стека без спеціального нижнього маркера (і, отже, проблема тестування нуля: ми просто застряємо при вискакуванні останнього елемента стека). Іноді назви сімей, визначених моделями репараційного лічильника, є OCL, ROCL та 1-BLIND.

(Dc)D={ш{а,б}#а(ш)=#б(ш)}абc

Як приклад відповідних досліджень, Latteux etal представляє нетривіальний документ "Родина однокореневих мов закрита під дією" (що насправді стосується ROCL).

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