Library to optimise picking in the warehouse This library includes algorithms that should lead to improvements in picking path optimization in the warehouse. Any specifications that

Loading...
Searching...
No Matches
setup_configuration.h
1
12#ifndef _SOLVER_SETUP_H_
13#define _SOLVER_SETUP_H_
14
15#include "WarehousePickingOpt.h"
16
17#include <vector>
18
19 using namespace std;
20
21 class Box;
22 class Cart;
23 class CartShelf;
24
26 enum BPAlgorithms
27{
28 FFD_1D_ORDER_ITEMS_NO_SPLIT,
29 FFD_1D_ORDER_ITEMS_SPLIT_ONE_BOX_TYPE,
30 FFDS_1D_ORDER_ITEMS_SPLIT_MULTI_BOX_TYPE,
31 PYLIB_3D_ORDER_ITEMS_SPLIT_ONE_BOX_TYPE,
32 PYLIB_3D_FFDSEnhance_ORDER_ITEMS_SPLIT_MULTI_BOX_TYPE,
33 PYLIB_3D_ORDER_ITEMS_SPLIT_MULTI_BOX_TYPE_COUNT_DEFINED
34};
35
37 enum GroupingCustomersAlgorithms
38{
39 AVG_DISTANCES,
40 LEAST_SQUARE_APPROXIMATION,
41 K_MEANS_CLUSTERING,
42 AUTO
43};
44
45 enum ShortestPathAlgorithms
46{
47 NEAREST_NEIGHBOUR,
48 NEAREST_NEIGHBOUR_BRUTE_FORCE_OPTIMIZATION,
49 GREEDY,
50 GREEDY_BRUTE_FORCE_OPTIMIZATION,
51 JUST_MEASURE_DISTANCE,
52 NONE
53};
54
56 class SolverConfiguration
57{
58 public:
63 SolverConfiguration(
64 BPAlgorithms _bp_alg = BPAlgorithms::FFD_1D_ORDER_ITEMS_NO_SPLIT,
65 GroupingCustomersAlgorithms _grouping_customers_alg = GroupingCustomersAlgorithms::AVG_DISTANCES,
66 ShortestPathAlgorithms _shortest_path_alg = ShortestPathAlgorithms::NEAREST_NEIGHBOUR);
67
68 // when selected K-means clustering, this is maximal number of iterations
69 int Number_of_K_Means_Iterations = 10;
70
71 BPAlgorithms getBPAlgorithm();
72 GroupingCustomersAlgorithms getGroupingCustomerAlgorithm();
73 ShortestPathAlgorithms getShortestPathAlgorithm();
74
75 private:
76 BPAlgorithms bp_algorithm;
77 GroupingCustomersAlgorithms grouping_customers_algorithm;
78 ShortestPathAlgorithms shortest_path_algorithm;
79};
80
82 class BoxConfiguration
83{
84 private:
86 vector<pair<Box, int>> box_types_count_vect;
87 vector<Box> box_types_vect;
88
89 public:
94 void addBox(Box b, long count = -1);
95
96 vector<pair<Box, int>> getBoxesWCountVector();
97
98 vector<Box> getBoxesVector();
101 Box getFirstBox();
102};
103
104 class CartConfiguration
105{
106 private:
108 vector<Cart> cart_pattern;
109
111 vector<CartShelf> cart_shelf_vect;
112
113 float cart_width = 0;
114 float cart_height = 0;
115 float cart_depth = 0;
116
117 // TODO not used...
118 float usable_capacity = 0;
119
120 int number_of_shelves = 0;
121
122 public:
132 CartConfiguration(float _cart_width, float _cart_height, float _cart_depth, float _usable_capacity, int _number_of_shelves);
133
136 Cart getCartPattern();
137
140 void removeCartShelves();
141
144 void addCartShelf(float _shelf_width, float _shelf_height, float _shelf_depth, float _usable_capacity);
145};
146
147#endif
WarehousePickingOpt.h
translated with gcc version 12.2.1
BPAlgorithms
BPAlgorithms
type for specifing algorithm for solving BPP
Definition: WarehousePickingOpt.h:38
GroupingCustomersAlgorithms
GroupingCustomersAlgorithms
type for specifing algorithm for solving grouping of customers items to carts
Definition: WarehousePickingOpt.h:49
ShortestPathAlgorithms
ShortestPathAlgorithms
type for specifing algorithm for solving shortest path problem while sorting items in cart
Definition: WarehousePickingOpt.h:58
BoxConfiguration
the configuration of the boxes, which will be used
Definition: setup_configuration.h:83
BoxConfiguration::addBox
void addBox(Box b, long count=-1)
add a box and its count
Definition: setup_configuration.cpp:14
BoxConfiguration::getFirstBox
Box getFirstBox()
get the first box in the box vect
Definition: setup_configuration.cpp:30
Box
Box that can be loaded to the cart and which contains picked items in the warehouse.
Definition: WarehousePickingOpt.h:494
CartConfiguration
Definition: setup_configuration.h:105
CartConfiguration::getCartPattern
Cart getCartPattern()
get the created cart pattern
Definition: setup_configuration.cpp:77
CartConfiguration::removeCartShelves
void removeCartShelves()
removed all shelves from cart
Definition: setup_configuration.cpp:82
CartConfiguration::addCartShelf
void addCartShelf(float _shelf_width, float _shelf_height, float _shelf_depth, float _usable_capacity)
add shelf of given parameters
Definition: setup_configuration.cpp:87
CartShelf
the shelf in cart, which contains boxes
Definition: WarehousePickingOpt.h:347
Cart
class representing one Cart loaded with items from customers
Definition: WarehousePickingOpt.h:430
SolverConfiguration
object representing the setup for problem solving
Definition: setup_configuration.h:57
SolverConfiguration::Number_of_K_Means_Iterations
int Number_of_K_Means_Iterations
when selected K-means clustering, this is maximal number of iterations
Definition: setup_configuration.h:69