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


21

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


Я думаю, ви вибрали неправильні книги.
— Рафаель

@Raphael Що таке хороша книга з цього питання?
— saadtaame

Я хотів би сказати "будь-яку книгу про автомати", але очевидно, що це зараз так. На жаль, у мене немає підходящих книг англійською мовою, вибачте.
— Рафаель

1
Книги на просто автоматах не вистачить.
— reinierpost

Які книги ви використовуєте?
— saadtaame

Відповіді:


20

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

Розглянемо, наприклад, автоматичні автоматичні автоматичні висувні автомати з двома стеками (2-КПК). В іншому питанні окреслено моделювання в обох напрямках. Якби ви зробили це формально, ви взяли б загальну машину Тюрінга (кортеж) і чітко побудували б те, що буде відповідним 2-КПК, і навпаки.


Формально таке моделювання може виглядати приблизно так. Дозволяє

M=(Q,ΣI,ΣO,δ,q0,QF)

бути машиною Тюрінга (однією стрічкою). Потім,

AM=(Q∪{q1∗,q2∗},ΣI,ΣO′,δ′,q1∗,QF)

з ΣO′=ΣO∪.{$} і δ′ задані

(q1∗,a,hl,hr)→δ′(q1∗,ahl,hr) для всіхa∈ΣI іhr,hl∈ΣO ,
(q1∗,ε,hl,hr)→δ′(q2∗,hl,hr) для всіхhr,hl∈ΣO ,
(q2∗,ε,hl,hr)→δ′(q2∗,ε,hlhr) для всіхhr,hl∈ΣO зhl≠$ ,
(q2∗,ε,$,hr)→δ′(q0,$,hr) для всіхhr∈ΣO ,
(q,ε,hl,hr)→δ′(q′,ε,hla)⟺(q,hr)→δ(q′,a,L) для всіхq∈Q іhl∈ΣO ,
(q,ε,$,hr)→δ′(q′,$,◻a)⟺(q,hr)→δ(q′,a,L) для всіхq∈Q ,
(q,ε,hl,hr)→δ′(q′,ahl,ε)⟺(q,hr)→δ(q′,a,R) для всіхq∈Q,hl∈ΣO′ ,
(q,ε,hl,$)→δ′(q,hl,◻$) для всіхq∈Q іhl∈ΣO′ , і
(q,ε,hl,hr)→δ′(q′,hl,a)⟺(q,hr)→δ(q′,a,N) для всіхq∈Q,hl∈ΣO′

є еквівалентним 2-КПК. Тут ми припускаємо, що машина Тьюрінга використовує ◻∈ΣO як порожній символ, обидві стеки починаються з маркера $∉ΣO (який ніколи не видаляється) і (q,a,hl,hr)→δ′(q′,l1…li,r1…rj) означає, що AM споживає вхід a , перемикає стани зq доq′ та оновлює стеки так:

stack update
[ джерело ]

Залишається показати, що AM входить у кінцевий стан на x∈ΣI∗ тоді і тільки тоді, коли M робить це. Це цілком зрозуміло за конструкцією; формально ви повинні перевести прийняття прогонів на M у прийняття прогонів на AM і навпаки.


@frabala Ви мали рацію, я мав початкові стани неправильно. Виправлено зараз, дякую!
— Рафаель

4

На початку Communicating and Mobile Systems: Pi-Calculus Робіна Мілнера, є вступ до автоматів, і як вони можуть імітувати один одного, щоб їх не можна було розрізнити: Бізімуляція . (пор. Бісуляція у Вікіпедії)

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

Таким чином, Робін Мілнер представляє свій Pi-Calculus і виставляє його до решти книги.

Зрештою, в його останній книзі "Космос і рух комунікаційних агентів" ви могли поглянути на "Біграфії" Робіна Мілнера. Вони можуть моделювати Автомати, сітки Петрі, Пі-обчислення та інші обчислювальні методики.


2

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

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

Я не бачив цього з Lambda і TM (хоча я на 99% впевнений, що це можливо), але я точно бачив подібну річ для доведення еквівалентності NFA та регулярних виразів. Спочатку ви показуєте NFA, який може приймати будь-який атом, потім, використовуючи індукцію, ви робите NFA, які приймають об'єднання / конкатенацію / зірку Кліну будь-яких менших NFA.

Тоді ви робите навпаки, щоб знайти RE для будь-якого НФА.

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