Algorithms

pdppy.algorithms

Implementations of Pickup Delivery Problem algorithms and solvers for instances.

Algorithms and solvers take in graphical instances consistent with the description of H found in instances.request_graph and return a graphical representation of the tour which contains the edges in the final solution produced by the algorithm or solver. The implementations represent a series of developed algorithms, heuristics, integer programming and linear programming solvers for instances of the PDP.

All functions follow the same basic structure:
H: graph
Request graph instance.
P: graph
PDP tour solution. Contains all attributes from H. Contains only the edges representative of the final tour. Edges have additional attribute ‘value’ set to 1 if the edge is contained in the final tour. (All edges in P should have attribute ‘value’ == 1 with the exception of P found from linear_prog which may have fractional solutions.)

Functions

path_build_alg(H) 1-TT: Path Build Algorithm: Heuristic.
two_traversal_tree_alg(H) 2-TT: Two Traversal Tree Algorithm: Heuristic.
cheapest_feasible_insertion(H) CFI: Cheapest Feasible Insertion Algorithm: Heuristic.
four_traversal_mst_alg(H) 4-TT: Four Traversal Minimum Spanning Tree Algorithm: 4-factor approx.
five_traversal_alg(H) 5-TT: Five Traversal Spanning Tree Algorithm: 5-factor approx.
double_tour_alg(H) 2-CHR: Double Tour Algorithm: 4-factor approx.
linear_prog(H) LP: Linear Program Relaxation for the PDP.
branch_cut_integer_prog(H[, warm_start, …]) IP: Branch and Cut Integer Program for the PDP.