Czy istnieje potrzeba, aby była nieskończona, aby była nierozstrzygalna?
Chodzi mi o to, że jeśli wybierzemy język jako ograniczoną skończoną wersję , to znaczy ( ), a . Czy jest możliwe, być język nierozstrzygalny?
Widzę, że istnieje problem „Jak wybrać słów, dla których dla którego musimy ustalić regułę wyboru, które będą pierwszymi elementami , rodzajem „skończonej” operacji gwiazdy Kleene . Celem jest znalezienie języka nierozstrzygalnego bez potrzeby posiadania nieskończonego zestawu, ale nie widzę go.
Edytuj notatkę:
Chociaż wybrałem odpowiedź, wiele odpowiedzi i wszystkie komentarze są ważne.
formal-languages
computability
undecidability
Hernan_eche
źródło
źródło
Odpowiedzi:
Tak, musi być nieskończony, aby być niezdecydowanym.L
Podsumowując odpowiedzi Raphaela i Sama, powinieneś pomyśleć o „rozstrzygalnej” jako rzeczy, którą program komputerowy może rozwiązać. Wymagany program jest bardzo prosty, wystarczy wypisać „Tak” dla elementów w , lub inaczej powiedzieć „nie”.L
Im bardziej „złożony” jest , tym dłuższy program musisz napisać. Innymi słowy, im dłużej uruchamiasz program, możesz sprawdzić więcej rzeczy ... Jeśli więc ktoś poda język który jest skończony, powiedz , możesz napisać następujący program:L L = { a 1 , a 2 , … , a n }L L L={a1,a2,…,an}
Teraz, jeśli ktoś da ci większy (jeszcze skończony), po prostu napiszesz dłuższy program. Jest to zawsze prawdą, a każdy skończony będzie miał swój własny program. Jedynym „interesującym” przypadkiem jest to, co dzieje się, gdy jest nieskończony - twój program nie może być nieskończony.L LL L L
Kwestia „nierozstrzygalności” jest jeszcze bardziej interesująca: te (nieskończone) , które nie mają programu, który działałby dla nich poprawnie. Wiemy, że takie języki muszą istnieć, ponieważ istnieje znacznie więcej (nieskończonych) języków niż liczba programów o skończonej (ale nieograniczonej) długości.LL L
źródło
undecidable
, musi być nieskończone. To, czego chcesz, to nie inny termin, a mianowicie „niepodlegający rozstrzygnięciu przez ”. Nazwij to drugie niezdecydowanym. Zatem dla jakiegokolwiek skończonego nie ma potrzeby, aby był nieskończony, aby być nierozstrzygalnym. Tylko nie myl (lub niewłaściwie używaj ) i nierozstrzygalneP P P L P Pundecidable
undecidable
Nie jestem pewien, czy dobrze rozumiem pytanie, ale każdy skończony język jest regularny. Nie ma zwykłych języków, których nie można rozstrzygnąć, dlatego też nie ma języków skończonych, których nie można rozstrzygnąć. Wszystkie te stwierdzenia są dobrze znane, a dowody można znaleźć w Hopcroft i Ullman .
źródło
Jeśli Twój język jest skończony, możesz wykonać wyszukiwanie tabeli na sztywno zakodowanej tabeli zawierającej wszystkie słowa w . Trudno to zapisać jako maszynę Turinga, ale w innych równoważnych modelach jest to całkiem jasne.L ′L′ L′
W rzeczywistości skończone automaty są wystarczające. Skonstruuj automat dla w następujący sposób:L′
Tak skonstruowany automat oczywiście akceptuje . Dlatego jest regularne, a tym samym obliczalne (przez ).L′ L′ REG⊊RE
Zauważ, że pewne rozumowanie dotyczy współistnienia , czyli ; po prostu zakodować elementy nie w .L′ ∣∣L′¯¯¯¯¯∣∣<∞ L′
źródło
Aby być w ogóle interesującym (w celu myślenia o obliczalności) problem decyzyjny musi mieć nieskończenie wiele odpowiedzi „tak” i nieskończenie wiele odpowiedzi „nie”. Takie problemy decyzyjne odpowiadają dokładnie tym, że języki zawierają nieskończenie wiele ciągów znaków nad alfabetem, a także wykluczają nieskończenie wiele ciągów znaków nad alfabetem.
Wszystko inne można w prosty sposób zakodować w skończonej ilości informacji (w najgorszym przypadku po prostu duża lista ciągów w języku lub nie w języku), a zatem można je obliczyć za pomocą prostych DFA / wyrażeń regularnych. Mam nadzieję, że powinno być oczywiste, że dla każdej skończonej listy ciągów możesz od razu zapisać wyrażenie regularne, które po prostu OR wszystkie ciągi.
Dowcip mojej wykładowcy Teorii Obliczeń polegał na tym, że problem „czy Bóg istnieje?” jest obliczalny - jest albo obliczany przez maszynę, która natychmiast akceptuje, lub maszynę, która natychmiast odrzuca; po prostu nie wiemy, który!
źródło