Jak wykazać, że dwa modele obliczeń są równoważne?


21

Szukam wyjaśnienia, w jaki sposób można udowodnić, że dwa modele obliczeń są równoważne. Czytałem książki na ten temat, z tym wyjątkiem, że pominięto dowody równoważności. Mam podstawowe pojęcie o tym, co to znaczy, że dwa modele obliczeń są równoważne (widok automatów: jeśli akceptują te same języki). Czy istnieją inne sposoby myślenia o równoważności? Jeśli pomożesz mi zrozumieć, jak udowodnić, że model maszyny Turinga jest równoważny rachunkowi lambda, byłoby to wystarczające.


Chyba wybrałeś złe książki.
Raphael

@Raphael Jaka jest dobra książka na ten temat?
saadtaame

Chciałbym powiedzieć „każdą książkę o automatach”, ale najwyraźniej to teraz prawda. Niestety, nie mam pod ręką żadnych pasujących angielskich książek.
Raphael

1
Książka na temat automatów nie wystarczy.
reinierpost

Z jakich książek korzystasz?
saadtaame

Odpowiedzi:


20

Pokazujesz, że każdy model może symulować drugi, którym jest maszyna w modelu A, pokazujesz, że istnieje maszyna w modelu B, która oblicza tę samą funkcję. Zauważ, że ta symulacja nie musi być obliczalna (ale zwykle jest).

Rozważmy na przykład automaty wypychające z dwoma stosami (2-PDA). W innym pytaniu przedstawiono symulacje w obu kierunkach. Jeśli zrobiłbyś to formalnie, wziąłbyś ogólną maszynę Turinga (krotkę) i wyraźnie skonstruowałbyś, co odpowiadałby 2-PDA, i odwrotnie.


Formalnie taka symulacja może wyglądać następująco. Pozwolić

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

być maszyną Turinga (z jedną taśmą). Następnie,

ZAM.=(Q{q1,q2)},Σja,ΣO,δ,q1,Qfa)

z i podane przezΣO=ΣO.{$}δ

(q1,za,hl,hr)δ(q1,zahl,hr) dla wszystkich i , dla wszystkich , dla wszystkich z , dla wszystkich ,Ď IzaΣjahr,hlΣO
(q1,ε,hl,hr)δ(q2),hl,hr)hr,hlΣO
(q2),ε,hl,hr)δ(q2),ε,hlhr)hr,hlΣOhl$
(q2),ε,$,hr)δ(q0,$,hr)hrΣO
(q,ε,hl,hr)δ(q,ε,hlza)(q,hr)δ(q,za,L.) q Q h lΣ Odla wszystkich i , dla wszystkich , dla wszystkich , dla wszystkich i oraz dla wszystkichqQhlΣ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,$)qQhlΣO
(q,ε,hl,hr)δ(q,hl,a)(q,hr)δ(q,a,N)qQ,hlΣO

jest równoważnym 2-PDA. Zakładamy, że maszyna Turinga używa jako pusty symbol, oba stosy zaczynają się od znacznika (który nigdy nie jest usuwany) i oznacza, że zużywa wejście , przełącza stany z na i aktualizuje stosy w następujący sposób:ΣO$ΣO(q,a,hl,hr)δ(q,l1li,r1rj)AMaqq

aktualizacja stosu
[ źródło ]

Pozostaje pokazać, że wchodzi w stan końcowy na tylko i tylko wtedy, gdy zrobi. Jest to całkiem jasne z konstrukcji; formalnie musisz przełożyć akceptowanie przebiegów na na akceptowanie przebiegów na i odwrotnie.AMxΣIMMAM


@frabala Miałeś rację, miałem początkowe stany w niewłaściwy sposób. Naprawiono teraz, dzięki!
Raphael

4

Na początku systemów komunikacyjnych i mobilnych: Pi-Calculus autorstwa Robina Milnera znajduje się wprowadzenie do automatów i sposobów ich wzajemnej symulacji, aby nie można było ich rozróżnić: bisimulacja . (por. Bisimulation na wikipedii)

Nie pamiętam dobrze, powinienem ponownie przeczytać ten rozdział, ale wystąpiły problemy z symulacją i bisimulacją, które sprawiły, że nie były wystarczające do równoważności obliczeniowych.

W ten sposób Robin Milner przedstawia swoje Pi-Calculus i ujawnia je do końca książki.

Ostatecznie w jego ostatniej książce The Space and Motion of Communicating Agents można było obejrzeć Bigraphs Robina Milnera. Mogą modelować Automaty, sieci Petriego, Pi-Calculus i inne metodologie obliczeniowe.


2

O ile mi wiadomo, jedynym (lub przynajmniej najczęstszym) sposobem na to jest porównanie języków akceptowanych przez maszyny / modele. Taki jest sens teorii automatów: przyjmuje niejasną koncepcję problemu lub algorytmu i zamienia ją w konkretny zestaw matematyczny (tj. Język), o którym możemy myśleć.

Najłatwiej to zrobić, biorąc pod uwagę dowolną maszynę / funkcję z jednego modelu, aby zbudować maszynę z drugiego modelu, który oblicza ten sam język. Szanse są takie, że użyjesz indukcji długości wyrażenia, stanów w maszynie, reguł gramatyki itp.

Nie widziałem tego zrobionego z Lambda i TM (chociaż jestem w 99% pewien, że to możliwe), ale zdecydowanie widziałem tego rodzaju rzeczy, aby udowodnić równoważność NFA i wyrażeń regularnych. Najpierw pokazujesz NFA, który może zaakceptować dowolny atom, a następnie za pomocą indukcji tworzysz NFA, które akceptują zjednoczenie / konkatenację / gwiazdę Kleene wszelkich mniejszych NFA.

Następnie postępujesz odwrotnie, aby znaleźć RE dla dowolnego NFA.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.