docs: Update documentation to include basic description
This commit is contained in:
parent
fb54bdaf0c
commit
714741a885
1 changed files with 32 additions and 2 deletions
|
@ -21,7 +21,7 @@ titlepage: true
|
||||||
toc-own-page: false
|
toc-own-page: false
|
||||||
---
|
---
|
||||||
|
|
||||||
# How it works
|
# Implementation
|
||||||
|
|
||||||
## `stars.csv` format
|
## `stars.csv` format
|
||||||
|
|
||||||
|
@ -39,20 +39,50 @@ toc-own-page: false
|
||||||
|
|
||||||
## `stars.idx` format
|
## `stars.idx` format
|
||||||
|
|
||||||
|
`bincode` serialized data:
|
||||||
|
|
||||||
|
- **[u64]**: List of byte offset for records (entry 0=first recod, entry 1= second record, etc)
|
||||||
|
|
||||||
## Routing Algorithms
|
## Routing Algorithms
|
||||||
|
|
||||||
### Breadth-First Search (BFS)
|
### Breadth-First Search (BFS)
|
||||||
|
|
||||||
|
Standard Breadth-First Search, always finds the shortest route
|
||||||
|
|
||||||
### A*-Search
|
### A*-Search
|
||||||
|
|
||||||
### Greedy Search
|
Modified A-Star search with tunable "greediness". Candidates 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
|
## 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
|
## 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
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
|
<!--
|
||||||
|
TODO: Add screenshots
|
||||||
|
-->
|
||||||
|
|
||||||
## Preprocessing Data
|
## Preprocessing Data
|
||||||
|
|
||||||
## Plotting a Route
|
## Plotting a Route
|
||||||
|
|
Loading…
Reference in a new issue