คำถามติดแท็ก space-time-tradeoff

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

1
แก้ไขระยะทางในพื้นที่ sublinear
ความซับซ้อนที่รู้จักกันดีที่สุดสำหรับการคำนวณระยะทางแก้ไขที่แน่นอนระหว่างสองสายของความยาวเดียวกันโดยใช้พื้นที่การทำงานซึ่งเป็นเส้นย่อยในขนาดของอินพุตคืออะไร? ฉันคิดว่าอินพุตถูกเก็บในรูปแบบอ่านอย่างเดียว นี่เป็นปัญหาที่เคยศึกษามาหรือไม่? หากต้องการทำให้คำถามมีความเฉพาะเจาะจงมากขึ้นเพียงเล็กน้อยช่องว่างที่nคือความยาวของแต่ละสตริงอินพุตΘ ( n--√)Θ(n)\Theta(\sqrt{n})nnn แก้ไข การปฏิบัติตามคำตอบของ David Eppstein ดูเหมือนว่าคำถามที่ดีคือหากระยะทางแก้ไขสามารถพบได้ในเวลาพหุนามและพื้นที่ ขอบเขตที่ต่ำกว่าก็น่าสนใจเช่นกันΘ ( n--√)Θ(n)\Theta(\sqrt{n})

3
อัลกอริทึม logspace ที่มีประสิทธิภาพ
มันง่ายที่จะเห็นว่าปัญหาใด ๆ ที่ decidable ใน logspace กำหนด ( ) ทำงานในเวลาพหุนามมากที่สุด ( ) อัลกอริทึม logspace ที่รู้จักกันหลายตัว (ตัวอย่างเช่น: การเชื่อมต่อแบบไม่เชื่อมต่อโดยตรง, มอร์ฟอร์มอร์กราฟ isomorphism) ทำงานในโดยที่มีขนาดใหญ่อย่างเมามันLLLPPPO(nk)O(nk)O(n^k)kkk ฉันกำลังมองหาตัวอย่างของปัญหาที่เกิดขึ้นตามธรรมชาติที่เป็นที่รู้จักเป็นแก้ปัญหาได้พร้อมกันใน logspace กำหนดและเวลาที่10 ไม่มีอะไรพิเศษเกี่ยวกับ 10. การดูอัลกอริทึม logspace ที่รู้จักกันในปัจจุบันฉันคิดว่าน่าสนใจพอO(nk)O(nk)O(n^k)k≤10k≤10k \leq 10k≤10k≤10k \leq 10 Aleliunas และคณะ แสดงให้เห็นว่าการเชื่อมต่อ st-undirected อยู่ใน (logspace สุ่ม) เวลาทำงานของอัลกอริทึมของพวกเขาคือ3) มีปัญหาตามธรรมชาติที่สามารถแก้ไขได้พร้อมกันในและเวลาเชิงเส้น (หรือ) ใกล้เวลาเชิงเส้นนั่นคือเวลา?RLRLRLO(n3)O(n3)O(n^3)RLRLRLO(nlogin)O(nlogin)O(n{\log}^i{n}) แก้ไข: เพื่อให้สิ่งที่น่าสนใจมากขึ้นลองดูที่ปัญหาอย่างน้อยยากNC1NC1NC^1

1
ต้องการภาพรวมที่ดีสำหรับอัลกอริทึมโครงสร้างข้อมูลที่ซับซ้อน
( ถามไซต์หลักแล้ว แต่ขอให้คุ้มครองเพิ่มเติมที่นี่ด้วย) เนื่องจากฉันรู้เกี่ยวกับโครงสร้างข้อมูลสั้น ๆฉันต้องการภาพรวมที่ดีของการพัฒนาล่าสุดในพื้นที่นั้น ฉัน googled และอ่านบทความจำนวนมากที่ฉันสามารถเห็นได้จากผลลัพธ์ของ google ตามคำขอจากหัวของฉัน ฉันยังคงสงสัยว่าฉันพลาดสิ่งสำคัญที่นี่ นี่คือหัวข้อที่น่าสนใจเป็นพิเศษสำหรับฉัน: การเข้ารหัสแบบสั้น ๆ ของต้นไม้ไบนารีด้วยการดำเนินการที่มีประสิทธิภาพในการรับพาเรนต์ลูกซ้าย / ขวาจำนวนองค์ประกอบในทรีย่อย คำถามหลักที่นี่มีดังต่อไปนี้: วิธีการทั้งหมดที่ฉันรู้ว่าถือว่าโหนดของต้นไม้นับตามลำดับลมหายใจแรก (เช่นในงานบุกเบิกในพื้นที่นี้ Jacobson, G. J (1988) โครงสร้างข้อมูลแบบคงที่แบบรวบรัด) ซึ่งไม่ได้ ดูเหมือนจะเหมาะสมสำหรับงานของฉัน ฉันจัดการกับต้นไม้ไบนารีขนาดใหญ่ที่ได้รับในเค้าโครงความลึกแรกและดัชนีโหนดความลึกแรกเป็นกุญแจสู่คุณสมบัติของโหนดอื่นดังนั้นการเปลี่ยนเค้าโครงต้นไม้มีค่าใช้จ่ายสำหรับฉันซึ่งฉันต้องการจะลดให้น้อยที่สุด ดังนั้นความสนใจในการอ้างอิงถึงงานพิจารณาอื่น ๆ แล้วเค้าโครงต้นไม้ BF อาร์เรย์รายการที่มีความยาวผันแปรขนาดใหญ่ในหน่วยความจำภายนอก อาร์เรย์ไม่เปลี่ยนรูป: ฉันไม่จำเป็นต้องเพิ่ม / ลบ / แก้ไขรายการ ความต้องการเพียงอย่างเดียวคือเวลาเข้าถึงองค์ประกอบ O (1) และค่าใช้จ่ายต่ำที่สุดเท่าที่จะเป็นไปได้วิธีออฟเซ็ตและขนาดที่ตรงไปตรงมาดีกว่า นี่คือสถิติบางอย่างที่ฉันรวบรวมเกี่ยวกับข้อมูลทั่วไปสำหรับงานของฉัน: จำนวนของไอเท็มทั่วไป - หลายร้อยล้านขึ้นไปเป็นหมื่น milliards ประมาณ 30% …

1
ประวัติศาสตร์ในช่วงต้นของผลลัพธ์บางอย่างเกี่ยวกับการแลกเปลี่ยนเวลาว่าง?
ฉันสนใจประวัติต้นของผลลัพธ์ที่เผยแพร่ในการแลกเปลี่ยนเวลาตามวัตถุประสงค์ทั่วไป โดยเฉพาะอย่างยิ่งฉันต้องการทราบว่าใครเป็นคนแรกอธิบายอัลกอริทึมชนิดต่อไปนี้สำหรับการประเมินการคำนวณที่มีกราฟดาต้าโฟลว์โดยพลการในระดับ O (1) โดยใช้พื้นที่ตามสัดส่วนความลึก (ไม่ใช่ความกว้าง) ของกราฟดาต้าโลว์ ของอินพุท) โดยการประเมินกราฟในระดับความลึกที่ตรงไปตรงมาก่อน รายละเอียดเพิ่มเติม: ปล่อยให้กราฟข้อมูลเป็น G = (V, E) โดยที่ V คือชุดของจุดยอดการคำนวณ (O (1) - ขนาดข้อมูลค่า) และ E คือชุดของขอบ (v_p, v_s) เช่นค่าของตัวตายตัวแทน จุดยอด v_s \ in V ขึ้นอยู่กับมูลค่าของผู้จุดสุดยอด v_p \ in V ทันทีให้ v_f เป็นจุดยอดโดยไม่มีผู้สืบทอดที่แสดงผลลัพธ์สุดท้ายของการคำนวณ ให้ฉันเป็นชุดของจุดยอดอินพุทที่ยอมรับอย่างเป็นระเบียบ (โดยไม่มีรุ่นก่อน) สำหรับ i \ in I ค่าของมันคือ x …

2
การแลกเปลี่ยนเวลาและขั้นตอนวิธีที่ดีที่สุด
ลองพิจารณาภาษาเช่นว่า:LLL L ∈ D TผมME( O ( f( n ) ) ) ∩ D SPCE( O ( g( n ) ) )L∈DTผมME(O(ฉ(n)))∩DSPAคE(O(ก.(n)))L \in DTIME(O(f(n))) \cap DSPACE(O(g(n))) และอื่น ๆ L ∉ D TผมME( o ( f( n ) ) ) ∪ D SPCE( o ( g( n ) ) )L∉DTผมME(โอ(ฉ(n)))∪DSPAคE(โอ(ก.(n)))L \not\in …

1
การแลกเปลี่ยนเวลาในอวกาศลดขอบเขตลง
หลังจากการสนทนาเกี่ยวกับขอบเขตที่ต่ำกว่าสำหรับ 3SAT [ 1 ] ฉันสงสัยว่าผลลัพธ์หลักของขอบเขตล่างที่กำหนดไว้เป็นข้อตกลงด้านเวลา ฉันไม่รวมผลลัพธ์เช่นทฤษฎีบทของ Savitch; การเข้าที่ดีจะมุ่งเน้นไปที่ปัญหาเดียวและขอบเขตของมัน ตัวอย่างจะเป็น: "ให้ T และ S เป็นเวลาทำงานและพื้นที่ จำกัด ของอัลกอริทึม SAT ใด ๆ จากนั้นเราต้องมีT⋅S≥n2cos (π / 7) −o (1) บ่อยครั้งไม่สิ้นสุด" (ให้ไว้ใน [ 1 ] โดย Ryan Williams) หรือ "SAT ไม่สามารถแก้ไขได้พร้อมกันในเวลา n 1 + 0 (1)และพื้นที่ n -1-1สำหรับทุก ๆ ε> 0 บนเครื่องทัวริงทั่วไป (Lance Fortnow …

2
ความซับซ้อนของพื้นที่เพื่อคำนวณการจัดเรียงสตริงที่เหมาะสมสำหรับระยะทางแก้ไขของ Levenshtein
ถ้าเราจะได้รับสองสายที่มีขนาดและn 2มาตรฐาน Levenshtein คำนวณระยะทางแก้ไขโดยอัลกอริทึมแบบไดนามิกที่มีความซับซ้อนเวลาO ( n 1 n 2 )และความซับซ้อนของพื้นที่O ( n 1 n 2 ) (การปรับปรุงบางอย่างสามารถทำได้ในรูปแบบของระยะทางแก้ไขdแต่เราไม่ได้สมมุติบนdn1n1n_1n2n2n_2O(n1n2)O(n1n2)O(n_1 n_2)O(n1n2)O(n1n2)O(n_1 n_2)ddddddO(max(n1,n2))O(max(n1,n2))O(\max(n_1, n_2)) อย่างไรก็ตามหากคุณต้องการได้รับการแก้ไขจริงของสคริปต์การแก้ไขที่ดีที่สุดเป็นไปได้ไหมที่จะทำได้ดีกว่าการใช้หน่วยความจำอาจต้องใช้เวลานานหรือไม่O(n1n2)O(n1n2)O(n_1 n_2)

2
การคำนวณออราเคิลเสร็จสมบูรณ์ / เส้นทางการดำรงอยู่ของออราเคิล
มีคำถามสองสามข้อ ( 1 , 2 , 3 ) เกี่ยวกับความสมบูรณ์ของสกรรมกริยาที่นี่ทำให้ฉันคิดว่าถ้าเป็นไปได้: สมมติว่าเราได้รับกราฟกำกับการป้อนข้อมูล GGG และต้องการตอบคำถามประเภท "( u , v ) ∈G+(u,v)∈G+(u,v)\in G^+? "คือถามว่ามีขอบระหว่างจุดยอดสองจุดในการทำให้สกรรมกริยาของกราฟเสร็จสมบูรณ์หรือไม่ GGG? (อย่างเท่าเทียมกัน "จะมีเส้นทางจากยูuu ถึง โวลต์vv ใน GGG? ") สมมติว่าหลังจากที่ได้รับ GGG คุณได้รับอนุญาตให้เรียกใช้การประมวลผลล่วงหน้าตามเวลาที่กำหนด f(n,m)f(n,m)f(n,m) และต้องตอบคำถามในเวลา g(n,m)g(n,m)g(n,m). เห็นได้ชัดว่าถ้า f=0f=0f=0 (เช่นไม่อนุญาตให้ทำการประมวลผลล่วงหน้า) สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือตอบแบบสอบถามในเวลา g(n)=Ω(n+m)g(n)=Ω(n+m)g(n)=\Omega(n+m). (เรียกใช้ DFS จากuuu ถึง vvv และคืนค่าจริงถ้ามีเส้นทาง) ผลการค้นหาที่น่ารำคาญก็คือถ้า f=Ω(min{n⋅m,nω})f=Ω(min{n⋅m,nω})f=\Omega(min\{n\cdot m,n^\omega\})คุณสามารถคำนวณการปิดสกรรมกริยาแล้วตอบแบบสอบถามใน O(1)O(1)O(1). มีอะไรอยู่ตรงกลาง? …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.