2016-11-12 7 views
0

поэтому я столкнулся с проблемой, о которой я не знал. Для любопытства я хотел спросить:Могут ли машины Тьюринга останавливать и неявно принимать строки, которые машина Тьюринга не может обрабатывать?

Я уверен, что машины Тьюринга могут неявно отклонять строки, которые не могут обрабатывать, но могут ли они дополнять это? Другими словами, неявно может ли принять вход, который он не может обработать? Прошу прощения, если это глупый вопрос, я не могу найти ответа на этот вопрос.

ответ

0

Это не глупый вопрос! Я верю, что подразумевается под «строками, которые он не может обработать» на самом деле, «строки, которые не соответствуют допустимому формату», которые я подразумеваю «строки, содержащие символы, которые мы не знаем». (Я ухожу от слайда 14 из this presentation, который я нашел только по поисковому расписанию Turing 'implicitly reject').

Итак, если мы используем это определение, нам нужно просто создать машину Тьюринга, которая принимает ввод, если он содержит символ, не содержащийся в нашем действительном наборе.

Да, возможны и другие интерпретации «строк, которые он не может обработать», но я уверен, что это означает это. Очевидно, это не могло быть определение без ограничений, иначе мы могли бы определить «строки, которые он не может обработать», как, скажем, «строки, представляющие программы, которые останавливаются», и мы решили бы проблему остановки! (Или, если вы не знакомы с проблемой остановки, вы можете заменить любую проблему NP-полной).

Я думаю, что причина, по которой идея отклонения строк, которые машина Тьюринга не может обрабатывать, была введена в первую очередь, так что машина может быть четко определена на всех входах. Итак, скажем, если у вас есть машина Тьюринга, которая принимает двоичное число, если оно делится на 3, но вы вводите вход, который не является бианным числом (например, «яблочный соус»), мы все же можем рассуждать о выходе программы.

Смежные вопросы