Releases: reinterpretcat/vrp
Releases Β· reinterpretcat/vrp
v1.25.0
Bump version to 1.25.0 This release focuses on improving heuristic and some performance optimizations. Changed * update rust version * apply some minor code refactorings * apply some performance optimizations * refactor dbscan clustering api * improve heuristic a bit Removed * replace `compare_floats` with built-in `total_cmp` * gene pool in rosomaxa
v1.24.0
Bump version to 1.24.0 This release focuses on refactorings to simplify API, code usage, extendability and overall maintainability. It contains a lot of internal changes and has overall significant improvements. * examples how to extend the library (`vrp-core/examples`) * GitHub sponsors functionality * experimental `async-evolution` feature * NSGA-II implementation and its usage * dependency on `hashbrown` crate * state keys * Fix issue in `fast-service` objective (#144) * fix clippy warnings * minor refactorings * increase limits for ruin methods * tweak rosomaxa algorithm * tweak job index * tweak infeasible search heuristic * refactor route intervals and multi trip enablers * refactor feature objective trait * refactor dimensions/extras approach to avoid using strings as keys * how the goal of optimization is defined * flatten objectives in the pragmatic format
v1.23.0
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
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
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
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
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
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
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
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)