Есть ли простой способ приблизиться к этому? Могу ли я определить, является ли он решающим, посмотрев на схему машины Тьюринга?
Как узнать, является ли машина Тьюринга решающим фактором?
Ответы (3)
Решающее устройство — это машина, которая останавливается на всех входных данных. Не существует общего способа доказать, останавливается ли данная машина на всех входных данных.
Если у вас есть конкретная машина, вы можете попробовать формально доказать, что все пути выполнения останавливаются. Например, если считывающая головка вашей машины всегда движется вправо при каждом переходе (никогда не влево) и останавливается, когда больше нет ввода, то для всех конечных вводов машина будет останавливаться. Более простым примером может быть машина, которая имеет только одно состояние: остановка.
TM определяет язык L тогда и только тогда, когда 1- строки L переводят M в состояние Accept 2- строки NOT IN L переводят M в состояние Reject
TM M распознает язык L тогда и только тогда, когда 1- строки L переводят M в состояние Accept 2- строки NOT IN L - ЛИБО переводят M в состояние Reject - ИЛИ заставляют M зацикливаться
@Wanhui Qiao, вы говорите: «ТМ меняется между двумя состояниями, и оба состояния не являются ни принимающими, ни отвергающими состояниями, это разрешимо по Тьюрингу?» тогда он определенно идет бесконечно, то есть входит в петлю, которую распознает Тьюринг.
Вы можете доказать в общем, что
DECIDER_tm = { <M> : TM M is a decider } is undecidable.
Докажите от противного. Предположим, что это разрешимо, и пусть R
будет решающим фактором для DECIDER_tm
.
Создайте решающую роль S
для HALT_tm
, используя R
в качестве подпрограммы.
S = on input <M,w>
1. construct M_w = " on input x"
run M on w
if M accepts accept. if M rejects reject.
2. Run R on M_w
3. If R accept => accept, if R rejects => reject.
Обратите внимание, что если M
принимает или отклоняет w
, M_w
останавливается на всех входных данных, R
принимает, поскольку M_w
является решающим. Если M
зацикливается на w
, M_w
зацикливается на всех входных данных, R
отклоняет M_w
.
Мы построили решающий фактор для HALT_tm
, так как мы знаем, что HALT_tm
неразрешимо, наше предположение было неверным => DECIDER_tm
неразрешимо.