Skip to content

Support for depot capacities and fixed cost#2

Closed
leonlan wants to merge 626 commits into
mainfrom
pyvrp
Closed

Support for depot capacities and fixed cost#2
leonlan wants to merge 626 commits into
mainfrom
pyvrp

Conversation

@leonlan

@leonlan leonlan commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

N-Wouda and others added 30 commits March 21, 2024 09:29
* Add deltaCost function

* Add deltaCost function for 2-route moves

* Add Route::proposal member

* Update Exchange and SwapTails

* Enable exact evaluation

* Update primitives

* Update SwapStar

* Add concept for DeltaCostEvaluatable, update clang-format
* Run CD also on push to main

* Fix a small concurrency issue in workflow execution

* Fix CD on Windows by bumping to CIBW v2.16.5

See pypa/cibuildwheel#1740 for details

* Work around macOS's problem with std::optional::value, use macos-14

* Fix uploading and downloading artifacts

See actions/upload-artifact#478 (comment) for details

* Bump to v0.8.1
* Add fields for unit distance and duration costs

* Implement different objective

* Update Model and add some tests

* Improve explanation of objective function in CostEvaluator
* Specialize Solution.make_random for optional clients

* Add random constructor tests

* Pre-commit

* Add comment

* Remove empty check

* Get rid of group init special case

* Modify mutually exclusive group feasibility bug test

* Remove old test; check PCVRP solution cardinality
* Simplify code coverage builds

* Try clang, using Meson's coverage-xml target

* Add gcovr configuration

* Exclude throw branches
* Randomly select vehicle types/routes in Solution::makeRandom

* Add test that checks we now use multiple vehicle types when there are more vehicles than clients

* Only shuffle for instances that need it

---------

Co-authored-by: Leon Lan <l.lan@vu.nl>
* Implement routing profiles

* Pin sphinx to 7.2 for now to fix RTD

* Update docs

* Add tests
* Ternaries to avoid overflows

* Add test

---------

Co-authored-by: Niels Wouda <nielswouda@gmail.com>
* Implement computed penalty values

* Docs

* Add some tests

* Clip initial values, add another test
leonlan and others added 28 commits December 18, 2025 14:37
* Acceptance criteria (#810)

* Perturbation methods in local search (#827)

* Replace GeneticAlgorithm with IteratedLocalSearch (#838)

* Evaluate promising U's for node operators (#860)

* Tweak parameters (#865)

* Improve perturbation operators (#877)

* Construct initial solution and pass initial solution to params (#886)

* Simplify ILS class (#939)

* Some docs stuff (#940)

* Revert `collect_stats` changes (#941)

* Small stylistic changes to progress output (#942)

* Simplify perturb (#947)

* Perturbation manager (#951)

* Add `SearchSpace` object (#954)

* Skip non-promising earlier (#962)

* Remove temp allocation from `Trip::Trip` (#966)

* Move perturb() to PerturbationManager (#960)

* LocalSearch should insert missing but required clients and groups (#965)

* Load modified routes only (#967)


Co-authored-by: Niels Wouda <N-Wouda@users.noreply.github.com>
Co-authored-by: Niels Wouda <nielswouda@gmail.com>
* Remove crossover, diversity, and population

* Remove HGS references

* Remove from docs

* Remove TspWarning, fix notebook GA references

* Update package keywords
* Add LAHC

* Add RingBuffer class

* Fix tests
* Add exhaustive parameter

* Add test

---------

Co-authored-by: Niels Wouda <nielswouda@gmail.com>
* Do an exhaustive search when a new best solution is found

* Update solve()

* Add test

* Check if cand is feasible before assigning to best
Co-authored-by: Niels Wouda <N-Wouda@users.noreply.github.com>
* Tune parameters

* Use initial solution as `late_cost`
* Add depot service duration field

* Remove FAQ entry

* Add depot service to trip and route classes

* Simplify schedule creation

* Update all places where depot segments are made

* Set reasonable defaults for DurationSegment

* Add tests
* Modify MDVRPTW benchmark details
…ional clients (#998)

* Add randomness to initial solution, fallback when evaluating insertions

* Add a test
@leonlan leonlan changed the base branch from pyvrp-v0.13.3 to main June 23, 2026 12:25
@leonlan leonlan closed this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants