เวลาเท่าไหร่ที่จะจำ palindromes ในพื้นที่ลอการิทึม?


20

เป็นที่รู้จักกันดีว่า palindromes สามารถจดจำได้ในเวลาเชิงเส้นบนเครื่องทัวริง -tape แต่ไม่ใช่ในเครื่องทัวริงเทปเดี่ยว (ในกรณีที่เวลาที่ต้องการกำลังสอง) อัลกอริธึมเชิงเส้นเวลาใช้สำเนาของอินพุตดังนั้นจึงใช้พื้นที่เชิงเส้น2

เราสามารถรู้จัก palindromes ในเวลาเชิงเส้นของเครื่องทัวริงมัลติทาสก์โดยใช้พื้นที่ลอการิทึมเท่านั้นหรือไม่? โดยทั่วไปแล้วการแลกเปลี่ยนเวลาว่างประเภทใดที่รู้จักกันดีในเรื่อง palindromes

คำตอบ:


22

การใช้ข้ามลำดับหรือความซับซ้อนในการสื่อสารมันเป็นเรื่องง่ายที่จะได้รับการแลกเปลี่ยนสำหรับเครื่องทัวริงตามลำดับโดยใช้เวลาO ( T ( n ) )และพื้นที่O ( S ( n ) ) .T(n)S(n)=Ω(n2)O(T(n))O(S(n))

ผลลัพธ์นี้ได้มาเป็นครั้งแรกโดย Alan Cobham โดยใช้ลำดับการข้ามในกระดาษปัญหาการรู้จำสำหรับชุดของกำลังสองที่สมบูรณ์แบบซึ่งปรากฎที่ SWAT (ต่อมา FOCS) 1966


25

คุณสามารถใช้อาร์กิวเมนต์เดียวกับที่ใช้เพื่อพิสูจน์เวลาผูกไว้บนเทปเดี่ยวΩ(n2)

S(n){x0n3xR|x|=n/3}xRxT(n)0n/3S(n)Ω(n/S(n))n/3

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


Ops ... หลังจากเขียนคำตอบฉันเห็นว่า Kristoffer โพสต์คำตอบแล้ว ยอมรับคำตอบของเขาฉันปล่อยให้ฉันเท่านั้นเพราะมันมีรายละเอียดเพิ่มเติมเล็กน้อย
Marzio De Biasi

5
ฉันคิดว่ามันเป็นเรื่องจริงในเวลาเดียวกัน
Kristoffer Arnsfelt Hansen

ตามที่คุณแนะนำฉันยอมรับคำตอบของคริสโตเฟอร์เนื่องจากเขาก่อนหน้านี้เล็กน้อย ... ขอบคุณคุณทั้งคู่!
Bruno

1
{x0n3xR|x|=|y|=n/3}{x0n3xR|x|=n/3}R

2

นอกเหนือจากคำตอบอื่น ๆ แล้วมันน่าสังเกตว่าถ้าอนุญาตให้มีการสุ่มได้ Palindromes สามารถรับรู้ด้วยพื้นที่ O (1) และเวลา O (n) ได้โดยการเคาะที่ด้านซ้ายของสตริงแล้วทำการสลับด้านขวาของ และตรวจสอบว่าแฮชเท่ากันหรือไม่ ไม่ควรที่จะทำสิ่งนี้บนเครื่องทัวริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.