Learn R Programming

warehouseTools (version 0.1.2)

semi_optimal_heuristic: Semi-Optimal Heuristic for the Picker’s Route Designation

Description

This function applies a semi-optimal heuristic for warehouse routing problems by optimizing aisle configurations and creating a feasible tour graph.

Usage

semi_optimal_heuristic(coordinates, arcs = NULL)

Value

A matrix representing the optimized warehouse graph, including the routing paths and IO points.

Arguments

coordinates

A data frame or matrix with columns `x` and `y` representing the coordinates of warehouse locations.

arcs

A matrix representing the initial arcs in the warehouse graph. If `NULL`, the arcs will be generated using the `create_arcs` function.

Details

The heuristic optimizes aisle usage by identifying empty aisles and minimizing the loss associated with routing through the warehouse. It performs the following steps:

  • Calculates the warehouse height and width based on coordinates.

  • Identifies and isolates empty aisles.

  • Evaluates configurations using a binary vector approach and selects the configuration with the minimum routing loss.

  • Adjusts arcs to create a semi-optimal tour graph.

The algorithm returns an optimized graph that balances routing efficiency and warehouse constraints.

References

Dmytrów, K. (2022). Analytical and simulation determination of order picking time in a low storage warehouse for shared storage systems. Operations Research and Decisions, 32(2), 34–51. tools:::Rd_expr_doi("10.37190/ord220203")

Le-Duc, T. (2005). Design and Control of Efficient Order. Erasmus Research Institute of Management (ERIM).

Tarczyński, G. (2012). Analysis of the Impact of Storage Parameters and the Size of Orders on the Choice of the Method for Routing Order Picking. Operations Research and Decisions, 22(4), 105–120. tools:::Rd_expr_doi("10.5277/ord120406")

See Also

midpoint_heuristic, return_heuristic, sshape_heuristic

Examples

Run this code
coordinates <- matrix(c(1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5,
                       0, 4, 11, 0, 10, 11, 0, 1, 5, 11, 0, 4, 11, 0, 4,
                       11), ncol = 2, byrow = FALSE,
                       dimnames = list(NULL, c("x", "y")))
semi_optimal_heuristic(coordinates)


Run the code above in your browser using DataLab