Berapa banyak waktu untuk mengenali palindrom di ruang logaritmik?


20

Sudah diketahui bahwa palindrom dapat dikenali dalam waktu linier pada mesin Turing pita, tetapi tidak pada mesin Turing pita tunggal (dalam hal ini waktu yang dibutuhkan adalah kuadratik). Algoritma linear-waktu menggunakan salinan input, dan dengan demikian juga menggunakan ruang linier.2

Bisakah kita mengenali palindrom dalam waktu linier dari mesin Turing multitape, hanya menggunakan ruang logaritmik? Secara umum, pertukaran ruang-waktu seperti apa yang dikenal dengan palindrom?

Jawaban:


22

Dengan menggunakan urutan persimpangan atau kompleksitas komunikasi, mudah untuk memperoleh tradeoff untuk mesin Turing berurutan menggunakan waktu dan spasi .T(n)S(n)=Ω(n2)O ( S ( n ) )O(T(n))O(S(n))

Hasil ini pertama kali diperoleh oleh Alan Cobham menggunakan urutan persimpangan di kertas . Masalah pengenalan untuk himpunan kotak sempurna yang muncul di SWAT (kemudian FOCS) 1966.


25

Anda dapat menggunakan argumen yang sama yang digunakan untuk membuktikan waktu terikat pada rekaman tunggal.Ω(n2)

Misalkan Anda memiliki TM dengan ruang yang mengenali palindrom (di mana adalah kebalikan dari ) dalam waktu . Ketika kepala (input) melintasi tengah ia hanya dapat membawa bit informasi. Jadi perlu membuat persilangan , dan setiap persilangan membutuhkan waktu .{ xS(n)xRxT(n)0n/3S(n)Ω(n/S(n))n/3{x0n3xR|x|=n/3}xRxT(n)0n/3S(n)Ω(n/S(n))n/3

Jadi .T(n)S(n)=Ω(n2)


Ops ... setelah menulis jawabannya saya melihat bahwa Kristoffer sudah memposting solusinya. Menerima jawabannya, saya meninggalkan milik saya hanya karena memiliki beberapa detail lagi.
Marzio De Biasi

5
Saya kira itu secara simultan.
Kristoffer Arnsfelt Hansen

Seperti yang Anda sarankan, saya menerima jawaban Kristoffer karena dia sedikit lebih awal ... Terima kasih untuk kalian berdua!
Bruno

1
{x0n{x0n3xR|x|=|y|=n/3} terlihat aneh. Lebih baik anotasi bahwa adalah operator string terbalik. {x0n3xR|x|=n/3}R
miracle173

2

Selain jawaban lain, perlu dicatat bahwa jika pengacakan diizinkan, palindrom dapat dikenali dengan O (1) ruang dan waktu O (n) dengan hashing sisi kiri string, hashing transpos sisi kanan string. string, dan memeriksa apakah hash sama. Seharusnya tidak sulit untuk melakukan ini pada mesin Turing.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.