Чи розсувний автомат з двома штабелями еквівалентний машині тюрінга?


41

У цій відповіді згадується

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

Мені хотілося дізнатись щодо правдивості сміливої ​​частини. Це насправді правда чи ні? Який хороший спосіб досягти відповіді на це?


У напівжирному тексті є дві претензії, але назва вашого запитання говорить про те, що вас цікавить лише одна з них.
Тайсон Вільямс

@TysonWilliams: так, так?
Лазер

Це заплутано. Я не знаю, для якої підмножини двох претензій ви хочете виправдати.
Тайсон Вільямс

Для тієї, що виділяється жирним шрифтом , про що йдеться у питанні.
Лазер

2
@Lazer: жирний текст містить два твердження ("CSL вимагає двох стеків", "два стеки еквівалентні TM"). Оскільки CSL є належним підмножиною RE, лише одна може бути правдою.
Рафаель

Відповіді:


38

Два біти на цю відповідь;

По-перше, клас мов, визнаних машинами Тьюрінга, не є контекстно-чутливим , він є рекурсивно перелічувальним (контекстно-чутливий - це клас мов, який ви отримуєте з лінійно пов'язаних автоматів ).

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

Щоб побачити еквівалентність, просто подумайте про перший стек як про вміст стрічки зліва від поточного положення, а другий як на вміст праворуч. Ви починаєте так:

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

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

Щоб отримати повний офіційний доказ, дивіться відповідь на інше питання .

Зв'язок в іншому випадку повинен бути ще більш очевидним, тобто, що ми можемо імітувати двоступеневий КПК з TM.

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