RAPTOR ระบบนำทางขนส่งมวลชนที่พัฒนาด้วยภาษา Rust สร้างความสนใจด้วยประสิทธิภาพการจัดการหน่วยความจำ

BigGo Editorial Team
RAPTOR ระบบนำทางขนส่งมวลชนที่พัฒนาด้วยภาษา Rust สร้างความสนใจด้วยประสิทธิภาพการจัดการหน่วยความจำ

การปรากฏตัวของ Farebox ระบบนำทางขนส่งมวลชนตัวใหม่ที่พัฒนาด้วยภาษา Rust ได้สร้างความสนใจอย่างมากในแวดวงเทคโนโลยีการขนส่ง โดยเฉพาะแนวทางนวัตกรรมในการจัดการหน่วยความจำอย่างมีประสิทธิภาพ

ความก้าวหน้าด้านประสิทธิภาพหน่วยความจำ

การพัฒนา Farebox ที่ใช้อัลกอริทึม RAPTOR (Round-Based Public Transit Optimized Router) ประสบความสำเร็จอย่างยอดเยี่ยมในด้านการจัดการหน่วยความจำ โดยรายงานระบุว่าตารางเวลาเดินรถในภูมิภาค Puget Sound ใช้พื้นที่เพียง 40 MiB บนดิสก์ ในขณะที่กระบวนการเซิร์ฟเวอร์ใช้ RAM เพียงประมาณ 100k เท่านั้น ประสิทธิภาพที่โดดเด่นนี้เกิดจากเทคนิค zero-copy และการทำ memory mapping ทำให้สามารถใช้งานบนอุปกรณ์มือถือได้ ซึ่งแตกต่างจากโซลูชันที่ใช้ทรัพยากรมากอย่าง OpenTripPlanner

ผมเคยคิดเกี่ยวกับการวางแผนการเดินทางแบบออฟไลน์บนโทรศัพท์ แต่การใช้งาน OTP เป็นไปไม่ได้เนื่องจากกราฟข้อมูลอาจมีขนาดหลายกิกะไบต์และใช้เวลาโหลดหลายนาที

ข้อมูลจำเพาะทางเทคนิคที่สำคัญ:

  • การใช้หน่วยความจำ: ประมาณ 40 MiB บนดิสก์ (ตารางเวลาของ Puget Sound)
  • การใช้ RAM ของกระบวนการเซิร์ฟเวอร์: ประมาณ 100k
  • ภาษาที่ใช้ในการพัฒนา: Rust
  • อัลกอริทึมหลัก: RAPTOR
  • การจัดเส้นทางการเชื่อมต่อ: ผสานการทำงานร่วมกับ Valhalla

ทางเลือกใหม่แทนระบบดั้งเดิม

โครงการนี้วางตำแหน่งตัวเองเป็นตัวเสริมให้กับ OpenTripPlanner โดยเน้นพื้นที่ที่ยังไม่มีการให้บริการ การผสานการทำงานกับ Valhalla สำหรับการเชื่อมต่อและการนำทางช่วงแรก/สุดท้าย รวมถึงความสามารถในการรองรับหลายหน่วยงานและโซนเวลา ทำให้เป็นโซลูชันที่น่าสนใจสำหรับการวางแผนการเดินทาง แม้จะมีข้อจำกัดบางประการ เช่น การไม่แสดงรูปร่างเส้นทางในแผนการเดินทาง และการกำหนดการเชื่อมต่อล่วงหน้าที่จำกัดการปรับแต่งการเดิน/ปั่นจักรยานตามคำขอ

ข้อจำกัดในปัจจุบัน:

  • ไม่มีรูปร่างเส้นทางในตารางการเดินทาง
  • มีเฉพาะการเชื่อมต่อที่คำนวณไว้ล่วงหน้า
  • การปรับแต่งการเดิน/การปั่นจักรยานต่อการร้องขอมีจำกัด
  • มีข้อผิดพลาดในการกำหนดเส้นทางสำหรับการเดินทางระยะไกล

การตอบรับจากชุมชนและศักยภาพในอนาคต

ชุมชนเทคโนโลยีการขนส่งแสดงความสนใจเป็นพิเศษในศักยภาพของ Farebox สำหรับแอปพลิเคชันมือถือแบบออฟไลน์และการจัดการหน่วยความจำที่มีประสิทธิภาพ นักพัฒนาและผู้เชี่ยวชาญด้านการขนส่งสนใจเป็นพิเศษกับความเป็นไปได้ในการครอบคลุมระดับโลกจากเซิร์ฟเวอร์เพียงเครื่องเดียว ซึ่งอาจช่วยลดค่าใช้จ่ายในการโฮสต์ได้อย่างมาก แม้จะพบข้อผิดพลาดในการนำทางบางประการ เช่น การแสดงเส้นทางรถโดยสารระยะไกลแทนที่จะเป็นรถไฟความเร็วสูง แต่โครงการยังคงมีการพัฒนาและการมีส่วนร่วมจากชุมชนอย่างต่อเนื่อง

โครงการนี้ยังบ่งชี้ถึงการพัฒนา rRAPTOR routing ในอนาคต ซึ่งจะช่วยให้สามารถคำนวณเส้นทางพร้อมกันหลายเวลาออกเดินทาง ซึ่งเป็นฟีเจอร์ที่ไม่มีในการค้นหาแบบ A* ทั่วไปผ่านกราฟการนำทางที่ขึ้นอยู่กับเวลา

หมายเหตุทางเทคนิค: RAPTOR (Round-Based Public Transit Optimized Router) คือ อัลกอริทึมที่ออกแบบมาเฉพาะสำหรับการนำทางขนส่งมวลชน โดยประมวลผลเส้นทางเป็นรอบๆ ซึ่งมักให้ประสิทธิภาพที่ดีกว่าวิธีการค้นหาแบบ A แบบดั้งเดิมสำหรับเครือข่ายการขนส่ง*

อ้างอิง: Farebox - การพัฒนา RAPTOR ที่รวดเร็วด้วยภาษา Rust ออกแบบสำหรับเครื่องที่มีข้อจำกัดด้านหน่วยความจำ