Czy maszyna Turinga zdecydować języka


11

Niech Czy istnieje maszyna Turinga R, która decyduje (nie mam na myśli rozpoznać) język L ?

L={MM is a Turing Machine and L(M)=}.

L

Wydaje się, że ta sama technika użyta do pokazania, że tutaj powinno działać.{AA is a DFA and L(A)=}


1
Czego próbowałeś? Czy możesz na przykład pomyśleć o DFA dla pustego języka? Pamiętaj, że DFA można traktować jako bardzo ograniczone bazy TM.
Shaull

1
Pewnie. Od stanu początkowego przejdź do stanu „zatrzymaj odrzucanie”, niezależnie od tego, co znajduje się na taśmie wejściowej. To wyraźnie akceptuje każdy ciąg w języku i odrzuca każdy ciąg nie w języku.
Patrick87

8
@mahdisaeedi: To drugie pytanie jest zupełnie inne! Pytasz, czy można zadecydować, czy dana TM rozpozna pusty język - a odpowiedź brzmi nie, patrz Twierdzenie Rice'a
Shaull

Odpowiedzi:


9

Oznaczając, prawdopodobnie masz na myśli analizę osiągalności - szukanie ścieżki ze stanu początkowego do stanu akceptacji. Rzeczywiście, język DFA jest pusty, jeśli nie ma takiej ścieżki.

Zacznijmy od przykładu, dlaczego nie udaje się to w bazach TM. Rozważmy TM, że , ignoruje go za wejście, ale pisze na jego taśma przesuwa prawo głowy i przechodzi do stanu q 1 , następnie w q 1 ponownie ignoruje wejście, pisze przesuwa głowę w lewo i przechodzi do q 2 . W q 2 , jeśli czyta a , to pisze a , przesuwa głowę w prawo i wraca do q 1 .q0aq1q1aq2q2aaq1

Oznacza to, że maszyna po prostu pisze i zastępców między dwoma stanami ( q 1 i q 2 ) i zawsze ma dwa przyległe A „s na taśmie.aq1q2a

Teraz dodajemy przejście z które podczas czytania b przechodzi do stanu akceptacji i zatrzymuje się.q2b

Język tego komputera jest pusty. Rzeczywiście, bieg zawsze utknie w pętli i nigdy nie przejdzie do stanu akceptacji. Istnieje jednak ścieżka stanu do stanu akceptującego. Co poszło nie tak?q1q2

Cóż, intuicyjnie `` stan '' bazy TM nie jest wystarczająco pouczający, aby opisać kontynuację cyklu. Aby uzyskać wszystkie informacje, potrzebujesz konfiguracji bazy TM, która obejmuje stan, pozycję głowy i zawartość taśmy. Jeśli znajdziesz ścieżkę konfiguracji (która jest nazywana uruchomieniem ) do konfiguracji akceptującej, to rzeczywiście język nie jest pusty i jest to warunek iff.

Problem z użyciem analizy osiągalności na wykresie konfiguracji polega na tym, że może być nieskończona. Dlatego decydowanie o pustce językowej jest nierozstrzygalne.

Dlatego też rozpoznawalna jest pustka językowa - możesz wykonać BFS na nieskończonym grafie konfiguracyjnym. Jeśli istnieje ścieżka do stanu akceptacji, w końcu ją znajdziesz. Jeśli jednak tego nie ma, możesz utknąć w nieskończonym poszukiwaniu.


Funkcja przejścia TM jest następująca: F (Q T) -> (Q T * {L, R}). Czy możesz napisać funkcję ignorowania danych wejściowych?
ms

Tak. W tym przypadku , F ( q 1 , a ) = F ( q 1 , b ) = ( q 2 , a , L ) , F ( q 2 , a ) = (F(q0,a)=F(q0,b)=(q1,a,R)F(q1,a)=F(q1,b)=(q2,a,L) i F ( q 2 , b ) = ( q a c c , a , L ) (ale to drugie nigdy nie jest osiągane). F(q2,a)=(q1,a,R)F(q2,b)=(qacc,a,L)
Shaull

9

jest nierozstrzygalne z powodutwierdzenia Rice'a, które stwierdza, że ​​nietrywialne właściwości funkcji cząstkowych nie są rozstrzygalne.A

  1. Istnieje baza TM, która nie przyjmuje żadnego łańcucha. (Który bezpośrednio przechodzi w stan odrzucenia).
  2. Istnieje TM, która akceptuje każdy ciąg. (Który bezpośrednio przechodzi w stan akceptacji).

Oznacza to, że funkcje obliczone przez elementy mają nietrywialną właściwość. Stąd A nie podlega rozstrzygnięciu.AA

jest rozstrzygalne tylko przy założeniu, że DFA są kodowane w specjalny sposób, taki jak tabela przejścia stanu itp. (Nie możemy zdecydować, czy TM akceptuje tylko zwykłe języki, z powodu twierdzenia Rice'a!). W tym przypadku Rice'a twierdzenie nie znajduje zastosowania, ponieważ szczególności kodowanie elementu jest wymagane do podjęcia decyzji o E . Więc nie decydujemy tylko o funkcjach częściowych.EE

(To znaczy, jeśli problem polegałby na tym, czy dana TM jest DFA - czy DFA obliczalna - a język przez nią akceptowany jest pusty, byłoby nierozstrzygalne na podstawie twierdzenia Rice'a. Zauważ, że w tym przypadku A = E .)EA=E


6

Kolejna wskazówka: spróbuj zredukować problem zatrzymania do .L

(Oryginalną wskazówką jest użycie twierdzenia Rice'a, ale w tym przypadku bezpośredni dowód jest również dość prosty.)


@Yuval_Filmus Czy to prawda, że ​​ten język nie jest nawet rozpoznawany przez Turinga?
sashas

1
Co myślisz? Czy możesz udowodnić swoje roszczenie? Jeśli tak, nie ma potrzeby zadawania pytania.
Yuval Filmus

1

Lemat 1 : Jeśli L jest nierozstrzygalny, to także uzupełnienie L.

HTMHTMc

HTM{M,x M is a TM and M halts on input x }

HTMc{M,x M is a TM and M loops on input x }

ETM{M M is a TM and L(M) = }

Załóżmy, że ETM jest rozstrzygalne. Zmniejszymy HTMc do ETMMHTMcHTMcMETMETMHTMcMHTMcHTMc

MHTMcM,x

M1

M1w

Mx

M

METMM1

METM

M1M1

M1wMxMx

M1wMxMETMM1L(M1)

MxM1wMETMM1L(M1)=

Correctness : odMETM zawsze postojów (o założeniem)MHTMc K E T M odrzuca toMHTMcMETML(M1)=Mx
MHTMcMETML(M1)MxMHTMcHTMcHTMc


Nb:

HTMcETM

Redukcja daje:

M,xHTMcR(M,x)ETM

R(M,x)

M,xHTMcR(M,x)ETM

R(M,x)


0

ATM={M,wM is a Turing Machine which accepts w}

RTML

RTMSTMATM

STM=definitionM,wMw

  1. MwMM1wwwM1MwM

  2. RTMM1,w

  3. RTM

LATM


RTMwRTMM1,w

-2

E = {| M jest TM, a L (M) = Φ}. Czy można rozpoznać E Turinga?

E jest językiem, aby zaakceptować język E budujemy Maszynę Turinga. Załóżmy, że tworzymy Turing EM dla języka E.

EM zostanie dostarczone jako kodowanie wejściowe innych maszyn Turinga. Jeśli wprowadzona maszyna M zaakceptuje pusty język, będzie to członek języka E, w przeciwnym razie nie będzie on członkiem języka.

Załóżmy, że mamy maszynę Turinga M, musimy sprawdzić, czy akceptuje pusty język. Maszyna Turinga EM ma M i ciągi eps, a, b, aa, bb, ..... EM sprawdzi, czy M może osiągnąć stan końcowy co najmniej na jednym wejściu, a jeśli zaakceptuje co najmniej jedno wejście, to zostaną odrzucone i nie zostaną uwzględnione w języku E. Teraz zobacz możliwość, że TM M dostanie się do pętli, więc M będzie działać dalej i nie mogliśmy zdecydować, czy może zaakceptować, czy nie. Dlatego ten dany język E NIE jest RE.

PS: Myślę, że uzupełnieniem tego podanego języka E będzie RE.


Niestety ten intuicyjny argument nie stanowi dowodu. Może istnieć inny sposób decydowania o E, a nie jest to wykluczone przez twój argument.
Yuval Filmus,

tak, poprawne, ale sposób, w jaki to wyjaśniłem, umożliwia zrozumienie w języku laika.
Manu Thakur,

Ta strona nie jest przeznaczona dla osób świeckich. To jest dla teoretycznej informatyki na poziomie akademickim.
Yuval Filmus,

2
Wszystko, co zrobiłeś, to intuicyjny argument dotyczący tego, dlaczego dana technika obliczeniowa wydaje się nie rozwiązać tego problemu. Ale pytanie wymaga dowodu, że żadna możliwa technika nie działa.
David Richerby
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.