การปรากฏตัวของ 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 ออกแบบสำหรับเครื่องที่มีข้อจำกัดด้านหน่วยความจำ