Универсальная машина Тьюринга U должна определить, останавливается ли M(x)
Итак, у нас есть универсальная машина Тьюринга U, которая должна определить, остановится ли машина Тьюринга M с входом x. Решение должно быть представлено в псевдокоде.
Может ли кто-нибудь помочь мне немного, кто я должен решить это?
1 ответ
Это звучит как проблема остановки:
Проблема остановки может быть сформулирована следующим образом: "Учитывая описание произвольной компьютерной программы, решите, будет ли программа завершена или будет работать вечно". Это эквивалентно проблеме принятия решения, учитывая программу и ввод, будет ли программа в конечном итоге остановлена при запуске с этим вводом или будет работать вечно.
Алан Тьюринг доказал в 1936 году, что общего алгоритма для решения проблемы остановки для всех возможных пар ввода программы не может быть. Ключевой частью доказательства было математическое определение компьютера и программы, которые стали называться машиной Тьюринга; проблема остановки неразрешима над машинами Тьюринга.
Так что нет, это невозможно.
Если вы хотите, вы можете запустить M
на x
какое-то время. Если это останавливается, мы знаем, что это останавливается. Если это не останавливается, мы действительно не знаем, останавливается ли это.