Ty piszesz:
Problem zatrzymania mówi, że nie ma algorytmu, który określi, czy dany program się zatrzyma. W rezultacie powinny istnieć programy, o których nie możemy powiedzieć, czy się kończą, czy nie.
Jest to niesekurujące, w obu kierunkach. Ulegasz powszechnemu błędowi , któremu warto się zająć.
Biorąc pod uwagę każdy ustalony program , jego problem zatrzymania („Czy zawsze się zatrzymuje?”) Jest zawsze rozstrzygalny, ponieważ odpowiedź brzmi „tak” lub „nie”. Nawet jeśli nie możesz powiedzieć, który to jest, wiesz, że jeden z dwóch trywialnych algorytmów, które zawsze odpowiadają „tak” lub. „nie” rozwiązuje problem uwięzieniaP PPPP
Tylko jeśli potrzebujesz, aby algorytm rozwiązał problem zatrzymania dla wszystkich programów1, możesz pokazać, że taki algorytm nie istnieje.
Wiedząc, że problem zatrzymania jest nierozstrzygalny, nie oznacza, że istnieją programy, których nikt nie może udowodnić zakończenia lub zapętlenia. Nawet jeśli nie jesteś potężniejszy od maszyny Turinga (co jest tylko hipotezą, nie udowodnionym faktem), wiemy tylko, że żaden pojedynczy algorytm / osoba nie może dostarczyć takiego dowodu dla wszystkich programów. Dla każdego programu może być inna osoba.
Niektóre bardziej podobne czytanie:
Widzisz więc, że twoje aktualne pytanie (jak powtórzono poniżej) nie ma nic wspólnego z tym, czy problem zatrzymania jest obliczalny. W ogóle.
Jakie są najprostsze (najmniejsze) znane przykłady [programów, o których nie wiemy, że się zatrzymują lub zapętlają]?
To samo w sobie jest ważnym pytaniem; inni dali dobre odpowiedzi. Zasadniczo możesz przekształcić każde zdanie o nieznanej wartości prawdy w przykład, pod warunkiem że ma ono wartość prawdy:S
g(n)={1,g(n+1),S true,else.
To prawda, że nie są one zbyt „naturalne”.
- Niekoniecznie wszystkie , ale w pewnym sensie „wielu”. Przynajmniej nieskończenie wiele.