Pyvrp

Latest version: v0.10.1

Safety actively analyzes 682416 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

0.10.1

Hotfix release that fixes the bug identified in 681.

**Zenodo**: https://doi.org/10.5281/zenodo.14058170

**Full Changelog**: https://github.com/PyVRP/PyVRP/compare/v0.10.0...v0.10.1

0.10.0

The 0.10.0 release of PyVRP adds support for multiple load dimensions. It additionally fixes a few open issues, and adds support for Python 3.13.

Highlights

- PyVRP now supports **multiple load dimensions**.
- PyVRP now has a simple **fleet minimisation** procedure.

Breaking changes

- As a consequence of our support for multiple load dimensions, the `Client.delivery`, `Client.pickup`, `VehicleType.capacity` fields now return lists, rather than single numbers. Similarly, the `excess_load()` methods on `Route` and `Solution` now returns lists rather than integers.
- PyVRP now requires at least one vehicle type to be passed for a valid `ProblemData` instance.

Bugs fixed

- Fixed a bug where client release times were not respected by the route's earliest start time (in https://github.com/PyVRP/PyVRP/issues/633, also backported to the 0.9.1 release).

Additional

- PyVRP now releases the GIL when entering expensive, native operations where the GIL plays no role.
- Bumped our dependency on `pybind11` to v2.13.5 (in 644).
- Dropped support for Python 3.9, added support for Python 3.13 (in 663).

What's Changed

* Support reading GVRP instances ragged group data by leonlan in https://github.com/PyVRP/PyVRP/pull/628
* Split off Solution::Route as pyvrp::Route by N-Wouda in https://github.com/PyVRP/PyVRP/pull/630
* Fix bug related to release and start times by N-Wouda in https://github.com/PyVRP/PyVRP/pull/635
* Add simple routine for minimising fleet size by N-Wouda in https://github.com/PyVRP/PyVRP/pull/638
* Bump pybind11 to 2.12.0 by N-Wouda in https://github.com/PyVRP/PyVRP/pull/643
* Bump pybind11 to v2.13.5 by N-Wouda in https://github.com/PyVRP/PyVRP/pull/644
* Pickle the data instance by N-Wouda in https://github.com/PyVRP/PyVRP/pull/646
* Document how to profile by N-Wouda in https://github.com/PyVRP/PyVRP/pull/652
* Update CI build matrix by N-Wouda in https://github.com/PyVRP/PyVRP/pull/657
* Update citation details by N-Wouda in https://github.com/PyVRP/PyVRP/pull/658
* Support Python 3.13, drop 3.9 by N-Wouda in https://github.com/PyVRP/PyVRP/pull/663
* Release GIL in heavy operations by N-Wouda in https://github.com/PyVRP/PyVRP/pull/666
* Microbenchmarks in CI by N-Wouda in https://github.com/PyVRP/PyVRP/pull/668
* Require at least one vehicle type by leonlan in https://github.com/PyVRP/PyVRP/pull/669
* Harden workflows by N-Wouda in https://github.com/PyVRP/PyVRP/pull/670
* Dedicated CodSpeed workflow by N-Wouda in https://github.com/PyVRP/PyVRP/pull/672
* Multiple load dimensions by N-Wouda and wouterkool in https://github.com/PyVRP/PyVRP/pull/645
* Benchmarks v0.10.0 by leonlan in https://github.com/PyVRP/PyVRP/pull/677

**Zenodo**: https://zenodo.org/records/14051650

**Full Changelog**: https://github.com/PyVRP/PyVRP/compare/v0.9.1...v0.10.0

0.9.1

Bugfix release that fixes the minor bug identified in 633.

**Zenodo**: https://doi.org/10.5281/zenodo.12709334

**Full Changelog**: https://github.com/PyVRP/PyVRP/compare/v0.9.0...v0.9.1

0.9.0

The 0.9.0 release of PyVRP adds support for mixed distance and duration based objectives, different distance and duration profiles, different start and end depots on each route, and fixes an overflow bug that sometimes materialised when solving VRPs with time windows.

Highlights

- PyVRP now supports **mixed distance and duration** terms in the objective function. This means you are now able to optimise problems with both distance-based and duration-based costs.
- PyVRP now supports different **start and end depots**. This is particularly useful for re-optimisation.
- PyVRP now supports **routing profiles**, a flexible way to specify different distance and duration matrices for groups of vehicles. This can be used to model zone restrictions, but also account for the differences between e.g. cars, trucks, and bicycles.

Breaking changes

- We have removed the `dist()` and `duration()` access methods from the `ProblemData` instance. One should instead directly obtain the distance or duration matrices from `ProblemData`, and index those directly.
- We have removed depot time windows. These are unnecessary since the vehicle types already have time windows, and those generalise time windows on the depots.
- We have separated the start and end depot arguments on the vehicle type. Instead of passing a single `depot` argument when adding a vehicle type, now pass `start_depot` and `end_depot`. Passing the same depot to both `start_depot` and `end_depot` retains the previous behaviour.

Additional

- We have removed a warning about empty solutions being added to the `Population`, which sometimes happens when solving instances with optional clients. This is not problematic, so the warning was not appropriate.
- We have added a warning about penalty values reaching their maximum value. This typically indicates a feasibility problem in the data.
- We have added a devcontainer for PyVRP development. This should make it easier for new contributors to get started with PyVRP.

What's Changed
* Update documentation about discussion feature by N-Wouda in https://github.com/PyVRP/PyVRP/pull/545
* Support vehicle-specific distance and duration objectives by N-Wouda in https://github.com/PyVRP/PyVRP/pull/546
* Randomly select optional clients in Solution random constructor by leonlan in https://github.com/PyVRP/PyVRP/pull/554
* Add profile-guided optimisation option to build script by N-Wouda in https://github.com/PyVRP/PyVRP/pull/559
* Randomly select vehicle types/routes in Solution::makeRandom by N-Wouda in https://github.com/PyVRP/PyVRP/pull/562
* Make repeated builds faster by splitting libcommon by N-Wouda in https://github.com/PyVRP/PyVRP/pull/568
* Remove dist() and duration() accessors on ProblemData by N-Wouda in https://github.com/PyVRP/PyVRP/pull/567
* Routing profiles by N-Wouda in https://github.com/PyVRP/PyVRP/pull/573
* Update OR-Tools benchmark by leonlan in https://github.com/PyVRP/PyVRP/pull/587
* Fix integer overflow issue in DurationSegment by leonlan in https://github.com/PyVRP/PyVRP/pull/590
* Warn when a penalty parameter reaches its maximum value by N-Wouda in https://github.com/PyVRP/PyVRP/pull/598
* Update and add some missing docstrings by N-Wouda in https://github.com/PyVRP/PyVRP/pull/606
* Computed initial penalty values by N-Wouda in https://github.com/PyVRP/PyVRP/pull/607
* Remove EmptySolutionWarning by N-Wouda in https://github.com/PyVRP/PyVRP/pull/611
* Implement route profiles in pyvrp.search by N-Wouda in https://github.com/PyVRP/PyVRP/pull/579
* Remove depot time windows by N-Wouda in https://github.com/PyVRP/PyVRP/pull/616
* Fix duplicate max duration timewarp by wouterkool in https://github.com/PyVRP/PyVRP/pull/613
* Separate start and end depots by N-Wouda in https://github.com/PyVRP/PyVRP/pull/612
* Add summary() method to Result by N-Wouda in https://github.com/PyVRP/PyVRP/pull/619
* Add a new example to the tutorial by N-Wouda in https://github.com/PyVRP/PyVRP/pull/618
* PyVRP devcontainer by leonlan in https://github.com/PyVRP/PyVRP/pull/580
* Read SDVRP instances by leonlan in https://github.com/PyVRP/PyVRP/pull/617

**Zenodo**: https://doi.org/10.5281/zenodo.12568807

**Full Changelog**: https://github.com/PyVRP/PyVRP/compare/v0.8.2...v0.9.0

0.8.2

Fixes an issue with the Windows binaries that would crash with large default integer values. See 547 and 548 for details.

**Zenodo**: https://doi.org/10.5281/zenodo.11409524

**Full Changelog**: https://github.com/PyVRP/PyVRP/compare/v0.8.1...v0.8.2

0.8.1

Small patch that fixes an issue with the automated deployment workflow.

What's Changed

* Benchmark results v0.8.0 by leonlan in https://github.com/PyVRP/PyVRP/pull/542
* Run CD also on push to main by N-Wouda in https://github.com/PyVRP/PyVRP/pull/544

**Zenodo**: https://doi.org/10.5281/zenodo.11409572

**Full Changelog**: https://github.com/PyVRP/PyVRP/compare/v0.8.0...v0.8.1

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.