Skip to content

Commit d3b4cc5

Browse files
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
1 parent 82bd5ef commit d3b4cc5

File tree

11 files changed

+23
-19
lines changed

11 files changed

+23
-19
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ All notable changes to this project will be documented in this file.
55

66
## [Unreleased]
77

8+
9+
## [v1.21.0]- 2023-04-27
10+
811
This release brings hierarchical approach for local objective estimation. Additionally, it focuses on refactoring,
9-
mostly to avoid usafe code.
12+
mostly to avoid usafe code. In memory of..
1013

1114
### Changed
1215

@@ -627,7 +630,8 @@ with Self Organizing MAps and eXtrAs (pronounced as "rosomaha", from russian "р
627630

628631
- Initial commit
629632

630-
[Unreleased]: https://github.com/reinterpretcat/vrp/compare/v1.20.0...HEAD
633+
[Unreleased]: https://github.com/reinterpretcat/vrp/compare/v1.21.0...HEAD
634+
[v1.21.0]: https://github.com/reinterpretcat/vrp/compare/v1.20.0...v1.21.0
631635
[v1.20.0]: https://github.com/reinterpretcat/vrp/compare/v1.19.2...v1.20.0
632636
[v1.19.2]: https://github.com/reinterpretcat/vrp/compare/v1.19.1...v1.90.2
633637
[v1.19.1]: https://github.com/reinterpretcat/vrp/compare/v1.19.0...v1.90.1

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ authors:
55
given-names: "Ilya"
66
orcid: "https://orcid.org/0000-0002-7613-7412"
77
title: "Rosomaxa, Vehicle Routing Problem Solver"
8-
version: 1.20.0
8+
version: 1.21.0
99
doi: 10.5281/zenodo.4624037
1010
date-released: 2022-05-13
1111
url: "https://github.com/reinterpretcat/vrp"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
![build](https://github.com/reinterpretcat/vrp/actions/workflows/build.yaml/badge.svg)
44
[![downloads](https://img.shields.io/crates/d/vrp-core)](https://crates.io/crates/vrp-core)
55
[![codecov](https://codecov.io/gh/reinterpretcat/vrp/branch/master/graph/badge.svg)](https://codecov.io/gh/reinterpretcat/vrp)
6-
[![dependency status](https://deps.rs/crate/vrp-cli/1.20.0/status.svg)](https://deps.rs/crate/vrp-cli/1.20.0)
6+
[![dependency status](https://deps.rs/crate/vrp-cli/1.21.0/status.svg)](https://deps.rs/crate/vrp-cli/1.21.0)
77
[![DOI](https://zenodo.org/badge/238436117.svg)](https://zenodo.org/badge/latestdoi/238436117)
88

99
![VRP example](docs/resources/vrp-example.png "VRP with Route Balance")
@@ -68,7 +68,7 @@ Another fast way to try vrp solver on your environment is to use `docker` image
6868
* **run public image** from `Github Container Registry`:
6969

7070
```bash
71-
docker run -it -v $(pwd):/repo --name vrp-cli --rm ghcr.io/reinterpretcat/vrp/vrp-cli:1.20.0
71+
docker run -it -v $(pwd):/repo --name vrp-cli --rm ghcr.io/reinterpretcat/vrp/vrp-cli:1.21.0
7272
```
7373

7474
* **build image locally** using `Dockerfile` provided:

docs/src/getting-started/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Another fast way to try vrp solver on your environment is to use `docker` image
2626
* **run public image** from `Github Container Registry`:
2727

2828
```bash
29-
docker run -it -v $(pwd):/repo --name vrp-cli --rm ghcr.io/reinterpretcat/vrp/vrp-cli:1.20.0
29+
docker run -it -v $(pwd):/repo --name vrp-cli --rm ghcr.io/reinterpretcat/vrp/vrp-cli:1.21.0
3030
```
3131

3232
* **build image locally** using `Dockerfile` provided:

examples/json-pragmatic/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "json-pragmatic"
3-
version = "1.20.0"
3+
version = "1.21.0"
44
authors = ["Ilya Builuk <ilya.builuk@gmail.com>"]
55
license = "Apache-2.0"
66
keywords = ["vrp", "optimization"]

rosomaxa/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rosomaxa"
3-
version = "0.4.0"
3+
version = "0.5.0"
44
edition = "2021"
55
authors = ["Ilya Builuk <ilya.builuk@gmail.com>"]
66
license = "Apache-2.0"

vrp-cli/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "vrp-cli"
3-
version = "1.20.0"
3+
version = "1.21.0"
44
authors = ["Ilya Builuk <ilya.builuk@gmail.com>"]
55
license = "Apache-2.0"
66
keywords = ["vrp", "optimization"]
@@ -23,9 +23,9 @@ name = "vrp_cli"
2323
crate-type = ["cdylib", "lib"]
2424

2525
[dependencies]
26-
vrp-core = { path = "../vrp-core", version = "1.20.0" }
27-
vrp-scientific = { path = "../vrp-scientific", optional = true, version = "1.20.0" }
28-
vrp-pragmatic = { path = "../vrp-pragmatic", version = "1.20.0" }
26+
vrp-core = { path = "../vrp-core", version = "1.21.0" }
27+
vrp-scientific = { path = "../vrp-scientific", optional = true, version = "1.21.0" }
28+
vrp-pragmatic = { path = "../vrp-pragmatic", version = "1.21.0" }
2929

3030
csv = { version = "1.2.1", optional = true }
3131
serde_json = "1.0.96"

vrp-cli/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ mod cli {
2929

3030
pub fn get_app() -> Command {
3131
Command::new("Vehicle Routing Problem Solver")
32-
.version("1.20.0")
32+
.version("1.21.0")
3333
.author("Ilya Builuk <ilya.builuk@gmail.com>")
3434
.about("A command line interface to Vehicle Routing Problem solver")
3535
.subcommand(get_analyze_app())

vrp-core/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "vrp-core"
3-
version = "1.20.0"
3+
version = "1.21.0"
44
authors = ["Ilya Builuk <ilya.builuk@gmail.com>"]
55
license = "Apache-2.0"
66
keywords = ["vrp", "optimization"]
@@ -12,7 +12,7 @@ edition = "2021"
1212
description = "A core algorithms to solve a Vehicle Routing Problem"
1313

1414
[dependencies]
15-
rosomaxa = { path = "../rosomaxa", version = "0.4.0" }
15+
rosomaxa = { path = "../rosomaxa", version = "0.5.0" }
1616

1717
rayon = "1.7.0"
1818
rand = { version = "0.8.5", features = ["small_rng"] }

vrp-pragmatic/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "vrp-pragmatic"
3-
version = "1.20.0"
3+
version = "1.21.0"
44
authors = ["Ilya Builuk <ilya.builuk@gmail.com>"]
55
license = "Apache-2.0"
66
keywords = ["vrp", "optimization"]
@@ -12,7 +12,7 @@ edition = "2021"
1212
description = "An extension logic for solving rich VRP"
1313

1414
[dependencies]
15-
vrp-core = { path = "../vrp-core", version = "1.20.0" }
15+
vrp-core = { path = "../vrp-core", version = "1.21.0" }
1616

1717
serde = { version = "1.0.160", features = ["derive"] }
1818
serde_json = "1.0.96"

vrp-scientific/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "vrp-scientific"
3-
version = "1.20.0"
3+
version = "1.21.0"
44
authors = ["Ilya Builuk <ilya.builuk@gmail.com>"]
55
license = "Apache-2.0"
66
keywords = ["vrp", "optimization"]
@@ -12,4 +12,4 @@ edition = "2021"
1212
description = "An extension logic for solving scientific VRP"
1313

1414
[dependencies]
15-
vrp-core = { path = "../vrp-core", version = "1.20.0" }
15+
vrp-core = { path = "../vrp-core", version = "1.21.0" }

0 commit comments

Comments
 (0)