W przypadku problemu zatrzymania jesteśmy zainteresowani, czy istnieje maszyna Turinga która może stwierdzić, czy dana maszyna Turinga zatrzymuje się, czy nie na danym wejściu . Zwykle dowód zaczyna zakładać, że taki istnieje. Następnie rozważamy przypadek, w którym ograniczamy do samego , a następnie wyprowadzamy sprzeczność za pomocą wystąpienia argumentu przekątnego. Jestem zainteresowany, jak poszedłby dowód, gdyby dano nam obietnicę, że ? Co z obietnicą , gdzie jest funkcjonalnie równoważne ?
10
Odpowiedzi:
Załóżmy, że HALTS to TM, która odczytuje dane wejściowe jako parę i x , gdzie M jest kodowaniem TM, a x jest dowolnym wejściem do tej TM.M x M x
Twoje pytanie brzmi, czy to, co by się stało, jeśli założyliśmy zatrzymuje rozwiązało problemu stopu dla wszystkich wejść takie, że x nie jest kodowanie TM, który jest funkcjonalnym odpowiednikiem M .⟨M,x⟩ x M
Twierdzę, że oznacza to sprzeczność. Wymyśliłem to na miejscu, dlatego z zadowoleniem przyjmuję wszelką krytykę mojego dowodu. Ideą dowodu jest to, że zamiast przekątnej czegoś na sobie, tworzymy dwie wzajemnie rekurencyjne TM, które zachowują się różnie na niektórych danych wejściowych (a zatem nie są funkcjonalnie równoważne), ale w przeciwnym razie powodują sprzeczności.
Niech i D 2 będą dwiema wzajemnie rekurencyjnymi bazami TM (co oznacza, że możemy symulować, drukować itp., Opis D 2 w programie D 1 i odwrotnie). Zauważ, że możemy tworzyć wzajemnie rekurencyjne bazy TM na podstawie twierdzenia o rekurencji.D1 D2 D2 D1
Zdefiniuj i D 2 w następujący sposób: na wejściu x , jeśli | x | < 10 (10 wybranych dowolnie), następnie D 1 akceptuje i D 2 pętle. (W związku z tym nie są funkcjonalnie równoważne).D1 D2 x |x|<10 D1 D2
Biorąc pod uwagę pomocą | x | ≥ 10 , określa D 1 do symulacji zatrzymywane na ⟨ D 2 , x ⟩ i zatrzymania, jeśli D 2 zatrzymanie lub pętli, jeśli D 2 pętli.x |x|≥10 D1 ⟨D2,x⟩ D2 D2
Biorąc pod uwagę pomocą | x | ≥ 10 , określa D 2 symulować zatrzymywane na ⟨ D 1 , x ⟩ i uchwyt, gdy D 1 zatrzymanie lub wstrzymania, jeśli D 1 pętli.x |x|≥10 D2 ⟨D1,x⟩ D1 D1
Następnie zauważ, że dla dowolnego z | x | ≥ 10 , D 1 (x) zatrzymuje się lub zapętla. Jeśli D 1 zatrzymuje się na wejściu x, to wiemy, że HALTS ( D 2 , x) ustaliło, że D 2 zatrzymuje się na wejściu x. Jednak zatrzymanie D 2 na wejściu x oznacza, że pętle HALTS ( D 1 , x).x |x|≥10 D1 D1 D2 D2 D2 D1
Jeśli na wejściowych pętlach x , sprzeczność zachodzi podobnie.D1 x
Jest to sprzeczność, chyba że jest kodowaniem dla maszyny Turinga funkcjonalnie równoważnym z D 1 lub D 2 , w którym to przypadku HALTS ma niezdefiniowane zachowanie. Jednak x wybrano dowolnie ze wszystkich ciągów o rozmiarze większym niż 10 . Pozostaje więc pokazać, że istnieje maszyna Turinga z kodowaniem o rozmiarze większym niż 10, który zachowuje się inaczej niż D 1 i D 2 . Możemy zbudować taką maszynę w sposób trywialny. CO BYŁO DO OKAZANIA.x D1 D2 x 10 D1 D2
Myśli?
źródło
Nadal nie jesteś z lasu. Napotkasz ten sam problem, tylko teraz dać mu inny TM jako wejścia, gdzie wybrałeś M ' być funkcjonalnie równoważny M (powiedzmy dodać nową regułę do M tak, że M ' porusza otwarcia s są jeden krok w prawo, jeden krok w lewo, w przeciwnym razie nie wprowadzisz żadnych zmian). Nadal będziesz w sprzeczności. Możesz spróbować wyeliminować wszystkie TM, które są równoważne M , ale to jest nierozstrzygalny zestaw.M′ M′ M M M′ M
Aktualizacja . Napraw schemat kodowania, w którym Oznacza opis w ramach tego schematu TM M i załóżmy, że miałeś TM, H gdzie⟨M⟩ M H
Obecnie zwykła konstrukcja przekątna wciąż powoduje sprzeczność. Zdefiniuj TM przezQ
Oczywiście i H są funkcjonalnie inequivalent, więc można pozwolić x = ⟨Q H I znajdź to Q ( ⟨x=⟨Q⟩ Zatrzymanie wtedy i tylko wtedy, jeśli nie zatrzymać, więc nie mogą być takie TM H .Q(⟨Q⟩) H
źródło