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


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) для всіхqQ іhlΣO ,
(q,ε,$,hr)δ(q,$,a)(q,hr)δ(q,a,L) для всіхqQ ,
(q,ε,hl,hr)δ(q,ahl,ε)(q,hr)δ(q,a,R) для всіхqQ,hlΣO ,
(q,ε,hl,$)δ(q,hl,$) для всіхqQ іhlΣO , і
(q,ε,hl,hr)δ(q,hl,a)(q,hr)δ(q,a,N) для всіхqQ,hlΣO

є еквівалентним 2-КПК. Тут ми припускаємо, що машина Тьюрінга використовує ΣO як порожній символ, обидві стеки починаються з маркера $ΣO (який ніколи не видаляється) і (q,a,hl,hr)δ(q,l1li,r1rj) означає, що 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.