ml4co_kit.task.routing.vrp.cvrpbtw

CVRP with backhauls and time windows (CVRPBTW). CVRPBTW can be seen as a combination of CVRPB and CVRPTW.

Classes

CVRPBTWTask(cvrp_open, mixed_backhaul, ...)

class ml4co_kit.task.routing.vrp.cvrpbtw.CVRPBTWTask(cvrp_open: bool = False, mixed_backhaul: bool = False, distance_type: ~ml4co_kit.task.routing.base.DISTANCE_TYPE = DISTANCE_TYPE.EUC_2D, round_type: ~ml4co_kit.task.routing.base.ROUND_TYPE = ROUND_TYPE.NO, precision: ~numpy.float32 | ~numpy.float64 = <class 'numpy.float32'>, threshold: float = 0.0001)[source]

Bases: CVRPTask

check_constraints(sol: ndarray) bool[source]

Check if the solution is valid.

from_data(depots: ndarray = None, points: ndarray = None, demands: ndarray = None, capacity: float = None, tw: ndarray = None, service: ndarray = None, sol: ndarray = None, ref: bool = False, normalize: bool = False, name: str = None)[source]

Populate the task from numpy arrays.

Parameters

depotsnp.ndarray, optional

Depot coordinates, shape (2,) or (3,).

pointsnp.ndarray, optional

Customer coordinates, shape (V, 2) or (V, 3).

demandsnp.ndarray, optional

Customer demands, shape (V,).

capacityfloat, optional

Vehicle capacity.

solnp.ndarray, optional

Tour encoding with 0 depot delimiters.

refbool, optional

If True, store sol in ref_sol instead of sol.

normalizebool, optional

Scale coordinates to [0, 1] (EUC_2D only).

namestr, optional

Instance name override.

render(save_path: Path, with_sol: bool = True, figsize: tuple = (5, 5), node_color: str = 'darkblue', edge_color: str = 'darkblue', node_size: int = 50)[source]

Save a matplotlib figure of the instance (and optional solution).

Parameters

save_pathpathlib.Path

Output image path (.png, etc.).

with_solbool, optional

Draw self.sol routes when True; instance only when False.

figsizetuple, optional

Figure size in inches.

node_color, edge_colorstr, optional

Plot colors (used when applicable).

node_sizeint, optional

Scatter marker size for customers.