# ExVrp v0.4.2 - API Reference

## Modules

- [ExVrp](ExVrp.md): Elixir bindings for [PyVRP](https://github.com/PyVRP/PyVRP), a state-of-the-art
Vehicle Routing Problem (VRP) solver.
- [ExVrp.Benchmark](ExVrp.Benchmark.md): Benchmark suite for ex_vrp solver.
- [ExVrp.DurationSegment](ExVrp.DurationSegment.md): Duration segments for tracking route timing during optimization.
- [ExVrp.DynamicBitset](ExVrp.DynamicBitset.md): A dynamic bitset for fast membership checks on integers.
- [ExVrp.LoadSegment](ExVrp.LoadSegment.md): Load segments for tracking capacity during optimization.
- [ExVrp.MinimiseFleet](ExVrp.MinimiseFleet.md): Fleet minimisation for VRP instances.
- [ExVrp.Native](ExVrp.Native.md): Low-level NIF bindings to PyVRP C++ core.
- [ExVrp.Neighbourhood](ExVrp.Neighbourhood.md): Computes granular neighbourhood for local search.
- [ExVrp.NeighbourhoodParams](ExVrp.NeighbourhoodParams.md): Configuration for calculating a granular neighbourhood.
- [ExVrp.PerturbationManager](ExVrp.PerturbationManager.md): Manages perturbation during local search.
- [ExVrp.RNG](ExVrp.RNG.md): Random Number Generator (xoshiro128++) for deterministic, reproducible search.
- [ExVrp.Read](ExVrp.Read.md): Reads VRPLIB format instance files.
- [ExVrp.RingBuffer](ExVrp.RingBuffer.md): A fixed-size circular buffer for tracking recently inserted values.
- [ExVrp.Statistics](ExVrp.Statistics.md): Statistics about the search progress.
- [ExVrp.Trip](ExVrp.Trip.md): Represents a trip within a route.

- Problem Definition
  - [ExVrp.Client](ExVrp.Client.md): Represents a client (customer) location in a VRP.
  - [ExVrp.ClientGroup](ExVrp.ClientGroup.md): Represents a group of clients with mutual constraints.
  - [ExVrp.Depot](ExVrp.Depot.md): Represents a depot (distribution center) in a VRP.
  - [ExVrp.Model](ExVrp.Model.md): High-level builder for constructing VRP problems.
  - [ExVrp.SameVehicleGroup](ExVrp.SameVehicleGroup.md): A group of clients that must be served by the same vehicle.
  - [ExVrp.VehicleType](ExVrp.VehicleType.md): Represents a vehicle type in a VRP.

- Solving
  - [ExVrp.IteratedLocalSearch](ExVrp.IteratedLocalSearch.md): Iterated Local Search with Late Acceptance Hill-Climbing.
  - [ExVrp.IteratedLocalSearch.Params](ExVrp.IteratedLocalSearch.Params.md): Parameters for Iterated Local Search.

  - [ExVrp.PenaltyManager](ExVrp.PenaltyManager.md): Manages and dynamically adjusts penalty weights for constraint violations.
  - [ExVrp.PenaltyManager.Params](ExVrp.PenaltyManager.Params.md): Parameters for penalty management.

  - [ExVrp.Solver](ExVrp.Solver.md): Main solver interface for VRP problems.
  - [ExVrp.StoppingCriteria](ExVrp.StoppingCriteria.md): Stopping criteria for controlling when the solver terminates.

- Results
  - [ExVrp.IteratedLocalSearch.Result](ExVrp.IteratedLocalSearch.Result.md): Result of running ILS.
  - [ExVrp.Route](ExVrp.Route.md): Represents a single route in a VRP solution.
  - [ExVrp.ScheduledVisit](ExVrp.ScheduledVisit.md): Represents a scheduled visit in a route.
  - [ExVrp.Solution](ExVrp.Solution.md): Represents a solution to a VRP.

- Exceptions
  - [ExVrp.NotImplementedError](ExVrp.NotImplementedError.md): Raised when a NIF function is not yet implemented.
  - [ExVrp.SolveError](ExVrp.SolveError.md): Raised when the solver fails to find a solution.

  - [ExVrp.ValidationError](ExVrp.ValidationError.md): Raised when model validation fails.

## Mix Tasks

- [mix benchmark](Mix.Tasks.Benchmark.md): Run benchmarks on VRPLIB instances.

