Repository navigation
Releases: LdDl/go-hyperpaths
Releases · LdDl/go-hyperpaths
Release list
v0.0.5 Integer-arena solver and multi-destination API
What's new
- Integer arena in the solver (free for existing callers): node names are interned to dense integer indices once and the hot loops run over slices instead of hash-map lookups, with the priority-queue entries in a single backing slab. Single-destination solves get roughly twice as fast with about half the allocations, and no caller changes are needed.
- New opt-in reusable graph/workspace API: intern the network into an immutable integer arena once, then reuse per-destination buffers. A full multi-destination assignment is about 11x faster than solving each destination from scratch, and allocation-free once the workspace is warm. The interned graph is immutable and shareable across threads/goroutines, with a per-thread workspace.
Also backward compatible, no breaking changes.
For the more information see the reference: #4
v0.0.4 Strict acceptance
What's new
Accept a link only on strict label improvement (u_i > u_j + c_a): labels and costs are unchanged, but this keeps the strategy acyclic - the paper's nonstrict >= admits zero-cost board-alight cycles on which one-pass loading loses flow (see TestBoardAlightLoopConservation).
For the more information see the reference: 90f2562
v0.0.3 Exact infinite frequencies
What's new
- This release replaces the big-M approximation with the modified version of the algorithm given by Spiess & Florian themselves, making the implementation match the paper exactly.
- New tests: TestNoWaitReplacesBasket (a boarding link accepted first is fully replaced by a cheaper no-wait chain) and TestZeroCostChainLoading (regression for loading order at exact zero-cost ties (board -> ride -> alight -> walk)
For the more information see the reference: a21654c
v0.0.2 Float64 instead float32
What's new
Name of this release says pretty much it + some documentation stuff
v0.0.1 Initial implementation
Very first release of the package
Spiess and Florian algorithm - https://doi.org/10.1016/0191-2615(89)90034-9