พื้นที่ความซับซ้อนแบบไม่กำหนดสภาวะ (NSPACE)
สรุปใจความสำคัญ
- NSPACE คือการวัดทรัพยากรหน่วยความจำที่ใช้โดยเครื่องทัวริงแบบไม่กำหนดสภาวะ
- ทฤษฎีบทของซาวิตช์ระบุว่า NSPACE[s(n)] จะถูกบรรจุอยู่ใน DSPACE[(s(n))^2]
- ทฤษฎีบทของอิมเมอร์แมน-เซเลปเชนยีพิสูจน์ว่า NSPACE(s(n)) มีสมบัติปิดภายใต้คอมพลีเมนต์สำหรับ s(n) ≥ log n
- NSPACE เป็นโมเดลทางทฤษฎีที่ไม่สามารถนำมาใช้จำลองการทำงานของคอมพิวเตอร์จริงได้โดยตรงเหมือน DSPACE
ในทฤษฎีความซับซ้อนในการคำนวณ NSPACE (Non-deterministic Space) คือทรัพยากรการคำนวณที่ใช้อธิบายปริมาณหน่วยความจำหรือพื้นที่ที่เครื่องทัวริงแบบไม่กำหนดสภาวะ (Non-deterministic Turing Machine) ต้องการในการประมวลผลปัญหาหนึ่งๆ โดย NSPACE เป็นคู่ขนานในรูปแบบไม่กำหนดสภาวะของ DSPACE ซึ่งใช้กับเครื่องทัวริงแบบกำหนดสภาวะ (Deterministic Turing Machine)
คลาสความซับซ้อนที่นิยามโดย NSPACE
ค่าการวัด NSPACE ถูกนำมาใช้เพื่อกำหนดคลาสความซับซ้อนของปัญหาที่สามารถหาคำตอบได้ด้วยเครื่องทัวริงแบบไม่กำหนดสภาวะ โดยคลาสความซับซ้อน NSPACE(f(n)) คือเซตของปัญหาการตัดสินใจ (Decision Problems) ที่สามารถแก้ไขได้โดยเครื่องทัวริงแบบไม่กำหนดสภาวะ M โดยใช้พื้นที่ในระดับ O(f(n)) เมื่อ n คือความยาวของข้อมูลนำเข้า
คลาสความซับซ้อนที่สำคัญหลายคลาสถูกนิยามผ่าน NSPACE ดังนี้:
- REG: DSPACE(O(1)) = NSPACE(O(1)) ซึ่งเป็นคลาสของภาษาปกติ (Regular Languages) โดยในกรณีของพื้นที่คงที่ การไม่กำหนดสภาวะไม่ได้ช่วยเพิ่มประสิทธิภาพในการคำนวณ
- NL: NSPACE(O(log n))
- CSL: NSPACE(O(n)) ซึ่งเป็นคลาสของภาษาสัมผัสบริบท (Context-Sensitive Languages)
- PSPACE: NPSPACE = ⋃k∈ℕ NSPACE(nk)
- EXPSPACE: NEXPSPACE = ⋃k∈ℕ NSPACE(2nk)


นอกจากนี้ ทฤษฎีบทของอิมเมอร์แมน-เซเลปเชนยี (Immerman–Szelepcsényi theorem) ระบุว่า NSPACE(s(n)) มีสมบัติปิดภายใต้คอมพลีเมนต์ (Closed under complement) สำหรับทุกฟังก์ชัน s(n) ≥ log n
ความสัมพันธ์กับคลาสความซับซ้อนอื่นๆ
ความสัมพันธ์กับ DSPACE
NSPACE มีความสัมพันธ์โดยตรงกับ DSPACE ซึ่งเป็นคลาสของพื้นที่หน่วยความจำบนเครื่องทัวริงแบบกำหนดสภาวะ ตามทฤษฎีบทของซาวิตช์ (Savitch's theorem) ความสัมพันธ์นี้สามารถเขียนได้ดังนี้:

โดยระบุว่า DSPACE[s(n)] ⊆ NSPACE[s(n)] ⊆ DSPACE[(s(n))2] ซึ่งหมายความว่าปัญหาใดๆ ที่แก้ได้ด้วยพื้นที่ s(n) แบบไม่กำหนดสภาวะ สามารถแก้ได้ด้วยพื้นที่ s(n) ยกกำลังสองแบบกำหนดสภาวะ
ความสัมพันธ์กับเวลา (Time Complexity)
NSPACE สามารถใช้เพื่อจำกัดความซับซ้อนทางเวลาแบบกำหนดสภาวะของปัญหาได้ โดยมีทฤษฎีระบุว่า หากภาษา L ถูกตัดสินในพื้นที่ S(n) (โดยที่ S(n) ≥ log n) ด้วยเครื่องทัวริงแบบไม่กำหนดสภาวะ จะมีค่าคงที่ C ที่ทำให้ L ถูกตัดสินได้ในเวลา O(CS(n)) ด้วยเครื่องทัวริงแบบกำหนดสภาวะ
ข้อจำกัดในการใช้งาน
การวัดความซับซ้อนของพื้นที่ในรูปแบบ DSPACE มีประโยชน์ในทางปฏิบัติมากกว่า เนื่องจากเป็นตัวแทนของปริมาณหน่วยความจำที่คอมพิวเตอร์ในโลกความเป็นจริงต้องการในการแก้ปัญหาด้วยอัลกอริทึมที่กำหนด ในขณะที่ NSPACE อธิบายถึงเครื่องทัวริงแบบไม่กำหนดสภาวะ ซึ่งเป็นโมเดลทางทฤษฎีที่ไม่สามารถสร้างขึ้นเป็นเครื่องคอมพิวเตอร์จริงได้ ด้วยเหตุนี้ NSPACE จึงมีข้อจำกัดในการนำไปประยุกต์ใช้กับงานในโลกจริง และถูกใช้เป็นเครื่องมือในการวิเคราะห์ทางทฤษฎีเป็นหลัก
คำถามที่พบบ่อย
NSPACE แตกต่างจาก DSPACE อย่างไร?
DSPACE วัดพื้นที่หน่วยความจำที่ใช้โดยเครื่องทัวริงแบบกำหนดสภาวะ (Deterministic) ซึ่งจำลองการทำงานของคอมพิวเตอร์จริง ส่วน NSPACE วัดพื้นที่ที่ใช้โดยเครื่องทัวริงแบบไม่กำหนดสภาวะ (Non-deterministic) ซึ่งเป็นโมเดลทางทฤษฎี
ทฤษฎีบทของซาวิตช์มีความสำคัญอย่างไรต่อ NSPACE?
ทฤษฎีบทของซาวิตช์แสดงให้เห็นว่าความสามารถในการคำนวณแบบไม่กำหนดสภาวะในด้านพื้นที่ ไม่ได้ให้พลังในการคำนวณที่มากกว่าแบบกำหนดสภาวะอย่างมหาศาล โดยสามารถแปลง NSPACE[s(n)] ให้เป็น DSPACE[(s(n))^2] ได้
คลาส NL คืออะไร?
NL คือคลาสความซับซ้อนที่นิยามโดย NSPACE(O(log n)) ซึ่งหมายถึงปัญหาที่สามารถแก้ไขได้ด้วยเครื่องทัวริงแบบไม่กำหนดสภาวะโดยใช้พื้นที่หน่วยความจำในระดับลอการิทึมของขนาดข้อมูลนำเข้า
