2
ปัญหา Super Mario Galaxy
สมมติว่ามาริโอกำลังเดินอยู่บนพื้นผิวของดาวเคราะห์ หากเขาเริ่มเดินจากที่ตั้งที่รู้จักไปในทิศทางที่กำหนดสำหรับระยะทางที่กำหนดไว้เราจะทราบได้อย่างรวดเร็วว่าจะหยุดที่ใด อีกอย่างเป็นทางการเช่นสมมติว่าเราจะได้รับนูน polytopeใน 3 พื้นที่ซึ่งเป็นจุดเริ่มต้นบนพื้นผิวของทิศทางเวกเตอร์ (ในระนาบของแง่มุมบางอย่างที่มี ) และระยะไกล\เราจะทราบได้อย่างไรว่า Mario ตัวไหนที่จะหยุดอยู่ข้างในได้เร็วแค่ไหน? (ในฐานะที่เป็นจุดทางเทคนิคสมมติว่าหากมาริโอเข้าสู่จุดสุดยอดของเขาจะระเบิดทันทีโชคดีที่สิ่งนี้แทบจะไม่เคยเกิดขึ้นเลย)PPPsssPPPvvvpppℓℓ\ellPPPPPP หรือถ้าคุณต้องการ: สมมติว่าเราจะได้รับ polytopeจุดแหล่งและทิศทางเวกเตอร์ล่วงหน้า หลังจาก preprocessing วิธีการอย่างรวดเร็วเราสามารถตอบคำถามสำหรับระยะทางที่กำหนด ?PPPsssvvvℓℓ\ell มันง่ายมากที่จะติดตามรอยเท้าของมาริโอโดยเฉพาะถ้ามีแง่มุมสามเหลี่ยม เมื่อใดก็ตามที่มาริโอเข้าสู่ด้านหนึ่งของขอบเราสามารถกำหนดในเวลาซึ่งอีกสองขอบเขาต้องผ่าน แม้ว่าเวลาทำงานของขั้นตอนวิธีนี้เป็นเส้นตรงเท่านั้นในจำนวนของขอบนํ้ามันมากมายเป็นหน้าที่ของขนาดการป้อนข้อมูลเพราะระยะทางที่อาจจะเป็นพลขนาดใหญ่กว่าเส้นผ่าศูนย์กลางของPเราทำได้ดีกว่านี้ไหมPPPO(1)O(1)O(1)ℓℓ\ellPPP (ในทางปฏิบัติความยาวเส้นทางไม่ได้มากมายจริง; มีขอบเขตบนโลกในแง่ของจำนวนบิตที่จำเป็นเพื่อแสดงการป้อนข้อมูล แต่ยืนยันในปัจจัยการผลิตจำนวนเต็มยกประเด็นตัวเลขบางอย่างค่อนข้างน่ารังเกียจ - วิธีทำเราคำนวณ. ตรงที่ เพื่อหยุด? - งั้นลองทำกับอินพุตจริงและเลขคณิตจริงที่แน่นอน) มีสิ่งใดที่ไม่เป็นที่รู้จักเกี่ยวกับความซับซ้อนของปัญหานี้หรือไม่? อัปเดต:จากความเห็นของ julkiewicz ดูเหมือนว่าเวลาทำงานจริงของ RAM จะ จำกัด ขอบเขตอย่างหมดจดในแง่ของ (ความซับซ้อนของ polytope) เป็นไปไม่ได้ พิจารณากรณีพิเศษของสองด้านหน่วยตารางกับมาริโอเริ่มต้นที่และเดินไปในทิศทาง(1,0)มาริโอจะหยุดที่ด้านหน้าหรือด้านหลังของตารางขึ้นอยู่กับความเท่าเทียมกันของจำนวนเต็มที่\ เราไม่สามารถคำนวณฟังก์ชันพื้นในเวลาอย่างต่อเนื่องในแรมจริงเว้นแต่ว่าเรากำลังมีความสุขPSPACE การเทียบและ P แต่เราสามารถคำนวณในnnn[0,1]2[0,1]2[0,1]^2(0,1/2)(0,1/2)(0,1/2)(1,0)(1,0)(1,0)⌊ℓ⌋⌊ℓ⌋\lfloor \ell \rfloor⌊ℓ⌋⌊ℓ⌋\lfloor \ell …