Upgrades the vendored solver core to PyVRP 0.14.0 (from 0.13.4), a major upstream release that reworks the data model and the search engine.
add_shipments() adds paired pickup/delivery visits (same
vehicle, pickup first, same trip), enabling the PDP/PDPTW family of
problems. Solutions report num_shipments and
num_missing_shipments.unplanned() accessor: a tidy view of the optional
clients and shipments left out of the solution (prize collecting).routes() now also reports activity
("client", "pickup" or
"delivery"), shipment and trip
columns; client rows keep the previous columns, so pure client instances
read as before.Relocate/Swap plus explicit
optional-client/shipment/group operators) replaces the old node/route
operator split; the granular neighbourhood is now computed by upstream
C++ code (default num_neighbours = 50).penalty_decrease = 0.90. The
init_load/init_tw/init_dist
arguments of ils_params() were removed accordingly.ils_params() lost init_load,
init_tw and init_dist (see above);
num_neighbours now defaults to 50 (PyVRP’s default).routes() gains columns; code that relied on the exact
column set should select explicitly.Portability fixes for CRAN builders; no user-facing changes.
std::back_inserter
transitively: the vendored search/LocalSearch.cpp and
Solution.cpp now include <iterator>
explicitly.<concepts> lacks std::convertible_to: a
small compatibility shim (vrpr_compat.h) supplies the
concept where the standard library does not.Route::Iterator in the vendored sources now declares
all five iterator member typedefs, as required by pre-C++20
std::iterator_traits on the same older libc++ (verified by
compiling every translation unit against the MacOSX11.3 SDK’s libc++
headers).tools/vendor.R on top of
the verbatim PyVRP sources, so they survive re-vendoring.First release.
read_vrplib() and read_solomon() read
standard VRPLIB/TSPLIB and Solomon instances; plot() draws
solutions with ‘ggplot2’.tools/benchmark/.