2.7 KiB
2.7 KiB
title | author | subtitle | toc | lang | colorlinks | papersize | numbersections | panflute-filters | panflute-path | titlepage | toc-own-page | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ED_LRR |
|
Elite Dangerous: Long-Range Router | true | en | true | a4 | true |
|
filters | true | false |
\pagebreak
Implementation
stars.csv
format
Columns
Name | Content |
---|---|
id | unique ID-Number (not equal to id or id64, just a sequential number) |
star_type | Type of Star |
system | Name of System |
body | Name of Star |
mult | Jump Range Multiplier (1.5 for White Dwarfs, 4.0 for Neutron Stars) |
distance | Distance from arrival in Ls |
x,y,z | Position in Galactic Coordinates with Sol at (0,0,0) |
stars.idx
format
bincode
serialized data:
- [u64]: List of byte offset for records (entry 0=first recod, entry 1= second record, etc)
Routing Algorithms
Breadth-First Search (BFS)
Standard Breadth-First Search, always finds the shortest route
A*-Search
Modified A*-Search with adjustable "greediness". Priority Queue weighted by \text{number of jumps from start system} + (\text{estimated number of jumps to target system} * \text{greediness})
A greediness of 0 is equivalent to BFS and a greediness of \infty
is equivalent to Greedy-Search
Greedy-Search
Priority Queue weighted by minimum distance to target, prefers systems with high multiplier (Neutron Stars and White Dwarfs)
Optimizations
Ellipse elimination
Only consider systems within an ellipsoid with source and destination as the foci, the width of the ellipsoid is adjustable
Routing Graphs
File format
bincode
serialized data:
- bool primary: flag to indicate that graph only includes primary stars
- f32 range: jump range for routing graph
- [u8] file_hash: sha3 hash of
stars.csv
from which graph was generated - String path: path to
stars.csv
from which graph was generated - FnvHashMap graph: Hashmap mapping systems to the systems from which they can be rached, traversed from destination system backwards to source to reconstruct route