Skip to content

Releases: LdDl/go-hyperpaths

v0.0.5 Integer-arena solver and multi-destination API

Choose a tag to compare

@LdDl LdDl released this 03 Aug 21:31
c4ad6e3

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

Choose a tag to compare

@LdDl LdDl released this 01 Aug 20:07

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

Choose a tag to compare

@LdDl LdDl released this 31 Jul 21:02

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

Choose a tag to compare

@LdDl LdDl released this 24 Jul 16:00
93e9d77

What's new

Name of this release says pretty much it + some documentation stuff

v0.0.1 Initial implementation

Choose a tag to compare

@LdDl LdDl released this 25 Feb 18:52

Very first release of the package

Spiess and Florian algorithm - https://doi.org/10.1016/0191-2615(89)90034-9