Ich habe mit der sehr interessanten und noch offenen Frage " Alphabet der Single-Tape-Turing-Maschine " (von Emanuele Viola) gespielt und mir folgende Sprache ausgedacht:
Dabei ist die Anzahl von 1 s in der Zeichenfolge x.
Wenn zum Beispiel x = 01101111 ist, dann ist n = 8, m = 3, k = 2; also
Kann L von einer Turingmaschine mit einem einzelnen Band und einem 3-Symbol-Alphabet in Schritten von O ( n log n ) erkannt werden?
Wenn wir 4 Symbole verwenden, lautet die Antwort ja:
- Überprüfen Sie, ob 0 s durch ϵ und 1 s durch 2 ersetzen und gleichzeitig m 1 s rechts speichern ;
- Zählen Sie dann die Anzahl von s Modulo m in O ( n log n ) .
Zum Beispiel:
....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
Marzio De Biasi
quelle
quelle
Antworten:
Können Sie nicht die gleiche Idee wie für den Fall von 4 Symbolen mit den folgenden Änderungen verwenden:
quelle