Skip to content

v1.21.0

Compare
Choose a tag to compare
@github-actions github-actions released this 27 Apr 19:01
Bump version to 1.21.0

Changed

* use hierarchical approach for local objective estimation
* avoid unsafe code project-wise:
  * apply `#![forbid(unsafe_code)]` directive fori
    rosomaxa/vrp-core/vrp-pragmatic/vrp-scientific
  * apply `#![deny(unsafe_code)]` directive for vrp-cli
    (due to FFI which is only one exception)
  * allow unsafe code only when necessary in research crates which are
    not used anyhow in production code
* make pyo3 an optional dependency and wrap python bindings under
  `py_bindings` feature
* refactor `Deref` trait usage
* implement `Debug` for essential core types
* refactor job index to lower memory footprint for a large scale VRP
  (tested on 30k CVRP instance)
* use proper objective for tsplib format problems (CVRP)
* error handling types
* fix sort stability issue in elitism's improvement detection method
* switch rosomaxa learning rate to cosine annealing
* rename `shiftTime` limit to `maxDuration`

Added

* experimental `compact-tour` objective which tries to shape routes based
  on job neighbourhood.
* heuristic filtering extension
* simple tabu list implementation used by some ruin methods
* gene pool in rosomaxa to reintroduce some genes while search progresses