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.
proof-techniques
computation-models
simulation
saadtaame
źródło
źródło
Odpowiedzi:
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ć
być maszyną Turinga (z jedną taśmą). Następnie,
z i podane przezΣ′O= Σ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′,l1…li,r1…rj) AM a q q′
[ ź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.AM x∈Σ∗I M M AM
źródło
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.
źródło
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.
źródło