Я играл с очень интересным и все еще открытым вопросом « Азбука одноленточной машины Тьюринга » (Эмануэле Виола) и придумал следующий язык:
где - это число с в строке x.1
Например, если x = 01101111, то n = 8, m = 3, k = 2; так
Может ли L быть распознан машиной Тьюринга с одной лентой и алфавитом из 3 символов за шагов? O ( n log n )
Если мы используем 4 символа, ответ - да:
- проверьте, если заменяя с на и с на и в то же время сохраните с справа; 0 ϵ 1 2 м 1
- затем посчитайте число с по модулю в .m O ( n log n )
Например:
....01101111....... input x (|x| = 8 = 2^3)
000.021.1212.0001.. div 2, first sweep (000. can safely be used as a delimiter)
000.022.1222.00011. div 2, second sweep
000.022.2222.000111 div 2, third sweep --> m = 3 (= log(n) )
000..22.2222....111 cleanup (original 1s are preserved as 2)
000..22.2221102.... start modulo m=3 calculation
000..22.2210022.... mod 3 = 2
000..22.2000222.... mod 3 = 0
000..22.0012222.... mod 3 = 1
000..20112.2222.... mod 3 = 2
000..11122.2222.... ACCEPT
cc.complexity-theory
turing-machines
time-complexity
Марцио де Биаси
источник
источник
Ответы:
Разве вы не можете использовать ту же идею, что и у случая с 4 символами , со следующими модификациями:
источник