Skip to content

Releases: reinterpretcat/vrp

v1.23.0

22 Dec 19:03
Compare
Choose a tag to compare
Bump version to 1.23.0

This release combines many changes, but essentials are:
- internal route state api simplification
- increased performance
- several experimental features
- bug fixes

* original job place index in activity place to simplify activity-job
 place matching
* `experimental`: a new type of location in pragmatic format to model
 zero distance/duration from it to any other location.
  This could be useful to model optional vehicle start location.
* allow user to pass alternative objectives in goal context to guide
 the search
* `experimental`: a new `fast-service` objective function to serve jobs
 as soon as possible

* experimental `dispatch` feature

* apply code style refactoring
* improve selection sampling search
* update dependencies
* improve a bit documentation
* refactor route state
* do not use hashmaps to store activity states

* double reload assignment when initial solution is used (#126)
* unexpected total_order behavior in dynamic heuristic (#128)
* improve validation rule for break with time offset  (#129)
* fix issue with skills (#133)
* do not cluster jobs if they are defined in relations (#141)

v1.22.1

26 Aug 11:59
Compare
Choose a tag to compare
Bump version to 1.22.1

* `experimental` recharge stations feature to support basic electric VRP
* apply refactorings to some core api
* update dependencies
* reload is removed from the solution passed as initial (#126)

v1.22.0

08 Aug 19:06
Compare
Choose a tag to compare
Bump version to 1.22.0

* `breaking` replace MDP with multi-armed bandit RL algorithm
* change `stops.activity.time.start` not to include waiting time
* improve required break functionality
* improve managing packages with cargo's workspace
* update dependencies
* `breaking`: refactor internal models to simplify cost/telemetry handling
* `breaking` change required break definition to support time range
* change duration in csv import command from minutes to seconds
* `breaking` use `GenericError` instead of `String` within `Result`
* more experimental plots in `heuristic-research` playground
* geojson output if the library is used from interop api

v1.21.1

09 Jun 17:51
Compare
Choose a tag to compare
Bump version to 1.21.1

This release brings experimental `async-evolution` with other improvements

* update dependencies
* fix documentation issues
* refactor `HeuristicContext` trait to avoid using `HeuristicPopulation`
  directly from it
* improve non-determinism based selectors logic
* add experimental feature `async-evolution`

v1.21.0

27 Apr 19:01
Compare
Choose a tag to compare
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

v1.20.0

01 Apr 11:51
Compare
Choose a tag to compare
Bump version to 1.20.0

* refactor RouteContext to avoid using Arc and unsafe code
* refactor Network to avoid using Arc/RwLock
* adapt core api to required safety changes

v1.19.2

22 Mar 20:54
Compare
Choose a tag to compare
Bump version to 1.19.2

added:
* python binding with pyo3
* example how to use library with maturin

changed:
* cleaned area leftovers
* update dependencies
* update rust version on dev environment to 1.68
* fix clippy warnings
* bug fix in capacity feature
* gsom compaction logic and adapt rosomaxa

v1.19.1

14 Dec 19:31
Compare
Choose a tag to compare
Bump version to 1.19.1

* `breaking`: replace `LegSelector` with `LegSelectionMode`
* use different approach for leg selection: selection sampling search
* introduce initial weights in dynamic heuristic
* update dependencies
* update rust version on dev environment to the latest (1.65.0)

v1.19.0

16 Oct 17:42
Compare
Choose a tag to compare
  • breaking: combine objectives and constraint modules into feature concept
  • improve ruin limits logic
  • change insertion position evaluation logic to speedup analysis
  • update dependencies
  • update rust version used for development (1.64)
  • breaking: remove area constraint as it needs rework

v1.18.4

21 Aug 21:58
Compare
Choose a tag to compare
Update changelog for 1.18.4

* breaking: simplify unassigned job reason model
* fix capacity violation issue related to reload feature