Czy istnieje jakiś niezliczony język Turinga?


17

Istnieje wiele (i mam na myśli wiele) języków, które można policzyć w Turingu. Czy jakiś niezliczony język może być rozstrzygalny przez Turinga?


2
Jeśli język wszystkich możliwych słów jest niepoliczalny (co wymaga niepoliczalnego alfabetu), natychmiast zapewnia przykład (trywialnie) rozstrzygającego języka Turinga, którego nie można policzyć. Jeśli nie jest (tzn. Jest policzalny), to podjęzyki też nie są niepoliczalne.
Marc van Leeuwen

Odpowiedzi:


25

Każdy język na skończonym (lub nawet policzalnym) alfabecie jest policzalny. Zakładając, że alfabet maszyny Turinga jest skończony, każdy język, który może zaakceptować, jest policzalny.


A co z zestawem wszystkich języków o skończonej liczbie ciągów znaków w nieskończenie licznym alfabecie? Czy to jest policzalne czy niepoliczalne? Nie mogłem też wymyślić dowodu na to, że „język ponad nieskończenie nieskończonym alfabetem jest policzalny”.
anir

Twój zestaw jest również policzalny.
Yuval Filmus,

Dowodzi to, że „zestaw języków nad skończonym alfabetem jest policzalny”. Wydaje mi się, że możemy udowodnić, że „zestaw języków zawierający licznie nieskończone ciągi znaków nad skończonym alfabetem jest policzalny”, stosując to samo podejście dowodowe ze względu na skończony alfabet. Ale nie jestem w stanie wyobrazić sobie, w jaki sposób można dostosować to podejście do nieskończenie licznego alfabetu.
anir

Nie możesz tego udowodnić, ponieważ jest to fałsz. Liczba nieskończonych sekwencji binarnych jest już niepoliczalna.
Yuval Filmus,

12

Możemy mieć niepoliczalne języki tylko wtedy, gdy pozwolimy na słowa o nieskończonej długości, patrz na przykład język regularny Omega . Te języki są nazywane languages. Innym przykładem będzie język podzbioru liczb rzeczywistych, który zawiera, powiedzmy, dziesiętne rozwinięcia wszystkich liczb rzeczywistych.ω

Istnieje kilka modeli, w których modyfikuje się maszyny Turinga, aby akceptowały języki . Niektóre z tych modeli używają warunku Buchi do akceptacji. Ponieważ nie można zobaczyć całości danych wejściowych w skończonym czasie, mówimy, że dane wejściowe są akceptowane, jeśli Maszyna Turinga wejdzie w stan akceptacji nieskończenie wiele razy. Jeśli możemy to udowodnić, analizując dane wejściowe (a nie uruchamiając je), mówimy, że dane wejściowe są akceptowane.ω


1
Dlaczego alfabet miałby być policzalny?
lewo wokół

2
Każdy badany model ma skończony alfabet. Jeśli alfabet również staje się nieskończony (policzalny lub niepoliczalny), trudno jest mieć rozsądny model.
Shreesh

@Shreesh Cóż, jeśli alfabet jest niepoliczalny, naiwne mapowanie FSM (z niepoliczalnymi przejściami między skończoną liczbą stanów) może być dość potężne?
Jak

1
To prawda, że ​​są to rozszerzenia, które mogą mieć klasy językowe, które mogą być nadklasą języków RE lub języków rekurencyjnych. Ale nie są dobrze badane, jeśli w ogóle są badane. Największym problemem jest, moim zdaniem, sposób przedstawienia skończonej reprezentacji maszyny. Następnie musisz zapisać symbol w komórce taśmy. Nawet skromna komórka może potrzebować nieskończonej pamięci do przechowywania opisu zapisywanego symbolu taśmy.
Shreesh

To świetne wytłumaczenie. Dodałbym, że nawet jeśli stosowane jest zwykłe kryterium akceptacji / odrzucenia, można powiedzieć, że nadal istnieją pewne języki, na które maszyna Turinga mogłaby zdecydować i które technicznie miałyby niezliczoną liczbę ciągów, ale tylko dlatego, że znaczna większość znaków to „ bezużyteczne ”dla języka.
Owen

5

Klasyczna obliczalność omawia funkcje nad skończonymi łańcuchami ze skończonego alfabetu. W rezultacie policzalne są wszystkie języki rozstrzygalne lub nierozstrzygalne.

Aby uwzględnić niezliczone języki, musimy spojrzeć na łańcuchy nieskończone zamiast łańcuchów skończonych. (AFAIK, posiadanie nieskończonego alfabetu nie jest zbyt interesujące i nie odpowiada samemu realistycznemu modelowi obliczeń.)

Istnieją modele obliczeń, w których możemy radzić sobie z nieskończonymi ciągami, które pozwalają nam reprezentować obiekty z niezliczonych domen, takie jak liczby rzeczywiste. Są one często przedstawiane jako obliczenia wyższego typu. Jednym z modeli wykorzystujących maszyny Turinga jest model TTE. W tym modelu dane wejściowe mogą być nieskończonymi ciągami, a maszyny mogą uzyskać dostęp do dowolnego elementu w ciągu, który chce. Maszyna nie musi się kończyć, ale istnieją warunki, aby upewnić się, że dane wyjściowe maszyny są zbieżne.

ΣωΣΣ={0,1}ΣN=2N22N

MLΣNxΣωMxNxL

Krótko mówiąc, obliczenie maszyn Turinga, które zawsze się zatrzymują, jest określone przez obliczenie maszyny Turinga na skończonych łańcuchach.


Podam przykład rozstrzygających i nierozstrzygalnych języków nieskończonych ciągów:

  1. kNkk36

  2. 010

  3. LiL=iLiLLL

  4. Język jest rozstrzygalny, zarówno język, jak i jego uzupełnienie są częściowo rozstrzygalne.

  5. Język zawierający nieskończone ciągi zerowe nie jest rozstrzygalny. Może to wyglądać dziwnie, ale spójrz na to w ten sposób: kiedy czytasz ciąg znaków, kiedy można go zatrzymać i powiedzieć, że dane wejściowe składają się ze wszystkich zer? Jeśli przestaniesz po przeczytaniukk


xlgxxlgx do nas.


f{0,1}f1(1)". Na stronie znajduje się również wiele innych odniesień do Obliczalności i złożoności w Analysis Network .


1
W rezultacie wszystkie języki są skończone ” - masz na myśli policzalność?
Anton Trunov

Myślę, że tak, panie Trunov.
Jyotirmoy Pramanik

To fajny post, ale nie rozumiem, co ma wspólnego z konkretnym pytaniem tutaj zadanym. Może chciałeś stworzyć parę pytanie-odpowiedź?
Raphael
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.