Создайте TM, который будет принимать язык L = {0i0j0k/ i <j <k}

Как построить машину Тьюринга, которая будет принимать язык L = {0i0j0k/ i

1 ответ

Я понимаю, что это означает язык 0^i 0^j 0^k | i < j < k, По крайней мере, я не вижу других очевидных интерпретаций этого.

Самая короткая строка на этом языке получается i = 0, j = 1 а также k = 2"; это дает строку 000 на языке.

Также обратите внимание, что все строки с более чем тремя нулями также находятся в языке, так как мы можем взять i = 0, j = 1 а также k = n - 1 (за n >= 3).

Таким образом, наш язык равен 0^n | n >= 3, Этот язык является регулярным. Минимальный DFA для этого языка следующий:

Q    s    Q'
q0   0    q1
q1   0    q2
q2   0    q3
q3   0    q3

Вот, q3 является единственным принимающим государством и q0 это начальное состояние. Это предполагает, что входной алфавит состоит только из 0; если он состоит из чего-то большего, вам понадобится мертвое состояние и дополнительные произведения.

Перевод с DFA на TM оставлен в качестве упражнения.

Другие вопросы по тегам