-
-
Notifications
You must be signed in to change notification settings - Fork 128
Release 0.8.0 #435
Copy link
Copy link
Closed
Labels
release-notesRelease notes for a new PyVRP versionRelease notes for a new PyVRP version
Milestone
Description
Stub for 0.8.0 release notes
PyVRP 0.8.0
New features
- The
Modelinterface now supports printing solver progress through thedisplayargument onModel.solve(in Print solver progress #460). - PyVRP now also supports return shipments, from clients back to the depot (in Simultaneous pickup and delivery #471). This means PyVRP can now also solve the VRP with backhaul, and the VRP with simultaneous pickup and delivery. Examples have been added to the documentation (in Update quick tutorial with new problem variants #513).
- Add support for a maximum distance constraint #500
- Generalised VRP #514
Breaking changes
- The interface of the repair operators in
pyvrp.repairwas updated to work exclusively on route lists (in Update pyvrp.repair operator interface to use lists of routes, not solutions #448). - The
pyvrp.search.Route.fixed_costmember function has been renamed tofixed_vehicle_cost(in Consistency checks #450). This should not affect a lot of downstream code since this class is mostly internal to the search routines. - The default values for
tw_lateandmax_durationhas changed toINT_MAXin all cases. Additionally,VehicleType.tw_early = 0,VehicleType.tw_late = INT_MAX, andVehicleType.max_duration = INT_MAXnow no longer takeNoneas an argument (in Make [0, INT_MAX] the default time windows #463). - The
Client.demandattribute has been renamed todelivery, and aClient.pickupattribute has been added. TheClient.__init__method has been updated to reflect these changes (in Simultaneous pickup and delivery #471). More generally,demandhas been renamed todelivery, and apickupvalue has been added where appropriate. - We have separated the underlying data structures for clients and depots (in Separate client and depot structs #481). Before, a depot also used the same data structure as a client, which resulted in many attributes that a depot does not have (and should not have been set to values other than zero). This change rectifies the situation by making those attributes unavailable for depots. The consequences to user code should be limited if one uses the
pyvrp.Modelinterface. - Remove "get" prefix from data accessors #499
- Add support for a maximum distance constraint #500
- Split 2-OPT into ReverseSegment and SwapTails #510
- Add support for a maximum distance constraint #500
- Make name argument keyword only #526
Additional
- We have added OR-Tools as a reference solver to our benchmarks page (in OR-Tools benchmark #469). The gaps to the BKS are 5-13% across different instances.
- The
TimeWindowSegmenthas been renamed toDurationSegment. Although technically a breaking change, this class is not part of the public API, and the change should thus not affect user code (in Rename TimeWindowSegment to DurationSegment #483). - The
read()function now also applies theround_funcargument to any pickup, delivery, and capacity data (in Update read and tests to properly round load and capacity values #493). - PyVRP now uses 64-bit integer values internally (in Switch over to int64_t #490). This significantly increases the range of acceptable input values.
Bugs fixed
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
release-notesRelease notes for a new PyVRP versionRelease notes for a new PyVRP version