Я ищу объяснение того, как можно доказать, что две модели вычислений эквивалентны. Я читал книги по этому вопросу, за исключением того, что доказательства эквивалентности опущены. У меня есть базовое представление о том, что означает, что две модели вычислений эквивалентны (представление автоматов: если они принимают одни и те же языки). Есть ли другие способы мышления об эквивалентности? Если бы вы могли помочь мне понять, как доказать, что модель машины Тьюринга эквивалентна лямбда-исчислению, этого было бы достаточно.
proof-techniques
computation-models
simulation
saadtaame
источник
источник
Ответы:
Вы показываете, что любая модель может симулировать другую, которой присвоен компьютер в модели A, показывает, что в модели B есть машина, которая выполняет ту же функцию. Обратите внимание, что это моделирование не обязательно должно быть вычислимо (но обычно так и есть).
Рассмотрим, например, автоматы с двумя стеками (2-PDA). В другом вопросе моделирование в обоих направлениях обрисовано в общих чертах. Если бы вы сделали это формально, вы бы взяли общую машину Тьюринга (кортеж) и явно сконструировали, какой будет соответствующий 2-КПК, и наоборот.
Формально такая симуляция может выглядеть так. Позволять
быть машиной Тьюринга (с одной лентой). Потом,
сΣ′O=ΣO∪.{$} и δ′ определяется
является эквивалентом 2-КПК. Здесь мы предполагаем, что машина Тьюринга использует□∈ΣO качестве пустого символа, оба стека начинаются с маркера $∉ΣO (который никогда не удаляется) и (q,a,hl,hr)→δ′(q′,l1…li,r1…rj) означает, что AM потребляет вход a , переключает состояния изq кq′ и обновляет стеки следующим образом:
[ источник ]
Осталось показать, чтоAM входит в конечное состояние на x∈Σ∗I тогда и только тогда, когда это делает M Это довольно ясно по построению; формально вы должны преобразовать принимаемые прогоны на M в принятие прогонов на AM и наоборот.
источник
At the beginning of Communicating and Mobile Systems: the Pi-Calculus by Robin Milner, there is a introduction on automata and how they can simulate each other so that they cannot be distinguished : Bisimulation. (cf Bisimulation on wikipedia)
I don't remember well, I should re-read the chapter, but there was a trouble with simulation and bisimulation that made them not sufficient for computational equivalences.
Thus Robin Milner introduces his Pi-Calculus and exposes it for the rest of the book.
В конце концов, в его последней книге «Пространство и движение коммуникационных агентов» вы могли взглянуть на Bigraphs Робина Милнера. Они могут моделировать автоматы, сети Петри, пи-исчисление и другие вычислительные методологии.
источник
Насколько я знаю, единственный (или, по крайней мере, самый распространенный) способ сделать это - сравнить языки, которые принимают машины / модели. В этом весь смысл теории автоматов: она берет нечеткое понятие проблемы или алгоритма и превращает его в конкретный математический набор (то есть язык), о котором мы можем рассуждать.
Самый простой способ сделать это, учитывая произвольную машину / функцию из одной модели, построить машину из второй модели, которая вычисляет тот же язык. Скорее всего, вы будете использовать индукцию в длине выражения, состояния в машине, правила в грамматике и т. Д.
Я не видел, чтобы это было сделано с Lambda и TM (хотя я на 99% уверен, что это возможно), но я определенно видел такие вещи для доказательства эквивалентности NFA и регулярных выражений. Сначала вы показываете NFA, который может принимать любой атом, затем, используя индукцию, вы создаете NFA, которые принимают объединение / конкатенацию / звезду-звезду любых меньших NFA.
Затем вы делаете противоположное, чтобы найти RE для любого NFA.
источник